[qgis] 01/07: Imported Upstream version 2.14.8+dfsg

Bas Couwenberg sebastic at debian.org
Fri Oct 21 19:20:44 UTC 2016


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository qgis.

commit 6e0b0d63ba09be841b3d8a389fe1bd1a2734c6c4
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Oct 21 18:47:00 2016 +0200

    Imported Upstream version 2.14.8+dfsg
---
 .editorconfig                                      |    17 +
 CMakeLists.txt                                     |     2 +-
 CTestConfig.cmake                                  |     2 +-
 ChangeLog                                          |   593 +
 NEWS                                               |     8 +-
 ci/travis/linux/qt4/script.sh                      |     2 +-
 cmake/FindSPATIALITE.cmake                         |     3 +-
 debian/changelog                                   |    10 +-
 debian/compat.in                                   |     2 +-
 debian/control.in                                  |    26 +-
 debian/rules                                       |     4 +-
 doc/TRANSLATORS                                    |    78 +-
 doc/news.html                                      |    12 +-
 doc/news.t2t                                       |     2 +-
 i18n/qgis_de.ts                                    | 13463 ++++++++++---------
 ms-windows/osgeo4w/package-nightly.cmd             |     2 +-
 ms-windows/osgeo4w/package.cmd                     |     2 +-
 python/PyQt/PyQt4/Qt.py                            |    27 +
 python/PyQt/PyQt5/Qt.py                            |    27 +
 python/core/composer/qgscomposerattributetable.sip |     4 +-
 .../core/composer/qgscomposerattributetablev2.sip  |     2 +-
 python/core/composer/qgscomposerpicture.sip        |    39 +
 python/core/core.sip                               |     1 +
 python/core/qgsbearingutils.sip                    |    21 +
 python/core/qgsdataprovider.sip                    |     2 +-
 python/core/qgsgeometryvalidator.sip               |     2 +-
 python/core/qgsogcutils.sip                        |     7 +
 python/core/qgspoint.sip                           |     2 +-
 python/core/qgsvectorlayer.sip                     |    24 +-
 python/core/raster/qgsrasterprojector.sip          |     2 +-
 .../qgscategorizedsymbolrendererv2.sip             |    10 +-
 .../core/symbology-ng/qgsellipsesymbollayerv2.sip  |     1 +
 python/core/symbology-ng/qgsfillsymbollayerv2.sip  |     5 +
 .../symbology-ng/qgsgraduatedsymbolrendererv2.sip  |    12 +-
 python/core/symbology-ng/qgslinesymbollayerv2.sip  |     2 +
 .../symbology-ng/qgspointdisplacementrenderer.sip  |     3 +
 python/core/symbology-ng/qgsrendererv2.sip         |     5 +
 .../core/symbology-ng/qgsrulebasedrendererv2.sip   |    12 +-
 .../symbology-ng/qgssinglesymbolrendererv2.sip     |     3 +
 python/core/symbology-ng/qgssymbollayerv2.sip      |     2 +
 python/core/symbology-ng/qgssymbollayerv2utils.sip |    31 +
 python/core/symbology-ng/qgssymbolv2.sip           |     3 +-
 .../symbology-ng/qgsvectorfieldsymbollayer.sip     |     1 +
 python/ext-libs/owslib/swe/common.py               |     2 +-
 python/ext-libs/owslib/wmts.py                     |     2 +-
 python/plugins/GdalTools/tools/doBuildVRT.py       |     1 +
 python/plugins/db_manager/db_plugins/plugin.py     |     3 +
 .../db_manager/db_plugins/postgis/plugin.py        |     2 +
 python/plugins/db_manager/dlg_import_vector.py     |    17 +-
 python/plugins/db_manager/ui/DlgImportVector.ui    |     9 +-
 .../processing/algs/gdal/ogr2ogrtopostgis.py       |    42 +-
 .../plugins/processing/algs/grass7/Grass7Utils.py  |     4 +-
 python/plugins/processing/algs/qgis/Clip.py        |     7 +-
 python/plugins/processing/algs/qgis/Difference.py  |     2 +-
 python/plugins/processing/algs/qgis/Eliminate.py   |    27 +-
 .../plugins/processing/algs/qgis/Intersection.py   |     2 +-
 .../processing/algs/qgis/SymmetricalDifference.py  |     2 +-
 python/plugins/processing/algs/r/RUtils.py         |     7 +-
 .../plugins/processing/gui/AlgorithmDialogBase.py  |     2 +-
 python/plugins/processing/gui/BatchPanel.py        |     2 +-
 python/plugins/processing/tests/CMakeLists.txt     |     1 +
 .../plugins/processing/tests/GdalAlgorithmsTest.py |    48 +
 python/plugins/processing/tests/ToolsTest.py       |   133 +
 python/plugins/processing/tools/dataobjects.py     |     2 +-
 python/plugins/processing/tools/vector.py          |    72 +-
 resources/context_help/HeatmapGui                  |     2 +-
 .../context_help/QgsDelimitedTextSourceSelect      |     2 +-
 resources/function_help/json/ILIKE                 |    24 +-
 resources/function_help/json/LIKE                  |    19 +-
 resources/function_help/json/regexp_match          |     4 +-
 resources/function_help/json/regexp_replace        |     6 +-
 resources/function_help/json/regexp_substr         |     4 +-
 scripts/qgm2cpp.pl                                 |     2 +-
 scripts/spelling.dat                               |     3 +-
 scripts/tsstat.pl                                  |     2 +-
 src/app/composer/qgscomposerpicturewidget.cpp      |    37 +
 src/app/composer/qgscomposerpicturewidget.h        |     2 +
 src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp        |     2 +-
 src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp        |     2 +-
 src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp      |     4 +-
 src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h        |     2 +-
 src/app/nodetool/qgsmaptoolnodetool.cpp            |     1 +
 src/app/qgsmeasuredialog.cpp                       |    29 +-
 src/core/CMakeLists.txt                            |     2 +
 src/core/composer/qgscomposerattributetable.h      |     4 +-
 src/core/composer/qgscomposerattributetablev2.h    |     2 +-
 src/core/composer/qgscomposeritemcommand.h         |     1 +
 src/core/composer/qgscomposermousehandles.cpp      |     7 +-
 src/core/composer/qgscomposerpicture.cpp           |    79 +-
 src/core/composer/qgscomposerpicture.h             |    47 +
 src/core/effects/qgspainteffect.cpp                |     5 +
 src/core/qgsbearingutils.cpp                       |    51 +
 src/core/qgsbearingutils.h                         |    45 +
 src/core/qgsdataprovider.h                         |     2 +-
 src/core/qgsexpression.cpp                         |    30 +-
 src/core/qgsexpressioncontext.cpp                  |     4 +-
 src/core/qgsgeometryvalidator.cpp                  |    24 +-
 src/core/qgsmaplayer.cpp                           |     9 +-
 src/core/qgsogcutils.cpp                           |   441 +-
 src/core/qgsogcutils.h                             |   138 +-
 src/core/qgspallabeling.cpp                        |    35 +-
 src/core/qgspoint.cpp                              |     2 +-
 src/core/qgspoint.h                                |     2 +-
 src/core/qgsprojectproperty.cpp                    |    12 +
 src/core/qgsprojectproperty.h                      |    14 +-
 src/core/qgsvectorlayer.cpp                        |    14 +-
 src/core/qgsvectorlayer.h                          |    31 +
 src/core/qgsvectorlayerfeatureiterator.cpp         |    10 +-
 src/core/raster/qgsrasterlayer.cpp                 |     2 +-
 src/core/raster/qgsrasterprojector.h               |     2 +-
 .../qgscategorizedsymbolrendererv2.cpp             |    35 +-
 .../symbology-ng/qgscategorizedsymbolrendererv2.h  |    10 +-
 src/core/symbology-ng/qgsellipsesymbollayerv2.cpp  |    19 +-
 src/core/symbology-ng/qgsellipsesymbollayerv2.h    |     1 +
 src/core/symbology-ng/qgsfillsymbollayerv2.cpp     |    27 +-
 src/core/symbology-ng/qgsfillsymbollayerv2.h       |     5 +
 .../symbology-ng/qgsgraduatedsymbolrendererv2.cpp  |    31 +-
 .../symbology-ng/qgsgraduatedsymbolrendererv2.h    |    12 +-
 src/core/symbology-ng/qgslinesymbollayerv2.cpp     |    30 +-
 src/core/symbology-ng/qgslinesymbollayerv2.h       |     2 +
 src/core/symbology-ng/qgsmarkersymbollayerv2.cpp   |    19 +-
 .../symbology-ng/qgspointdisplacementrenderer.cpp  |     7 +-
 .../symbology-ng/qgspointdisplacementrenderer.h    |     3 +
 src/core/symbology-ng/qgsrendererv2.cpp            |     7 +-
 src/core/symbology-ng/qgsrendererv2.h              |    18 +-
 src/core/symbology-ng/qgsrulebasedrendererv2.cpp   |    58 +-
 src/core/symbology-ng/qgsrulebasedrendererv2.h     |    10 +-
 .../symbology-ng/qgssinglesymbolrendererv2.cpp     |    16 +-
 src/core/symbology-ng/qgssinglesymbolrendererv2.h  |     3 +
 src/core/symbology-ng/qgssymbollayerv2.h           |     2 +
 src/core/symbology-ng/qgssymbollayerv2utils.cpp    |   140 +-
 src/core/symbology-ng/qgssymbollayerv2utils.h      |    38 +
 src/core/symbology-ng/qgssymbolv2.cpp              |    11 +-
 src/core/symbology-ng/qgssymbolv2.h                |     3 +-
 src/core/symbology-ng/qgsvectorfieldsymbollayer.h  |     1 +
 src/gui/editorwidgets/qgstexteditwrapper.cpp       |    10 +
 src/gui/effects/qgseffectstackpropertieswidget.cpp |    14 +-
 src/gui/qgshtmlannotationitem.cpp                  |    60 +-
 .../symbology-ng/qgsrulebasedrendererv2widget.cpp  |    22 +-
 src/gui/symbology-ng/qgsstylev2managerdialog.cpp   |     2 +-
 .../dxf2shp_converter/dxflib/src/dl_entities.h     |     2 +-
 src/plugins/evis/README.TXT                        |     2 +-
 src/plugins/interpolation/interpolator.qrc         |     3 +-
 src/plugins/interpolation/options.png              |   Bin 3797 -> 0 bytes
 .../interpolation/qgsinterpolationdialogbase.ui    |     6 +-
 src/providers/gdal/qgsgdalprovider.cpp             |     2 +-
 src/providers/ogr/qgsogrfeatureiterator.cpp        |    11 +-
 src/providers/ogr/qgsogrprovider.cpp               |    48 +-
 src/providers/ogr/qgsogrprovider.h                 |     4 +
 src/providers/postgres/qgspostgresprovider.cpp     |   213 +-
 src/providers/postgres/qgspostgresprovider.h       |    14 +-
 src/providers/wcs/qgswcsprovider.cpp               |     2 +-
 src/providers/wfs/qgswfsprovider.cpp               |     2 +-
 src/providers/wms/qgswmscapabilities.cpp           |     8 +-
 src/server/qgsconfigparserutils.cpp                |    10 +-
 src/server/qgshostedrdsbuilder.cpp                 |     2 +-
 src/server/qgsowsserver.cpp                        |     4 +-
 src/server/qgsremoteowsbuilder.cpp                 |     4 +-
 src/server/qgsserverlogger.cpp                     |     3 +
 src/server/qgsserverprojectparser.cpp              |    12 +-
 src/server/qgsserverprojectparser.h                |     1 +
 src/server/qgswcsprojectparser.cpp                 |     4 +-
 src/server/qgswcsserver.cpp                        |     2 +-
 src/server/qgswfsprojectparser.cpp                 |     4 +-
 src/server/qgswfsserver.cpp                        |     4 +-
 src/server/qgswmsprojectparser.cpp                 |    17 +-
 src/server/qgswmsserver.cpp                        |    59 +-
 src/ui/composer/qgscomposerpicturewidgetbase.ui    |    33 +
 src/ui/qgsunitselectionwidget.ui                   |     6 +-
 tests/src/core/testqgsexpression.cpp               |     8 +-
 tests/src/core/testqgsogcutils.cpp                 |   342 +-
 tests/src/python/CMakeLists.txt                    |     3 +
 tests/src/python/test_provider_ogr.py              |    19 +
 tests/src/python/test_provider_ogr_gpkg.py         |    47 +-
 tests/src/python/test_provider_postgres.py         |    75 +-
 tests/src/python/test_provider_shapefile.py        |   101 +
 tests/src/python/test_qgsbearingutils.py           |    60 +
 tests/src/python/test_qgscomposerpicture.py        |    63 +-
 tests/src/python/test_qgsgeometryvalidator.py      |    71 +
 tests/src/python/test_qgsserver.py                 |    81 +-
 .../src/python/test_qgssymbollayerv2_createsld.py  |   521 +
 .../expected_composerpaper_markerborder_mask.png   |   Bin 0 -> 13599 bytes
 .../WMS_GetLegendGraphic_test.png                  |   Bin 0 -> 2962 bytes
 .../WMS_GetLegendGraphic_test_mask.png             |   Bin 0 -> 265 bytes
 .../WMS_GetLegendGraphic_test_layertitle_false.png |   Bin 0 -> 355 bytes
 ...GetLegendGraphic_test_layertitle_false_mask.png |   Bin 0 -> 166 bytes
 tests/testdata/symbol_layer/categorized.qml        |   903 ++
 tests/testdata/symbol_layer/graduated.qml          |   585 +
 tests/testdata/symbol_layer/ruleBased.qml          |   509 +
 tests/testdata/symbol_layer/singleSymbol.qml       |   615 +
 190 files changed, 13908 insertions(+), 7222 deletions(-)

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..154ed65
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+# See http://editorconfig.org
+
+# top-most EditorConfig file
+root = true
+
+# every file needs these
+[*]
+charset = utf-8
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+indent_style = space
+indent_size = 2
+
+# python scripts have 4 spaces indent
+[*.py]
+indent_size = 4
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 612b0f3..2f3e2bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 SET(CPACK_PACKAGE_VERSION_MAJOR "2")
 SET(CPACK_PACKAGE_VERSION_MINOR "14")
-SET(CPACK_PACKAGE_VERSION_PATCH "7")
+SET(CPACK_PACKAGE_VERSION_PATCH "8")
 SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
 SET(RELEASE_NAME "Essen")
 IF (POLICY CMP0048) # in CMake 3.0.0+
diff --git a/CTestConfig.cmake b/CTestConfig.cmake
index c592023..63d849a 100644
--- a/CTestConfig.cmake
+++ b/CTestConfig.cmake
@@ -7,7 +7,7 @@
 set(CTEST_PROJECT_NAME "QGIS")
 set(CTEST_NIGHTLY_START_TIME "20:00:00 CEST")
 
-set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_METHOD "https")
 set(CTEST_DROP_SITE "dash.orfeo-toolbox.org")
 set(CTEST_DROP_LOCATION "/submit.php?project=QGIS")
 set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/ChangeLog b/ChangeLog
index 1d1f2bf..d7a3f86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,596 @@
+rldhont <rldhont at gmail.com>	2016-10-21
+
+    [BUGFIX][QGIS-Server] Don't failed when transform boundingbox
+
+Merge: b2a2c18 d78d62e
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-21
+
+    Merge pull request #3623 from nyalldawson/true_north_214
+
+    [composer] Backport fixes for true north handling to 2.14
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-10-20
+
+    [processing] more complete support for int64 fields (follow up 8d2cc8806b)
+
+    (cherry picked from commit 649d41f1ecd4b8d22110e11cb9e693231bec8ed2)
+
+Germán Carrillo <geotux_tuxman at linuxmail.org>	2016-10-20
+
+    Using QVariant.Type enum instead of numbers for readability.
+
+    (cherry picked from commit 6df926dfe6e3e8f7ac330fbb9206dc69492da6ed)
+
+Germán Carrillo <geotux_tuxman at linuxmail.org>	2016-10-19
+
+    Fixing issue with 'Eliminate sliver polygons' and fields of type long.
+
+    (cherry picked from commit be25a29da196fac687f95abffb71e34138e3d20c)
+
+Merge: deb3dc7 d185929
+rldhont <rldhont at gmail.com>	2016-10-20
+
+    Merge pull request #3642 from rldhont/fix_server_legend_layertitle-release-2_14
+
+    [BUGFIX][QGIS Server] GetLegendGraphic: if LAYERTITLE is false disable layer name in legend
+
+Matthias Kuhn <matthias at opengis.ch>	2016-10-20
+
+    Backport [processing] ensure that outputs of vector overlay operations are multiparts (#3622)
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    [BUGFIX][QGIS Server] GetLegendGraphic: if LAYERTITLE is false disable layer name in legend
+
+    If the layer has only one legend node, it is embedded in parent.
+    In QGIS Server the user can specify no layer title, so the layer title has not be displayed.
+
+rldhont <rldhont at gmail.com>	2016-10-19
+
+    Fix [DB Manager] Allow lowercase field names for homogenize PostGIS Import
+
+rldhont <rldhont at gmail.com>	2016-10-18
+
+    [DB Manager] Allow lowercase field names for homogenize PostGIS Import
+
+    PostGIS provider has an option to lowercase field names. This options is available for user in QGIS algorithm ImportIntoPostGIS and not in DB Mananger.
+
+    This commit fix it.
+
+Even Rouault <even.rouault at spatialys.com>	2016-10-18
+
+    [OGR provider] Update layer extent for GPKG layers
+
+    When moving or deleting a geometry that previously touched the layer extent,
+    the layer extent was never shrinked.
+
+    This fix requires GDAL 2.1.2 or above as well.
+
+    Fixes #15273
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-18
+
+    qgm2cpp.pl fix
+
+    (cherry picked from commit 14fbb942c77e12b6d79092bb6bf31e54a02e86cd)
+
+Sandro Santilli <strk at kbt.io>	2016-10-15
+
+    [processing] Allow using libpq defaults for host,port,user,pass and dbname
+
+    Fixes #15706
+    Includes tests
+
+Sandro Santilli <strk at kbt.io>	2016-10-18
+
+    Fix ogrLayerName handling of PostgreSQL dataset URIs
+
+    Also document "uri" parameter semantic, and add more tests.
+    See for background
+    https://lists.osgeo.org/pipermail/qgis-developer/2016-October/045311.html
+    REF #15698
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-18
+
+    Const correctness for QgsPoint::azimuth
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-18
+
+    [composer] Allow syncing pictures to true north
+
+    Previously pictures could only be synced to grid north, which
+    can be totally wrong for many CRSes (especially in polar areas)
+
+    Users now are given a choice of grid or true north, and can also
+    enter an optional offset to apply if eg magnetic north is instead
+    desired.
+
+    When synced to true north the bearing is calculated using the
+    centre point of the linked map item.
+
+    Fix #192, #4711
+
+    This fix was sponsored by the Norwegian Polar Institute's
+    Quantarctica project (http://quantarctica.npolar.no) and
+    coordinated by Faunalia.
+
+    (cherry-picked from 89cc6454b989de1746779b2f648a32d2863ebada)
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-17
+
+    windows: prefer spatialite_i over spatialite
+
+    (cherry picked from commit 219a97c35b7c1d8a8943d4e2e47a8956288320b4)
+
+rldhont <rldhont at gmail.com>	2016-10-14
+
+    [BUGFIX][QGIS Server] GetFeatureInfo: Feature with no geometry is not returned even if FILTER param is set
+
+Sandro Santilli <strk at kbt.io>	2016-10-17
+
+    Fix extraction of ogr LayerName from database dataset URIs
+
+    See https://github.com/qgis/QGIS/commit/6c5364186dd8d45ac51e5bd1a72c6a542f032cb1#commitcomment-19439676
+    Includes testcase.
+
+    REF #15698
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-14
+
+    Fix incorrect selection rect drawn for composer items on windows
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-17
+
+    Fix bad fills when using marker line with render effects (fix #15696)
+
+    (cherry-picked from a0bfc10, 55f207)
+
+Merge: c422268 8914085
+Werner Macho <werner.macho at gmail.com>	2016-10-15
+
+    Merge pull request #3608 from Cracert/trans_2_14
+
+    [TRANSUP] pl: update translators in 2.14 branch
+
+Robert Szczepanek <robert at szczepanek.pl>	2016-10-15
+
+    [TRANSUP] pl: update translators in 2.14 branch
+
+Sandro Santilli <strk at kbt.io>	2016-10-14
+
+    Fix extraction of ogr LayerName from multi-layer dataset URIs
+
+    Adds supports for "layerid" when present.
+    Drop special handling for "table=" portions found in URI,
+    making the code more generic.
+
+    Includes testcase.
+
+    Fixes #15698 - import geodatabase to postgis via processing
+
+Sandro Santilli <strk at kbt.io>	2016-10-14
+
+    Add .editorconfig file
+
+Sandro Santilli <strk at kbt.io>	2016-10-13
+
+    Revert "postgres provider: quote compound key columns in uri"
+
+    This reverts commit daa6510970e9afbc4d41d28e0c94b4f238eb372d.
+
+    I've tested that reverting this does not re-introduce bug
+    http://hub.qgis.org/issues/13710
+
+Sandro Santilli <strk at kbt.io>	2016-10-13
+
+    Fix PostgreSQL import of layers with multi-column or quoted-column keys
+
+    Fixes #15226 (drag & drop of postgresql views)
+    Includes test
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-14
+
+    debian packaging: add support for yakkety
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-12
+
+    Fix HTML annotation does not display HTML (fix #8609)
+
+    Annotation was only rendering html when it was associated with a
+    map layer. Now if it isn't associated with a map layer it will
+    always render the html.
+
+    (cherry-picked from 53c3ed2dc02baf43c3a5cc7323f37869f434f25a)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-12
+
+    Fix first marker is drawn twice for marker line interval mode
+
+    (cherry-picked from 748d8acddb5ab6e72b09d2ae6485d46fc17c4d16)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-12
+
+    Fix invalid values for @map_extent_width/height (fix #15672)
+
+    (cherry-picked from c1cf896c1a76fdac16b3e800b7e1f106f983e299)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-12
+
+    Fix escaping in regexp function help
+
+    (cherry-picked from e69dd9c9b2fa13efe3a4cd2a512885accfec60b4)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-10-13
+
+    [processing] correctly handle help loading (fix #15641)
+
+    (cherry picked from commit 11326245fae6b4f7946c950ec5ba2a8151e95c44)
+
+rldhont <rldhont at gmail.com>	2016-10-11
+
+    Last Redo [BUGFIX][QGIS Server] Joins was not reloaded if the layer is in cache
+
+    Add an accessor to QgsVectorLayer join buffer, to not duplicate QgsVectorLayerJoinBuffer::readXml code
+
+Sandro Santilli <strk at kbt.io>	2016-10-12
+
+    Fix hub link
+
+Sandro Santilli <strk at kbt.io>	2016-10-11
+
+    Add test for #15188 (this branch is unaffected by the bug)
+
+rldhont <rldhont at gmail.com>	2016-10-11
+
+    [QGIS Server] Loss qobject_cast when it's usefull
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    [QGIS Server] Use qobject_cast when it's usefull
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    Redo [BUGFIX][QGIS Server] Joins was not reloaded if the layer is in cache
+
+    With the commit f6aad8b, the QgsMapLayerRegistry signal `layersWillBeRemoved` is always emit. This imply that the vector layer join buffer is empty and not reloaded if the layer is in cache.
+
+    To fix it, the QgsServerProjectParser has to have the same method as QgsVectorLayerJoinBuffer::readXml.
+
+    This commit fixed #15522 Qgis Server doesnt' respect the styling from Desktop
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    Revert "[BUGFIX][QGIS Server] Joins was not reloaded if the layer is in cache"
+
+    This reverts commit e0c281ed6f8e22fe361ea1ccaf17cc77d4b0a32b.
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    Revert "fix typo e0c281ed6f8e22fe361ea1ccaf17cc77d4b0a32b"
+
+    This reverts commit 5b79287aaa64fe97142978f6507dc8c0d1004fd9.
+
+rldhont <rldhont at gmail.com>	2016-10-10
+
+    Revert "Fix QGIS server for PyQgsServerAccessControl"
+
+    This reverts commit 7d334c7d76e63ab8c3d752ab5c1e74b44771b8d6.
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-10
+
+    fix warning
+
+    (cherry picked from commit cd3adc077eda76f1503ed7d4e29b1b2e41218d47)
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-09
+
+    fix typos
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-09
+
+    german translation update
+
+Piotr Pociask <piotr.pociask at gis-support.pl>	2016-10-08
+
+    fix typos
+
+rldhont <rldhont at gmail.com>	2016-10-07
+
+    Fix QGIS server for PyQgsServerAccessControl
+
+rldhont <rldhont at gmail.com>	2016-10-04
+
+    Update ogcutils tests
+
+rldhont <rldhont at gmail.com>	2016-09-30
+
+    [BUGFIX] Support OGC PropertyIsLike attributs
+
+    The OGC PropertyIsLike element can have 4 attributs:
+    * matchCase to specify LIKE or ILIKE
+    * wildCard to specify a wildcard char symbol
+    * signleChar to specify a single char symbol
+    * escape to specify an escape char symbol
+
+rldhont <rldhont at gmail.com>	2016-09-28
+
+    [BUGFIX] Expression in like escape % and _
+
+    The Expression LIKE binary operator does not care about escape % and _ char.
+    No-one has already open an issue about it but in the OGC element PropertyIsLike the user can defined is own wild and single char. This mean that QGIS has to escape % and _ if they are not used as wild and single char.
+
+rldhont <rldhont at gmail.com>	2016-10-07
+
+    fix typo e0c281ed6f8e22fe361ea1ccaf17cc77d4b0a32b
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-07
+
+    osgeo4w: really use package name (fixes 6db9a371)
+
+    (cherry picked from commit f971b0dbd16edd857cd76cc09fe7a08ac0b03cbe)
+
+rldhont <rldhont at gmail.com>	2016-10-07
+
+    [BUGFIX][QGIS Server] Joins was not reloaded if the layer is in cache
+
+    With the commit f6aad8bad6db72d0b1e573998ac7dcb2405dce55, the QgsMapLayerRegistry signal `layersWillBeRemoved` is always emit. This imply that the vector layer join buffer is empty and not reloaded if the layer is in cache.
+
+    To fix it, the layer XML element has to be read each time the layer is used.
+
+    This commit fixed #15522 Qgis Server doesnt' respect the styling from Desktop
+
+Even Rouault <even.rouault at spatialys.com>	2016-10-07
+
+    [OGR provider] Make feature iterator work on GeometryCollection sublayers
+
+    When trying to reproduce http://hub.qgis.org/issues/10485, I noticed a regression.
+    Now attribute table no longer shows features with OGR GeometryCollection.
+
+    Fixes also issues where sublayer geometry type is too strict regarding 2D vs 2.5D
+    geometry types.
+
+    Fixes #15675
+
+    Conflicts:
+            src/providers/ogr/qgsogrfeatureiterator.cpp
+            tests/src/python/test_provider_ogr.py
+
+Even Rouault <even.rouault at spatialys.com>	2016-10-07
+
+    [OGR provider] Force REPACK at the first edit action.
+
+    In the case where we deal with a shapefile, it is possible that it has
+    pre-existing holes in the DBF (see #15407), so if using a GDAL version
+    recent enough (>=2.1.2) to have reliable packing, do a packing at the
+    first edit action.
+
+    Fixes #15407
+
+    Conflicts:
+            src/providers/ogr/qgsogrprovider.cpp
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-07
+
+    osgeo4w: use package name in build directory
+
+    (cherry picked from commit 706431e31d6f0a288856ceeff39d7ce432c20633)
+
+Even Rouault <even.rouault at spatialys.com>	2016-10-06
+
+    [OGR provider] Check if REPACK has emitted errors
+
+    Refs #15393 and #15570
+    Real fix for the REPACK issues has been committed per
+    GDAL ticket https://trac.osgeo.org/gdal/ticket/6672 (GDAL 2.1.2 or above)
+
+    Add test to simulate the situations that caused problems.
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    [labeling] Fix data defined placement with rotated maps
+    For layers requiring reprojection and with rotated maps any
+    labels with data defined x/y would not be rendered
+
+    Fix #14236
+
+    (cherry-picked from d36fb619b5a210406aaa50ed3aab59763f5f749a)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    Preserve edits for multiline editor when length exceeds field size
+
+    Previously when using the multiline option for text edit widgets
+    the entire contents of the field would be discarded if the entered
+    value exceeded the maximum length for a string field.
+
+    Now the entered string is truncated to the maximum field length.
+
+    (cherry-picked from 7d8fba8b8c1a2e39b0814053029bf64c20e85c73)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    Fix rule based renderer shows 0 count on first click of "show counts"
+
+    (cherry-picked from 291f7bdaa3d6463e7e413e92a1a5b39d16efb039)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    Fix last segment length in measure dialog is incorrect after
+    completing measurement with right mouse click
+
+    (cherry-picked from bad137283b7d22ab2f7bf889bc72b1088efaa742)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    Fix measure dialog shows wrong results when changing units
+
+    If the measurement was not finished (ie right click occurred)
+    then the last length would be missing from the table
+
+    Fix #15433
+
+    (cherry-picked from 03bff507d9814ec1a3d9fdfdbe5cfbc5b6274689)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-10-06
+
+    Fix crash when validating geometry (fix #15660)
+
+    Also fix python bindings for QgsGeometryValidator
+
+    (cherry-picked from bc32b1fe5a9ac05f1763f45268eab833cc46e546)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-10-04
+
+    [processing] correct GRASS 7 detection on Mac (fix #15645)
+    follow up e1ff6e896a
+
+    (cherry picked from commit d03d2069b96b2c25abe64588f54f24dab7ea7cc2)
+
+    Conflicts:
+            python/plugins/processing/algs/grass7/Grass7Utils.py
+
+rldhont <rldhont at gmail.com>	2016-09-15
+
+    [Processing][Rscripts] Use temp script filename
+
+    The build RScript is stored in the User folder, so the script is erased at each RAlgorithm execute.
+    Server side or for debugging this could be a problem.
+    So processing_script.r will be stored in temp folder.
+
+rldhont <rldhont at gmail.com>	2016-09-21
+
+    [Server] GetStyles: no more needs to add units in SLD
+
+    After @aaime works on SLD, no more needs to add units in SLD send by GetStyles
+
+Merge: 26d5c6b da67550
+rldhont <rldhont at gmail.com>	2016-10-01
+
+    Merge pull request #3549 from rldhont/release-2_14-aaime_sld
+
+    Cherry-picking @aaime works on SLD to release-2_14
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-01
+
+    fix typos
+
+    (cherry picked from commit 454e1e43fa8c1ceef109c09f70e4d1595e81d402)
+
+Juergen E. Fischer <jef at norbit.de>	2016-10-01
+
+    debian packaging: add ca-certificates as build dependency for dash upload (followup e6b1121)
+
+rldhont <rldhont at gmail.com>	2016-09-15
+
+    Keep API compatibility and update SIP
+
+rldhont <rldhont at gmail.com>	2016-09-13
+
+    Fix cherry-pickings
+
+    Do not generate a ogc:Filter where a ogc:Expression is expected. #3366
+    Emit valid SLD when mm are used as symbol unit #3414
+    Export map level scale based dependencies in most vector symbology #3436
+
+Andrea Aime <andrea.aime at gmail.com>	2016-08-26
+
+    Export map level scale based dependencies in most vector symbology
+
+Andrea Aime <andrea.aime at gmail.com>	2016-08-23
+
+    Emit valid SLD when on screen mm are used
+
+    SLD does not have a notion of on screen mm, rescale them to pixels to get an equivalent, more valid and more widely usable, output
+
+Andrea Aime <andrea.aime at gmail.com>	2016-08-07
+
+    Do not generate a ogc:Filter where a ogc:Expression is expected. Fixes #10076 and #11202
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-07-05
+
+    Fix first range when exporting graduated renderer to sld (fix #15212)
+
+julienmalik <julienmalik at users.noreply.github.com>	2016-09-30
+
+    CDash submissions should be done with https now
+    (cherry picked from commit 19378c22802668f592f0ffc268451c5a946371af)
+
+Even Rouault <even.rouault at spatialys.com>	2016-03-27
+
+    QgsOgcUtils: add support to generate WFS 1.1 and 2.0 filters
+
+    Fixes #14119: Ensure the OGC filter XML expression contains the GML namespace references
+
+Marco Bernasocchi <marco at bernawebdesign.ch>	2016-09-16
+
+    Add qgis.PyQt.Qt compat files (#3491)
+
+    * added PyQt.Qt
+
+    * fix matthias comments
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-29
+
+    nodetool: use exact intersect when picking features (fixes #15294)
+
+    (cherry picked from commit 6b2799414a3b6434818adc859d3f1363029eb579)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-29
+
+    [travis] Disable flaky qgis_ziplayertest test
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-28
+
+    gdal tools: disconnect canvas signal after building vrt (fixes #15389)
+
+    (cherry picked from commit e963fff346aafdb87494c9a33c4cddd3754ab5b1)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-28
+
+    categorized renderer: also setup symbol render context for hashed symbols
+
+    (cherry picked from commit c7c52442f71a6a17ea1ad97e741b2b4b6d51f698)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-27
+
+    Fix indentation
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-27
+
+    Make counting and testing filters in rule based renderers faster
+
+    Hand filters off to the provider where possible and avoid fetching
+    unnecessary attributes/geometry
+
+    (cherry-picked from 99000369892ac985e6b13f8a8eb62cea0b73117e)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-21
+
+    Remove icon with bad sRGB profile (causing Qt warnings)
+
+    (cherry-picked from 2a2bf2cbe4567a0c053db64cb4d78addb9e49a2c)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-27
+
+    Fix server error when no log file set
+
+    (cherry-picked from f5ffbbf801ff299d6abbba7e2f85ccab67a5c374)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-27
+
+    Set initial effect selection in layer effects widget to
+    first enabled effect
+
+    Hopefully makes the widget a bit more user friendly - otherwise
+    the initial settings shown may be for a disabled effect and the
+    users is left wondering why changes have no impact
+
+    (cherry-picked from f67a48a39ba93f57597f6c7cc021e78460091200)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-23
+
+    Release of 2.14.7
+
 Even Rouault <even.rouault at spatialys.com>	2016-09-22
 
     Fix database locking when editing GeoPackage
diff --git a/NEWS b/NEWS
index b07788d..d7754af 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 QGIS News
 Change history for the QGIS Project
-Thursday February 25, 2016
+Saturday October 08, 2016
 
 
 ------------------------------------------------------------------------
@@ -38,8 +38,8 @@ Thursday February 25, 2016
 ------------------------------------------------------------------------
 
 
-Last Updated: Thursday February 25, 2016
-Last Change : Thursday February 25, 2016
+Last Updated: Saturday October 08, 2016
+Last Change : Saturday October 01, 2016
 
 
   1. What's new in Version 2.14 'Essen'?
@@ -101,7 +101,7 @@ This release has following new features:
 - QGIS Server : STARTINDEX param in WFS GetFeature Request
 - QGIS Server : showFeatureCount in GetLegendGraphic
 - QGIS Server : Enhance store project keyword list
-- QGIS Server : Option to avoid rendering artefacts at edges of tiles
+- QGIS Server : Option to avoid rendering artifacts at edges of tiles
 - QGIS Server : WMS INSPIRE Capabilities
 - QGIS Server : Configuration checker in project properties
 - QGIS Server : Add short name to layers, groups and project
diff --git a/ci/travis/linux/qt4/script.sh b/ci/travis/linux/qt4/script.sh
index 6e3a554..8e499f4 100755
--- a/ci/travis/linux/qt4/script.sh
+++ b/ci/travis/linux/qt4/script.sh
@@ -24,4 +24,4 @@ if [ "${TRAVIS_PULL_REQUEST}" != "false" ]; then
   chmod -R ugo-w ~/.ccache
 fi
 
-xvfb-run ctest -V -E 'qgis_openstreetmaptest|qgis_wcsprovidertest' -S ./qgis-test-travis.ctest --output-on-failure
+xvfb-run ctest -V -E 'qgis_openstreetmaptest|qgis_wcsprovidertest|qgis_ziplayertest' -S ./qgis-test-travis.ctest --output-on-failure
diff --git a/cmake/FindSPATIALITE.cmake b/cmake/FindSPATIALITE.cmake
index 6750a8d..f0cf004 100644
--- a/cmake/FindSPATIALITE.cmake
+++ b/cmake/FindSPATIALITE.cmake
@@ -47,7 +47,8 @@ FIND_PATH(SPATIALITE_INCLUDE_DIR spatialite.h
   "$ENV{LIB_DIR}/include/spatialite"
   )
 
-FIND_LIBRARY(SPATIALITE_LIBRARY NAMES spatialite spatialite_i PATHS
+FIND_LIBRARY(SPATIALITE_LIBRARY NAMES spatialite_i spatialite PATHS
+  /usr/lib
   $ENV{LIB}
   $ENV{LIB_DIR}/lib
   )
diff --git a/debian/changelog b/debian/changelog
index 97463cb..34e2ccd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
-qgis (2.14.7) UNRELEASED; urgency=medium
+qgis (2.14.8) UNRELEASED; urgency=medium
+
+  * Release of 2.14.8
+
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 21 Oct 2016 14:15:16 +0200
+
+qgis (2.14.7) unstable; urgency=medium
 
   * Release of 2.14.7
 
- -- Jürgen E. Fischer <jef at norbit.de>  Fri, 23 Sep 2016 20:23:30 +0200
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 21 Oct 2016 14:15:16 +0200
 
 qgis (2.14.6) unstable; urgency=medium
 
diff --git a/debian/compat.in b/debian/compat.in
index b7b843c..874e623 100644
--- a/debian/compat.in
+++ b/debian/compat.in
@@ -1,3 +1,3 @@
-#stretch sid jessie trusty utopic vivid wily xenial#9
+#stretch sid jessie trusty utopic vivid wily xenial yakkety#9
 #wheezy jessie#8
 #precise#7
diff --git a/debian/control.in b/debian/control.in
index 25492b2..b613507 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -7,14 +7,14 @@ Build-Depends:
  bison,
  cmake (>= 2.8),
 #wily# cmake (<< 3.3.2),
-#sid stretch jessie wheezy saucy trusty utopic vivid wily xenial# debhelper (>= 9),
-#sid stretch jessie trusty vivid wily xenial# dh-python,
+#sid stretch jessie wheezy saucy trusty utopic vivid wily xenial yakkety# debhelper (>= 9),
+#sid stretch jessie trusty vivid wily xenial yakkety# dh-python,
 #precise# debhelper (>= 7),
  flex,
  grass-dev,
  libexpat1-dev,
  libfcgi-dev,
-#sid stretch jessie trusty utopic vivid wily xenial# libgdal-dev (>= 1.10.1-0~),
+#sid stretch jessie trusty utopic vivid wily xenial yakkety# libgdal-dev (>= 1.10.1-0~),
 #precise# libgdal-dev (>= 1.9.0) | libgdal1-dev (<< 1.9.0),
 #saucy# libgdal-dev (>= 1.9.0),
 #wheezy# libgdal1-dev,
@@ -30,7 +30,7 @@ Build-Depends:
  libqca2-plugin-ossl,
  libqtwebkit-dev,
 #stretch jessie wheezy# libqwt-dev,
-#precise saucy trusty utopic vivid wily xenial sid# libqwt5-qt4-dev,
+#precise saucy trusty utopic vivid wily xenial yakkety sid# libqwt5-qt4-dev,
  libspatialite-dev,
  libsqlite3-dev,
  libspatialindex-dev,
@@ -45,10 +45,10 @@ Build-Depends:
 #precise saucy# python-central (>= 0.5),
 #saucy wheezy# python-dev,
 #saucy# libpython2.7-dev,
-#sid stretch jessie trusty utopic vivid wily xenial# python-all (>= 2.6.6-3~), python-all-dev (>= 2.6.6-3~),
-#sid stretch jessie wily xenial# pyqt4.qsci-dev,
-#sid stretch jessie trusty utopic vivid wily xenial# python-pyspatialite,
-#sid wheezy jessie stretch trusty vivid wily xenial# python-nose2,
+#sid stretch jessie trusty utopic vivid wily xenial yakkety# python-all (>= 2.6.6-3~), python-all-dev (>= 2.6.6-3~),
+#sid stretch jessie wily xenial yakkety# pyqt4.qsci-dev,
+#sid stretch jessie trusty utopic vivid wily xenial yakkety# python-pyspatialite,
+#sid wheezy jessie stretch trusty vivid wily xenial yakkety# python-nose2,
  python-sip (>= 4.5.0),
  python-sip-dev (>= 4.5.0),
  libosgearth-dev,
@@ -62,13 +62,13 @@ Build-Depends:
  xfonts-base, xfonts-100dpi, xfonts-75dpi, xfonts-scalable,
 #oracle# oracle-instantclient12.1-devel,
  spawn-fcgi, lighttpd, poppler-utils, locales, qt4-doc-html,
- libqt4-sql-sqlite, python-psycopg2
+ libqt4-sql-sqlite, python-psycopg2, ca-certificates
 Build-Conflicts: libqgis-dev, qgis-dev
-#sid stretch jessie vivid wily xenial#Standards-Version: 3.9.6
+#sid stretch jessie vivid wily xenial yakkety#Standards-Version: 3.9.6
 #wheezy#Standards-Version: 3.9.3
 #precise saucy trusty utopic#Standards-Version: 3.8.4
 #sid stretch jessie#X-Python-Version: >= 2.7, << 2.8
-#wheezy precise saucy trusty utopic vivid wily xenial#XS-Python-Version: current
+#wheezy precise saucy trusty utopic vivid wily xenial yakkety#XS-Python-Version: current
 Vcs-Browser: https://github.com/qgis/QGIS/
 Vcs-Git: https://github.com/qgis/QGIS.git
 Homepage: http://qgis.org/
@@ -241,7 +241,7 @@ Section: libdevel
 Depends:
  grass-dev,
  libexpat1-dev,
-#sid stretch jessie trusty utopic vivid wily xenial# libgdal-dev (>= 1.10.1-0~),
+#sid stretch jessie trusty utopic vivid wily xenial yakkety# libgdal-dev (>= 1.10.1-0~),
 #precise# libgdal-dev (>= 1.9.0) | libgdal1-dev (<< 1.9.0),
 #saucy# libgdal-dev (>= 1.9.0),
 #wheezy# libgdal1-dev,
@@ -383,7 +383,7 @@ Depends:
  python-tz,
  python-six,
  python-yaml,
-#sid stretch jessie trusty utopic vivid wily xenial# python-pyspatialite,
+#sid stretch jessie trusty utopic vivid wily xenial yakkety# python-pyspatialite,
  libqgispython{QGIS_ABI},
  ${shlibs:Depends},
  ${python:Depends},
diff --git a/debian/rules b/debian/rules
index 508e06c..846152b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -31,7 +31,7 @@ ifneq (,$(findstring -oracle,$(DISTRIBUTION)))
 	WITH_ORACLE=1
 endif
 
-ifneq ($(DISTRIBUTION),$(findstring $(DISTRIBUTION),"wheezy jessie stretch precise trusty utopic vivid wily xenial"))
+ifneq ($(DISTRIBUTION),$(findstring $(DISTRIBUTION),"wheezy jessie stretch precise trusty utopic vivid wily xenial yakkety"))
 	DISTRIBUTION := sid
 endif
 
@@ -118,7 +118,7 @@ ifneq (,$(findstring $(DISTRIBUTION),"sid"))
 	CMAKE_OPTS += -DGEOS_LIBRARY=/usr/lib/$(DEB_BUILD_MULTIARCH)/libgeos_c.so
 endif
 
-ifneq (,$(findstring $(DISTRIBUTION),"jessie stretch trusty utopic vivid wily xenial sid"))
+ifneq (,$(findstring $(DISTRIBUTION),"jessie stretch trusty utopic vivid wily xenial yakkety sid"))
 	CMAKE_OPTS += -DPYTHON_LIBRARY=/usr/lib/$(DEB_BUILD_MULTIARCH)/libpython2.7.so
 endif
 
diff --git a/doc/TRANSLATORS b/doc/TRANSLATORS
index 3c855b5..9669b64 100644
--- a/doc/TRANSLATORS
+++ b/doc/TRANSLATORS
@@ -1,41 +1,41 @@
 <style>table {font-size:80%;}th {text-align:left; }.bartodo{ background-color:red;width:100px;height:20px;}.bardone{ background-color:green;width:80px;height:20px;font-size:80%;text-align:center;padding-top:4px;height:16px;color:white;}</style><table><tr><th colspan="2" style="width:250px;">Language</th><th>Finished %</th><th>Translators</th></tr>
 
-<tr><td><img src="qrc:/images/flags/de.png"></td><td>German</td><td><div title="finished:17449 unfinished:1 untranslated:0" class="bartodo"><div class="bardone" style="width:99px">100.0</div></div></td><td>Jürgen E. Fischer, Stephan Holl, Otto Dassau, Werner Macho</td></tr>
-<tr><td><img src="qrc:/images/flags/sv.png"></td><td>Swedish</td><td><div title="finished:17416 unfinished:8 untranslated:26" class="bartodo"><div class="bardone" style="width:99px">99.8</div></div></td><td>Victor Axbom, Lars Luthman, Magnus Homann, Klas Karlsson, Isabelle J Wigren, Daniel Rosander, Anders Ekwall, Magnus Nilsson, Jonas Svensson, Christian Brinkenberg</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_BR.png"></td><td>Portuguese (Brazil)</td><td><div title="finished:17414 unfinished:10 untranslated:26" class="bartodo"><div class="bardone" style="width:99px">99.8</div></div></td><td>Sidney Schaberle Goveia, Arthur Nanni, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Leônidas Descovi Filho, Felipe Sodré Barros </td></tr>
-<tr><td><img src="qrc:/images/flags/eu.png"></td><td>Basque</td><td><div title="finished:17382 unfinished:10 untranslated:58" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
-<tr><td><img src="qrc:/images/flags/fr.png"></td><td>French</td><td><div title="finished:17372 unfinished:11 untranslated:67" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Arnaud Morvan, Augustin Roche, DelazJ, Didier Vanden Berghe, Dofabien, etrimaille, Jean-Roc Morreale, Jérémy Garniaux, Loïc Buscoz, Lsam, Marc-André Saia, Marie Silvestre, Mathieu Bossaert, Mathieu Lattes, Mayeul Kauffmann, Médéric Ribreux, Mehdi Semchaoui, Michael Douchin, Nicolas Bo [...]
-<tr><td><img src="qrc:/images/flags/gl.png"></td><td>Galician</td><td><div title="finished:17372 unfinished:10 untranslated:68" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Xan Vieiro</td></tr>
-<tr><td><img src="qrc:/images/flags/nl.png"></td><td>Dutch</td><td><div title="finished:17372 unfinished:8 untranslated:70" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Richard Duivenvoorde, Raymond Nijssen, Carlo van Rijswijk, Diethard Jansen, Willem Hoffmans, Dick Groskamp</td></tr>
-<tr><td><img src="qrc:/images/flags/ro.png"></td><td>Romanian</td><td><div title="finished:17346 unfinished:9 untranslated:95" class="bartodo"><div class="bardone" style="width:99px">99.4</div></div></td><td>Sorin Călinică, Tudor Bărăscu, Georgiana Ioanovici, Alex Bădescu, Lonut Losifescu-Enescu, Bogdan Pacurar</td></tr>
-<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16880 unfinished:15 untranslated:555" class="bartodo"><div class="bardone" style="width:96px">96.8</div></div></td><td>Phùng Văn Doanh, Bùi Hữu Mạnh, Nguyễn Văn Thanh, Nguyễn Hữu Phúc, Cao Minh Tu</td></tr>
-<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:16531 unfinished:40 untranslated:879" class="bartodo"><div class="bardone" style="width:94px">94.8</div></div></td><td>Carlos Dávila, Javier César Aldariz, Gabriela Awad, Edwin Amado, Mayeul Kauffmann, Diana Galindo</td></tr>
-<tr><td><img src="qrc:/images/flags/ja.png"></td><td>Japanese</td><td><div title="finished:16453 unfinished:11 untranslated:986" class="bartodo"><div class="bardone" style="width:94px">94.3</div></div></td><td>BABA Yoshihiko, Yoichi Kayama, Minoru Akagi, Takayuki Nuimura, Takayuki Mizutani, Norihiro Yamate</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15789 unfinished:21 untranslated:1640" class="bartodo"><div class="bardone" style="width:90px">90.5</div></div></td><td>Giovanni Manghi, Joana Simões, Duarte Carreira, Alexandre Neto, Pedro Pereira, Pedro Palheiro, Nelson Silva, Ricardo Sena, Leandro Infantini, João Gaspar</td></tr>
-<tr><td><img src="qrc:/images/flags/ru.png"></td><td>Russian</td><td><div title="finished:15406 unfinished:37 untranslated:2007" class="bartodo"><div class="bardone" style="width:88px">88.4</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
-<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese simplified</td><td><div title="finished:15252 unfinished:24 untranslated:2174" class="bartodo"><div class="bardone" style="width:87px">87.5</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
-<tr><td><img src="qrc:/images/flags/hu.png"></td><td>Hungarian</td><td><div title="finished:15108 unfinished:24 untranslated:2318" class="bartodo"><div class="bardone" style="width:86px">86.6</div></div></td><td>Zoltan Siki</td></tr>
-<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14398 unfinished:198 untranslated:2854" class="bartodo"><div class="bardone" style="width:83px">83.1</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
-<tr><td><img src="qrc:/images/flags/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14368 unfinished:36 untranslated:3046" class="bartodo"><div class="bardone" style="width:82px">82.4</div></div></td><td>James Stott, Maléne Peterson</td></tr>
-<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14327 unfinished:80 untranslated:3043" class="bartodo"><div class="bardone" style="width:82px">82.3</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
-<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14331 unfinished:49 untranslated:3070" class="bartodo"><div class="bardone" style="width:82px">82.3</div></div></td><td>Jan Helebrant, Martin Landa, Peter Antolik, Martin Dzurov, Stanislav Horáček</td></tr>
-<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14271 unfinished:35 untranslated:3144" class="bartodo"><div class="bardone" style="width:81px">81.9</div></div></td><td>Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach</td></tr>
-<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14118 unfinished:83 untranslated:3249" class="bartodo"><div class="bardone" style="width:81px">81.1</div></div></td><td>Roberto Angeletti, Michele Beneventi, Marco Braida, Stefano Campus, Luca Casagrande, Paolo Cavallini, Giuliano Curti, Luca Delucchi, Alessandro Fanna, Michele Ferretti, Matteo Ghetta, Anne Gishla, Maurizio Napolitano, Flavio Rigolon</td></tr>
-<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12738 unfinished:121 untranslated:4591" class="bartodo"><div class="bardone" style="width:73px">73.3</div></div></td><td>Harish Kumar Solanki</td></tr>
-<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:12623 unfinished:93 untranslated:4734" class="bartodo"><div class="bardone" style="width:72px">72.6</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
-<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12499 unfinished:88 untranslated:4863" class="bartodo"><div class="bardone" style="width:71px">71.9</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
-<tr><td><img src="qrc:/images/flags/et.png"></td><td>Estonian</td><td><div title="finished:12471 unfinished:115 untranslated:4864" class="bartodo"><div class="bardone" style="width:71px">71.8</div></div></td><td>Veiko Viil</td></tr>
-<tr><td><img src="qrc:/images/flags/ca.png"></td><td>Catalan</td><td><div title="finished:12181 unfinished:69 untranslated:5200" class="bartodo"><div class="bardone" style="width:70px">70.0</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
-<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11944 unfinished:126 untranslated:5380" class="bartodo"><div class="bardone" style="width:68px">68.8</div></div></td><td>OSGeo Korean Chapter</td></tr>
-<tr><td><img src="qrc:/images/flags/lt.png"></td><td>Lithuanian</td><td><div title="finished:11558 unfinished:128 untranslated:5764" class="bartodo"><div class="bardone" style="width:66px">66.6</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
-<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10945 unfinished:240 untranslated:6265" class="bartodo"><div class="bardone" style="width:63px">63.4</div></div></td><td>Emir Hartato, Muhammad Iqnaul Haq Siregar, Trias Aditya, Januar V. Simarmata, I Made Anombawa</td></tr>
-<tr><td><img src="qrc:/images/flags/bs.png"></td><td>Bosnian</td><td><div title="finished:10811 unfinished:131 untranslated:6508" class="bartodo"><div class="bardone" style="width:62px">62.3</div></div></td><td>Almir Karabegovic</td></tr>
-<tr><td><img src="qrc:/images/flags/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10706 unfinished:52 untranslated:6692" class="bartodo"><div class="bardone" style="width:61px">61.5</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
-<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10627 unfinished:92 untranslated:6731" class="bartodo"><div class="bardone" style="width:61px">61.2</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
-<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9495 unfinished:130 untranslated:7825" class="bartodo"><div class="bardone" style="width:54px">54.8</div></div></td><td>Khoem Sokhem</td></tr>
-<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9378 unfinished:192 untranslated:7880" class="bartodo"><div class="bardone" style="width:54px">54.3</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
-<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9164 unfinished:141 untranslated:8145" class="bartodo"><div class="bardone" style="width:52px">52.9</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
-<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:8953 unfinished:123 untranslated:8374" class="bartodo"><div class="bardone" style="width:51px">51.7</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
-<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7690 unfinished:725 untranslated:9035" class="bartodo"><div class="bardone" style="width:46px">46.1</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr>
-<tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7494 unfinished:134 untranslated:9822" class="bartodo"><div class="bardone" style="width:43px">43.3</div></div></td><td>Zoran Jankovic</td></tr>
-<tr><td><img src="qrc:/images/flags/sr.png"></td><td>Serbian (latin)</td><td><div title="finished:6137 unfinished:157 untranslated:11156" class="bartodo"><div class="bardone" style="width:35px">35.6</div></div></td><td>Goran Ivanković</td></tr></table>
+<tr><td><img src="qrc:/images/flags/de.png"></td><td>German</td><td><div title="finished:17492 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</div></div></td><td>Jürgen E. Fischer, Stephan Holl, Otto Dassau, Werner Macho</td></tr>
+<tr><td><img src="qrc:/images/flags/sv.png"></td><td>Swedish</td><td><div title="finished:17380 unfinished:19 untranslated:93" class="bartodo"><div class="bardone" style="width:99px">99.4</div></div></td><td>Victor Axbom, Lars Luthman, Magnus Homann, Klas Karlsson, Isabelle J Wigren, Daniel Rosander, Anders Ekwall, Magnus Nilsson, Jonas Svensson, Christian Brinkenberg</td></tr>
+<tr><td><img src="qrc:/images/flags/pt_BR.png"></td><td>Portuguese (Brazil)</td><td><div title="finished:17378 unfinished:19 untranslated:95" class="bartodo"><div class="bardone" style="width:99px">99.4</div></div></td><td>Sidney Schaberle Goveia, Arthur Nanni, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Leônidas Descovi Filho, Felipe Sodré Barros </td></tr>
+<tr><td><img src="qrc:/images/flags/eu.png"></td><td>Basque</td><td><div title="finished:17346 unfinished:21 untranslated:125" class="bartodo"><div class="bardone" style="width:99px">99.2</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
+<tr><td><img src="qrc:/images/flags/gl.png"></td><td>Galician</td><td><div title="finished:17337 unfinished:22 untranslated:133" class="bartodo"><div class="bardone" style="width:99px">99.2</div></div></td><td>Xan Vieiro</td></tr>
+<tr><td><img src="qrc:/images/flags/fr.png"></td><td>French</td><td><div title="finished:17337 unfinished:21 untranslated:134" class="bartodo"><div class="bardone" style="width:99px">99.2</div></div></td><td>Arnaud Morvan, Augustin Roche, DelazJ, Didier Vanden Berghe, Dofabien, etrimaille, Jean-Roc Morreale, Jérémy Garniaux, Loïc Buscoz, Lsam, Marc-André Saia, Marie Silvestre, Mathieu Bossaert, Mathieu Lattes, Mayeul Kauffmann, Médéric Ribreux, Mehdi Semchaoui, Michael Douchin, Nicolas B [...]
+<tr><td><img src="qrc:/images/flags/nl.png"></td><td>Dutch</td><td><div title="finished:17337 unfinished:19 untranslated:136" class="bartodo"><div class="bardone" style="width:99px">99.2</div></div></td><td>Richard Duivenvoorde, Raymond Nijssen, Carlo van Rijswijk, Diethard Jansen, Willem Hoffmans, Dick Groskamp</td></tr>
+<tr><td><img src="qrc:/images/flags/ro.png"></td><td>Romanian</td><td><div title="finished:17311 unfinished:20 untranslated:161" class="bartodo"><div class="bardone" style="width:99px">99.0</div></div></td><td>Sorin Călinică, Tudor Bărăscu, Georgiana Ioanovici, Alex Bădescu, Lonut Losifescu-Enescu, Bogdan Pacurar</td></tr>
+<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16851 unfinished:26 untranslated:615" class="bartodo"><div class="bardone" style="width:96px">96.4</div></div></td><td>Phùng Văn Doanh, Bùi Hữu Mạnh, Nguyễn Văn Thanh, Nguyễn Hữu Phúc, Cao Minh Tu</td></tr>
+<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:16503 unfinished:51 untranslated:938" class="bartodo"><div class="bardone" style="width:94px">94.5</div></div></td><td>Carlos Dávila, Javier César Aldariz, Gabriela Awad, Edwin Amado, Mayeul Kauffmann, Diana Galindo</td></tr>
+<tr><td><img src="qrc:/images/flags/ja.png"></td><td>Japanese</td><td><div title="finished:16418 unfinished:22 untranslated:1052" class="bartodo"><div class="bardone" style="width:93px">93.9</div></div></td><td>BABA Yoshihiko, Yoichi Kayama, Minoru Akagi, Takayuki Nuimura, Takayuki Mizutani, Norihiro Yamate</td></tr>
+<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15760 unfinished:32 untranslated:1700" class="bartodo"><div class="bardone" style="width:90px">90.2</div></div></td><td>Giovanni Manghi, Joana Simões, Duarte Carreira, Alexandre Neto, Pedro Pereira, Pedro Palheiro, Nelson Silva, Ricardo Sena, Leandro Infantini, João Gaspar</td></tr>
+<tr><td><img src="qrc:/images/flags/ru.png"></td><td>Russian</td><td><div title="finished:15371 unfinished:49 untranslated:2072" class="bartodo"><div class="bardone" style="width:88px">88.0</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
+<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese simplified</td><td><div title="finished:15218 unfinished:34 untranslated:2240" class="bartodo"><div class="bardone" style="width:87px">87.1</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
+<tr><td><img src="qrc:/images/flags/hu.png"></td><td>Hungarian</td><td><div title="finished:15081 unfinished:34 untranslated:2377" class="bartodo"><div class="bardone" style="width:86px">86.3</div></div></td><td>Zoltan Siki</td></tr>
+<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14370 unfinished:208 untranslated:2914" class="bartodo"><div class="bardone" style="width:82px">82.7</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
+<tr><td><img src="qrc:/images/flags/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14340 unfinished:46 untranslated:3106" class="bartodo"><div class="bardone" style="width:82px">82.1</div></div></td><td>James Stott, Maléne Peterson</td></tr>
+<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14299 unfinished:90 untranslated:3103" class="bartodo"><div class="bardone" style="width:82px">82.0</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
+<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14299 unfinished:61 untranslated:3132" class="bartodo"><div class="bardone" style="width:81px">81.9</div></div></td><td>Jan Helebrant, Martin Landa, Peter Antolik, Martin Dzurov, Stanislav Horáček</td></tr>
+<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14238 unfinished:43 untranslated:3211" class="bartodo"><div class="bardone" style="width:81px">81.5</div></div></td><td>Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach</td></tr>
+<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14090 unfinished:94 untranslated:3308" class="bartodo"><div class="bardone" style="width:80px">80.8</div></div></td><td>Roberto Angeletti, Michele Beneventi, Marco Braida, Stefano Campus, Luca Casagrande, Paolo Cavallini, Giuliano Curti, Luca Delucchi, Alessandro Fanna, Michele Ferretti, Matteo Ghetta, Anne Gishla, Maurizio Napolitano, Flavio Rigolon</td></tr>
+<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12712 unfinished:128 untranslated:4652" class="bartodo"><div class="bardone" style="width:73px">73.0</div></div></td><td>Harish Kumar Solanki</td></tr>
+<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:12597 unfinished:102 untranslated:4793" class="bartodo"><div class="bardone" style="width:72px">72.3</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
+<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12471 unfinished:94 untranslated:4927" class="bartodo"><div class="bardone" style="width:71px">71.6</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
+<tr><td><img src="qrc:/images/flags/et.png"></td><td>Estonian</td><td><div title="finished:12441 unfinished:122 untranslated:4929" class="bartodo"><div class="bardone" style="width:71px">71.5</div></div></td><td>Veiko Viil</td></tr>
+<tr><td><img src="qrc:/images/flags/ca.png"></td><td>Catalan</td><td><div title="finished:12155 unfinished:79 untranslated:5258" class="bartodo"><div class="bardone" style="width:69px">69.7</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
+<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11919 unfinished:131 untranslated:5442" class="bartodo"><div class="bardone" style="width:68px">68.5</div></div></td><td>OSGeo Korean Chapter</td></tr>
+<tr><td><img src="qrc:/images/flags/lt.png"></td><td>Lithuanian</td><td><div title="finished:11534 unfinished:134 untranslated:5824" class="bartodo"><div class="bardone" style="width:66px">66.3</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
+<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10923 unfinished:241 untranslated:6328" class="bartodo"><div class="bardone" style="width:63px">63.1</div></div></td><td>Emir Hartato, Muhammad Iqnaul Haq Siregar, Trias Aditya, Januar V. Simarmata, I Made Anombawa</td></tr>
+<tr><td><img src="qrc:/images/flags/bs.png"></td><td>Bosnian</td><td><div title="finished:10785 unfinished:134 untranslated:6573" class="bartodo"><div class="bardone" style="width:62px">62.0</div></div></td><td>Almir Karabegovic</td></tr>
+<tr><td><img src="qrc:/images/flags/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10688 unfinished:56 untranslated:6748" class="bartodo"><div class="bardone" style="width:61px">61.3</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
+<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10609 unfinished:97 untranslated:6786" class="bartodo"><div class="bardone" style="width:60px">60.9</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
+<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9476 unfinished:134 untranslated:7882" class="bartodo"><div class="bardone" style="width:54px">54.6</div></div></td><td>Khoem Sokhem</td></tr>
+<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9360 unfinished:197 untranslated:7935" class="bartodo"><div class="bardone" style="width:54px">54.1</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
+<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9144 unfinished:145 untranslated:8203" class="bartodo"><div class="bardone" style="width:52px">52.7</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
+<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:8934 unfinished:125 untranslated:8433" class="bartodo"><div class="bardone" style="width:51px">51.4</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
+<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7677 unfinished:720 untranslated:9095" class="bartodo"><div class="bardone" style="width:45px">45.9</div></div></td><td>Lubos Balazovic, Jana Kormanikova, Ivan Mincik</td></tr>
+<tr><td><img src="qrc:/images/flags/hr.png"></td><td>Croatian</td><td><div title="finished:7480 unfinished:135 untranslated:9877" class="bartodo"><div class="bardone" style="width:43px">43.1</div></div></td><td>Zoran Jankovic</td></tr>
+<tr><td><img src="qrc:/images/flags/sr.png"></td><td>Serbian (latin)</td><td><div title="finished:6129 unfinished:157 untranslated:11206" class="bartodo"><div class="bardone" style="width:35px">35.5</div></div></td><td>Goran Ivanković</td></tr></table>
diff --git a/doc/news.html b/doc/news.html
index e502f98..ed26a48 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -5,7 +5,7 @@
 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
 <TITLE>QGIS News</TITLE>
 
-<!-- Included doc/style.css -->
+<!-- Included /home/fischer/src/qgis-2.14/doc/style.css -->
 <STYLE TYPE="text/css">
 body{  background: white;
   color: black;
@@ -77,7 +77,7 @@ label{  background-color: #FFFFCC;
 <DIV CLASS="header" ID="header">
 <H1>QGIS News</H1>
 <H2>Change history for the QGIS Project</H2>
-<H3>Thursday February 25, 2016</H3>
+<H3>Saturday October 08, 2016</H3>
 </DIV>
 
 <DIV CLASS="toc">
@@ -115,8 +115,8 @@ label{  background-color: #FFFFCC;
 </DIV>
 <DIV CLASS="body" ID="body">
 <P>
-Last Updated: Thursday February 25, 2016
-Last Change : Thursday February 25, 2016
+Last Updated: Saturday October 08, 2016
+Last Change : Saturday October 01, 2016
 </P>
 
 <A NAME="toc1"></A>
@@ -181,7 +181,7 @@ This release has following new features:
 <LI>QGIS Server : STARTINDEX param in WFS GetFeature Request
 <LI>QGIS Server : showFeatureCount in GetLegendGraphic
 <LI>QGIS Server : Enhance store project keyword list
-<LI>QGIS Server : Option to avoid rendering artefacts at edges of tiles
+<LI>QGIS Server : Option to avoid rendering artifacts at edges of tiles
 <LI>QGIS Server : WMS INSPIRE Capabilities
 <LI>QGIS Server : Configuration checker in project properties
 <LI>QGIS Server : Add short name to layers, groups and project
@@ -2990,5 +2990,5 @@ July 6, 2002
 </DIV>
 
 <!-- html code generated by txt2tags 2.6 (http://txt2tags.org) -->
-<!-- cmdline: txt2tags -odoc/news.html -t html doc/news.t2t -->
+<!-- cmdline: txt2tags -o/home/fischer/src/qgis-2.14/debian/build-release-2_14-qt4/doc/news.html -t html /home/fischer/src/qgis-2.14/doc/news.t2t -->
 </BODY></HTML>
diff --git a/doc/news.t2t b/doc/news.t2t
index d13297b..1b74008 100644
--- a/doc/news.t2t
+++ b/doc/news.t2t
@@ -96,7 +96,7 @@ This release has following new features:
 - QGIS Server : STARTINDEX param in WFS GetFeature Request
 - QGIS Server : showFeatureCount in GetLegendGraphic
 - QGIS Server : Enhance store project keyword list
-- QGIS Server : Option to avoid rendering artefacts at edges of tiles
+- QGIS Server : Option to avoid rendering artifacts at edges of tiles
 - QGIS Server : WMS INSPIRE Capabilities
 - QGIS Server : Configuration checker in project properties
 - QGIS Server : Add short name to layers, groups and project
diff --git a/i18n/qgis_de.ts b/i18n/qgis_de.ts
index 7255a98..e7340e6 100644
--- a/i18n/qgis_de.ts
+++ b/i18n/qgis_de.ts
@@ -246,377 +246,377 @@
 <context>
     <name>AlgorithmClassification</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="56"/>
         <source>Overlay</source>
         <translation>Überlagern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
         <source>Feature Extraction</source>
         <translation>Objektextraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="45"/>
         <source>Raster -> Vector</source>
         <translation>Raster -> Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
         <source>Miscellaneous</source>
         <translation>Sonstiges</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
         <source>Vector Data Manipulation</source>
         <translation>Vektordatenmanipulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
         <source>Segmentation</source>
         <translation>Segmentierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
         <source>Raster - vector</source>
         <translation>Raster - Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="373"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
         <source>Calibration</source>
         <translation>Kalibrierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
         <source>Vector -> Raster</source>
         <translation>Vektor -> Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="52"/>
         <source>Image Manipulation</source>
         <translation>Bildmanipulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
         <source>Image Filtering</source>
         <translation>Bildfiltrierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="313"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
         <source>Stereo</source>
         <translation>Stereo</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
         <source>Geometry</source>
         <translation>Geometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
         <source>Polygon intersection</source>
         <translation>Polygonverschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="338"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
         <source>Vectorize raster layer</source>
         <translation>Rasterlayer vektorisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
         <source>Terrain analysis and geomorphometry</source>
         <translation>Geländeanalyse und </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
         <source>Domain specific</source>
         <translation>Bereichsspezifisch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
         <source>Lines</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="375"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
         <source>Analysis</source>
         <translation>Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
         <source>Modeler</source>
         <translation>Modellierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="67"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
         <source>Modeler tools</source>
         <translation>Modellierungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="346"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="17"/>
         <source>Creation</source>
         <translation>Erzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
         <source>Table tools</source>
         <translation>Tabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="51"/>
         <source>Edition</source>
         <translation>Bearbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
         <source>Learning</source>
         <translation>Klassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="345"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
         <source>Images</source>
         <translation>Bilder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="334"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="61"/>
         <source>Viewsheds\Lighting</source>
         <translation>Landschaftsbild/Beleuchtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
         <source>Filters</source>
         <translation>Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
         <source>Interpolate (Inverse distance weighting)</source>
         <translation>Interpolation (Inverse Abstandsgewichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="79"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
         <source>Rasterize vector layer</source>
         <translation>Vektorlayer rastern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
         <source>Polygon identity</source>
         <translation>Polygonidentität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
         <source>Polygon dissolve (all polygons)</source>
         <translation>Polygon auflösen (alle Polygone)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
         <source>Polygon union</source>
         <translation>Polygonvereinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="15"/>
         <source>Geometry operations</source>
         <translation>Geometrieoperationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="357"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
         <source>Interpolate (Natural neighbor)</source>
         <translation>Interpolation (Natürlicher Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
         <source>Raster - vector statistics</source>
         <translation>Raster - Vektorstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="327"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
         <source>Merge raster layers</source>
         <translation>Rasterlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
         <source>Remove small pixel clumps (nearest neighbour)</source>
         <translation>Kleine Pixelklumpen entfernen (nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
         <source>Interpolate (Nearest Neighbor)</source>
         <translation>Interpolation (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
         <source>Hydrology</source>
         <translation>Hydrologie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="7"/>
         <source>Interpolate (Cubic spline)</source>
         <translation>Interpolieren (Kubisches Spline)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
         <source>Raster - vector operations</source>
         <translation>Raster-Vektoroperationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="40"/>
         <source>Interpolate (Data metrics)</source>
         <translation>Interpolation (Datenmetrik)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
         <source>Reproject raster layer</source>
         <translation>Rasterlayer reprojizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="11"/>
         <source>Export raster layer</source>
         <translation>Rasterlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="60"/>
         <source>Export vector layer</source>
         <translation>Vektorlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
         <source>Polygon dissolve (by attribute)</source>
         <translation>Polygon auflösen (nach Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
         <source>Remove small pixel clumps (to no-data)</source>
         <translation>Kleine Pixelklumpen entfernen (zu Nullwerten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
         <source>Interpolate (Modified quadratic shepard)</source>
         <translation>Interpolieren (Modifizierte quadratische Shepard-Methode)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
         <source>Reclassify (simple)</source>
         <translation>Neuklassifizieren (einfach)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
         <source>Execute SQL on vector layer</source>
         <translation>SQL auf Vektorlayer ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
         <source>Geostatistics</source>
         <translation>Geostatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
         <source>Raster layer information</source>
         <translation>Rasterlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="74"/>
         <source>Contour lines</source>
         <translation>Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
         <source>Image tools</source>
         <translation>Bildwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="14"/>
         <source>Create graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="376"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
         <source>Fire spreading simulation</source>
         <translation>Feuerausbreitungssimulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
         <source>Polygon difference</source>
         <translation>Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
         <source>Cost analysis</source>
         <translation>Kostenanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
         <source>Create graticule from extent</source>
         <translation>Gradnetz aus Grenzen erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
         <source>Polygon symmetrical difference</source>
         <translation>Symmetrische Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
         <source>Vector layer information</source>
         <translation>Vektorlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
         <source>General tools</source>
         <translation>Allgemeine Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
         <source>Image analysis</source>
         <translation>Bildanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
         <source>Polygon update</source>
         <translation>Polygonaktualisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
         <source>Interpolate (Average)</source>
         <translation>Interpolation (Durchschnitt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
@@ -680,16 +680,26 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
         <source>Run</source>
         <translation>Starte</translation>
     </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="80"/>
+        <source><p>Downloading algorithm help... Please wait.</p></source>
+        <translation><p>Lade Algorithmenhilfe herunter... Bite warten.</p></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="81"/>
+        <source><h2>No help available for this algorithm</h2><p>{}</p></source>
+        <translation><h2>Keine Hilfe zu diesem Algorithmus verfügbar</h2><p>{}</p></translation>
+    </message>
 </context>
 <context>
     <name>AlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="85"/>
         <source>Activate</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="86"/>
         <source>Generic algorithm provider</source>
         <translation>Generischer Algorithmus-Anbieter</translation>
     </message>
@@ -697,22 +707,22 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
 <context>
     <name>AutoincrementalField</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="91"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="92"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="93"/>
         <source>Incremented</source>
         <translation>Inkrementiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="90"/>
         <source>Add autoincremental field</source>
         <translation>Autoinkremetierendes Feld hinzufügen</translation>
     </message>
@@ -720,27 +730,27 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
 <context>
     <name>BarPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="98"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="99"/>
         <source>Input table</source>
         <translation>Eingabetabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="100"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="101"/>
         <source>Value field</source>
         <translation>Wertfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="97"/>
         <source>Bar plot</source>
         <translation>Balkengrafik</translation>
     </message>
@@ -748,197 +758,197 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
 <context>
     <name>BasicStatisticsNumbers</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="106"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="107"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="108"/>
         <source>Field to calculate statistics on</source>
         <translation>Feld für Statistikberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="109"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="110"/>
         <source>Coefficient of Variation</source>
         <translation>Variationskoeffizient</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="111"/>
         <source>Minimum value</source>
         <translation>Minimalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="112"/>
         <source>Maximum value</source>
         <translation>Maximalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="113"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="114"/>
         <source>Mean value</source>
         <translation>Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="116"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="117"/>
         <source>Range</source>
         <translation>Bereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="118"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="119"/>
         <source>Number of unique values</source>
         <translation>Anzahl der eindeutigen Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="120"/>
         <source>Minority (rarest occurring value)</source>
         <translation>Minderheit (am seltensten vorkommender Wert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="121"/>
         <source>Majority (most frequently occurring value)</source>
         <translation>Mehrheit (am häufigesten auftauchender Wert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="122"/>
         <source>First quartile</source>
         <translation>Erstes Viertel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="123"/>
         <source>Third quartile</source>
         <translation>Drittes Viertel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="124"/>
         <source>NULL (missed) values</source>
         <translation>NULL (fehlende) Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="125"/>
         <source>Interquartile Range (IQR)</source>
         <translation>Interquartilsabstand (IQR)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="126"/>
         <source>Analyzed layer: {}</source>
         <translation>Analysierter Layer: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="127"/>
         <source>Analyzed field: {}</source>
         <translation>Analysiertes Feld: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="128"/>
         <source>Count: {}</source>
         <translation>Anzahl: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="129"/>
         <source>Unique values: {}</source>
         <translation>Eindeutige Werte: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="130"/>
         <source>Minimum value: {}</source>
         <translation>Minimalwert: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="131"/>
         <source>Maximum value: {}</source>
         <translation>Maximalwert: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="132"/>
         <source>Range: {}</source>
         <translation>Bereich: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="133"/>
         <source>Sum: {}</source>
         <translation>Summe: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="134"/>
         <source>Mean value: {}</source>
         <translation>Mittelwert: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="135"/>
         <source>Median value: {}</source>
         <translation>Median: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="136"/>
         <source>Standard deviation: {}</source>
         <translation>Standardabweichung: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="137"/>
         <source>Coefficient of Variation: {}</source>
         <translation>Variationskoeffizient: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="138"/>
         <source>Minority (rarest occurring value): {}</source>
         <translation>Minderheit (am seltensten vorkommender Wert): {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="139"/>
         <source>Majority (most frequently occurring value): {}</source>
         <translation>Mehrheit (am häufigesten auftauchender Wert): {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="140"/>
         <source>First quartile: {}</source>
         <translation>Erstes Viertel: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="141"/>
         <source>Third quartile: {}</source>
         <translation>Drittes Viertel: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="142"/>
         <source>NULL (missing) values: {}</source>
         <translation>Fehlende Leerwerte (NULL): {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="143"/>
         <source>Interquartile Range (IQR): {}</source>
         <translation>Interquartilsabstand (IQR): {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="115"/>
         <source>Standard deviation</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="105"/>
         <source>Basic statistics for numeric fields</source>
         <translation>Grundstatistik für numerische Felder</translation>
     </message>
@@ -946,107 +956,107 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
 <context>
     <name>BasicStatisticsStrings</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="148"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="149"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="150"/>
         <source>Field to calculate statistics on</source>
         <translation>Feld für Statistikberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="151"/>
         <source>Statistics for text</source>
         <translation>Textstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="152"/>
         <source>Minimum length</source>
         <translation>Minimallänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="153"/>
         <source>Maximum length</source>
         <translation>Maximallänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="154"/>
         <source>Mean length</source>
         <translation>Mittlere Länge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="155"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="156"/>
         <source>Number of empty values</source>
         <translation>Anzahl leerer Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="157"/>
         <source>Number of non-empty values</source>
         <translation>Anzahl nicht leerer Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="158"/>
         <source>Number of unique values</source>
         <translation>Anzahl eindeutiger Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="159"/>
         <source>Analyzed layer: {}</source>
         <translation>Analysierter Layer: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="160"/>
         <source>Analyzed field: {}</source>
         <translation>Analysiertes Feld: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="161"/>
         <source>Minimum length: {}</source>
         <translation>Minimallänge: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="162"/>
         <source>Maximum length: {}</source>
         <translation>Maximallänge: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="163"/>
         <source>Mean length: {}</source>
         <translation>Mittlere Länge: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="164"/>
         <source>Filled values: {}</source>
         <translation>Gefüllte Werte: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="165"/>
         <source>NULL (missing) values: {}</source>
         <translation>Fehlende Leerwerte (NULL): {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="166"/>
         <source>Count: {}</source>
         <translation>Anzahl: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="167"/>
         <source>Unique: {}</source>
         <translation>Eindeutig: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="147"/>
         <source>Basic statistics for text fields</source>
         <translation>Grundstatistik für Textfelder</translation>
     </message>
@@ -1054,44 +1064,44 @@ Zum Überprüfen Ergebnisdialog öffnen.</translation>
 <context>
     <name>BatchAlgorithmDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="171"/>
         <source>Batch Processing - %s</source>
         <translation>Stapelverarbeitung - %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="172"/>
         <source><b>Missing parameter value: %s (row %d)</b></source>
         <translation><b>Fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="173"/>
         <source><b>Wrong or missing parameter value: %s (row %d)</b></source>
         <translation><b>Falscher oder fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="174"/>
         <source>
 Processing algorithm %d/%d...</source>
         <translation>
 Verarbeite Algorithmus %d/%d...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="178"/>
         <source>Batch processing completed</source>
         <translation>Stapelverarbeitung abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="175"/>
         <source><b>Algorithm %s starting...</b></source>
         <translation><b>Algorithmus %s startet...</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="176"/>
         <source>Algorithm %s correctly executed...</source>
         <translation>Algorithmus %s korrekt ausgeführt...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="177"/>
         <source>Batch processing</source>
         <translation>Stapelverarbeitung</translation>
     </message>
@@ -1099,22 +1109,22 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>BatchInputSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="182"/>
         <source>Select from open layers</source>
         <translation>Wähle aus geöffneten Layern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="183"/>
         <source>Select from filesystem</source>
         <translation>Wähle vom Dateisystem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="184"/>
         <source>Open file</source>
         <translation>Datei öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="185"/>
         <source>All files(*.*);;</source>
         <translation>Alle Dateien (*.*);;</translation>
     </message>
@@ -1122,12 +1132,12 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>BatchOutputSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="189"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="190"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
@@ -1135,80 +1145,84 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>BatchPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="194"/>
         <source>Load in QGIS</source>
         <translation>Lade in QGIS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="195"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="196"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="197"/>
         <source>Open batch</source>
         <translation>Stapel öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="198"/>
         <source>JSON files (*.json)</source>
         <translation>JSON-Dateien (*.json)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="200"/>
+        <source>An error occurred while reading your file.</source>
+        <translation>Ein Fehler trat beim Lesen der Datei auf.</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="201"/>
         <source><b>Missing parameter value: %s (row %d)</b></source>
         <translation><b>Fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="202"/>
         <source><b>Wrong or missing parameter value: %s (row %d)</b></source>
         <translation><b>Falscher oder fehlender Parameterwert: %s (Zeile %d)</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="203"/>
         <source>Save batch</source>
         <translation>Stapel speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="199"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="198"/>
         <source>An error occured while reading your file.</source>
-        <translation>Ein Fehler trat beim Lesen der Datei auf.</translation>
+        <translation type="obsolete">Ein Fehler trat beim Lesen der Datei auf.</translation>
     </message>
 </context>
 <context>
     <name>CalculatorModelerAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="207"/>
         <source>Calculator</source>
         <translation>Rechner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="208"/>
         <source>Modeler-only tools</source>
         <translation>Nur-Modellierungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="209"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="210"/>
         <source>Result</source>
         <translation>Ergebnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="211"/>
         <source>Wrong formula: %s</source>
         <translation>Falsche Formel: %s</translation>
     </message>
@@ -1216,26 +1230,26 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CalculatorModelerParametersDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="215"/>
         <source>You can refer to model values in your formula, using single-letter variables, as follows:
 </source>
         <translation>Mit Variablen mit einem Buchstaben kann auf Modellwerte in den Formeln wie folgt Bezug genommen werden:
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="216"/>
         <source>
  - No numerical variables are available.</source>
         <translation>
  - Keine numerischen Variablen verfügbar.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="217"/>
         <source>[Enter your formula here]</source>
         <translation>[Formel hier eingeben]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="218"/>
         <source>Calculator</source>
         <translation>Rechner</translation>
     </message>
@@ -1243,47 +1257,47 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CanopyMaxima</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="222"/>
         <source>Canopy Maxima</source>
         <translation>Bodenbedeckungsmaxima</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="223"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="224"/>
         <source>Input FUSION canopy height model</source>
         <translation>Eingabe FUSION Bodenbedeckungs Höhenmodell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="225"/>
         <source>Input ground .dtm layer [optional]</source>
         <translation>Eingabe Boden .dtm Layer [optional]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="226"/>
         <source>Height threshold</source>
         <translation>Höhenschwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="227"/>
         <source>Variable window size: parameter A</source>
         <translation>Variable Fenstergröße: Parameter A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="228"/>
         <source>Parameter C</source>
         <translation>Parameter C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="229"/>
         <source>Summary (tree height summary statistics)</source>
         <translation>Zusammenfassung (Baumhöhenzusammenfassungsstatistik)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="230"/>
         <source>Output file with maxima</source>
         <translation>Ausgabedatei mit Maxima</translation>
     </message>
@@ -1291,67 +1305,67 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CanopyModel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="234"/>
         <source>Canopy Model</source>
         <translation>Bodenbedeckungsmodell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="235"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="236"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="237"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="238"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="239"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="240"/>
         <source>.dtm output surface</source>
         <translation>.dtm-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="241"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="242"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="243"/>
         <source>Smooth</source>
         <translation>Glatt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="245"/>
         <source>Calculate slope</source>
         <translation>Neigung berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="246"/>
         <source>Add an ASCII output</source>
         <translation>Eine ASCII-Ausgabe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="244"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
@@ -1359,42 +1373,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Catalog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="250"/>
         <source>Catalog</source>
         <translation>Katalog</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="251"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="252"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="253"/>
         <source>Output files</source>
         <translation>Ausgabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="254"/>
         <source>Density - area, min, max (set blank if not used)</source>
         <translation>Dichte - Fläche, min, max (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="255"/>
         <source>First Density - area, min, max (set blank if not used)</source>
         <translation>Erste Dichte - Fläche, min, max (leer lassen, wenn nicht benutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="256"/>
         <source>Intensity - area, min, max (set blank if not used)</source>
         <translation>Intensität - Fläche, min, max (leer lassen, wenn nicht benutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="257"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -1402,27 +1416,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Centroids</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="262"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="263"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="264"/>
         <source>Centroids</source>
         <translation>Zentroide</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="265"/>
         <source>Error calculating centroid</source>
         <translation>Felder bei Zentrumsberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="261"/>
         <source>Polygon centroids</source>
         <translation>Polygonschwerpunkt</translation>
     </message>
@@ -1438,42 +1452,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CheckValidity</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="270"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="271"/>
         <source>The one selected in digitizing settings</source>
         <translation>Die in den Digitalisierungseinstellungen gewählte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="272"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="273"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="274"/>
         <source>Valid output</source>
         <translation>Gültige Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="275"/>
         <source>Invalid output</source>
         <translation>Ungültige Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="276"/>
         <source>Error output</source>
         <translation>Fehlerausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="269"/>
         <source>Check validity</source>
         <translation>Gültigkeit prüfen</translation>
     </message>
@@ -1481,42 +1495,41 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Clip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="281"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="282"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="283"/>
         <source>Clip layer</source>
         <translation>Layer zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="284"/>
         <source>Clipped</source>
         <translation>Zugeschnitten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="283"/>
         <source>Input layer has unsupported geometry type {}</source>
-        <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+        <translation type="obsolete">Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="285"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="286"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>Objektgeometriefehler: Ein oder mehrere Objekte wegen ungültiger Geometrie ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="280"/>
         <source>Clip</source>
         <translation>Zuschneiden</translation>
     </message>
@@ -1524,77 +1537,77 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipByExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="292"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="294"/>
         <source>Clipping extent</source>
         <translation>Maße zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="295"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="296"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="297"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="298"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="299"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="300"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="301"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="302"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="303"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="304"/>
         <source>Clipped (extent)</source>
         <translation>Abgeschnitten (Grenze)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="290"/>
         <source>Clip raster by extent</source>
         <translation>Raster auf Ausmaße zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="291"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="293"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
@@ -1602,92 +1615,92 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipByMask</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="310"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="311"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="313"/>
         <source>Create and output alpha band</source>
         <translation>Alphakanal erzeugen und ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="314"/>
         <source>Crop the extent of the target dataset to the extent of the cutline</source>
         <translation>Ausmaße des Zieldatensatzes auf die Ausmaße der Schnittlinie abschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="315"/>
         <source>Keep resolution of output raster</source>
         <translation>Auflösung des Ausgaberasters beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="316"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="317"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="318"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="319"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="320"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="321"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="322"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="323"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="324"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="325"/>
         <source>Clipped (mask)</source>
         <translation>Abgeschnitten (Maske)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="308"/>
         <source>Clip raster by mask layer</source>
         <translation>Raster auf Layermaske zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="309"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="312"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
@@ -1695,42 +1708,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ClipData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="329"/>
         <source>Clip Data</source>
         <translation>Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="330"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="331"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="332"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="333"/>
         <source>Shape</source>
         <translation>Form</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="334"/>
         <source>Output clipped LAS file</source>
         <translation>Zugeschnittene LAS-Datei ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="335"/>
         <source>Ground file for height normalization</source>
         <translation>Grunddatei für Höhennormalisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="336"/>
         <source>Convert point elevations into heights above ground (used with the above command)</source>
         <translation>Punkthöhen in Höhe über Grund umwandeln (zur Verwendung mit dem obigen Befehl)</translation>
     </message>
@@ -1738,42 +1751,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CloudMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="340"/>
         <source>Cloud Metrics</source>
         <translation>Wolkenmessung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="341"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="342"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="343"/>
         <source>Output file with tabular metric information</source>
         <translation>Ausgabedatei mit metrischer Tabelleninformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="344"/>
         <source>Above</source>
         <translation>Oben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="345"/>
         <source>First Impulse</source>
         <translation>Erster Impuls</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="346"/>
         <source>First Return</source>
         <translation>Erster Rückgabewert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="347"/>
         <source>Htmin</source>
         <translation>Htmin</translation>
     </message>
@@ -1781,37 +1794,37 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ColorRelief</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="352"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="353"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="354"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="355"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="356"/>
         <source>Color configuration file</source>
         <translation>Farbkonfigurationsdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="357"/>
         <source>Matching mode</source>
         <translation>Zuordnungsmodus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="351"/>
         <source>Color relief</source>
         <translation>Farbrelief</translation>
     </message>
@@ -1819,7 +1832,7 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CommanderWindow</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="361"/>
         <source>Missing dependency</source>
         <translation>Fehlende Abhängigkeit</translation>
     </message>
@@ -1827,57 +1840,57 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConcaveHull</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="367"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="368"/>
         <source>Threshold (0-1, where 1 is equivalent with Convex Hull)</source>
         <translation>Schwelle (0-1, bei der 1 der konvexen Hülle entspricht)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="369"/>
         <source>Allow holes</source>
         <translation>Löcher erlauben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="370"/>
         <source>Split multipart geometry into singleparts geometries</source>
         <translation>Mehrteilige in einzelteilige Geometrien zerlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="365"/>
         <source>Concave hull</source>
         <translation>Konkave Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="366"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="371"/>
         <source>Creating Delaunay triangles...</source>
         <translation>Erzeuge Delaunay-Dreiecke...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="372"/>
         <source>Computing edges max length...</source>
         <translation>Berechne Kantenmaximallänge...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="373"/>
         <source>Removing features...</source>
         <translation>Entferne Objekt...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="374"/>
         <source>Dissolving Delaunay triangles...</source>
         <translation>Löse Delaunay-Dreiecke auf...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="375"/>
         <source>Saving data...</source>
         <translation>Speichere Daten...</translation>
     </message>
@@ -1885,47 +1898,47 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConfigDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="379"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="380"/>
         <source>Setting</source>
         <translation>Einstellung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="381"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="382"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="383"/>
         <source>Models</source>
         <translation>Modelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="384"/>
         <source>Scripts</source>
         <translation>Skripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="385"/>
         <source>Providers</source>
         <translation>Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="386"/>
         <source>Wrong value</source>
         <translation>Falscher Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="387"/>
         <source>Wrong value for parameter "%s":
 
 %s</source>
@@ -1937,42 +1950,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>ConvexHull</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="395"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="396"/>
         <source>Field (optional, only used if creating convex hulls by classes)</source>
         <translation>Feld (optional, wird nur zur Erzeugung von konvexen Hüllen nach Klassen verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="397"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="391"/>
         <source>Convex hull</source>
         <translation>Konvexe Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="392"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="393"/>
         <source>Create single minimum convex hull</source>
         <translation>Einzelne konvexe Minimalhülle erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="394"/>
         <source>Create convex hulls based on field</source>
         <translation>Konvexe Hüllen auf Basis eines Eingabefelds erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="398"/>
         <source>Exception while computing convex hull</source>
         <translation>Ausnahme während Berechnung der konvexen Hülle</translation>
     </message>
@@ -2036,42 +2049,42 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Cover</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="403"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="404"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="405"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="406"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="407"/>
         <source>Heightbreak</source>
         <translation>Höhenbruch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="408"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="409"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="402"/>
         <source>Cover</source>
         <translation>Bedeckung</translation>
     </message>
@@ -2079,27 +2092,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateConstantRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="414"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="415"/>
         <source>Reference layer</source>
         <translation>Referenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="416"/>
         <source>Constant value</source>
         <translation>Konstanter Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="417"/>
         <source>Constant</source>
         <translation>Konstantes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="413"/>
         <source>Create constant raster layer</source>
         <translation>Konstanten Rasterlayer erzeugen</translation>
     </message>
@@ -2107,12 +2120,12 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateNewModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="421"/>
         <source>Create new model</source>
         <translation>Erzeuge neues Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="422"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -2120,7 +2133,7 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>CreateNewScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="426"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -2128,27 +2141,27 @@ Verarbeite Algorithmus %d/%d...</translation>
 <context>
     <name>Csv2Grid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="430"/>
         <source>Csv2Grid</source>
         <translation>CSV nach Grid</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="431"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="432"/>
         <source>CSV Files</source>
         <translation>CSV-Dateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="433"/>
         <source>Column</source>
         <translation>Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="434"/>
         <source>Raster Output file</source>
         <translation>Rasterausgabedatei</translation>
     </message>
@@ -2239,7 +2252,7 @@ Verarbeite Algorithmus %d/%d...</translation>
         <translation>Konnte kein gültiges eindeutiges Feld finden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="173"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
@@ -2249,399 +2262,399 @@ Verarbeite Algorithmus %d/%d...</translation>
         <translation>DB-Verwaltung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="49"/>
         <source>Select an empty schema for deletion.</source>
         <translation>Leeres zu löschendes Schema wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="51"/>
         <source>Select a table for editation.</source>
         <translation>Tabelle zur Bearbeitung wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="52"/>
         <source>Select a table/view for deletion.</source>
         <translation>Zu löschende Tabelle/Sicht wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="54"/>
         <source>Select a table to empty it.</source>
         <translation>Zu leerende Tabelle wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="56"/>
         <source>Select a table/view.</source>
         <translation>Tabelle/Sicht wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="158"/>
         <source>Server version: </source>
         <translation>Server-Version: </translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="70"/>
         <source>Host:</source>
         <translation>Server:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="71"/>
         <source>User:</source>
         <translation>Benutzer:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="89"/>
         <source>Library:</source>
         <translation>Bibliothek:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="92"/>
         <source><warning> geometry_columns table doesn't exist!
 This table is essential for many GIS applications for enumeration of tables.</source>
         <translation><warning> Tabelle geometry_columns nicht vorhanden!
 Diese Tabelle ist für viele GIS-Applikationen für die Bestimmung der Tabelle unverzichtbar.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="159"/>
         <source>create new schemas</source>
         <translation>Neue Schemata erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="160"/>
         <source>create temporary tables</source>
         <translation>Temporärtabellen erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="161"/>
         <source>Not connected</source>
         <translation>Nicht verbunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="162"/>
         <source>Connection details</source>
         <translation>Verbindungsdetails</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="131"/>
         <source>General info</source>
         <translation>Allgemeine Informationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="163"/>
         <source><warning> %s support not enabled!</source>
         <translation><warnung> Unterstützung für %s nicht aktiv!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="85"/>
         <source><warning> This user has no privileges!</source>
         <translation><warning> Dieser Benutzer hat keine Rechte!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="164"/>
         <source>User has privileges:</source>
         <translation>Benutzerrechte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="165"/>
         <source>Privileges</source>
         <translation>Rechte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="77"/>
         <source>Owner:</source>
         <translation>Besitzer:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="78"/>
         <source>Comment:</source>
         <translation>Kommentar:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="137"/>
         <source>Materialized View information</source>
         <translation>Materialisierte Sichtinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="166"/>
         <source>create new objects</source>
         <translation>Neue Objekte erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="167"/>
         <source>access objects</source>
         <translation>Zugriffsobjekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="168"/>
         <source>Schema details</source>
         <translation>Schemadetails</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="169"/>
         <source><warning> This user has no privileges to access this schema!</source>
         <translation><warning> Dieser Benutzer hat keine Zugriffsrechte für dieses Schema!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="73"/>
         <source>Relation type:</source>
         <translation>Beziehungsart:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="74"/>
         <source>View</source>
         <translation>Sicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="76"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="170"/>
         <source>Rows:</source>
         <translation>Zeilen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="84"/>
         <source>Unknown (<a href="action:rows/count">find out</a>)</source>
         <translation>Unbekannt (<a href="action:rows/count">Feststellen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="94"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="95"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="97"/>
         <source>Null</source>
         <translation>Null</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="98"/>
         <source>Default</source>
         <translation>Voreinstellung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="124"/>
         <source>Column(s)</source>
         <translation>Spalte(n)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="99"/>
         <source>Function</source>
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="132"/>
         <source><warning> This is not a spatial table.</source>
         <translation><warning> Keine räumliche Tabelle.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="133"/>
         <source>Fields</source>
         <translation>Felder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="134"/>
         <source>Constraints</source>
         <translation>Restriktionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="135"/>
         <source>Indexes</source>
         <translation>Indizes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="136"/>
         <source>Triggers</source>
         <translation>Trigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="171"/>
         <source>View definition</source>
         <translation>Definition anzeigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="148"/>
         <source>Column:</source>
         <translation>Spalte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="149"/>
         <source>Geometry:</source>
         <translation>Geometrie:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="151"/>
         <source>Dimension:</source>
         <translation>Dimension:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="152"/>
         <source>Undefined</source>
         <translation>Undefiniert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="153"/>
         <source>Spatial ref:</source>
         <translation>Räuml. Bez.:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="154"/>
         <source>Estimated extent:</source>
         <translation>Geschätzte Ausmaße:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="155"/>
         <source>(unknown) (<a href="action:extent/get">find out</a>)</source>
         <translation>Unbekannt (<a href="action:extent/get">Feststellen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="156"/>
         <source>Extent:</source>
         <translation>Grenzen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="172"/>
         <source><warning> No spatial index defined (<a href="action:spatialindex/create">create it</a>)</source>
         <translation><warning> Kein räumlicher Index definiert(<a href="action:spatialindex/create">Erzeugen</a>)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="75"/>
         <source>Materialized view</source>
         <translation>Materialisierte Sicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="79"/>
         <source>Pages:</source>
         <translation>Seiten:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="80"/>
         <source>Rows (estimation):</source>
         <translation>Zeilen (geschätzt):</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="81"/>
         <source>Privileges:</source>
         <translation>Rechte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="82"/>
         <source><warning> This user doesn't have usage privileges for this schema!</source>
         <translation><warning> Dieser Benutzer hat keine Nutzungsrechte für dieses Schema!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="83"/>
         <source>Rows (counted):</source>
         <translation>Zeilen (gezählt):</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="86"/>
         <source><warning> This user has read-only privileges.</source>
         <translation><warning> Dieser Benutzer hat nur Leserechte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="87"/>
         <source><warning> There's a significant difference between estimated and real row count. Consider running <a href="action:vacuumanalyze/run">VACUUM ANALYZE</a>.</source>
         <translation><warning> Es gibt einen signifikanten Unterschied zwischen der geschätzen und der wirklichen Zeilenanzahl. Erwägen Sie <a href="action:vacuumanalyze/run">VACUUM ANALYZE</a> auszuführen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="88"/>
         <source><warning> No primary key defined for this table!</source>
         <translation><warning> Kein Primärschlüssel für diese Tabelle definiert!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="90"/>
         <source>Scripts:</source>
         <translation>Skripte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="91"/>
         <source><warning> Version of installed scripts doesn't match version of released scripts!
 This is probably a result of incorrect PostGIS upgrade.</source>
         <translation><warning> Version der installierten Skripte entspricht nicht der der aktuellen Skripte!  Die ist wahrscheinlich Folge einer falschen PostGIS-Aktualisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="93"/>
         <source><warning> This user doesn't have privileges to read contents of geometry_columns table!
 This table is essential for many GIS applications for enumeration of tables.</source>
         <translation><warning> Der Benutzer hat keine Rechte die Tabelle geometry_columns zu lesen!
 Diese Tabelle ist für viele GIS-Applikationen für die Bestimmung der Tabelle unverzichtbar.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="96"/>
         <source>Length</source>
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="100"/>
         <source>Enabled</source>
         <translation>Eingeschaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="101"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="102"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="103"/>
         <source><a href="action:triggers/enable">Enable all triggers</a> / <a href="action:triggers/disable">Disable all triggers</a></source>
         <translation><a href="action:triggers/enable">Alle Trigger aktivieren</a> / <a href="action:triggers/disable">Alle Trigger deaktivieren</a></translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="104"/>
         <source>Definition</source>
         <translation>Definition</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="105"/>
         <source>Rules</source>
         <translation>Regeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="69"/>
         <source>&Versioning</source>
         <translation>&Versionierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="40"/>
         <source>&Table</source>
         <translation>&Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="106"/>
         <source>"{0}" not found</source>
         <translation>"{0}" nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="107"/>
         <source>Filename:</source>
         <translation>Dateiname:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="108"/>
         <source>SQLite version:</source>
         <translation>SQLIte-Version:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="29"/>
         <source>Error:
 %s</source>
         <translation>Fehler:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="30"/>
         <source>
 
 Query:
@@ -2652,332 +2665,332 @@ Abfrage:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="33"/>
         <source>&Re-connect</source>
         <translation>&Neu verbinden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="34"/>
         <source>&Database</source>
         <translation>&Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="35"/>
         <source>&Create schema</source>
         <translation>&Schema anlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="36"/>
         <source>&Schema</source>
         <translation>&Schema</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="37"/>
         <source>&Delete (empty) schema</source>
         <translation>(&Leeres) Schema löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="38"/>
         <source>Delete selected item</source>
         <translation>Lösche gewähltes Element</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="39"/>
         <source>&Create table</source>
         <translation>Tabelle &anlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="41"/>
         <source>&Edit table</source>
         <translation>Tabelle &bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="42"/>
         <source>&Delete table/view</source>
         <translation>Tabelle/Sicht l&öschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="43"/>
         <source>&Empty table</source>
         <translation>Tabelle &leeren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="44"/>
         <source>&Move to schema</source>
         <translation>In Schema &verschieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="45"/>
         <source>Cannot delete the selected item.</source>
         <translation>Konnte gewähltes Objekt nicht löschen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="46"/>
         <source>No database selected or you are not connected to it.</source>
         <translation>Keine Datenbank gewählt oder keine Verbindung möglich.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="47"/>
         <source>New schema</source>
         <translation>Neues Schema</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="48"/>
         <source>Enter new schema name</source>
         <translation>Neuen Schemanamen eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="31"/>
         <source>hey!</source>
         <translation>Hey!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="32"/>
         <source>Really remove connection to %s?</source>
         <translation>Verbindung zu %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="50"/>
         <source>Really delete schema %s?</source>
         <translation>Das Schema %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="53"/>
         <source>Really delete table/view %s?</source>
         <translation>Tabelle/Sicht %s wirklich löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="55"/>
         <source>Really delete all items from table %s?</source>
         <translation>Wirklich alle Elemente der Tabelle %s löschen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="57"/>
         <source>Do you want to %s all triggers?</source>
         <translation>Aktion %s auf alle Trigger ausführen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="58"/>
         <source>Table triggers</source>
         <translation>Tabellentrigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="59"/>
         <source>Do you want to %s trigger %s?</source>
         <translation>Aktion %s auf Trigger %s anwenden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="60"/>
         <source>Table trigger</source>
         <translation>Tabellentrigger</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="61"/>
         <source>Do you want to %s spatial index for field %s?</source>
         <translation>Aktion %s auf räumlichen Index für Feld %s ausführen?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="62"/>
         <source>Spatial Index</source>
         <translation>Räumlicher Index</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="63"/>
         <source>Check</source>
         <translation>Prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="64"/>
         <source>Primary key</source>
         <translation>Primärschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="65"/>
         <source>Foreign key</source>
         <translation>Fremdschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="66"/>
         <source>Unique</source>
         <translation>Eindeutig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="67"/>
         <source>Exclusion</source>
         <translation>Ausschluß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="68"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="109"/>
         <source>Table Index</source>
         <translation>Tabellenindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="72"/>
         <source>Database:</source>
         <translation>Datenbank:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="110"/>
         <source>SQLite list tables cache:</source>
         <translation>SQLite-Tabellencache:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="111"/>
         <source>Oracle            Spatial:</source>
         <translation>Oracle       Spatial:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="112"/>
         <source>Object type:</source>
         <translation>Objekttyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="113"/>
         <source>Creation Date:</source>
         <translation>Erzeugungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="114"/>
         <source>Last Modification Date:</source>
         <translation>Letztes Änderungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="115"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="116"/>
         <source>Column</source>
         <translation>Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="117"/>
         <source>Status</source>
         <translation>Status</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="118"/>
         <source>Validated</source>
         <translation>Überprüft</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="119"/>
         <source>Generated</source>
         <translation>Erzeugt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="120"/>
         <source>Check condition</source>
         <translation>Prüfungsbedingung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="121"/>
         <source>Foreign Table</source>
         <translation>Fremdtabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="122"/>
         <source>Foreign column</source>
         <translation>Fremdspalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="123"/>
         <source>On Delete</source>
         <translation>Beim Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="125"/>
         <source>Index Type</source>
         <translation>Indextyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="126"/>
         <source>Last analyzed</source>
         <translation>Zuletzt analysiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="127"/>
         <source>Compression</source>
         <translation>Kompression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="128"/>
         <source>Uniqueness</source>
         <translation>Eindeutigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="129"/>
         <source>Action</source>
         <translation>Aktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="130"/>
         <source>Event</source>
         <translation>Ereignis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="138"/>
         <source>Refresh Mode:</source>
         <translation>Aktualisierungsmodus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="139"/>
         <source>Refresh Method:</source>
         <translation>Aktualisierungsmethode:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="140"/>
         <source>Build Mode:</source>
         <translation>Erzeugungsmodus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="141"/>
         <source>Last Refresh Date:</source>
         <translation>Letztes Aktualisierungsdatum:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="142"/>
         <source>Last Refresh Type:</source>
         <translation>Letzter Aktualisierungstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="143"/>
         <source>Fast Refreshable:</source>
         <translation>Schnell aktualisierbar:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="144"/>
         <source>Staleness:</source>
         <translation>Ungültigkeit:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="145"/>
         <source>Stale since:</source>
         <translation>Ungültig seit:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="146"/>
         <source>Compile State:</source>
         <translation>Übersetzungsstatus:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="147"/>
         <source>Use no index:</source>
         <translation>Keinen Index nutzen:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="150"/>
         <source>QGis Geometry type:</source>
         <translation>QGIS-Geometrietyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/db_manager/python-i18n.cpp" line="157"/>
         <source><warning> There is no entry in geometry_columns!</source>
         <translation><warning> Kein Eintrag in geometry_columns!</translation>
     </message>
@@ -3046,22 +3059,22 @@ Abfrage:
 <context>
     <name>DTM2ASCII</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="438"/>
         <source>DTM to ASCII</source>
         <translation>DTM nach ASCII</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="439"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="440"/>
         <source>Input canopy surface (.dtm)</source>
         <translation>Eingabe Bodenbedeckung (.dtm)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="441"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
@@ -3069,22 +3082,22 @@ Abfrage:
 <context>
     <name>DTM2TIF</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="445"/>
         <source>DTM to TIF</source>
         <translation>DTM nach TIF</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="446"/>
         <source>Conversion</source>
         <translation>Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="447"/>
         <source>Input .dtm layer</source>
         <translation>Eingabe .dtm Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="448"/>
         <source>Output file name</source>
         <translation>Ausgabedateiname</translation>
     </message>
@@ -3092,32 +3105,32 @@ Abfrage:
 <context>
     <name>Datasources2Vrt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="453"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="454"/>
         <source>Input datasources</source>
         <translation>Eingabedatenquellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="455"/>
         <source>Overwrite output vrt</source>
         <translation>Ausgabe VRT überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="456"/>
         <source>Virtual vector</source>
         <translation>Virtueller Vektor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="457"/>
         <source>Virtual string</source>
         <translation>Virtuelle Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="452"/>
         <source>Build virtual vector</source>
         <translation>Virtuellen Vektor erzeugen</translation>
     </message>
@@ -3873,22 +3886,22 @@ laden</translation>
 <context>
     <name>Delaunay</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="463"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="460"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="461"/>
         <source>Delaunay triangulation</source>
         <translation>Delaunay-Triangulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="461"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="462"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="464"/>
         <source>Input file should contain at least 3 points. Choose another file and try again.</source>
         <translation>Eingabedatei sollte mindestens 3 Punkte enthalten. Eine andere Datei wählen und nochmal versuchen.</translation>
     </message>
@@ -3896,27 +3909,27 @@ laden</translation>
 <context>
     <name>DeleteColumn</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="469"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="470"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="471"/>
         <source>Field to delete</source>
         <translation>Zu löschendes Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="472"/>
         <source>Deleted column</source>
         <translation>Gelöschte Spalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="468"/>
         <source>Delete column</source>
         <translation>Spalte löschen</translation>
     </message>
@@ -3924,22 +3937,22 @@ laden</translation>
 <context>
     <name>DeleteDuplicateGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="477"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="478"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="479"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="476"/>
         <source>Delete duplicate geometries</source>
         <translation>Doppelte Geometrien löschen</translation>
     </message>
@@ -3947,22 +3960,22 @@ laden</translation>
 <context>
     <name>DeleteHoles</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="484"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="485"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="486"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="483"/>
         <source>Delete holes</source>
         <translation>Löcher löschen</translation>
     </message>
@@ -3970,17 +3983,17 @@ laden</translation>
 <context>
     <name>DeleteModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="490"/>
         <source>Delete model</source>
         <translation>Lösche Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="491"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="492"/>
         <source>Are you sure you want to delete this model?</source>
         <translation>Dieses Modell wirklich löschen?</translation>
     </message>
@@ -3988,17 +4001,17 @@ laden</translation>
 <context>
     <name>DeleteScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="496"/>
         <source>Delete script</source>
         <translation>Lösche Skript</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="497"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="498"/>
         <source>Are you sure you want to delete this script?</source>
         <translation>Dieses Skript wirklich löschen?</translation>
     </message>
@@ -4006,27 +4019,27 @@ laden</translation>
 <context>
     <name>DensifyGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="503"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="504"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="505"/>
         <source>Vertices to add</source>
         <translation>Zu ergänzende Stützpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="506"/>
         <source>Densified</source>
         <translation>Verdichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="502"/>
         <source>Densify geometries</source>
         <translation>Geometrien verdichten</translation>
     </message>
@@ -4034,27 +4047,27 @@ laden</translation>
 <context>
     <name>DensifyGeometriesInterval</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="511"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="512"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="513"/>
         <source>Interval between vertices to add</source>
         <translation>Intervall zwischen hinzuzufügenden Stützpunkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="514"/>
         <source>Densified</source>
         <translation>Verdichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="510"/>
         <source>Densify geometries given an interval</source>
         <translation>Geometrien mit gegebenem Intervall verdichten</translation>
     </message>
@@ -4063,19 +4076,19 @@ laden</translation>
     <name>Dialog</name>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="90"/>
         <source>Eliminate sliver polygons</source>
         <translation>Splitterpolygone entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="91"/>
         <source>common boundary</source>
         <translation>Gemeinsame Umgrenzung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="27"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="92"/>
         <source>Merge selection with the neighbouring polygon with the largest</source>
         <translation>Auswahl mit dem benachbarten Polygon mit dem größten verschmelzen</translation>
     </message>
@@ -4098,7 +4111,7 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="361"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="35"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="168"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="11"/>
         <source>Browse</source>
         <translation>Durchsuchen</translation>
     </message>
@@ -4108,7 +4121,7 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="28"/>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="28"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="14"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
@@ -4125,31 +4138,31 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="117"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="370"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="177"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="55"/>
         <source>Add result to canvas</source>
         <translation>Ergebnis der Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="103"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="93"/>
         <source>Selected features:</source>
         <translation>Gewählte Objekte:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmEliminate.ui" line="110"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="94"/>
         <source>area</source>
         <translation>Fläche</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="117"/>
         <source>Extract Nodes</source>
         <translation>Knoten extrahieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="118"/>
         <source>Input line or polygon vector layer</source>
         <translation>Polygon- oder Linieneingabelayer</translation>
     </message>
@@ -4157,38 +4170,38 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="87"/>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="56"/>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="44"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="12"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="139"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="123"/>
         <source>Save to new shapefile</source>
         <translation>In Shapedatei speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="146"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="152"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="124"/>
         <source>Output point shapefile</source>
         <translation>Ausgabepunktshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="119"/>
         <source>Tolerance</source>
         <translation>Toleranz</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="98"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="120"/>
         <source>Calculate using</source>
         <translation>Berechnen mit</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeometry.ui" line="117"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="122"/>
         <source>Calculate extent for each feature separately</source>
         <translation>Abmessung für jedes Objekt einzeln berechnen</translation>
     </message>
@@ -4198,43 +4211,43 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="81"/>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="37"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="121"/>
         <source>Use only selected features</source>
         <translation>Nur gewählte Objekte nutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="131"/>
         <source>Geoprocessing</source>
         <translation>Geodatenverarbeitung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="60"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="132"/>
         <source>Intersect layer</source>
         <translation>Layer verschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="115"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="134"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="155"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="135"/>
         <source>Buffer distance field</source>
         <translation>Pufferabstandsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="162"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="136"/>
         <source>Dissolve field</source>
         <translation>Auflösungsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="210"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="137"/>
         <source>Dissolve buffer results</source>
         <translation>Pufferergebnis auflösen</translation>
     </message>
@@ -4243,44 +4256,44 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="107"/>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="78"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="345"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="54"/>
         <source>Output shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmGeoprocessing.ui" line="92"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="133"/>
         <source>Segments to approximate</source>
         <translation>Zu approximierende Segmente</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="201"/>
         <source>Locate Line Intersections</source>
         <translation>Linienschnittpunkte bestimmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="247"/>
         <source>Input line layer</source>
         <translation>Linienlayereingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="42"/>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="178"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="248"/>
         <source>Intersect line layer</source>
         <translation>Schnittlinienlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmIntersectLines.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="249"/>
         <source>Intersect unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Schnitts</translation>
     </message>
@@ -4292,243 +4305,243 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="207"/>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="161"/>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="90"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="70"/>
         <source>Output Shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="205"/>
         <source>Generate Centroids</source>
         <translation>Zentroide erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="206"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="207"/>
         <source>Number of standard deviations</source>
         <translation>Anzahl der Standardabweichung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMeanCoords.ui" line="77"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="208"/>
         <source>Std. Dev.</source>
         <translation>Std.Abw.</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="150"/>
         <source>Merge shapefiles</source>
         <translation>Shapedateien zusammenführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="151"/>
         <source>Select by layers in the folder</source>
         <translation>Einzellayer aus Verzeichnis wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="152"/>
         <source>Shapefile type</source>
         <translation>Shapedateityp</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="37"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="153"/>
         <source>Polygon</source>
         <translation>Polygon</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="154"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="47"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="155"/>
         <source>Point</source>
         <translation>Punkt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="57"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="78"/>
         <source>Input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmMergeShapes.ui" line="99"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="156"/>
         <source>Add result to map canvas</source>
         <translation>Ergebnis der Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="176"/>
         <source>Create Distance Matrix</source>
         <translation>Distanzmatrix erstellen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="177"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="179"/>
         <source>Target point layer</source>
         <translation>Zielpunktlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="70"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="180"/>
         <source>Target unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Ziels</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="82"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="181"/>
         <source>Output matrix type</source>
         <translation>Typ der Ausgabematrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="88"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="182"/>
         <source>Linear (N*k x 3) distance matrix</source>
         <translation>Lineare (N*k x 3) Distanzmatrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="98"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="183"/>
         <source>Standard (N x T) distance matrix</source>
         <translation>Standard (N x T) Distanzmatrix</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="105"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="184"/>
         <source>Summary distance matrix (mean, std. dev., min, max)</source>
         <translation>Zusammenfassende Distanzmatrix (mtl, std.abw., min, max.)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="112"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="185"/>
         <source>Use only the nearest (k) target points</source>
         <translation>Nur (k) nächste Zielpunkte verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointDistance.ui" line="150"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="202"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="186"/>
         <source>Output distance matrix</source>
         <translation>Distanzmatrixausgabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="138"/>
         <source>Count Points In Polygons</source>
         <translation>Polygonpunkte zählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="178"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="141"/>
         <source>Input point vector layer attributes to aggregate</source>
         <translation>Punktlayerattribute zur Aggregation</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="129"/>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="179"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="113"/>
         <source>Input polygon vector layer</source>
         <translation>Eingabepolygonvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="177"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="140"/>
         <source>Input point vector layer</source>
         <translation>Eingabepunktvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="139"/>
         <source>Statistical method for attribute aggregation</source>
         <translation>Statistische Methode zur Attributaggregation</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="141"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="142"/>
         <source>Select columns</source>
         <translation>Spalten wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="158"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="143"/>
         <source>sum</source>
         <translation>Summe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="163"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="144"/>
         <source>stddev</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="168"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="145"/>
         <source>mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="173"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="184"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="146"/>
         <source>max</source>
         <translation>Maximum</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="178"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="185"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="147"/>
         <source>min</source>
         <translation>Minimum</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="196"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="149"/>
         <source>Output count field name</source>
         <translation>Anzahlausgabefeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmPointsInPolygon.ui" line="186"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="186"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="148"/>
         <source>PNTCNT</source>
         <translation>PKTCNT</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="231"/>
         <source>Generate Random Points</source>
         <translation>Zufällige Punkte erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="32"/>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="32"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="232"/>
         <source>Input Boundary Layer</source>
         <translation>Eingabegrenzlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="233"/>
         <source>Sample Size</source>
         <translation>Stichprobengröße</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="55"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="234"/>
         <source>Unstratified Sampling Design (Entire layer)</source>
         <translation>Ungeschichtete Zufallsprobenentnahme (gesamter Layer)</translation>
     </message>
@@ -4536,31 +4549,31 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="64"/>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="105"/>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="149"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="235"/>
         <source>Use this number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="96"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="236"/>
         <source>Stratified Sampling Design (Individual polygons)</source>
         <translation>Geschichtete Zufallsprobenentnahme (einzelnen Polygone)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="129"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="237"/>
         <source>Use this density of points</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandPoints.ui" line="162"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="238"/>
         <source>Use value from input field</source>
         <translation>Wert aus Eingabefeld verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="245"/>
         <source>Random Selection Tool</source>
         <translation>Zufälliges Auswahlwerkzeug</translation>
     </message>
@@ -4568,683 +4581,683 @@ laden</translation>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="23"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="25"/>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="161"/>
         <source>Input Vector Layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="33"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="55"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="163"/>
         <source>Randomly Select</source>
         <translation>Zufällig auswählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="42"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="164"/>
         <source>Number of Features</source>
         <translation>Objektanzahl</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="76"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="100"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="165"/>
         <source>Percentage of Features</source>
         <translation>Prozentualler Objektanteil</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRandom.ui" line="96"/>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="120"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="166"/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="83"/>
         <source>Projection Management Tool</source>
         <translation>Projektionsverwaltungswerkzeug</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="84"/>
         <source>Input spatial reference system</source>
         <translation>Räumliches Eingabebezugssystem</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="58"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="85"/>
         <source>Output spatial reference system</source>
         <translation>Räumliches Ausgabebezugssystem</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="64"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="86"/>
         <source>Use predefined spatial reference system</source>
         <translation>Vordefiniertes räumliches Bezugssystem benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="87"/>
         <source>Choose</source>
         <translation>Wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="92"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="88"/>
         <source>Import spatial reference system from existing layer</source>
         <translation>Räumliches Bezugssystem des vorhandenen Layers importieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmReProject.ui" line="109"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="89"/>
         <source>Import spatial reference system</source>
         <translation>Räumliches Bezugssystem importieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="251"/>
         <source>Generate Regular Points</source>
         <translation>Regelmäßige Punkte generieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="264"/>
         <source>Area</source>
         <translation>Bereich</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="45"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="265"/>
         <source>Input Coordinates</source>
         <translation>Eingabekoordinaten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="52"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="66"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="42"/>
         <source>X Min</source>
         <translation>X-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="66"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="93"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="43"/>
         <source>Y Min</source>
         <translation>Y-Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="80"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="120"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="44"/>
         <source>X Max</source>
         <translation>X-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="94"/>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="147"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="45"/>
         <source>Y Max</source>
         <translation>Y-Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="111"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="266"/>
         <source>Grid Spacing</source>
         <translation>Rasterabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="119"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="267"/>
         <source>Use this point spacing</source>
         <translation>Punktabstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="171"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="268"/>
         <source>Apply random offset to point spacing</source>
         <translation>Zufälligen Versatz auf Punktabstand anwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmRegPoints.ui" line="191"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="269"/>
         <source>Initial inset from corner (LH side)</source>
         <translation>Anfängliche Einsatz von Ecke (linke Seite)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="227"/>
         <source>Simplify geometries</source>
         <translation>Geometrien vereinfachen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="20"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="228"/>
         <source>Input line or polygon layer</source>
         <translation>Eingabelinien- oder -polygonlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="46"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="229"/>
         <source>Simplify tolerance</source>
         <translation>Vereinfachungstoleranz</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSimplify.ui" line="73"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="230"/>
         <source>Save to new file</source>
         <translation>In neuer Datei speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="239"/>
         <source>Build spatial index</source>
         <translation>Räumlicher Index erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="22"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="240"/>
         <source>Select files from disk</source>
         <translation>Dateien wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="29"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="241"/>
         <source>Select files...</source>
         <translation>Durchsuchen...</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="53"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="242"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="60"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="243"/>
         <source>Select none</source>
         <translation>Keine wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialIndex.ui" line="67"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="244"/>
         <source>Clear list</source>
         <translation>Liste leeren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="59"/>
         <source>Spatial Join</source>
         <translation>Räumliche Schneidung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="28"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="60"/>
         <source>Target vector layer</source>
         <translation>Zielvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="61"/>
         <source>Join vector layer</source>
         <translation>Aus Vektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="62"/>
         <source>Attribute Summary</source>
         <translation>Attributzusammenfassung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="89"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="63"/>
         <source>Mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="99"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="64"/>
         <source>Take summary of intersecting features</source>
         <translation>Zusammenfassung der schneidenden Objekte erstellen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="109"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="65"/>
         <source>Min</source>
         <translation>Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="119"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="66"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="129"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="67"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="139"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="68"/>
         <source>Max</source>
         <translation>Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="146"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="69"/>
         <source>Take attributes of first located feature</source>
         <translation>Attribute des ersten bestimmten Objekts verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="188"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="71"/>
         <source>Output table</source>
         <translation>Ausgabetabelle</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="194"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="72"/>
         <source>Only keep matching records</source>
         <translation>Nur passende Datensätze erhalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSpatialJoin.ui" line="204"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="73"/>
         <source>Keep all records (including non-matching target records)</source>
         <translation>Alle Datensätze erhalten (einschließlich nicht zutreffender Zieldatensätzen)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="14"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="160"/>
         <source>Random Selection From Within Subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSubsetSelect.ui" line="39"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="162"/>
         <source>Input subset field (unique ID field)</source>
         <translation>Eingabeuntermengenfeld (eindeutiges Schlüsselfeld)</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="112"/>
         <source>Sum Line Length In Polygons</source>
         <translation>Länge in Polygonen summieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="56"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="115"/>
         <source>Output summed length field name</source>
         <translation>Ausgabefeld für Liniensumme</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="63"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="116"/>
         <source>LENGTH</source>
         <translation>LÄNGE</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSumLines.ui" line="42"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="114"/>
         <source>Input line vector layer</source>
         <translation>Eingabelinienvektorlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="38"/>
         <source>Generate Vector Grid</source>
         <translation>Vektorgitter erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="39"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="41"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="40"/>
         <source>Update extents from layer</source>
         <translation>Layergrenzen aktualisieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="41"/>
         <source>Update extents from canvas</source>
         <translation>Layergrenzen aus aktueller Ansicht</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="169"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="46"/>
         <source>Align extents and resolution to selected raster layer</source>
         <translation>Ausmaße und Auflösung am gewählten Layer ausrichten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="179"/>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="26"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="243"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="521"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="522"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="198"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="48"/>
         <source>X</source>
         <translation>X</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="221"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="49"/>
         <source>Lock 1:1 ratio</source>
         <translation>1:1 Verhältnis festhalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="260"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="50"/>
         <source>Y</source>
         <translation>Y</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="286"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="51"/>
         <source>Output grid as polygons</source>
         <translation>Gitter als Polygone ausgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="296"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="52"/>
         <source>Output grid as lines</source>
         <translation>Gitter als Linien ausgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorGrid.ui" line="316"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="53"/>
         <source>Rotation angle in degrees</source>
         <translation>Drehwinkel in Grad</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="10"/>
         <source>Vector Split</source>
         <translation>Vektorteilung</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVectorSplit.ui" line="57"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="13"/>
         <source>Output folder</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="17"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="209"/>
         <source>List Unique Values</source>
         <translation>Eindeutige Werte auflisten</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="53"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="210"/>
         <source>Target field</source>
         <translation>Zielfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="67"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="211"/>
         <source>Unique values list</source>
         <translation>Eindeutige Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="115"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="212"/>
         <source>Unique value count</source>
         <translation>Anzahl eindeutiger Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="145"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="214"/>
         <source>Save errors location</source>
         <translation>Fehlerpositionen speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmVisual.ui" line="131"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="213"/>
         <source>Press Ctrl+C to copy results to the clipboard</source>
         <translation>Strg+C drücken, um die Ergebnisse in
 die Zwischenablage zu kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="194"/>
         <source>Vector grid</source>
         <translation>Vektorgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="196"/>
         <source>Please select a raster layer</source>
         <translation>Bitte einen Rasterlayer auswählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="197"/>
         <source>Unable to compute extents aligned on selected raster layer</source>
         <translation>Konnte auf gewähltes Raster ausgerichtete Ausmaße nicht berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="198"/>
         <source>Please specify valid extent coordinates</source>
         <translation>Bitte gültige Grenzkoordinaten angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="100"/>
         <source>Please specify output shapefile</source>
         <translation>Bitte Ausgabeshapedatei angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="199"/>
         <source>Invalid extent coordinates entered</source>
         <translation>Ungültige Grenzkoordinaten angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="246"/>
         <source>Random selection</source>
         <translation>Zufällige Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="158"/>
         <source>No input shapefile specified</source>
         <translation>Keine Eingabeshapedatei angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="250"/>
         <source>Regular points</source>
         <translation>Regelmäßige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="129"/>
         <source>Please specify input layer</source>
         <translation>Bitte Eingabelayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="252"/>
         <source>Please properly specify extent coordinates</source>
         <translation>Bitte Ausgabegrenzkoordinaten genau angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="270"/>
         <source>Mean coordinates</source>
         <translation>Mittlere Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="271"/>
         <source>Standard distance</source>
         <translation>Standardabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="272"/>
         <source>(Optional) Weight field</source>
         <translation>(Optionales) Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="273"/>
         <source>(Optional) Unique ID field</source>
         <translation>(Optionales) Eindeutiges ID-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="274"/>
         <source>Coordinate statistics</source>
         <translation>Koordinatenstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="275"/>
         <source>No input vector layer specified</source>
         <translation>Keinen Eingabevektorlayer angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="35"/>
         <source>There were %d vertices in original dataset which
 were reduced to %d vertices after simplification</source>
         <translation>%d Stützpunkte des ursprünglichen Datenbestands
 wurden auf %d Stützpunkte vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="23"/>
         <source>Processing of the following layers/files ended with error:<br><br></source>
         <translation>Verarbeitung der folgenden Layer/Dateien endete mit Fehler:<br><br></translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="104"/>
         <source>Join attributes by location</source>
         <translation>Attribute nach Position zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="105"/>
         <source>Please specify target vector layer</source>
         <translation>Bitte Zielvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="106"/>
         <source>Please specify join vector layer</source>
         <translation>Bitte zusammenzuführenden Vektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="107"/>
         <source>Please specify at least one summary statistic</source>
         <translation>Bitte mindestens eine Zusammenfassungsstatistik angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="101"/>
         <source>CRS warning!</source>
         <translation>KBS-Warnung!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="102"/>
         <source>Warning: Input layers have non-matching CRS.
 This may cause unexpected results.</source>
         <translation>Warnung: Eingabelayer haben nicht das gleiche KBS.
 Dies kann zu unerwarteten Ergebnissen führen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="109"/>
         <source>Summary field</source>
         <translation>Zusammenfassungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="110"/>
         <source>Error deleting shapefile</source>
         <translation>Fehler beim Löschen der Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="222"/>
         <source>Sum line lengths</source>
         <translation>Linienlängen summieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="223"/>
         <source>Sum Line Lengths In Polyons</source>
         <translation>Länge in Polygonen summieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="97"/>
         <source>Please specify input polygon vector layer</source>
         <translation>Bitte Eingabepolygonvektorlayer wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="224"/>
         <source>Please specify input line vector layer</source>
         <translation>Bitte Eingabelinienvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="225"/>
         <source>Please specify output length field</source>
         <translation>Bitte Ausgabelängenfeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="226"/>
         <source>length field</source>
         <translation>Längenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="111"/>
         <source>Can't delete existing shapefile
 %s</source>
         <translation>Kann vorhandene Shapedateien nicht löschen
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="157"/>
         <source>Split vector layer</source>
         <translation>Vektorlayer teilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="22"/>
         <source>Cancel</source>
         <translation>Abbruch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="26"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="95"/>
         <source>Count Points in Polygon</source>
         <translation>Punkte in Polygon zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="96"/>
         <source>Count Points In Polygon</source>
         <translation>Punkte in Polygonen zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="98"/>
         <source>Please specify input point vector layer</source>
         <translation>Bitte Eingabepunktvektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="99"/>
         <source>Please specify output count field</source>
         <translation>Bitte Ausgabezählfeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="56"/>
         <source>Random selection within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="32"/>
         <source>Can't delete file %s</source>
         <translation>Kann Datei %s nicht löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="37"/>
         <source>Error loading output shapefile:
 %s</source>
         <translation>Fehler beim Laden der Ausgabeshapedatei:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="108"/>
         <source>Created output shapefile:
 %s
 
@@ -5255,232 +5268,232 @@ Would you like to add the new layer to the TOC?</source>
 Soll sie dem Projekt als neuer Layer hinzugefügt werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="57"/>
         <source>Please specify input vector layer</source>
         <translation>Bitte Eingabevektorlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="58"/>
         <source>Please specify an input field</source>
         <translation>Bitte Eingabefeld angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="259"/>
         <source>Defined Projection For:
 %s.shp</source>
         <translation>Definierte Projektion für:
 %s.shp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="187"/>
         <source>Random Points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="188"/>
         <source>No input layer specified</source>
         <translation>Kein Eingabelayer angegeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="189"/>
         <source>unstratified</source>
         <translation>nicht geschichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="190"/>
         <source>stratified</source>
         <translation>geschichtet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="191"/>
         <source>density</source>
         <translation>Dichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="192"/>
         <source>field</source>
         <translation>Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="193"/>
         <source>Unknown layer type...</source>
         <translation>Unbekannter Layertyp...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="167"/>
         <source>Selected features: %s</source>
         <translation>Gewählte Objekte: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="170"/>
         <source>Commit error:
 %s</source>
         <translation>Commit-Fehler:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="173"/>
         <source>Could not replace geometry of feature with id %s</source>
         <translation>Konnte Geometrie des Objektes %s nicht ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="174"/>
         <source>Could not eliminate features with these ids:
 %s</source>
         <translation>Konnte Objekte mit folgenden Dateien nicht eliminieren:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="103"/>
         <source>Created output shapefile:
 %s</source>
         <translation>Ausgabeshapedatei erzeugt:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="200"/>
         <source>Line intersections</source>
         <translation>Linienschnittpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="202"/>
         <source>Please specify input line layer</source>
         <translation>Bitte Eingabelinienlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="203"/>
         <source>Please specify line intersect layer</source>
         <translation>Bitte Schnittlinienlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="159"/>
         <source>Created output shapefiles in folder:
 %s</source>
         <translation>Ausgabeshapedateien erzeugt im Ordner:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="20"/>
         <source>Please specify input unique ID field</source>
         <translation>Bitte Eingabefeld für eindeutigen ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="204"/>
         <source>Please specify intersect unique ID field</source>
         <translation>Bitte Feld für eindeutige Schnitt-ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="33"/>
         <source>Currently QGIS doesn't allow simultaneous access from different threads to the same datasource. Make sure your layer's attribute tables are closed. Continue?</source>
         <translation>Gegenwärtig erlaubt QGIS keine gleichzeitigen Zugriff von verschiedenen Threads auf die gleiche Datenquelle. Bitte sicherstellen, dass keine Attributtabellen geöffnet sind. Fortfahren?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="15"/>
         <source>Distance matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="16"/>
         <source>Create Point Distance Matrix</source>
         <translation>Punktabstandsmatrix erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="17"/>
         <source>Please specify input point layer</source>
         <translation>Bitte den Eingabelayer wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="18"/>
         <source>Please specify output file</source>
         <translation>Bitte Ausgabedatei angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="19"/>
         <source>Please specify target point layer</source>
         <translation>Bitte Zielpunktlayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="21"/>
         <source>Please specify target unique ID field</source>
         <translation>Bitte Zielfeld für eindeutigen ID angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="24"/>
         <source>Finished</source>
         <translation>Abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="25"/>
         <source>Processing completed.</source>
         <translation>Verarbeitung abgeschlossen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="74"/>
         <source>Select directory with shapefiles to merge</source>
         <translation>Verzeichnis der zusammenzuführenden Shapedateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="75"/>
         <source>No shapefiles found</source>
         <translation>Keine Shapedateien gefunden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="76"/>
         <source>There are no shapefiles in this directory. Please select another one.</source>
         <translation>Es gibt keine Shapedateien in diesem Verzeichnis. Bitte ein anderes wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="77"/>
         <source>Input files</source>
         <translation>Eingabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="79"/>
         <source>No output file</source>
         <translation>Keine Ausgabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="80"/>
         <source>Please specify output file.</source>
         <translation>Bitte eine Ausgabedatei angeben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="81"/>
         <source>There are no shapefiles with the given geometry type. Please select an available geometry type.</source>
         <translation>Es gibt keine Shapedatei des gegebenen Geometrietyps. Bitte wählen einen verfügbaren Geometrietyp wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="31"/>
         <source>Delete error</source>
         <translation>Fehler beim Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="82"/>
         <source>Merging</source>
         <translation>Beim Zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="253"/>
         <source>Define current projection</source>
         <translation>Aktuelle Projektion definieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="254"/>
         <source>Missing or invalid CRS</source>
         <translation>Fehlendes oder ungültiges KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="255"/>
         <source>Please specify spatial reference system</source>
         <translation>Bitte räumliches Bezugssystem angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="256"/>
         <source>Cannot define projection for PostGIS data...yet!</source>
         <translation>Kann Projektionsdaten für PostGIS-Daten nicht definieren...noch!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="257"/>
         <source>Identical output spatial reference system chosen
 
 Are you sure you want to proceed?</source>
@@ -5489,200 +5502,198 @@ Are you sure you want to proceed?</source>
 Soll wirklich fortgefahren werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="258"/>
         <source>Output spatial reference system is not valid</source>
         <translation>Räumliches Ausgabebezugssystem ist ungültig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="260"/>
         <source>Please select the projection system that defines the current layer.</source>
         <translation>Bitte Projektionssystem für den aktuellen Layer wählen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="261"/>
         <source>Layer CRS information will be updated to the selected CRS.</source>
         <translation>Layer-KBS-Information wird auf das gewählte KBS aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="262"/>
         <source>Export to new projection</source>
         <translation>In neue Projektion exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="263"/>
         <source>No Valid CRS selected</source>
         <translation>Kein gültiges KBS gewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="195"/>
         <source>Layer and project have different CRS!
 Results may be wrong.</source>
         <translation>Layer und Projekt haben unterschiedliche KBS!
 Ergebnisse könnten falsch sein.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="27"/>
         <source>Densify geometries</source>
         <translation>Geometrien verdichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="28"/>
         <source>Vertices to add</source>
         <translation>Zu ergänzende Stützpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="29"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="30"/>
         <source>Please specify an input layer</source>
         <translation>Bitte einen Eingabelayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="34"/>
         <source>Simplify results</source>
         <translation>Ergebnisse vereinfachen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="36"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="125"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="126"/>
         <source>adding to current selection</source>
         <translation>Zur aktuellen Auswahl hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="127"/>
         <source>removing from current selection</source>
         <translation>Aus aktueller Auswahl entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="32"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="128"/>
         <source>Select by location</source>
         <translation>Nach Position auswählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="40"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="215"/>
         <source>Select features in:</source>
         <translation>Objekte wählen in:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="54"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="216"/>
         <source>that intersect features in:</source>
         <translation>die Objekte schneiden in:</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="76"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="218"/>
         <source>Include input features that touch the selection features</source>
         <translation>Eingabeobjekte einschließen, die die gewählten Objekte berührt</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="83"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="219"/>
         <source>Include input features that overlap/cross the selection features</source>
         <translation>Eingabeobjekte einschließen, die die gewählten Objekte überlagern oder kreuzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="90"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="220"/>
         <source>Include input features completely within the selection features</source>
         <translation>Eingabeobjekte einschließen, die ganz in den gewählten Objekten liegen</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="97"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="221"/>
         <source>Only selected features</source>
         <translation>Nur gewählte Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="130"/>
         <source>Please specify select layer</source>
         <translation>Bitte Auswahllayer angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="168"/>
         <source>Eliminate</source>
         <translation>Entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="169"/>
         <source>No selection in input layer</source>
         <translation>Keine Auswahl auf Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="171"/>
         <source>Error creating output file</source>
         <translation>Fehler beim Erzeugen des Ausgabelayers</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="172"/>
         <source>Could not delete features</source>
         <translation>Konnte Objekte nicht löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="175"/>
         <source>Could not add features</source>
         <translation>Konnte Objekte nicht hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/DlgMessage.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="521"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="523"/>
         <source>Log</source>
         <translation>Protokoll</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="62"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="523"/>
+        <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="59"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="524"/>
         <source>Help</source>
         <translation>Hilfe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgAlgorithmBase.ui" line="75"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="524"/>
         <source>about:blank</source>
-        <translation>about:blank</translation>
+        <translation type="obsolete">about:blank</translation>
     </message>
     <message>
         <location filename="../python/plugins/fTools/tools/frmSelectByLocation.ui" line="66"/>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="217"/>
         <source>Include input features that intersect the selection features</source>
         <translation>Eingabeobjekte einschließen, die sich mit gewählten Objekte überschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="518"/>
         <source> output table</source>
         <translation>Ausgabetabelle</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="519"/>
         <source>Select connection and schema</source>
         <translation>Verbindung und Schema wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgPostgisTableSelector.ui" line="41"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="520"/>
         <source>Table name</source>
         <translation>Tabellenname</translation>
     </message>
@@ -5701,16 +5712,30 @@ Ergebnisse könnten falsch sein.</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="532"/>
-        <source>Input layer has unsupported geometry type {}</source>
-        <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+        <source>Ignore invalid input features</source>
+        <translation>Ungültige Eingabeobjekte ignorieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="533"/>
+        <source>Feature with NULL geometry found.</source>
+        <translation>Objekt mit Leergeometrie gefunden.</translation>
+    </message>
+    <message>
+        <source>Input layer has unsupported geometry type {}</source>
+        <translation type="obsolete">Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="534"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="535"/>
+        <source>Features with invalid geometries found. Please fix these errors or specify the "Ignore invalid input features" flag</source>
+        <translation>Objekte mit ungültiger Geometrie gefunden.  Bitte diese Fehler reparieren oder "Ungültige Eingabeobjekte ignorieren" aktivieren</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="536"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
@@ -5729,57 +5754,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistDown</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="540"/>
         <source>D-Infinity Distance Down</source>
         <translation>D-Infinity Entfernung nach unten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="541"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="542"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="543"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="544"/>
         <source>Stream Raster Grid</source>
         <translation>Stromrastergitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="545"/>
         <source>Weight Path Grid</source>
         <translation>Pfadgewichtungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="546"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="547"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="548"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="549"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Abstand nach unten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="550"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5787,57 +5812,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistDownMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="554"/>
         <source>D-Infinity Distance Down (multifile)</source>
         <translation>D-Infinity Entfernung nach unten (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="555"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="556"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="557"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="558"/>
         <source>Stream Raster Grid</source>
         <translation>Stromrastergitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="559"/>
         <source>Weight Path Grid</source>
         <translation>Pfadgewichtungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="560"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="561"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="562"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="563"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="564"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5845,52 +5870,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistUp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="570"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="571"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="572"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="573"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="574"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="575"/>
         <source>Proportion Threshold</source>
         <translation>Anteils Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="576"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="568"/>
         <source>D-Infinity Distance Up</source>
         <translation>D-Infinity Entfernung hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="569"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="577"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5898,57 +5923,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfDistUpMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="581"/>
         <source>D-Infinity Distance Up (multifile)</source>
         <translation>D-Infinity Entfernung nach oben (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="580"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="582"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="581"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="583"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="584"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="585"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="586"/>
         <source>Statistical Method</source>
         <translation>Statistische Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="587"/>
         <source>Distance Method</source>
         <translation>Distanz Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="588"/>
         <source>Proportion Threshold</source>
         <translation>Anteils Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="589"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="588"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="590"/>
         <source>D-Infinity Distance Up</source>
         <translation>D-Infinity Entfernung hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="591"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -5956,52 +5981,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="595"/>
         <source>D-Infinity Transport Limited Accumulation</source>
         <translation>D-Infinity transportbegrenzte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="596"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="597"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="598"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="599"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="600"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="601"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="602"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="603"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="604"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6009,62 +6034,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum2</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="608"/>
         <source>D-Infinity Transport Limited Accumulation - 2</source>
         <translation>D-Infinity transportbegrenzte Akkumulation - 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="609"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="610"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="611"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="612"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="613"/>
         <source>Input Concentration Grid</source>
         <translation>Eingangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="614"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="615"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="616"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="617"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="618"/>
         <source>Output Concentration Grid</source>
         <translation>Ausgangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="619"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6072,62 +6097,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccum2Multi</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="623"/>
         <source>D-Infinity Transport Limited Accumulation - 2 (multifile)</source>
         <translation>D-Infinity transportbegrenzte Akkumulation - 2 (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="624"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="625"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="626"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="627"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="628"/>
         <source>Input Concentration Grid</source>
         <translation>Eingangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="629"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="630"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="631"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="632"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="633"/>
         <source>Output Concentration Grid</source>
         <translation>Ausgangs Konzentrationsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="634"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6135,52 +6160,52 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DinfTransLimAccumMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="638"/>
         <source>D-Infinity Transport Limited Accumulation (multifile)</source>
         <translation>D-Infinity transportbegrenzte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="639"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="640"/>
         <source>D-Infinity Flow Direction Grid</source>
         <translation>D-Infinity Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="641"/>
         <source>Supply Grid</source>
         <translation>Versorgungsnetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="642"/>
         <source>Transport Capacity Grid</source>
         <translation>Transportkapazitätsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="643"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="644"/>
         <source>Check for edge contamination</source>
         <translation>Kantenverunreinigung prüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="645"/>
         <source>Transport Limited Accumulation Grid</source>
         <translation>Transportbegrenztes Akkumulations Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="646"/>
         <source>Deposition Grid</source>
         <translation>Ablagerungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="647"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -6188,27 +6213,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Dissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="655"/>
         <source>Geometry exception while dissolving</source>
         <translation>Geometrieausnahme während Zerlegung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="652"/>
         <source>Dissolve all (do not use field)</source>
         <translation>Alle auflösen (Feld nicht nutzen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="653"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="651"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="654"/>
         <source>Dissolved</source>
         <translation>Aufgelöst</translation>
     </message>
@@ -6230,37 +6255,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgAutofill</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="659"/>
         <source>Autofill settings</source>
         <translation>Autofülleinstellungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="660"/>
         <source>Autofill mode</source>
         <translation>Autofüllmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="28"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="661"/>
         <source>Do not autofill</source>
         <translation>Nicht automatisch füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="33"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="662"/>
         <source>Fill with numbers</source>
         <translation>Mit Zahlen füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="38"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="663"/>
         <source>Fill with parameter values</source>
         <translation>Mit Parameterwerten füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgAutofill.ui" line="49"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="664"/>
         <source>Parameter to use</source>
         <translation>Zu benutzender Parameter</translation>
     </message>
@@ -6269,13 +6294,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgConfig</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgConfig.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="668"/>
         <source>Processing options</source>
         <translation>Verarbeitungsoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgConfig.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="669"/>
         <source>Enter setting name to filter list</source>
         <translation>Einstellungsname eingeben, um Liste zu filtern</translation>
     </message>
@@ -6418,7 +6443,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgFixedTable</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgFixedTable.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="673"/>
         <source>Fixed table</source>
         <translation>Feste Tabelle</translation>
     </message>
@@ -6427,39 +6452,35 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgGetScriptsAndModels</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgGetScriptsAndModels.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="677"/>
         <source>Get scripts and models</source>
         <translation>Skripte und Modelle laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgGetScriptsAndModels.ui" line="86"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="676"/>
         <source>about:blank</source>
-        <translation>about:blank</translation>
+        <translation type="obsolete">about:blank</translation>
     </message>
 </context>
 <context>
     <name>DlgHelpEdition</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="681"/>
         <source>Help editor</source>
         <translation>Hilfeeditor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="31"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="681"/>
         <source>about:blank</source>
-        <translation>about:blank</translation>
+        <translation type="obsolete">about:blank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="47"/>
+        <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="43"/>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="682"/>
         <source>Select element to edit</source>
         <translation>Element zur Bearbeitung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="82"/>
+        <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="78"/>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="683"/>
         <source>Element description</source>
         <translation>Elementbeschreibung</translation>
@@ -6696,23 +6717,21 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
         <translation>Ergebnisse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/ui/DlgResults.ui" line="53"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="729"/>
         <source>about:blank</source>
-        <translation>about:blank</translation>
+        <translation type="obsolete">about:blank</translation>
     </message>
 </context>
 <context>
     <name>DlgScriptEditor</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="732"/>
         <source>Script editor</source>
         <translation>Skript-Editor</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
@@ -6728,127 +6747,127 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="196"/>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="212"/>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="232"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="738"/>
         <source>Save as...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="95"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="740"/>
         <source>Edit script help</source>
         <translation>Skripthilfe bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="115"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="741"/>
         <source>Run algorithm</source>
         <translation>Algorithmus ausführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="138"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="743"/>
         <source>Cut</source>
         <translation>Ausschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="154"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="745"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="170"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="747"/>
         <source>Paste</source>
         <translation>Einfügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="193"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="749"/>
         <source>Undo</source>
         <translation>Zurücknehmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="209"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="751"/>
         <source>Redo</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="40"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
         <source>Open script</source>
         <translation>Skript öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="46"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
         <source>Ctrl+O, Return</source>
         <translation>Strg+O, Eingabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="62"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="737"/>
         <source>Ctrl+S</source>
         <translation>Strg+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="78"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="739"/>
         <source>Ctrl+Shift+S</source>
         <translation>Strg+Umschalt+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="121"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="742"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="144"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="744"/>
         <source>Ctrl+X</source>
         <translation>Strg+X</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="160"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
         <source>Ctrl+C</source>
         <translation>Strg+C</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="176"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="748"/>
         <source>Ctrl+V</source>
         <translation>Strg+V</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="199"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="750"/>
         <source>Ctrl+Z</source>
         <translation>Strg+Z</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="215"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
         <source>Ctrl+Shift+Z</source>
         <translation>Strg+Umschalt+Z</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="249"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="754"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="753"/>
         <source>A+</source>
         <translation>A+</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="259"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="754"/>
         <source>A-</source>
         <translation>A-</translation>
     </message>
@@ -7008,67 +7027,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="758"/>
         <source>Stream Drop Analysis</source>
         <translation>Gewässergefälleanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="759"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="760"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="761"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="762"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="763"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="764"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="765"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="766"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="767"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="768"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="769"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="770"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -7076,67 +7095,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysisMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="774"/>
         <source>Stream Drop Analysis (multifile)</source>
         <translation>Gewässergefälleanalyse (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="775"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="776"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="777"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="778"/>
         <source>Pit Filled Elevation Grid</source>
         <translation>Höhengitter mit gefüllten Löchern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="779"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="780"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="781"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="782"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="783"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="784"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="785"/>
         <source>D-Infinity Drop to Stream Grid</source>
         <translation>D-Infinity Sende and Strom Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="786"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -7144,7 +7163,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="790"/>
         <source>Edit model</source>
         <translation>Editiere Modell</translation>
     </message>
@@ -7152,7 +7171,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="794"/>
         <source>Edit script</source>
         <translation>Editiere Skript</translation>
     </message>
@@ -7178,112 +7197,112 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Eliminate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="799"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="800"/>
         <source>Largest area</source>
         <translation>Größte Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="801"/>
         <source>Smallest Area</source>
         <translation>Kleinste Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="802"/>
         <source>Largest common boundary</source>
         <translation>Größte gemeinsame Grenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="803"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
         <source>Use current selection in input layer (works only if called from toolbox)</source>
         <translation>Aktuelle Auswahl des Eingabelayers verwenden (funktionert nur aus Werkzeugkasten heraus)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
         <source>Comparison</source>
         <translation>Vergleich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="807"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
         <source>Merge selection with the neighbouring polygon with the</source>
         <translation>Vereinige Auswahl mit dem Nachbarpolygon mit den</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
         <source>Cannot convert "%s" to integer</source>
         <translation>Kann "%s" nicht in Integer umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
         <source>Cannot convert "%s" to float</source>
         <translation>Kann "%s" nicht in float umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
         <source>Cannot convert "%s" to unicode</source>
         <translation>Kann "%s" nicht in unicode umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
         <source>Cannot convert "%s" to date with system date format %s</source>
         <translation>Kann "%s" nicht in Datum mit Systemdatumsformat %s umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="814"/>
         <source>Cannot convert "%s" to date with format string "%s"</source>
         <translation>Kann "%s" nicht in Datum im Format "%s" umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="815"/>
         <source>Enter the date and the date format, e.g. "07.26.2011" "MM.dd.yyyy".</source>
         <translation>Bitte Datum und Format eingeben, z.B.: "07.26.2011" "MM.dd.yyyy".</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="816"/>
         <source>"%s" can only be used with string fields</source>
         <translation>"%s" kann nur mit Textfeldern verwendet werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="817"/>
         <source>Error in selection input: %s</source>
         <translation>Fehler in der Auswahleingabe: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="818"/>
         <source>%s: (No selection in input layer "%s")</source>
         <translation>%s: (Keine Auswahl in Eingabelayer "%s")</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="819"/>
         <source>Could not replace geometry of feature with id %s</source>
         <translation>Konnte Geometrie des Objektes %s nicht ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="798"/>
         <source>Eliminate sliver polygons</source>
         <translation>Splitterpolygone beseitigen</translation>
     </message>
@@ -7291,27 +7310,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EquivalentNumField</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="824"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="823"/>
         <source>Add unique value index field</source>
         <translation>Feld mit eindeutigem Klassenindex hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="824"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="825"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="826"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="827"/>
         <source>Layer with index field</source>
         <translation>Layer mit eindeutigem Klassenindex</translation>
     </message>
@@ -7319,22 +7338,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExampleAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="831"/>
         <source>Create copy of layer</source>
         <translation>Layerkopie erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="833"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="832"/>
         <source>Algorithms for vector layers</source>
         <translation>Algorithmen für Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="833"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="834"/>
         <source>Output layer with selected features</source>
         <translation>Eingabelayer mit gewählten Objekten</translation>
     </message>
@@ -7342,62 +7361,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="838"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="839"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="840"/>
         <source>Additional input datasources (called input1, .., inputN in the query)</source>
         <translation>Zusätzliche Eingabedatenquellen (in der Abfrage input1, .., inputN genannt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="842"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="841"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="842"/>
         <source>Unique identifier field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="843"/>
         <source>Geometry field</source>
         <translation>Geometriefeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="844"/>
         <source>Autodetect</source>
         <translation>Automatisch feststellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="845"/>
         <source>No geometry</source>
         <translation>Keine Geometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="846"/>
         <source>Geometry type</source>
         <translation>Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="847"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="849"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="848"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="850"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="849"/>
         <source>Empty SQL. Please enter valid SQL expression and try again.</source>
         <translation>Leerer SQL-Ausdruck. Bitte einen gültigen SQL-Ausdruck eingeben und wiederholen.</translation>
     </message>
@@ -7405,22 +7424,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Explode</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="854"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="855"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="856"/>
         <source>Exploded</source>
         <translation>Explodiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="853"/>
         <source>Explode lines</source>
         <translation>Linien sprengen</translation>
     </message>
@@ -7428,42 +7447,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExportGeometryInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
         <source>Layer CRS</source>
         <translation>Layer-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="863"/>
         <source>Project CRS</source>
         <translation>Projekt-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="864"/>
         <source>Ellipsoidal</source>
         <translation>Ellipsenförmig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="865"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="866"/>
         <source>Calculate using</source>
         <translation>Berechnen mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="867"/>
         <source>Added geom info</source>
         <translation>Geometrieinfo ergänzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="860"/>
         <source>Export/Add geometry columns</source>
         <translation>Geometriespalte exportieren/hinzufügen</translation>
     </message>
@@ -7471,27 +7490,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentFromLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
         <source>Calculate extent for each feature separately</source>
         <translation>Abmessung für jedes Objekt einzeln berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="875"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="871"/>
         <source>Polygon from layer extent</source>
         <translation>Polygon aus Layergrenzen</translation>
     </message>
@@ -7499,42 +7518,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="879"/>
         <source>[Leave blank to use min covering extent]</source>
         <translation>[Freilassen, um min Abdeckungsumfang zu nutzen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="880"/>
         <source>Use layer/canvas extent</source>
         <translation>Benutze Layer/Leinwand Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="881"/>
         <source>Select extent on canvas</source>
         <translation>Wähle Ausdehnung auf Leinwand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="882"/>
         <source>Use min covering extent from input layers</source>
         <translation>Benutze minimale Abdeckungsausmasse von Eingangslayern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
         <source>Select extent</source>
         <translation>Ausdehnung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
         <source>Use extent from</source>
         <translation>Ausdehnung verwenden aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="885"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="886"/>
         <source>The projection of the chosen layer is not the same as canvas projection! The selected extent might not be what was intended.</source>
         <translation>Die Projekt des gewählten Layers entspricht nicht der Kartenprojektion! Die gewählten Grenzen könnte nicht die beabsichtigten sein.</translation>
     </message>
@@ -7542,57 +7561,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
         <source>begins with</source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="896"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="897"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="898"/>
         <source>Extracted (attribute)</source>
         <translation>Extrahiert (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="899"/>
         <source>Operators %s can be used only with string fields.</source>
         <translation>Operatoren %s könnte nur in Textfeldern verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="900"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="890"/>
         <source>Extract by attribute</source>
         <translation>Nach Attribut extrahieren</translation>
     </message>
@@ -7600,37 +7619,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="906"/>
         <source>Layer to select from</source>
         <translation>Auswählen von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="907"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="910"/>
         <source>Extracted (location)</source>
         <translation>Extrahiert (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="904"/>
         <source>Extract by location</source>
         <translation>Nach Position extrahieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="905"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="908"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
@@ -7638,22 +7657,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractNodes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="915"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="916"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="917"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="914"/>
         <source>Extract nodes</source>
         <translation>Knoten extrahieren</translation>
     </message>
@@ -7661,22 +7680,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractProjection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
         <source>Input file</source>
         <translation>Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="924"/>
         <source>Create also .prj file</source>
         <translation>Auch .prj-Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="921"/>
         <source>Extract projection</source>
         <translation>Projektion extrahieren</translation>
     </message>
@@ -7685,43 +7704,43 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>FieldsCalculator</name>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="928"/>
         <source>Field calculator</source>
         <translation>Feldrechner</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="929"/>
         <source>Create a new field</source>
         <translation>Neues Feld anlegen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="59"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="930"/>
         <source>Output field name</source>
         <translation>Ausgabefeldname</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="931"/>
         <source>Output field type</source>
         <translation>Ausgabefeldtyp</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="85"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="932"/>
         <source>Output field width</source>
         <translation>Ausgabefeldbreite</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="95"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="933"/>
         <source>Width of complete output. For example 123,456 means 6 as field width.</source>
         <translation>Breite der kompletten Ausgabe. Zum  Beispiel bedeutet 123,456 eine Feldbreite von 6.</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="108"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
@@ -7733,96 +7752,96 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="165"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
         <source>Update existing field</source>
         <translation>Vorhandenes Feld erneuern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="195"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
         <source>Output file</source>
         <translation>Ausgabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="205"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="954"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="939"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="940"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="941"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="942"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="943"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="946"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="947"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="940"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="948"/>
         <source>Create new field</source>
         <translation>Neues Feld erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="949"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="950"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
         <source>Evaluation error: %s</source>
         <translation>Auswertungsfehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
         <source>An error occurred while evaluating the calculation string:
 %s</source>
         <translation>Ein Fehler trat bei der Auswertung der Formel auf:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="953"/>
         <source>Field name is not set. Please enter a field name</source>
         <translation>Feldname ist nicht gesetzt. Bitte Feldname eingeben</translation>
     </message>
@@ -7830,17 +7849,17 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsCalculatorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="957"/>
         <source>[Save to temporary file]</source>
         <translation>[In Temporärdatei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="958"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="959"/>
         <source>Unable to execute algorithm</source>
         <translation>Konnte Anweisung nicht ausführen</translation>
     </message>
@@ -7848,44 +7867,44 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsMapper</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="965"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="966"/>
         <source>Fields mapping</source>
         <translation>Feldabbildung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
         <source>Refactored</source>
         <translation>Faktoriert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
         <source>Parser error in expression "{}": {}</source>
         <translation>Fehler in Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
         <source>Evaluation error in expression "{}": {}</source>
         <translation>Auswertungsfehler bei Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="970"/>
         <source>An error occurred while evaluating the calculation string:
 </source>
         <translation>Ein Fehler trat auf bei der Auswertung von:
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="963"/>
         <source>Refactor fields</source>
         <translation>Felder überarbeiten</translation>
     </message>
@@ -7893,67 +7912,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsPyculator</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="982"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="981"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="982"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="983"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="984"/>
         <source>Global expression</source>
         <translation>Globaler Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="985"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="986"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
         <source>FieldPyculator code execute error.Global code block can't be executed!
 %s
 %s</source>
@@ -7962,7 +7981,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="988"/>
         <source>FieldPyculator code execute error.Field code block can't be executed!
 %s
 %s</source>
@@ -7971,14 +7990,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="989"/>
         <source>FieldPyculator code execute error
 Field code block does not return '%s1' variable! Please declare this variable in your code!</source>
         <translation>FieldPyculator-Code Ausführungsfehler
 Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren sie diese Variable im Code!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="974"/>
         <source>Advanced Python field calculator</source>
         <translation>Erweiterter Python-Feldrechner</translation>
     </message>
@@ -7986,22 +8005,22 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FileDirectorySelector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="993"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="996"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
@@ -8009,12 +8028,12 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FileSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1000"/>
         <source>Select folder</source>
         <translation>Wähle Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1001"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
@@ -8022,32 +8041,32 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FilterData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1005"/>
         <source>Filter Data outliers</source>
         <translation>Datenausreißer filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
         <source>Standard Deviation multiplier</source>
         <translation>Standardabweichungsfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
         <source>Window size</source>
         <translation>Fenstergröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1011"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1010"/>
         <source>Output filtered LAS file</source>
         <translation>Gefilterte LAS-Ausgabedatei</translation>
     </message>
@@ -8055,27 +8074,27 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FirstLastReturn</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1014"/>
         <source>First&Last Return</source>
         <translation>Erste&letzte Rückgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
         <source>Use LAS info</source>
         <translation>LAS-Info verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1019"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1018"/>
         <source>Output layers</source>
         <translation>Ausgabelayer</translation>
     </message>
@@ -8083,37 +8102,37 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedDistanceBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1025"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1026"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1027"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1028"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1022"/>
         <source>Fixed distance buffer</source>
         <translation>Puffer festen Abstands</translation>
     </message>
@@ -8121,17 +8140,17 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedTableDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1032"/>
         <source>Add row</source>
         <translation>Zeile hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1033"/>
         <source>Remove row(s)</source>
         <translation>Zeile(n) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1034"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
@@ -8139,7 +8158,7 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FixedTablePanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1039"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1038"/>
         <source>Fixed table %dx%d</source>
         <translation>Fixe Tabelle %dx%d</translation>
     </message>
@@ -8154,7 +8173,7 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/widgetParametersPanel.ui" line="14"/>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
@@ -8168,199 +8187,199 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="29"/>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="39"/>
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="42"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1058"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1070"/>
         <source>Toggle advanced mode</source>
         <translation>Erweiteter Modus umgeschaltet</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1069"/>
         <source>Add row</source>
         <translation>Zeile hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="55"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1071"/>
         <source>Remove row(s)</source>
         <translation>Zeile(n) entfernen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="100"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1072"/>
         <source>Open</source>
         <translation>Öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetBatchPanel.ui" line="113"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1073"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="36"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1075"/>
         <source>Iterate over this layer</source>
         <translation>Iteriere über diesen Layer</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="39"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1057"/>
         <source>Open number input dialog</source>
         <translation>Zahleneingabedialog öffnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetParametersPanel.ui" line="44"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1074"/>
         <source>Advanced parameters</source>
         <translation>Fortgeschrittene Parameter</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1075"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1067"/>
         <source>Min</source>
         <translation>Min</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetRangeSelector.ui" line="65"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1076"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1068"/>
         <source>Max</source>
         <translation>Max</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="20"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1042"/>
         <source>Fields</source>
         <translation>Felder</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="43"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1043"/>
         <source>Add new field</source>
         <translation>Neues Feld hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="46"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
         <source>add</source>
         <translation>hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="53"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
         <source>Delete selected field</source>
         <translation>Gewähltes Feld löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
         <source>delete</source>
         <translation>löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="63"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1047"/>
         <source>Move selected field up</source>
         <translation>Gewähltes Feld nach oben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="66"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1048"/>
         <source>up</source>
         <translation>oben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="73"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1049"/>
         <source>Move selected field down</source>
         <translation>Gewähltes Feld nach unten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="76"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1050"/>
         <source>down</source>
         <translation>unten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="83"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1051"/>
         <source>Reset all fields</source>
         <translation>Alle Felder zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="86"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
         <source>reset</source>
         <translation>zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="112"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
         <source>Load fields from layer</source>
         <translation>Felder aus Layer laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="135"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
         <source>Load fields from selected layer</source>
         <translation>Felder des gewählten Layers laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/widgetFieldsMapping.ui" line="138"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
         <source>Load fields</source>
         <translation>Felder laden</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="23"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1059"/>
         <source>equals</source>
         <translation>entspricht</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="30"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1060"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="37"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1064"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1061"/>
         <source>touches</source>
         <translation>berührt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="44"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1065"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
         <source>intersects</source>
         <translation>schneidet sich mit</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="51"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1066"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1063"/>
         <source>within</source>
         <translation>innerhalb</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="58"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1064"/>
         <source>overlaps</source>
         <translation>überlappt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="65"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1068"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1065"/>
         <source>crosses</source>
         <translation>kreuzt</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetGeometryPredicateSelector.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1066"/>
         <source>disjoint</source>
         <translation>getrennt</translation>
     </message>
@@ -8368,14 +8387,14 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
 <context>
     <name>FusionAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1079"/>
         <source>Fusion folder is not configured.
 Please configure it before running Fusion algorithms.</source>
         <translation>Fusion Verzeichnis ist nicht konfiguriert.
 Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1080"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -8383,7 +8402,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>FusionUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1084"/>
         <source>Fusion execution console output</source>
         <translation>Konsolenausgabe der Fusion-Ausführung</translation>
     </message>
@@ -8391,7 +8410,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalAlgorithmDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1088"/>
         <source>Run as batch process...</source>
         <translation>Als Batchprozeß starten...</translation>
     </message>
@@ -8399,7 +8418,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalOgrAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1092"/>
         <source>GDAL/OGR</source>
         <translation>GDAL/OGR</translation>
     </message>
@@ -8407,17 +8426,17 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1096"/>
         <source>GDAL/OGR console call</source>
         <translation>GDAL/OGR Aufruf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1098"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1097"/>
         <source>[temporary file]</source>
         <translation>[temporäre Datei]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1098"/>
         <source>Invalid value for parameter '%s'</source>
         <translation>Ungültiger Wert für Parameter '%s'</translation>
     </message>
@@ -8425,42 +8444,42 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalTools</name>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="62"/>
         <source>&Input directory</source>
         <translation>&Eingabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="63"/>
         <source>&Output directory</source>
         <translation>&Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="67"/>
         <source>The selected file is not a supported OGR format</source>
         <translation>Die gewählte Datei hat kein von OGR unterstütztes Format</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="64"/>
         <source>The process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.</source>
         <translation>Der Prozess konnte nicht gestartet werden. Entweder fehlt das aufgerufene Programm oder Sie haben unzureichende Berechtigungen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="65"/>
         <source>The process crashed some time after starting successfully.</source>
         <translation>Der Prozess brach nach einiger Zeit nach erfolgreichem Start ab.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="66"/>
         <source>An unknown error occurred.</source>
         <translation>Ein unbekannter Fehler trat auf.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="10"/>
         <source>Plugin error</source>
         <translation>Erweiterungs-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="11"/>
         <source>Unable to load {0} plugin. 
 The required "{1}" module is missing. 
 Install it and try again.</source>
@@ -8469,254 +8488,254 @@ Das erforderliche Modul "{1}" fehlt.
 Bitte installieren und nocheinmal versuchen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="12"/>
         <source>QGIS version detected: </source>
         <translation>Festgestellte QGIS-Version: </translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="13"/>
         <source>This version of Gdal Tools requires at least QGIS version 1.0.0
 Plugin will not be enabled.</source>
         <translation>Dies GdalTools-Version erfordert mindestens QGIS-Version 1.0.0
 Erweiterung wird nicht aktiviert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="14"/>
         <source>Projections</source>
         <translation>Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="15"/>
         <source>Warp (Reproject)...</source>
         <translation>Transformieren (Reprojizieren)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="17"/>
         <source>Assign Projection...</source>
         <translation>Projektion zuweisen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="19"/>
         <source>Extract Projection...</source>
         <translation>Projektion extrahieren...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="22"/>
         <source>Rasterize (Vector to Raster)...</source>
         <translation>Rastern (Vektor nach Raster)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="24"/>
         <source>Polygonize (Raster to Vector)...</source>
         <translation>Vektorisieren (Raster nach Vektor)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="26"/>
         <source>Translate (Convert Format)...</source>
         <translation>Übersetzen (Format konvertieren)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="28"/>
         <source>RGB to PCT...</source>
         <translation>RGB nach PCT...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="30"/>
         <source>PCT to RGB...</source>
         <translation>PCT nach RGB...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="33"/>
         <source>Contour...</source>
         <translation>Kontur...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="35"/>
         <source>Clipper...</source>
         <translation>Clipper...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="37"/>
         <source>Sieve...</source>
         <translation>Sieben...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="39"/>
         <source>Near Black...</source>
         <translation>Fast schwarz...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="41"/>
         <source>Fill nodata...</source>
         <translation>"Leerwert" füllen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="43"/>
         <source>Proximity (Raster Distance)...</source>
         <translation>Nachbarschaft (Rasterabstand)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="45"/>
         <source>Grid (Interpolation)...</source>
         <translation>Gitter (Interpolation)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="47"/>
         <source>DEM (Terrain Models)...</source>
         <translation>DHM (Geländemodelle)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="50"/>
         <source>Build Virtual Raster (Catalog)...</source>
         <translation>Virtuelles Raster erzeugen (Katalog)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="52"/>
         <source>Merge...</source>
         <translation>Verschmelzen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="54"/>
         <source>Information...</source>
         <translation>Informationen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="56"/>
         <source>Build Overviews (Pyramids)...</source>
         <translation>Übersichten erzeugen (Pyramiden)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="58"/>
         <source>Tile Index...</source>
         <translation>Kachelindex...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="60"/>
         <source>GdalTools Settings...</source>
         <translation>GdalTools-Einstellungen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="16"/>
         <source>Warp an image into a new coordinate system</source>
         <translation>Ein Bild auf ein neues Koordinatensystem bringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="18"/>
         <source>Add projection info to the raster</source>
         <translation>Fügt einem Raster Projektionsinformation hinzu</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="20"/>
         <source>Extract projection information from raster(s)</source>
         <translation>Projektionsinformationen aus Raster(n) extrahieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="21"/>
         <source>Conversion</source>
         <translation>Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="23"/>
         <source>Burns vector geometries into a raster</source>
         <translation>Brennt Vektorgeometrien in ein Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="25"/>
         <source>Produces a polygon feature layer from a raster</source>
         <translation>Erzeugt einen Polygonlayer aus einem Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="27"/>
         <source>Converts raster data between different formats</source>
         <translation>Wandelt Rasterdaten zwischen verschiedenen Formaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="29"/>
         <source>Convert a 24bit RGB image to 8bit paletted</source>
         <translation>Ein 24-Bit-RGB-Bild in ein Bild mit 8-Bit-Palette umrechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="31"/>
         <source>Convert an 8bit paletted image to 24bit RGB</source>
         <translation>Ein Bild mit 8-Bit-Palette in RGB umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="32"/>
         <source>Extraction</source>
         <translation>Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="34"/>
         <source>Builds vector contour lines from a DEM</source>
         <translation>Konturlinien aus einem DHM erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="36"/>
         <source>Analysis</source>
         <translation>Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="38"/>
         <source>Removes small raster polygons</source>
         <translation>Entfernt kleine Rasterpolygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="40"/>
         <source>Convert nearly black/white borders to exact value</source>
         <translation>Konvertiert ein fast schwarz-weiß Bild auf den genauen Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="42"/>
         <source>Fill raster regions by interpolation from edges</source>
         <translation>Rasterregionen mit interpolierten Kanten füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="44"/>
         <source>Produces a raster proximity map</source>
         <translation>Erzeugt eine Rasternachbarschaftskarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="46"/>
         <source>Create raster from the scattered data</source>
         <translation>Ein Raster aus gestreuten Daten bilden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="48"/>
         <source>Tool to analyze and visualize DEMs</source>
         <translation>Werkzeug zur DHM-Analyse und -Anzeige</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="49"/>
         <source>Miscellaneous</source>
         <translation>Sonstiges</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="51"/>
         <source>Builds a VRT from a list of datasets</source>
         <translation>Erzeugt ein VRT aus einer Liste von Datensätzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="53"/>
         <source>Build a quick mosaic from a set of images</source>
         <translation>Erzeugt ein schnelles Mosaik aus einem Bildersatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="55"/>
         <source>Lists information about raster dataset</source>
         <translation>Information zur einem Rasterdatensatz anzeigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="57"/>
         <source>Builds or rebuilds overview images</source>
         <translation>Erzeugt oder aktualisiert Übersichtsbilder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="59"/>
         <source>Build a shapefile as a raster tileindex</source>
         <translation>Shapedatei als Rasterkachelindex erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="61"/>
         <source>Various settings for Gdal Tools</source>
         <translation>Verschiedene Einstellungen der GDAL-Werkzeuge</translation>
     </message>
@@ -8845,177 +8864,177 @@ Wollen Sie ihn trotzdem abbrechen?</translation>
     <name>GdalToolsDialog</name>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="106"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="29"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="107"/>
         <source>&Load into canvas when finished</source>
         <translation>Nach Abschluss zur &Karte hinzufügen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="66"/>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="69"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="108"/>
         <source>Edit</source>
         <translation>Bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="82"/>
         <location filename="../python/plugins/GdalTools/tools/dialogBase.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="109"/>
         <source>Reset</source>
         <translation>Zurücksetzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="113"/>
         <source>Extract projection</source>
         <translation>Projektion extrahieren</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="114"/>
         <source>Batch mode (for processing whole directory)</source>
         <translation>Stapelverarbeitungsmodus (zur Bearbeitung eines ganzen Verzeichnisses)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="29"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="115"/>
         <source>&Input file</source>
         <translation>&Eingabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="44"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="116"/>
         <source>Recurse subdirectories</source>
         <translation>Unterverzeichnisse durchsuchen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/dialogExtractProjection.ui" line="51"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="117"/>
         <source>Create also prj file</source>
         <translation>Auch eine .prj-Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="156"/>
         <source>Select the file for DEM</source>
         <translation>Datei des DHM wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="102"/>
         <source>Select the raster file to save the results to</source>
         <translation>Rasterdatei zur Speicherung der Ergebnisse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="157"/>
         <source>Select the color configuration file</source>
         <translation>Farbkonfigurationsdatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="125"/>
         <source>Select the input file for Grid</source>
         <translation>Eingabedatei für Gitter wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="118"/>
         <source>Select the input file for Rasterize</source>
         <translation>Eingabe für Rasterierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="101"/>
         <source>Select the input file for Sieve</source>
         <translation>Eingabedatei für Sieben wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="158"/>
         <source>Select the input file for Warp</source>
         <translation>Eingabedatei für Entzerrung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="159"/>
         <source>Select the mask file</source>
         <translation>Maskendatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="160"/>
         <source>Select the input directory with files to Warp</source>
         <translation>Eingabeverzeichnis der zu entzerrenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="138"/>
         <source>Select the output directory to save the results to</source>
         <translation>Ausgabeverzeichnis für Speicherung der Ergebnisse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="119"/>
         <source>Output size or resolution required</source>
         <translation>Ausgabegröße oder -auflösung erforderlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="120"/>
         <source>The output file doesn't exist. You must set up the output size or resolution to create it.</source>
         <translation>Die Ausgabedatei ist nicht vorhanden. Eine Ausgabegröße oder -auflösung muß zum Anlegen angegeben werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="136"/>
         <source>Select the input file for Translate</source>
         <translation>Eingabedatei für Konvertierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="137"/>
         <source>Select the input directory with files to Translate</source>
         <translation>Eingabeverzeichnis der zu konvertierenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="139"/>
         <source>Translate - srcwin</source>
         <translation>Transformation - Quellfenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="140"/>
         <source>Image coordinates (pixels) must be integer numbers.</source>
         <translation>Bildkoordinaten (Pixel) sind ganzzahlig.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="141"/>
         <source>Translate - prjwin</source>
         <translation>Transformation - Projektionsfenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="142"/>
         <source>Image coordinates (geographic) must be numbers.</source>
         <translation>Bildkoordinaten (Pixel) sind numerisch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="162"/>
         <source>Select the input directory with raster files</source>
         <translation>Eingabeverzeichnis mit Rasterdateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="163"/>
         <source>Select where to save the TileIndex output</source>
         <translation>Ort für Speicherung der Kachelindexausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="153"/>
         <source>Convert paletted image to RGB</source>
         <translation>Palettenbild in RGB umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="154"/>
         <source>Select the input file for convert</source>
         <translation>Eingabedatei für Konvertierung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="155"/>
         <source>Select the input directory with files for convert</source>
         <translation>Eingabeverzeichnis der zu konvertierenden Dateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="105"/>
         <source>Select the file to analyse</source>
         <translation>Zu analysierende Datei wählen</translation>
     </message>
@@ -9025,126 +9044,126 @@ Wollen Sie ihn trotzdem abbrechen?</translation>
         <translation>Eingabeverzeichnis mit Dateien wählen, denen eine Projektion zugewiesen werden soll</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="103"/>
         <source>Copy</source>
         <translation>Kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="104"/>
         <source>Copy all</source>
         <translation>Alle kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="123"/>
         <source>Select the input file for Polygonize</source>
         <translation>Eingabedatei für Polygonisieren wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="143"/>
         <source>Select the files for VRT</source>
         <translation>Dateien für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="144"/>
         <source>Select where to save the VRT</source>
         <translation>Speicherort für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="145"/>
         <source>VRT (*.vrt)</source>
         <translation>VRT (*.vrt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="146"/>
         <source>Select the input directory with files for VRT</source>
         <translation>Eingabeverzeichnis mit Dateien für VRT wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="126"/>
         <source>Select the input file for Near Black</source>
         <translation>Eingabedatei für Fast-Schwarz wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="127"/>
         <source>Select the input file</source>
         <translation>Eingabedatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="128"/>
         <source>Select the input directory with files</source>
         <translation>Eingabeverzeichnis mit Daten wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="129"/>
         <source>Select the files to Merge</source>
         <translation>Dateien zum Zusammenführen wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="130"/>
         <source>Error retrieving the extent</source>
         <translation>Fehler bei der Ausdehnungsbestimmung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="131"/>
         <source>GDAL was unable to retrieve the extent from any file. 
 The "Use intersected extent" option will be unchecked.</source>
         <translation>GDAL konnte die Ausdehnung aus keiner Datei bestimmen. 
 Option "Geschnittene Ausdehnung verwenden" wird deaktiviert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="132"/>
         <source>Empty extent</source>
         <translation>Ausdehnung leer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="133"/>
         <source>The computed extent is empty. 
 Disable the "Use intersected extent" option to have a nonempty output.</source>
         <translation>Die berechnete Ausdehnung ist leer. 
 Deaktivieren Sie die Option "Geschnittene Ausdehnung verwenden" um eine nicht leere Ausgabe zu erhalten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="134"/>
         <source>Select where to save the Merge output</source>
         <translation>Ort für Speicherung der Zusammenführung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="135"/>
         <source>Select the input directory with files to Merge</source>
         <translation>Verzeichnis zu den zusammenzuführenden Dateien angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="149"/>
         <source>{0} not created.</source>
         <translation>{0} nicht angelegt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="152"/>
         <source>Select the files to analyse</source>
         <translation>Dateien zur Analyse wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="121"/>
         <source>Select the input file for Contour</source>
         <translation>Eingabedatei für Kontur wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="122"/>
         <source>Select where to save the Contour output</source>
         <translation>Ort für Speicherung der Kontur wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="161"/>
         <source>Select the input file for Proximity</source>
         <translation>Eine Eingabedatei für Nähe wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="147"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="148"/>
         <source>Warning: CRS information for all raster in subfolders will be rewritten. Are you sure?</source>
         <translation>Warnung: KBS-Information für alle Raster in Unterverzeichnissen werden überschrieben.  Sind Sie sicher?</translation>
     </message>
@@ -9159,17 +9178,17 @@ Deaktivieren Sie die Option "Geschnittene Ausdehnung verwenden" um ein
         <translation>Verarbeitung abgeschlossen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="150"/>
         <source>Assign projection</source>
         <translation>Projektion zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="151"/>
         <source>This raster already found in map canvas</source>
         <translation>Das Raster ist bereits in der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="124"/>
         <source>Select where to save the Polygonize output</source>
         <translation>Ort für Speicherung der Polygonisierungsausgabe wählen</translation>
     </message>
@@ -9354,27 +9373,27 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
     <name>GdalToolsWidget</name>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="274"/>
         <source>Build Virtual Raster (Catalog)</source>
         <translation>Virtuelles Raster erzeugen (Katalog)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="280"/>
         <source>Use visible raster layers for input</source>
         <translation>Sichtbare Rasterlayer als Eingabe nutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="68"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="278"/>
         <source>Choose input directory instead of files</source>
         <translation>Eingabeverzeichnis statt Dateien wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="51"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="28"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="276"/>
         <source>&Input files</source>
         <translation>&Eingabedateien</translation>
     </message>
@@ -9383,7 +9402,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="78"/>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="52"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="32"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="208"/>
         <source>Recurse subdirectories</source>
         <translation>Unterverzeichnisse durchsuchen</translation>
     </message>
@@ -9400,74 +9419,74 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="38"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="45"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="45"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="220"/>
         <source>&Output file</source>
         <translation>&Ausgabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="78"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="279"/>
         <source>Target SRS</source>
         <translation>Ziel-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="92"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="281"/>
         <source>&Resolution</source>
         <translation>&Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="109"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="282"/>
         <source>Highest</source>
         <translation>Höchste</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="114"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="283"/>
         <source>Average</source>
         <translation>Mittlere</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="119"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="284"/>
         <source>Lowest</source>
         <translation>Niedrigste</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="146"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="286"/>
         <source>Select</source>
         <translation>Wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="127"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="285"/>
         <source>&Source No Data</source>
         <translation>&Quellleerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="61"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="277"/>
         <source>Se&parate</source>
         <translation>Ge&trennt</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="31"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="275"/>
         <source>Allow projection difference</source>
         <translation>Unterschiedliche Projektionen zulassen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="371"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="365"/>
         <source>Clipper</source>
         <translation>Clipper</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="67"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="334"/>
         <source>&No data value</source>
         <translation>&Leerwert</translation>
     </message>
@@ -9475,50 +9494,50 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="31"/>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="26"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="294"/>
         <source>&Input file (raster)</source>
         <translation>&Eingabedatei (Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="366"/>
         <source>Clipping mode</source>
         <translation>Ausschnittsmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="192"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="368"/>
         <source>X Resolution</source>
         <translation>X-Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="221"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="375"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="369"/>
         <source>Y Resolution</source>
         <translation>Y-Auflösung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="253"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="376"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="370"/>
         <source>Set output file resolution</source>
         <translation>Auflösung der Ausgabedatei setzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="371"/>
         <source>Keep resolution of input raster</source>
         <translation>Auflösung des Eingaberasters beibehalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="286"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="378"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="372"/>
         <source>Crop the extent of the target dataset to the extent of the cutline</source>
         <translation>Ausmaße des Zieldatensatzes auf die Ausmaße der Schnittlinie abschneiden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="315"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="804"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="351"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="356"/>
         <source>Extent</source>
         <translation>Grenzen</translation>
     </message>
@@ -9526,55 +9545,55 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="152"/>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="328"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="181"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="233"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetClipper.ui" line="136"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="373"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="367"/>
         <source>Create an output alpha band</source>
         <translation>Einen Alpha-Kanal erzeugen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="293"/>
         <source>Contour</source>
         <translation>Kontur</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="295"/>
         <source>&Output file for contour lines (vector)</source>
         <translation>&Ausgabedatei für Konturlinien (Vektor)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="296"/>
         <source>I&nterval between contour lines</source>
         <translation>I&ntervall zwischen Konturlinien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="297"/>
         <source>&Attribute name</source>
         <translation>&Attributname</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="88"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="298"/>
         <source>If not provided, no elevation attribute is attached.</source>
         <translation>Wenn nicht angegeben, wird kein Höhenattribut zugefügt.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetContour.ui" line="102"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="299"/>
         <source>ELEV</source>
         <translation>HOEHE</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="379"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="317"/>
         <source>Convert RGB image to paletted</source>
         <translation>RGB-Bild auf Palette konvertieren</translation>
     </message>
@@ -9585,7 +9604,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="26"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="26"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="26"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="286"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="205"/>
         <source>Batch mode (for processing whole directory)</source>
         <translation>Stapelverarbeitungsmodus (zur Bearbeitung eines ganzen Verzeichnisses)</translation>
     </message>
@@ -9599,176 +9618,176 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="28"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="35"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="207"/>
         <source>&Input file</source>
         <translation>&Eingabedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="318"/>
         <source>Number of colors</source>
         <translation>Farbanzahl</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetConvert.ui" line="82"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="319"/>
         <source>Band to convert</source>
         <translation>Umzuwandelnder Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="246"/>
         <source>DEM (Terrain models)</source>
         <translation>DHM (Geländemodelle)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="31"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="247"/>
         <source>&Input file (DEM raster)</source>
         <translation>&Eingabedatei (DHM-Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="51"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="248"/>
         <source>&Band</source>
         <translation>&Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="65"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="249"/>
         <source>Compute &edges</source>
         <translation>Kanten &berechnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="72"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="250"/>
         <source>Use Zevenbergen&&Thorne formula (instead of the Horn's one)</source>
         <translation>Zevenbergen&&Thornesche (statt Hornsche) Formel verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="85"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="251"/>
         <source>&Mode</source>
         <translation>&Modus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="105"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="252"/>
         <source>Hillshade</source>
         <translation>Schummerung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="110"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="253"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="115"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="254"/>
         <source>Aspect</source>
         <translation>Perspektive</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="120"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="255"/>
         <source>Color relief</source>
         <translation>Farbrelief</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="125"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="256"/>
         <source>TRI (Terrain Ruggedness Index)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="130"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="257"/>
         <source>TPI (Topographic Position Index)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="135"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="258"/>
         <source>Roughness</source>
         <translation>Rauhigkeit</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="145"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="259"/>
         <source>Mode Options</source>
         <translation>Modusoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="164"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="260"/>
         <source>Z factor (vertical exaggeration)</source>
         <translation>Z-Faktor (Vertikale Überhöhung)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="187"/>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="267"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="261"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="210"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="262"/>
         <source>Azimuth of the light</source>
         <translation>Azimut des Lichts</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="233"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="263"/>
         <source>Altitude of the light</source>
         <translation>Höhe des Lichts</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="264"/>
         <source>Slope expressed as percent (instead of as degrees)</source>
         <translation>Steigung in Prozent (statt Grad)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="307"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="265"/>
         <source>Return trigonometric angle (instead of azimuth)</source>
         <translation>Trigonometrischen Winkel (statt Azimut) zurückgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="314"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="266"/>
         <source>Return 0 for flat (instead of -9999)</source>
         <translation>0 (statt -9999) für Ebene zurückgeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="338"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="267"/>
         <source>Color configuration file</source>
         <translation>Farbkonfigurationsdatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="345"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="268"/>
         <source>Matching mode</source>
         <translation>Zuordnungsmodus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="357"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="269"/>
         <source>Exact color (otherwise "0,0,0,0" RGBA)</source>
         <translation>Genaue Farbe (sonst "0,0,0,0" RGBA)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="370"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="270"/>
         <source>Nearest color</source>
         <translation>Nächste Farbe</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="380"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="271"/>
         <source>Add alpha channel</source>
         <translation>Alphakanal ergänzen</translation>
     </message>
@@ -9776,111 +9795,111 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetDEM.ui" line="418"/>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="111"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="255"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="272"/>
         <source>&Creation Options</source>
         <translation>&Erzeugungsoptionen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="352"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="238"/>
         <source>Fill Nodata</source>
         <translation>"Leerwert" füllen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="33"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="35"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="239"/>
         <source>&Input Layer</source>
         <translation>&Eingabelayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="62"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="311"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="240"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="79"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="353"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="241"/>
         <source>Search distance</source>
         <translation>Suchdistanz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="99"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="354"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="242"/>
         <source>Smooth iterations</source>
         <translation>Glättungsiterationen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="116"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="243"/>
         <source>Band to operate on</source>
         <translation>Zu bearbeitender Kanal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="130"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="244"/>
         <source>Validity mask</source>
         <translation>Gültigkeitsmaske</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetFillNodata.ui" line="140"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="357"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="245"/>
         <source>Do not use the default validity mask</source>
         <translation>Nicht die voreingestellte Gültigkeitsmaske benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="338"/>
         <source>Grid (Interpolation)</source>
         <translation>Gitter (Interpolation)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="339"/>
         <source>&Z Field</source>
         <translation>&Z-Feld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="58"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="334"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="340"/>
         <source>&Algorithm</source>
         <translation>&Algorithmus</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="341"/>
         <source>Inverse distance to a power</source>
         <translation>Inverse Distanz zu einer Potenz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="336"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="342"/>
         <source>Moving average</source>
         <translation>Beweglicher Mittelwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="343"/>
         <source>Nearest neighbor</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="81"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="338"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="344"/>
         <source>Data metrics</source>
         <translation>Datenkriterien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="107"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="339"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="345"/>
         <source>Power</source>
         <translation>Potenz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="127"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="340"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="346"/>
         <source>Smoothing</source>
         <translation>Glättung</translation>
     </message>
@@ -9889,7 +9908,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="320"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="458"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="605"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="341"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="347"/>
         <source>Radius1</source>
         <translation>Radius1</translation>
     </message>
@@ -9898,13 +9917,13 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="343"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="481"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="631"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="348"/>
         <source>Radius2</source>
         <translation>Radius2</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="205"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="343"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="349"/>
         <source>Max points</source>
         <translation>Max. Punkte</translation>
     </message>
@@ -9912,7 +9931,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="225"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="395"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="706"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="344"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="350"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
@@ -9921,7 +9940,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="369"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="507"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="657"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="345"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="351"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
@@ -9931,38 +9950,38 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="533"/>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="680"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="141"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="317"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="305"/>
         <source>No data</source>
         <translation>Leerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="573"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="346"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="352"/>
         <source>Metrics</source>
         <translation>Kriterien</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="587"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="347"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="353"/>
         <source>Minimum</source>
         <translation>Minimum</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="592"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="354"/>
         <source>Maximum</source>
         <translation>Maximum</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="597"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="355"/>
         <source>Range</source>
         <translation>Bereich</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="746"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="199"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="350"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="234"/>
         <source>Resize</source>
         <translation>Größe ändern</translation>
     </message>
@@ -9970,7 +9989,7 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="764"/>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="117"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="217"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="235"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
@@ -9978,145 +9997,145 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetGrid.ui" line="784"/>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="137"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="237"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="236"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="212"/>
         <source>Info</source>
         <translation>Info</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="43"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="213"/>
         <source>Raster info</source>
         <translation>Raster-Info</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="63"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="214"/>
         <source>Suppress GCP printing</source>
         <translation>Paßpunkt-Anzeige unterdrücken</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetInfo.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="215"/>
         <source>Suppress metadata printing</source>
         <translation>Metadaten-Anzeige unterdrücken</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="333"/>
         <source>Merge</source>
         <translation>Verschmelzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="87"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="335"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="97"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="336"/>
         <source>Use intersected extent</source>
         <translation>Geschnittene Ausdehnung verwenden</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetMerge.ui" line="104"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="337"/>
         <source>Grab pseudocolor table from the first image</source>
         <translation>Pseudofarbtabelle aus erstem Bild entnehmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="320"/>
         <source>Near Black</source>
         <translation>Fast-Schwarz</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="321"/>
         <source>How &far from black (or white)</source>
         <translation>Ent&fernung von Schwarz (oder Weiß)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetNearBlack.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="322"/>
         <source>Search for nearly &white (255) pixels instead of black ones</source>
         <translation>Suche fast &weiße (255) statt schwarze Pixel </translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="216"/>
         <source>Build overviews (Pyramids)</source>
         <translation>Übersichten erzeugen (Pyramiden)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="53"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="217"/>
         <source>Remove all overviews.</source>
         <translation>Alle Übersichten entfernen.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetOverview.ui" line="56"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="331"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="218"/>
         <source>Clean</source>
         <translation>Löschen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="328"/>
         <source>Polygonize (Raster to vector)</source>
         <translation>Vektorisieren (Raster nach Vektor)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="39"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="329"/>
         <source>&Output file for polygons (shapefile)</source>
         <translation>&Ausgabedatei für Polygone (Shapedatei)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="52"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="330"/>
         <source>&Field name</source>
         <translation>&Feldname</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="331"/>
         <source>DN</source>
         <translation>DN</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetPolygonize.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="332"/>
         <source>Use mask</source>
         <translation>Maske benutzen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="204"/>
         <source>Assign projection</source>
         <translation>Projektion zuweisen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="33"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="287"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="206"/>
         <source>WARNING: current projection definition will be cleared</source>
         <translation>WARNUNG: aktuelle Projektionsdefinition wird gelöscht</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="209"/>
         <source>Desired SRS</source>
         <translation>Gewählte KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProjection.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="210"/>
         <source>Output will be:
 - new GeoTiff if input file is not GeoTiff
 - overwritten if input is GeoTiff</source>
@@ -10129,55 +10148,55 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="91"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="74"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="102"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="211"/>
         <source>Select...</source>
         <translation>Wählen...</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="357"/>
         <source>Proximity (Raster distance)</source>
         <translation>Nachbarschaft (Rasterabstand)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="358"/>
         <source>&Values</source>
         <translation>&Werte</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="359"/>
         <source>&Dist units</source>
         <translation>&Abstandseinheiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="66"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="360"/>
         <source>GEO</source>
         <translation>GEO</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="71"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="361"/>
         <source>PIXEL</source>
         <translation>PIXEL</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="79"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="362"/>
         <source>&Max dist</source>
         <translation>&Max. Abstand</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="93"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="363"/>
         <source>&No data</source>
         <translation>&Leerwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="110"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="364"/>
         <source>&Fixed buf val</source>
         <translation>&Fester Pufferwert</translation>
     </message>
@@ -10185,173 +10204,173 @@ bei Klick auf den Hilfe-Knopf des Dialogs zu öffnen.</translation>
         <location filename="../python/plugins/GdalTools/tools/widgetBuildVRT.ui" line="155"/>
         <location filename="../python/plugins/GdalTools/tools/widgetProximity.ui" line="124"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="154"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="230"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="373"/>
         <source>Rasterize (Vector to raster)</source>
         <translation>Rastern (Vektor nach Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="28"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="374"/>
         <source>&Input file (shapefile)</source>
         <translation>&Eingabedatei (Shapedatei)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="38"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="375"/>
         <source>&Attribute field</source>
         <translation>&Attributfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="58"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="376"/>
         <source>&Output file for rasterized vectors (raster)</source>
         <translation>&Ausgabe für gerasterte Vektoren (Raster)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="76"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="377"/>
         <source>Keep existing raster size and resolution</source>
         <translation>Vorhandene Rastergröße und -auflösung beibehalten</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="86"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="378"/>
         <source>Raster size in pixels</source>
         <translation>Rastergröße in Pixeln</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="157"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="379"/>
         <source>Raster resolution in map units per pixel</source>
         <translation>Rasterauflösung in Karteneinheiten je Pixel</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="185"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="380"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetRasterize.ui" line="211"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="381"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="323"/>
         <source>Sieve</source>
         <translation>Sieben</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="48"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="324"/>
         <source>&Threshold</source>
         <translation>&Schwellenwert</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="62"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="325"/>
         <source>&Pixel connections</source>
         <translation>&Pixelverbindungen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="70"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="283"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="326"/>
         <source>4</source>
         <translation>4</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetSieve.ui" line="75"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="284"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="327"/>
         <source>8</source>
         <translation>8</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="14"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="303"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="287"/>
         <source>Raster tile index</source>
         <translation>Rasterkachelindex</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="22"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="304"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="288"/>
         <source>Input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="39"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="289"/>
         <source>Output shapefile</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="49"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="290"/>
         <source>Tile index field</source>
         <translation>Kachelindexfeld</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="59"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="291"/>
         <source>location</source>
         <translation>location</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTileIndex.ui" line="74"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="292"/>
         <source>Skip files with different projection ref</source>
         <translation>Dateien mit anderer Projektion überspringen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="309"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="300"/>
         <source>Translate (Convert format)</source>
         <translation>Übersetzen (Format konvertieren)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="72"/>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="83"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="222"/>
         <source>&Target SRS</source>
         <translation>&Ziel-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="106"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="122"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="313"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="301"/>
         <source>Percentage to resize image. This will change pixel size/image resolution accordingly: 25% will create an image with pixels 4x larger.</source>
         <translation>Prozentuale Bildanpassung. Dies wird die Pixelgröße/Auflösung entsprechend anpassen. 25% erzeugt ein Bild mit viermal so großen Pixeln.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="109"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="314"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="302"/>
         <source>Outsize</source>
         <translation>Ausgabegröße</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="125"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="303"/>
         <source>%</source>
         <translation>%</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="138"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="234"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="304"/>
         <source>Assign a specified nodata value to output bands.</source>
         <translation>Legt den Leerwert des Ausgabekanals fest.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="148"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="160"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="318"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="306"/>
         <source>To expose a dataset with 1 band with a color table as a dataset with 3 (RGB) or 4 (RGBA) bands. 
 Useful for output drivers such as JPEG, JPEG2000, MrSID, ECW that don't support color indexed datasets. 
 The 'gray' value (from GDAL 1.7.0) enables to expand a dataset with a color table that only contains gray levels to a gray indexed dataset.</source>
@@ -10361,140 +10380,140 @@ Der 'Grau'-wert (aus GDAL 1.7) ermöglicht Datensätze mit einer Farbt
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="153"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="319"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="307"/>
         <source>Expand</source>
         <translation>Ausdehnen</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="166"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="320"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="308"/>
         <source>Gray</source>
         <translation>Grau</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="171"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="321"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="309"/>
         <source>RGB</source>
         <translation>RGB</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="176"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="310"/>
         <source>RGBA</source>
         <translation>RGBA</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="184"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="194"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="311"/>
         <source>Selects a subwindow from the source image for copying based on pixel/line location. (Enter Xoff Yoff Xsize Ysize)</source>
         <translation>Wählt ein Fenster des Quellbilds zum Kopieren nach Pixel-/Zeilenposition. (Xoff, Yoff Xsize Ysize eingeben)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="187"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="312"/>
         <source>Srcwin</source>
         <translation>Quellfenster</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="201"/>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="211"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="325"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="313"/>
         <source>Selects a subwindow from the source image for copying (like -srcwin) but with the corners given in georeferenced coordinates. (Enter ulx uly lrx lry)</source>
         <translation>Wählt ein Fenster des Quellbilds zum Kopieren (wie -srcwin), aber mit den Eckpunkten in georeferenzierten Koordinaten (ulx uly lrx lry eingeben)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="204"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="314"/>
         <source>Prjwin</source>
         <translation>Prj.fenster</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="218"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="327"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="315"/>
         <source>Copy all subdatasets of this file to individual output files. Use with formats like HDF or OGDI that have subdatasets.</source>
         <translation>Alle Unterdatensätze dieser Datei in einzelne Dateien kopieren. Zur Benutzung mit Formate mit Unterdatensätzen wie HDF oder OGDI.</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetTranslate.ui" line="221"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="328"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="316"/>
         <source>Sds</source>
         <translation>Sds</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="20"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="219"/>
         <source>Warp (Reproject)</source>
         <translation>Transformieren (Reprojizieren)</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="55"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="359"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="221"/>
         <source>&Source SRS</source>
         <translation>&Eingabe-KBS</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="111"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="223"/>
         <source>&Resampling method</source>
         <translation>&Abtastmethode</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="119"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="361"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="224"/>
         <source>Near</source>
         <translation>Nah</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="124"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="225"/>
         <source>Bilinear</source>
         <translation>Bilinear</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="129"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="226"/>
         <source>Cubic</source>
         <translation>Kubisch</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="134"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="227"/>
         <source>Cubic spline</source>
         <translation>Kubisches Spline</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="139"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="365"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="228"/>
         <source>Lanczos</source>
         <translation>Lanczos</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="147"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="229"/>
         <source>No data values</source>
         <translation>Leerwerte</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="161"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="367"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="231"/>
         <source>&Memory used for caching</source>
         <translation>&Speicher für Caching</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="168"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="232"/>
         <source>MB</source>
         <translation>MB</translation>
     </message>
     <message>
         <location filename="../python/plugins/GdalTools/tools/widgetWarp.ui" line="260"/>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="237"/>
         <source>Use m&ultithreaded warping implementation</source>
         <translation>&Parallele Entzerrungsimplementation verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/GdalTools/python-i18n.cpp" line="273"/>
         <source>&Output directory for contour lines (shapefile)</source>
         <translation>&Ausgabeverzeichnis für Konturlinien (Shapedatei)</translation>
     </message>
@@ -10502,18 +10521,18 @@ Der 'Grau'-wert (aus GDAL 1.7) ermöglicht Datensätze mit einer Farbt
 <context>
     <name>GeoAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1102"/>
         <source>Uncaught error while executing algorithm</source>
         <translation>Nicht erfasste Fehler bei der Ausführung von Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
         <source>
 See log for more details</source>
         <translation>Die Logdatei enthält mehr Details</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1104"/>
         <source>Converting outputs</source>
         <translation>Konvertierung der Ausgabe</translation>
     </message>
@@ -10521,57 +10540,57 @@ See log for more details</source>
 <context>
     <name>GeometryConvert</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1110"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1109"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1110"/>
         <source>Centroids</source>
         <translation>Zentroide</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1111"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1112"/>
         <source>Linestrings</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1113"/>
         <source>Multilinestrings</source>
         <translation>Multilinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1114"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1115"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1116"/>
         <source>New geometry type</source>
         <translation>Neuer Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1117"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1119"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1118"/>
         <source>Cannot convert from %s to %s</source>
         <translation>Kann %s nicht in %s umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1108"/>
         <source>Convert geometry type</source>
         <translation>Geometrietyp umwandeln</translation>
     </message>
@@ -10998,12 +11017,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetModelsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1122"/>
         <source>Get models from on-line scripts collection</source>
         <translation>Hole Modelle aus der Online Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1123"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11011,12 +11030,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetRScriptsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1127"/>
         <source>Get R scripts from on-line scripts collection</source>
         <translation>R-Skript aus Online-Sammlung laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1128"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11024,12 +11043,12 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetScriptsAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1132"/>
         <source>Get scripts from on-line scripts collection</source>
         <translation>Hole Skripte aus der Online Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1133"/>
         <source>Tools</source>
         <translation>Werkzeuge</translation>
     </message>
@@ -11037,62 +11056,62 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>GetScriptsAndModelsDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
         <source>Could not connect to scripts/models repository</source>
         <translation>Keine Verbindung zum Skript-/Modellrepositorium</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
         <source>Network error code: {} on URL: {}</source>
         <translation>Netzwerkfehlercode {} bei URL: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
         <source>Installed</source>
         <translation>Installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
         <source>Updatable</source>
         <translation>Aktualisierbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
         <source>Not installed</source>
         <translation>Nicht installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1147"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
         <source><p><b>Description:</b> %s</p></source>
         <translation><p><b>Beschreibung:</b>%s</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1148"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1147"/>
         <source><p><b>Created by:</b> %s</source>
         <translation><p><b>Erstellt von:</b>%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1149"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1148"/>
         <source><p><b>Version:</b> %s</source>
         <translation><p><b>Version:</b> %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
         <source><h2>No detailed description available for this script</h2></source>
         <translation><h2>Keine detaillierte Beschreibung für dieses Skript verfügbar</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
         <source>Connection problem</source>
         <translation>Verbindungsproblem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1137"/>
         <source><h3> Processing resources manager </h3><p>Check/uncheck algorithms in the tree to select the ones that you want to install or remove</p><p>Algorithms are divided in 3 groups:</p><ul><li><b>Installed:</b> Algorithms already in your system, with the latest version available</li><li><b>Updatable:</b> Algorithms already in your system, but with a newer version available in the server</li&gt [...]
         <translation><h3> Verwaltung der Verarbeitungsmittel</h3><p>Bitte Algorithmen im Baum wählen, die installiert oder entfernt werden sollen</p><p>Algorithmen sind in 3 Gruppen aufgeteilt:</p><ul><li><b>Installierte:</b> Algorithmen, die sich bereits in der letzten verfügbaren Version im System befinden</li><li><b>Aktualisierbare:</b> Algorithmen, die sich bereits auf dem System befinden, aber in akt [...]
     </message>
@@ -11143,29 +11162,29 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7Algorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1152"/>
         <source>Could not open GRASS GIS 7 algorithm: %s
 %s</source>
         <translation>Kann GRASS GIS 7-Algorithmus nicht öffnen: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1153"/>
         <source>GRASS GIS 7 region extent</source>
         <translation>GRASS GIS 7-Regionsgrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
         <source>GRASS GIS 7 region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
         <source>GRASS GIS 7 folder is not configured. Please configure it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7-Verzeichnis ist nicht konfiguriert. Bitte vor Ausführung von GRASS GIS 7-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1156"/>
         <source>GRASS GIS 7 execution commands</source>
         <translation>GRASS GIS 7-Befehlsausführung</translation>
     </message>
@@ -11173,32 +11192,31 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7AlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1160"/>
         <source>GRASS7 folder</source>
         <translation>GRASS7-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1162"/>
         <source>Msys folder</source>
-        <translation>MSYS-Verzeichnis</translation>
+        <translation type="obsolete">MSYS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1161"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1162"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1163"/>
         <source>Could not open GRASS GIS 7 algorithm: %s</source>
         <translation>Konnte GRASS7-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1164"/>
         <source>GRASS GIS 7 commands</source>
         <translation>GRASS GIS 7-Befehle</translation>
     </message>
@@ -11206,17 +11224,17 @@ GEOS-Verarbeitungsfehler: Eine oder mehrere Objekte haben ungültige Geometrie.<
 <context>
     <name>Grass7Utils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1168"/>
         <source>GRASS GIS 7 execution console output</source>
         <translation>Konsolenausgabe der GRASS GIS 7-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1169"/>
         <source>GRASS GIS 7 folder is not configured. Please configure it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7-Verzeichnis ist nicht konfiguriert. Bitte vor Ausführung von GRASS GIS 7-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1170"/>
         <source>The specified GRASS 7 folder "{}" does not contain a valid set of GRASS 7 modules.
 Please, go to the Processing settings dialog, and check that the GRASS 7
 folder is correctly configured</source>
@@ -11225,14 +11243,14 @@ Bitte im Processing-Einstellungsdialog überprüfen, dass das GRASS GIS 7-Verzei
 richtig konfiguriert ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1171"/>
         <source>It seems that GRASS GIS 7 is not correctly installed and configured in your system.
 Please install it before running GRASS GIS 7 algorithms.</source>
         <translation>GRASS GIS 7 ist anscheinend nicht richtig auf dem System installiert und konfiguriert.
 Bitte vor der Ausführung von GRASS GIS 7-Algorithmen installieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1172"/>
         <source>Error while checking GRASS GIS 7 installation. GRASS GIS 7 might not be correctly configured.
 </source>
         <translation>Fehler bei der Überprüfung der GRASS GIS 7-Installation. GRASS GIS 7 könnte nicht richtig konfiguriert sein.
@@ -11242,1021 +11260,1021 @@ Bitte vor der Ausführung von GRASS GIS 7-Algorithmen installieren.</translation
 <context>
     <name>GrassAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1176"/>
         <source>Could not open GRASS algorithm: %s.
 %s</source>
         <translation>Konnte GRASS-Algorithums nicht öffen: %s.
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1177"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1178"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1179"/>
         <source>GRASS folder is not configured.
 Please configure it before running GRASS algorithms.</source>
         <translation>GRASS-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1180"/>
         <source>GRASS execution commands</source>
         <translation>GRASS-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
         <source>v.surf.rst.line - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.line - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="521"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
         <source>v.clean.advanced - Toolset for cleaning topology of vector map (Advanced).</source>
         <translation>v.clean.advanced - Werkzeugsatz für die Bereinigung der Topologie einer Vektorkarte (Fortgeschritten).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="514"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="152"/>
         <source>r.slope - Generates raster maps of slope from a elevation raster map.</source>
         <translation>r.slope - Erzeugt Rasterkarten mit Hangneigung aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="453"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
         <source>r.contour.step - Create vector contours from raster at specified steps</source>
         <translation>r.contour.step - Erstellen von Vektorkonturen von Rasterdaten an bestimmten Stufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="568"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
         <source>v.buffer.distance - Creates a buffer around features of given type.</source>
         <translation>v.buffer.distance - Erzeugt einen Puffer um Objekte mit gegebenen Typ.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
         <source>v.surf.bspline.lambda - Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>v.surf.bspline.lambda - Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="432"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
         <source>r.cost.full - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.full - Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="150"/>
         <source>r.lake.coords - Fills lake at given point to given level.</source>
         <translation>r.lake.coords - See aus Quellenpunkt einer gegebenen Höhe füllen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
         <source>v.to.rast.value - Converts (rasterize) a vector layer into a raster layer.</source>
         <translation>v.to.rast.value - Konvertiert (rastert) eine Vektorkarte in eine Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
         <source>v.distance.toattr - Finds the nearest element in vector map 'to' for elements in vector map 'from'.</source>
         <translation>v.distance.toattr - Findet das nächstgelegene Element der Vektorkarte 'to' für Elemente in der Vektorkarte 'from'.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
         <source>r.aspect - Generates raster maps of aspect from a elevation raster map.</source>
         <translation>r.slope.apect - Erzeugt Rasterkarten mit Exposition aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
         <source>v.split.length - Split lines to shorter segments by length.</source>
         <translation>v.split.length - Trenne Linien zu kürzeren Segmenten nach Länge.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
         <source>r.reclass.area.greater - Reclassifies a raster layer, selecting areas larger than a user specified size</source>
         <translation>r.reclass.area.greater -Reklassifiziere Rasterkarte durch Auswahl von Flächen größer eines gegeben Werts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="571"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="299"/>
         <source>r.horizon.height - Horizon angle computation from a digital elevation model.</source>
         <translation>r.horizon.height - Berechnung des Horizontwinkel auf Grundlage eines digitalen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="552"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
         <source>r.sunmask.datetime - Calculates cast shadow areas from sun position and elevation raster map.</source>
         <translation>r.sunmask.datetime - Schattenkarten aus Sonnenposition und Rasterkarten mit Höheninformation berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="407"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
         <source>r.lake.layer - Fills lake at given point to given level.</source>
         <translation>r.lake.layer - See aus Quellenpunkt einer gegebenen Höhe füllen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
         <source>r.sunmask.position - Calculates cast shadow areas from sun position and elevation raster map.</source>
         <translation>r.sunmask.position - Schattenkarten aus Sonnenposition und Rasterkarten mit Höheninformation berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="479"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
         <source>r.drain.coordinate - Traces a flow through an elevation model on a raster map.</source>
         <translation>r.drain.coordinate - Verfolgt einen Fluss durch ein Höhenmodell auf einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
         <source>v.transform.pointsfile - Performs an affine transformation on a vector layer, using a support point file.</source>
         <translation>v.transform.pointsfile - Führt eine affine Transformation von Vektorkarten mit Hilfe einer Punktdatei durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="401"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="139"/>
         <source>r.cost.full.raster - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.full.raster - Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
         <source>v.buffer.column - Creates a buffer around features of given type.</source>
         <translation>v.buffer.column - Erzeugt einen Puffer um Objekte mit gegebenen Typ.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
         <source>v.to.rast.attribute - Converts (rasterize) a vector layer into a raster layer.</source>
         <translation>v.to.rast.attribute - Konvertiert (rastert) eine Vektorkarte in eine Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="413"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="291"/>
         <source>v.surf.rst.cvdev.line - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.cvdev.line - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
         <source>Imagery (i.*)</source>
         <translation>Bildbearbeitung (i.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="559"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
         <source>Creates topographic index layer from elevation raster layer</source>
         <translation>Erstellt Karte mit topographischem Index auf Basis eines digitalen Höhenmodells</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
         <source>Exports GRASS vector map layers to DXF file format.</source>
         <translation>GRASS-Vektor in DXF-Datei exportieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="429"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
         <source>Generates a raster layer with contiguous areas grown by one cell.</source>
         <translation>Erzeugt eine Rasterkarte mit kontinuierlich um eine Zelle gewachsenen Flächen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="319"/>
         <source>Converts a raster layer to a PPM image file at the pixel resolution of the currently defined region.</source>
         <translation>Wandelt einen Rasterlayer in eine PPM-Bilddatie in der Auflösung der aktuellen Region.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="451"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
         <source>Generates random cell values with spatial dependence.</source>
         <translation>Erzeugt zufällig Zellwerte mit räumlicher Abhängigkeit.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="320"/>
         <source>Compares bit patterns with a raster map.</source>
         <translation>Vergleicht Bitmuster mit Rastern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="569"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
         <source>Bilinear interpolation utility for raster map layers.</source>
         <translation>Bilineare Interpolationswerkzeug für Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="550"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
         <source>Stream network extraction</source>
         <translation>Stromnetzwerkextraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
         <source>Miscellaneous (m.*)</source>
         <translation>Verschiedenes (m.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
         <source>Create a new vector map layer by combining other vector map layers.</source>
         <translation>Erzeugt eine neue Vektorkarte durch Kombination anderer Vektorkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
         <source>Performs an affine transformation on a vector layer.</source>
         <translation>Führt eine affine Transformation von Vektorkarten durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
         <source>Fills no-data areas in a raster layer using v.surf.rst splines interpolation or v.surf.bspline interpolation</source>
         <translation>Leerflächen in Raster nach v.surf.rst oder v.surf.bspline Spline-Interpolation füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
         <source>Reinterpolates using regularized spline with tension and smoothing.</source>
         <translation>Reinterpoliert mit RST und Glättung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
         <source>Recursively traces the least cost path backwards to cells from which the cumulative cost was determined.</source>
         <translation>Das Modul verfolgt den kürzesten Weg rekursiv zurück zu den Zellen, von denen der kumulative Weg bestimmt wurde.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
         <source>Creates parallel line to input vector lines.</source>
         <translation>Parallele Linien zu Eingabevektorlinien erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="566"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
         <source>Recodes categorical raster maps.</source>
         <translation>Kodiert kategorische Rasterkarten um.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
         <source>Horizon angle computation from a digital elevation model.</source>
         <translation>Berechnung des Horizontwinkel auf Grundlage eines digitalen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="477"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
         <source>Exports GRASS raster map to GRIDATB.FOR map file (TOPMODEL)</source>
         <translation>GRASS-Vektor in GRIDATB.FOR Kartendatei (TOPMODEL) speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="297"/>
         <source>Finds the average of values in a cover raster layer  within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Durchschnitt der Werte in einer Überlagerungskarte innerhalb gleicher Kategorien in einer benutzer-angegebenen Ausgangskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
         <source>Indices for quadrat counts of vector point lists.</source>
         <translation>Indizes der Quadrat-Zählmethode aus Vektorpunktliste.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="473"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
         <source>Detects the object's edges from a LIDAR data set.</source>
         <translation>Bestimmt die Kanten eines Objekte aus einem LIDAR-Datensatz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="438"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
         <source>Thins non-zero cells that denote linear features in a raster layer.</source>
         <translation>Dünne nicht-Null-Zellen aus, die Linieneigenschaften bezeichnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="554"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
         <source>Import GetFeature from WFS</source>
         <translation>Importiert GetFeature eines WFS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="481"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="199"/>
         <source>Produces a raster layer of uniform random deviates whose range can be expressed by the user.</source>
         <translation>Erzeugt eine Rasterkarte mit zufälligen Werten einer Gleichverteilung, deren Spanne vom Benutzer angegeben werden kann.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
         <source>Produces the quantization file for a floating-point map.</source>
         <translation>Quantisierungsdatei zu Fließkommaraster erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="393"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
         <source>Creates a GRASS vector layer of a user-defined grid.</source>
         <translation>Erzeugt eine GRASS Vektorkarte mit einem benutzerdefinierten Gitternetz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="387"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="283"/>
         <source>Extracts terrain parameters from a DEM.</source>
         <translation>Geländeparameter aus DEM extrahieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
         <source>Creates a composite raster layer by using one (or more) layer(s) to fill in areas of "no data" in another map layer.</source>
         <translation>Erstellt eine Komposit-Karte, indem bekannte Kategorie-Werte einer (oder mehrerer) Rasterkarte(n) in "NO DATA"-Bereiche einer anderen Rasterkarte gefüllt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="507"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
         <source>Raster (r.*)</source>
         <translation>Raster (r.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="484"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
         <source>Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="235"/>
         <source>Transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space.</source>
         <translation>Rastertransformationfunktion für HIS- (Hue-Intensity-Saturation) in RGB-Farbraum (Rot-Grün-Blau).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="422"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
         <source>Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.</source>
         <translation>Korrektur der v.lidar.growing Ausgabe. Das ist der letzte von 3 Algorithmen um LIDAR zu filtern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="143"/>
         <source>Generates watershed subbasins raster map.</source>
         <translation>Erzeugt Rasterkarte mit Wassereinzugsgebieten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="528"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="147"/>
         <source>r.flow.aspect - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="303"/>
         <source>Outputs a covariance/correlation matrix for user-specified raster layer(s).</source>
         <translation>Gibt eine Kovarianz/Korrelations-Matrix für (eine) benutzerdefiniert Rasterkarte(n) aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
         <source>Compute quantiles using two passes.</source>
         <translation>Berechne Quantile in zwei Durchgängen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="483"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
         <source>Vector (v.*)</source>
         <translation>Vektor (v.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="314"/>
         <source>Classifies attribute data, e.g. for thematic mapping.</source>
         <translation>Klassifiziert Attributdaten, z.B. für thematische Karten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
         <source>Random location perturbations of GRASS vector points</source>
         <translation>Zufällige Positionsstörung von GRASS-Vektorpunkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
         <source>Changes vector category values for an existing vector map according to results of SQL queries or a value in attribute table column.</source>
         <translation>Ändert die Kategorien einer existierenden Vektorkarte entsprechend den Ergebnissen der SQL-Abfragen oder der Werte einer Spalte der Attributtabelle.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="519"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="256"/>
         <source>Reports statistics for raster layers.</source>
         <translation>Gibt statistische Werte für eine Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="563"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
         <source>r.relief.scaling - Creates shaded relief from an elevation layer (DEM).</source>
         <translation>r.relief.scaling - Erzeugt eine Schummerungskarte aus einem Höhenmodell (DGM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="500"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
         <source>Randomly generate a 2D/3D vector points map.</source>
         <translation>Zufällige 2D/3D-Vektorpunktkarte erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="482"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
         <source>Generates a raster density map from vector point data using a moving kernel or optionally generates a vector density map on a vector network.</source>
         <translation>Erzeugt eine Raster-Dichtekarte aus Vektorpunkten unter Verwendung eines gleitenden Kerns. Optional kann eine Vektor-Dichtekarte basierend auf einem Vektornetzwerk erstellt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="516"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
         <source>Resamples raster layers to a coarser grid using aggregation.</source>
         <translation>Erzeugt eine neue Rasterkarte gröberer Auflösung mittels Aggregation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="418"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
         <source>Indices for quadrant counts of sites lists.</source>
         <translation>Indizes der Quadrat-Zählmethode aus Siteliste.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
         <source>Calculates category or object oriented statistics.</source>
         <translation>Berechnet Kategorie- oder objektorientierte Statistik.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="462"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
         <source>Create points along input lines</source>
         <translation>Punkte entlang von Eingabelinien erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
         <source>Computes minimum spanning tree for the network.</source>
         <translation>Berechnet den minimalen Spannbaum eines Netzwerks.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="505"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
         <source>Computes the shortest path between all pairs of nodes in the network</source>
         <translation>Berechnet die kürzesten Pfad zwischen allen Knotenpaaren eines Netzwerkes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="518"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
         <source>Computes vertex connectivity between two sets of nodes in the network.</source>
         <translation>Berechnet die Stützpunktverbindungen zwischen zwei Knotenmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="281"/>
         <source>Creates Steiner tree for the network and given terminals</source>
         <translation>Erzeugt einen Steinerbaum für das Netzwerk und gegebenen Enden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="455"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
         <source>v.net.report - Reports lines information of a network</source>
         <translation>v.net.report - Berichte zu Kanteninformationen eines Netzwerks</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
         <source>Performs visibility graph construction.</source>
         <translation>Erstellt Sichtbarkeitsgraphen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="544"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
         <source>Calculate error matrix and kappa parameter for accuracy assessment of classification result.</source>
         <translation>Fehlermatrix und Kappa-Parameter für Genauigkeitsbewertung von Klassifikationsergebnissen berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="555"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
         <source>Flow computation for massive grids.</source>
         <translation>Flußberechnung für massive Raster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="526"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
         <source>Calculates univariate statistics from the non-null cells of a raster map.</source>
         <translation>Eindimensionale Statistik des Nicht-Null-Zellen eines Rasters berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="556"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
         <source>Surface interpolation from vector point data by Inverse Distance Squared Weighting.</source>
         <translation>Oberflächeninterpolation mit auf Vektorpunkten basierender inverser quadratischer Abstandsgewichtung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="434"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="284"/>
         <source>Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
         <source>A simple utility for converting bearing and distance measurements to coordinates and vice versa. It assumes a cartesian coordinate system</source>
         <translation>Ein einfaches Hilfsprogramm, dass Kurs- und Distanzwert in Koordinaten umrechnet und umgekehrt.  Es setzt ein kartesisches Koordinatensystem voraus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="420"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="321"/>
         <source>Surface generation.</source>
         <translation>Oberflächenerzeugung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="449"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
         <source>Generates raster layers of slope, aspect, curvatures and partial derivatives from a elevation raster layer.</source>
         <translation>Erzeugt Rasterkarten mit Hangneigung, Exposition, Wölbung und partiellen Ableitungen aus einer Rasterkarte mit Höheninformationen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="415"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
         <source>Simulates elliptically anisotropic spread on a graphics window and generates a raster map of the cumulative time of spread, given raster maps containing the rates of spread (ROS), the ROS directions and the spread origins.</source>
         <translation>Simuliert elliptische anisotrophe Ausbreitung in einem Grafikfenster und erzeugt eine Rasterkarte mit der kumulativen Ausbreitungszeit. Als Ausgangskarten dienen die Ausbreitungsgeschwindigkeit, Ausbreitungsrichtung und der Ursprung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="476"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
         <source>Tests for normality for points.</source>
         <translation>Tests der Normalität auf Vektor-Punkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="204"/>
         <source>Calculates linear regression from two raster layers : y = a + b*x.</source>
         <translation>Berechnet lineare Regression zweier Raster: y = a + b*x.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
         <source>Finds the mode of values in a cover layer within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Modalwert der Werte einer Bedeckungskarte innerhalb der Flächen mit gleichen Werten in einer benutzerdefinierten Basiskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="548"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
         <source>r.flow.barrier - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.barrier - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="542"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
         <source>Reports geometry statistics for vectors.</source>
         <translation>Gibt statistische Werte für Geometrie der Vektorobjekte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
         <source>Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
         <source>Watershed basin creation program.</source>
         <translation>Wassereinzugsgebietserzeugungsprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="470"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
         <source>Resamples raster map to a finer grid using interpolation.</source>
         <translation>Erzeugt eine neue Rasterkarte mit feinerer Auflösung mittels Interpolation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
         <source>Generates red, green and blue raster layers combining hue, intensity and saturation (HIS) values from user-specified input raster layers.</source>
         <translation>Erzeugt rot, grün und blaue Rasterkarten durch Kombination des Farbtons, der Intensität und Sättigung (HIS) aus Eingabe-Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
         <source>Creates a Delaunay triangulation from an input vector map containing points or centroids.</source>
         <translation>Erzeugt eine Delaunay-Triangulation auf Basis einer Eingabe-Vektorkarte mit Punkten oder Zentroiden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="496"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="309"/>
         <source>Generates three, or four raster map layers showing 1) the base (perpendicular) rate of spread (ROS), 2) the maximum (forward) ROS, 3) the direction of the maximum ROS, and optionally 4) the maximum potential spotting distance.</source>
         <translation>Erstellt drei oder vier Rasterkarten, die 1) die Basisrate der (rechtwinkligen) Ausbreitungsgeschwindigkeit, 2) die maximale (Vorwärts-) Geschwindigkeit, 3) die Richtung der größten Ausbreitungsgeschwindigkeit und optional 4) die maximale Entdeckungsentfernung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="576"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
         <source>Resamples a raster map layer to a finer grid using interpolation.</source>
         <translation>Erzeugt eine neue Rasterkarte mit feinerer Auflösung mittels Interpolation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="439"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="318"/>
         <source>Generates area statistics for raster layers.</source>
         <translation>Erzeugt Flächenstatistiken für Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="575"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
         <source>Traces a flow through an elevation model on a raster map.</source>
         <translation>Verfolge eine Strömung durch ein Höhenmodell auf einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
         <source>Finds the median of values in a cover layer within areas assigned the same category value in a user-specified base layer.</source>
         <translation>Findet den Median der Werte einer Coverkarte innerhalb der Flächen mit gleichen Werten in einer benutzerdefinierten Basiskarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="466"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
         <source>Produces a convex hull for a given vector map.</source>
         <translation>Erzeugt eine konvexe Hülle für eine Vektorkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="498"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
         <source>r.random.raster - Create random raster</source>
         <translation>r.random.raster - Zufälliges Raster erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="381"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
         <source>Creates points/segments from input vector lines and positions.</source>
         <translation>Punkte/Segmente von Eingabevektorlinien und -positionen bilden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="561"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="275"/>
         <source>Samples a raster layer at vector point locations.</source>
         <translation>Fragt eine Rasterkarte an den Positionen von Vektorpunkten ab.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="504"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
         <source>Creates a new map layer whose category values are based upon a reclassification of the categories in an existing raster map layer.</source>
         <translation>Neue Karte erzeugen, deren Kategoriewerte auf einer Reklassifikation der Kategorien einer existierenden Rasterkarte basieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="471"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
         <source>Transforms raster maps from HIS (Hue-Intensity-Saturation) color space to RGB (Red-Green-Blue) color space.</source>
         <translation>Rastertransformationfunktion für HIS- (Hue-Intensity-Saturation) in RGB-Farbraum (Rot-Grün-Blau).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
         <source>Toolset for cleaning topology of vector map.</source>
         <translation>Werkzeugsatz für die Bereinigung der Topologie einer Vektorkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
         <source>Calculates univariate statistics for attribute. Variance and standard deviation is calculated only for points if specified.</source>
         <translation>Berechnet univariate Statistiken für die Attribute. Die Varianz und Standardabweichung wird nur für Punkte berechnet wenn angefragt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="532"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
         <source>Zero-crossing "edge detection" raster function for image processing.</source>
         <translation>Nulldurchgangskantendetektionsrasterfunktion für die Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="511"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
         <source>Prints vector map attributes</source>
         <translation>Gebe Vektorattribute aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
         <source>r.contour.level - Create vector contour from raster at specified levels</source>
         <translation>r.contour.level - Erstellen von Vektorkonturen von Rasterdaten an bestimmten Ebenen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="386"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
         <source>v.surf.bspline.sparse - Bicubic or bilinear spline interpolation with Tykhonov regularization.</source>
         <translation>v.surf.bspline.sparse - Bikubische oder bi-lineare Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="534"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
         <source>r.reclass.area.lesser - Reclassifies a raster layer, selecting areas lower than a user specified size</source>
         <translation>r.reclass.area.lesser -Reklassifiziere Rasterkarte durch Auswahl von Flächen kleiner eines gegeben Werts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="206"/>
         <source>v.split.vert - Split lines to shorter segments by max number of vertices.</source>
         <translation>v.split.vert - Trenne Linien zu kürzeren Segmenten nach Stützpunktanzahl.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="444"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
         <source>Performs raster map matrix filter.</source>
         <translation>Führt Matrixfilter auf einer Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="419"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
         <source>Prints terse list of category values found in a raster layer.</source>
         <translation>Gibt eine kurze Liste der Kategoriewerte einer Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="489"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
         <source>Overlays two vector maps.</source>
         <translation>Überlagert zwei Vektorkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
         <source>Removes outliers from vector point data.</source>
         <translation>Entfernt Ausreißer aus einem Punkt-Vektordatensatz.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="424"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
         <source>Calculate new raster map from a r.mapcalc expression.</source>
         <translation>Berechne eine neue Rasterkarte mit einem r.mapcalc-Ausdruck.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="541"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
         <source>Line-of-sight raster analysis program.</source>
         <translation>Sichtachsen-Rasteranalysemodul.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
         <source>Selects vector objects from a vector layer a new layer containing only the selected objects.</source>
         <translation>Selektiert Vektorobjekte einer existierenden Vektorkarte und erzeugt eine neue Karte nur mit den selektierten Objekten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="574"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
         <source>Surface area estimation for rasters.</source>
         <translation>Oberflächensschätzungen für Raster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="208"/>
         <source>Combines red, green and blue raster maps into a single composite raster map.</source>
         <translation>Kombiniert rote, grüne und blaue Rasterkarten zu einer zusammengesetzten Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="442"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
         <source>Converts a raster into a vector layer.</source>
         <translation>Raster in Vektorlayer umwandeln.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
         <source>Creates a cross product of the category values from multiple raster map layers.</source>
         <translation>Kreuzprodukt der Kategoriewerte mehrerer Raster erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
         <source>Converts vector map to 3D by sampling of elevation raster map.</source>
         <translation>Wandelt Vektorkarte in 3D durch Abtastung einer Rasterhöhenkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="578"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
         <source>Visualization and animation tool for GRASS data.</source>
         <translation>Visualisierungs- und Animationswerkzeug für GRASS-Daten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
         <source>Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model (DEM).</source>
         <translation>Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (upslope areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="390"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="155"/>
         <source>Computes the maximum flow between two sets of nodes in the network.</source>
         <translation>Berechnet den maximalen Fluß zwischen zwei Knotenmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
         <source>v.net.nodes - Creates points for each network arcs</source>
         <translation>v.net.nodes - Erzeugt Punkte für jeden Netzwerkbogen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="551"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
         <source>v.net.nreport - Reports nodes information of a network</source>
         <translation>v.net.nreport - Berichte zu Knoteninformationen eines Netzwerks</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="487"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
         <source>Creates raster plane layer given dip (inclination), aspect (azimuth) and one point.</source>
         <translation>Erzeugt eine Rasterkarte mit einer Ebene mit gegebener Neigung (inclination), Ausrichtung (azimuth) und einem Punkt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="269"/>
         <source>Computes bridges in the network.</source>
         <translation>Berechnet Brücken im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
         <source>Splits network by cost isolines.</source>
         <translation>Schnitt durch Netzwerk entlang veranschlagten Isolinien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="317"/>
         <source>Output basic information about a raster layer.</source>
         <translation>Gibt grundlegende Informationen über eine Rasterkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
         <source>Dissolves boundaries between adjacent areas sharing a common category number or attribute.</source>
         <translation>Löst die Grenzen zwischen anliegenden Gebieten auf die eine gemeinsame Kategorie-Nummer oder Attribut haben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
         <source>Allocates subnets for nearest centers (direction from center)</source>
         <translation>Bestimmt Teilnetze für nächste Zentren (vom Zentrum gerichtet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
         <source>Computes shortest distance via the network between the given sets of features.</source>
         <translation>Berechnet die kürzesten Abstand zwischen zwei gegebenen Objektmengen im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
         <source>v.net.arcs - Creates arcs from a file of points</source>
         <translation>v.net.arcs - Berechnet Bögen aus einer Punktdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="533"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
         <source>Finds the nearest element in vector map 'to' for elements in vector map 'from'.</source>
         <translation>Findet das nächstgelegene Element der Vektorkarte 'to' für Elemente in der Vektorkarte 'from'.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="411"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
         <source>Computes strongly and weakly connected components in the network.</source>
         <translation>Berechnet stark und schwach verbundene Komponenten eines Netzwerks.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="535"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="255"/>
         <source>v.net.articulation - Computes articulation points in the network</source>
         <translation>v.net.articulation - Berechnet Artikulationspunkte im Netzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
         <source>Computes degree, centrality, betweeness, closeness and eigenvector centrality measures in the network.</source>
         <translation>Berechnet Degree, Centrality, Betweeness, Closeness und Eigenvektor centrality Werte im Netzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="522"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
         <source>v.net.connect - Connects points to nearest arcs in a network</source>
         <translation>v.net.connect - Verbinde Punkte zu nächsten Bögen in einem Netzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="410"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
         <source>Creates a cycle connecting given nodes (Traveling salesman problem)</source>
         <translation>Erzeugt eine Rundtour zu gegebenen Punkten (Travelling Salesman)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="457"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
         <source>Finds shortest path on vector network</source>
         <translation>Kürzesten Weg in einem Vektornetzwerk finden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="406"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
         <source>Creates a raster map layer showing buffer zones surrounding cells that contain non-NULL category values.</source>
         <translation>Erzeugt eine Rasterkarte mit Pufferzonen um Zellen, die keine NULL-Wert-Kategorien haben.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="510"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
         <source>Filters and generates a depressionless elevation layer and a flow direction layer from a given elevation raster layer.</source>
         <translation>Depressionsloses Höhenmodell filtern und generieren und eine Fließrichtungskarte auf Basis eines gegebenen Höhenmodells.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
         <source>GRASS raster map layer data resampling capability using nearest neighbors.</source>
         <translation>GRASS-Rasterlayerdatenneuabtastungsfunktion nach nächstem Nachbarn.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
         <source>Creates shaded relief from an elevation layer (DEM).</source>
         <translation>Erzeugt eine Schummerungskarte aus einem Höhenmodell (DGM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
         <source>Rescales histogram equalized the range of category values in a raster  layer.</source>
         <translation>Reskaliert mit Histogrammnormalisierung die Kategoriewerte einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
         <source>Makes each cell category value a function of the category values assigned to the cells around it</source>
         <translation>Jede Ausgabezelle zur Funktion der korrespondierenden Zellen des Eingaberasters machen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
         <source>Sediment transport and erosion/deposition simulation using path sampling method (SIMWE).</source>
         <translation>Sedimenttransport und Erosions/Depositions Simulation unter Verwendung der "path sampling" Methode (SIMWE).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
         <source>Generates a raster layer of distance to features in input layer.</source>
         <translation>Raster aus Objektabständen in Eingabelayer erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="524"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
         <source>Sums up the raster cell values.</source>
         <translation>Summiert die Rasterzellenwerte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
         <source>Raster map matrix filter.</source>
         <translation>Rasterkartenmatrixfilter.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
         <source>Outputs a raster layer showing the anisotropic cumulative cost of moving based on friction cost.</source>
         <translation>Erzeugt eine Rasterkarte, die die anisotrophen kumulierten Kosten der Bewegung auf Basis der Reibungskosten zeigt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="570"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
         <source>Tabulates the mutual occurrence (coincidence) of categories for two raster map layers.</source>
         <translation>Tabelliere gemeinsames Auftreten (Koinzidenz) der Klassen für zwei Rasterlayer.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="573"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
         <source>Watershed basin analysis program.</source>
         <translation>Wassereinzugsgebietsanalyseprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
         <source>Creates a raster layer of Gaussian deviates.</source>
         <translation>Erzeugt eine Raster von Gauss'schen Ableitungen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
         <source>Creates a raster layer and vector point map containing randomly located points.</source>
         <translation>Erstellt eine Rasterkarte und eine Vektorkarte, die zufällig angeordnete Punkte enthalten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="503"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
         <source>Selects features from vector map (A) by features from other vector map (B).</source>
         <translation>Selektiert Objekte der Vektorkarte (A) durch Objekte einer anderen Vektorkarte (B).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="562"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
         <source>Creates a raster map containing concentric rings around a given point.</source>
         <translation>Erzeugt eine Rasterkarte, die konzentrische Kreise um einen angegebenen Punkt ziehen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="478"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
         <source>Recategorizes data in a raster map by grouping cells that form physically discrete areas into unique categories.</source>
         <translation>Re-Kategorisiert Daten einer Rasterkarte, indem Zellen physikalisch diskreter Areale zu eindeutigen Kategorie gruppiert werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
         <source>Creates a Voronoi diagram from an input vector layer containing points.</source>
         <translation>Erstellt ein Voronoi Diagramm auf Basis einer Vektorkarte mit Punkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
         <source>Flow computation for massive grids (float version).</source>
         <translation>Flußberechnung für massive Gitter (Fließkommaversion).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="577"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
         <source>Flow computation for massive grids (integer version).</source>
         <translation>Flußberechnung für massive Gitter (Ganzzahkversion).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="545"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
         <source>Outputs the raster layer values lying on user-defined line(s).</source>
         <translation>Gibt eine Rasterkarte aus, deren Werte entlang einer (oder mehrerer) benutzerdefinierter Linien liegt.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="417"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
         <source>Export a raster map to a text file as x,y,z values based on cell centers</source>
         <translation>Raster in Textdatei als x-,y- und z-Werte der Zellzentren exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="474"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
         <source>Outputs basic information about a user-specified vector map.</source>
         <translation>Gibt grundlegende Informationen einer bestimmten Vektorkarte aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="549"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
         <source>Randomly partition points into test/train sets.</source>
         <translation>Punkte zufällig in Test-/Trainingsdatensätze aufteilen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="313"/>
         <source>Takes vector stream data, transforms it to raster and subtracts depth from the output DEM.</source>
         <translation>Nimm Vektordaten, wandle sie in Rasterdaten-und subtrahiere Tiefe aus der Ausgabe DEM.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="405"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="157"/>
         <source>Building contour determination and Region Growing algorithm for determining the building inside</source>
         <translation>Bestimmung des Gebäudeumriß und Anwendung des 'Region Growing' Verfahrens zu Ermittelung des Gebäudeinneren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
         <source>Overland flow hydrologic simulation using path sampling method (SIMWE).</source>
         <translation>Hydrologische Simulation des Oberflächenabfluß mittels der "path sampling"-Methode (SIMWE).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
         <source>Makes each output cell value a function of the values assigned to the corresponding cells in the input raster layers.</source>
         <translation>Jede Ausgabezelle zur Funktion der korrespondierenden Zellen des Eingaberasters machen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="520"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
         <source>Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>Raster aus der kommulierten Kosten für die Bewegung über ein Raster erzeugen, dessen Zellen Kosten repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
         <source>Rescales the range of category values in a raster layer.</source>
         <translation>Reskaliert die Spanne der Kategoriewerte einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="494"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
         <source>Solar irradiance and irradiation model.</source>
         <translation>Solar- und Bestrahlungsmodell.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
         <source>Computes the viewshed of a point on an elevation raster map.</source>
         <translation>Berechnet den Sichtbarkeitsbereich eines Punkt auf einer Rasterhöhenkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="572"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
         <source>A simple utility for converting bearing and distance measurements to coordinates and vice versa. It assumes a cartesian coordinate system </source>
         <translation>Ein einfaches Hilfsprogramm, dass Kurs- und Distanzwert in Koordinaten umrechnet und umgekehrt.  Es setzt ein kartesisches Koordinatensystem voraus </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="435"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="135"/>
         <source>Calculates the volume of data "clumps".</source>
         <translation>Berechnet das Volumen Daten-"Klumpen".</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="287"/>
         <source>Inverse Fast Fourier Transform (IFFT) for image processing.</source>
         <translation>Inverse schnelle Fourier-Transformation (IFFT) zur Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="447"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="133"/>
         <source>Vector based generalization.</source>
         <translation>Vektorbasierte Generalisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="564"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="311"/>
         <source>Surface generation program from rasterized contours.</source>
         <translation>Oberflächeerzeugung aus Rasterkonturen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="394"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
         <source>Create random raster</source>
         <translation>Zufälliges Raster erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="391"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
         <source>Converts to POV-Ray format, GRASS x,y,z -> POV-Ray x,z,y</source>
         <translation>Wandelt in das POV-Ray-Format, GRASS x,y,z -> POV-Ray x,z,y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="553"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
         <source>Surface interpolation utility for raster layers.</source>
         <translation>Oberflächeninterpolationswerkzeug für Rasterlayer.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="174"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="495"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="270"/>
         <source>Makes each cell value a function of attribute values and stores in an output raster map.</source>
         <translation>Jede Zelle zur Funktion von Attributwerten machen und in eine Ausgaberasterkarte speichern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
         <source>Converts files in DXF format to GRASS vector map format.</source>
         <translation>Konvertiert Dateien im DXF-Format in das GRASS-Vektorkartenformat.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="488"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
         <source>Fast Fourier Transform (FFT) for image processing.</source>
         <translation>Schnelle Fourier-Transformation (FFT) für Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="493"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
         <source>Performs atmospheric correction using the 6S algorithm.</source>
         <translation>Führt atmospherische Korrektur mit dem 6S-Algorithmus aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="421"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
         <source>Export a raster layer to the Virtual Reality Modeling Language (VRML)</source>
         <translation>Raster in Virtual-Reality-Modeling-Language (VRML) exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
         <source>r.flow.aspect.barrier - Construction of flowlines, flowpath lengths, and flowaccumulation (contributing areas) from a raster digital elevation model (DEM).</source>
         <translation>r.flow.aspect.barrier - Erzeugt Hangkurven (flowlines), Fließlängen und Flussdichte (contributing areas) aus einem angegebenen digitalen Höhenmodell (DEM).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="492"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
         <source>Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.</source>
         <translation>Numerisches Berechnungsprogramm für transienten, beschränkten und unbeschränkte Grundwasserfluß in zwei Dimensionen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="443"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
         <source>v.surf.rst.cvdev - Spatial approximation and topographic analysis using regularized spline with tension.</source>
         <translation>v.surf.rst.cvdev - Räumliche Approximation und topographische Analyse mit einer regularisierten Spline-Funktion mit Spannung.</translation>
     </message>
@@ -12264,32 +12282,32 @@ Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
 <context>
     <name>GrassAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1184"/>
         <source>GRASS folder</source>
         <translation>GRASS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1185"/>
         <source>Msys folder</source>
         <translation>MSYS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1186"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1189"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1187"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1190"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1188"/>
         <source>Could not open GRASS algorithm: %s</source>
         <translation>Kann GRASS-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1191"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1189"/>
         <source>GRASS commands</source>
         <translation>GRASS-Befehle</translation>
     </message>
@@ -12297,26 +12315,26 @@ Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
 <context>
     <name>GrassUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1193"/>
         <source>GRASS folder is not configured.
 Please configure it before running GRASS algorithms.</source>
         <translation>GRASS-Verzeichnis nicht richtig konfiguriert.
 Bitte vor der Ausführung von GRASS-Algorithmen konfigurieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1194"/>
         <source>The specified GRASS folder "{}" does not contain a valid set of GRASS modules. Please, go to the Processing settings dialog, and check that the GRASS folder is correctly configured</source>
         <translation>Das angegebene GRASS-Verzeichnis "{}" enthält keine gültige Zusammenstellung von GRASS-Modulen. Bitte in den Processing-Einstellungen das GRASS-Verzeichnis überprüfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1195"/>
         <source>It seems that GRASS is not correctly installed and configured in your system.
 Please install it before running GRASS algorithms.</source>
         <translation>GRASS scheint nicht richtig installiert oder konfiguriert zu sein.
 Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1196"/>
         <source>Error while checking GRASS installation. GRASS might not be correctly configured.
 </source>
         <translation>Fehler beim Prüfen der GRASS-Installation. GRASS könnte nicht richtig konfiguriert sein.
@@ -12326,72 +12344,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Grid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1200"/>
         <source>Create grid</source>
         <translation>Gitter erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1201"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
         <source>Rectangle (line)</source>
         <translation>Rechteck (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1203"/>
         <source>Rectangle (polygon)</source>
         <translation>Rechteck (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1204"/>
         <source>Diamond (polygon)</source>
         <translation>Raute (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1205"/>
         <source>Hexagon (polygon)</source>
         <translation>Hexagon (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1206"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1207"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1208"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1209"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1210"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1211"/>
         <source>Invalid grid spacing: %s/%s</source>
         <translation>Ungültiger Gitterabstand: %s/%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1212"/>
         <source>Horizontal spacing is too small for the covered area</source>
         <translation>Horizontaler Abstand ist für den abgedeckten Bereich zu klein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1213"/>
         <source>Vertical spacing is too small for the covered area</source>
         <translation>Vertikaler Abstand ist zu klein für abgedeckten Bereich</translation>
     </message>
@@ -12399,57 +12417,57 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridAverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1217"/>
         <source>Grid (Moving average)</source>
         <translation>Gitter (Beweglicher Mittelwert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1218"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1226"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1229"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1227"/>
         <source>Interpolated moving average</source>
         <translation>Interpolierter beweglicher Mittelwert</translation>
     </message>
@@ -12457,62 +12475,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridDataMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1231"/>
         <source>Grid (Data metrics)</source>
         <translation>Gitter (Datenkriterien)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1232"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
         <source>Metrics</source>
         <translation>Kriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1244"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1242"/>
         <source>Interpolated metrics</source>
         <translation>Interpolierte Maße</translation>
     </message>
@@ -12520,72 +12538,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridInvDist</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1246"/>
         <source>Grid (Inverse distance to a power)</source>
         <translation>Gitter (Inverse Distanz zu einer Potenz)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1247"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
         <source>Power</source>
         <translation>Potenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1252"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1253"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
         <source>Max points</source>
         <translation>Max. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1257"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1258"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1259"/>
         <source>Interpolated IDW</source>
         <translation>Interpolierte IDW</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1251"/>
         <source>Smoothing</source>
         <translation>Glättung</translation>
     </message>
@@ -12593,62 +12611,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1263"/>
         <source>Grid Metrics</source>
         <translation>Datenkriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1264"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
         <source>Height break</source>
         <translation>Höhen Unterbrechung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
         <source>Output table with grid metrics</source>
         <translation>Ausgabetabelle mit Gittermaßen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
         <source>OUTPUT CSV INTENSITY</source>
         <translation>Ausgabe CSV Intensität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
         <source>Outlier:low,high</source>
         <translation>Ausreißer:niedrig,hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
         <source>First</source>
         <translation>Erster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
         <source>Htmin</source>
         <translation>Htmin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1274"/>
         <source>Class (set blank if not used)</source>
         <translation>Klasse (leer setzen, wenn nicht verwendet)</translation>
     </message>
@@ -12656,52 +12674,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNearest</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1278"/>
         <source>Grid (Nearest neighbor)</source>
         <translation>Gitter (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1279"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
         <source>Interpolated nearest neighbor</source>
         <translation>Interpolierter nächster Nachbar</translation>
     </message>
@@ -12709,52 +12727,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNet</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1291"/>
         <source>Grid Network</source>
         <translation>Gitternetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1292"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1293"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -12762,52 +12780,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNetMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1304"/>
         <source>Grid Network (multifile)</source>
         <translation>Gitternetzwerk (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1305"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1306"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1313"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -12815,72 +12833,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1317"/>
         <source>Grid Surface Create</source>
         <translation>Gitteroberfläche erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1318"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1319"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
         <source>DTM Output Surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
         <source>Spike (set blank if not used)</source>
         <translation>Impuls (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
         <source>Median</source>
         <translation>Mittel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
         <source>Smooth</source>
         <translation>Glatt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1328"/>
         <source>Minimum (set blank if not used)</source>
         <translation>Minimum (leer lassen, wenn nicht genutzt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1329"/>
         <source>Class(es)</source>
         <translation>Klasse(n)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1330"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -12888,42 +12906,42 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Gridify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1335"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1339"/>
         <source>Snapped</source>
         <translation>Gefangen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
         <source>Invalid grid spacing: %s/%s</source>
         <translation>Ungültiger Gitterabstand: %s/%s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
         <source>Failed to gridify feature with FID %s</source>
         <translation>Fehler in der Objektvernetzung mit FID %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1334"/>
         <source>Snap points to grid</source>
         <translation>Punkte auf Gitter fangen</translation>
     </message>
@@ -12931,32 +12949,32 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GroundFilter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1345"/>
         <source>Ground Filter</source>
         <translation>Bodenfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1346"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1347"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1348"/>
         <source>Cellsize for intermediate surfaces</source>
         <translation>Zellengröße für Zwischenfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1351"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1349"/>
         <source>Output ground LAS file</source>
         <translation>LAS-Datei mit Bodenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
         <source>Create .dtm surface</source>
         <translation>DTM-Ausgabeoberfläche erzeugen</translation>
     </message>
@@ -12975,7 +12993,7 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
     </message>
     <message>
         <location filename="../src/plugins/heatmap/heatmap.cpp" line="99"/>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="523"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="532"/>
         <source>&Heatmap</source>
         <translation>&Heatmap</translation>
     </message>
@@ -13000,37 +13018,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
         <translation>Kann den Treiber für das angegebene Format nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="185"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="188"/>
         <source>Raster update error</source>
         <translation>Rasteraktualisierungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="185"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="188"/>
         <source>Could not open the created raster for updating. The heatmap was not generated.</source>
         <translation>Konnte die erzeugte Rasterdatei nicht zur Aktualierung öffnen.  Die Heatmap wurde nicht erzeugt.</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="228"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="231"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="228"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="231"/>
         <source>Rendering heatmap...</source>
         <translation>Zeichne Heatmap...</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="229"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="232"/>
         <source>QGIS</source>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="242"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="245"/>
         <source>Heatmap generation aborted</source>
         <translation>Heatmap-Erzeugung abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/plugins/heatmap/heatmap.cpp" line="242"/>
+        <location filename="../src/plugins/heatmap/heatmap.cpp" line="245"/>
         <source>QGIS will now load the partially-computed raster</source>
         <translation>QGIS lädt nun das teilweise berechnete Raster</translation>
     </message>
@@ -13211,55 +13229,55 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HelpEditionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1354"/>
         <source>Cannot open help file: %s</source>
         <translation>Die Hilfe-Datei %s konnte nicht geöffnet werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1355"/>
         <source><h2>Algorithm description</h2>
 </source>
         <translation><h2>Algorithmus Beschreibung</h2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1356"/>
         <source><h2>Input parameters</h2>
 </source>
         <translation><h2>Eingangsparameter</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1357"/>
         <source><h2>Outputs</h2>
 </source>
         <translation><h2>Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1358"/>
         <source>Algorithm description</source>
         <translation>Algorithmus Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1359"/>
         <source>Input parameters</source>
         <translation>Eingangs Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1360"/>
         <source>Outputs</source>
         <translation>Ausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
         <source>Algorithm created by</source>
         <translation>Algorithmus erstellt von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
         <source>Algorithm help written by</source>
         <translation>Algorithmus Hilfe Datei geschrieben von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1363"/>
         <source>Algorithm version</source>
         <translation>Alorithmus Version</translation>
     </message>
@@ -13267,47 +13285,47 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HistoryDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1367"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1369"/>
         <source>Save As...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1368"/>
         <source>Clear history</source>
         <translation>Historie leeren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
         <source>Save history</source>
         <translation>Historie speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
         <source>Are you sure you want to clear the history?</source>
         <translation>Soll die Historie wirklich geleert werden?</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
         <source>Log files (*.log *.LOG)</source>
         <translation>Log Dateien (*.log *.LOG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
         <source>Create test</source>
         <translation>Test erzeugen</translation>
     </message>
@@ -13336,72 +13354,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1380"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1381"/>
         <source>Meters</source>
         <translation>Meter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1382"/>
         <source>Feet</source>
         <translation>Fuß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
         <source>Miles</source>
         <translation>Meilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
         <source>Kilometers</source>
         <translation>Kilometer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
         <source>Layer units</source>
         <translation>Layereinheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
         <source>Source points layer</source>
         <translation>Quellpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1387"/>
         <source>Destination hubs layer</source>
         <translation>Zielnabenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
         <source>Hub layer name attribute</source>
         <translation>Nabenlayernamenattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
         <source>Output shape type</source>
         <translation>Ausgabe-Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1390"/>
         <source>Measurement unit</source>
         <translation>Maßeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1391"/>
         <source>Hub distance</source>
         <translation>Knotenabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1392"/>
         <source>Same layer given for both hubs and spokes</source>
         <translation>Gleicher Name für Naben- und Speichenlayer gewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1379"/>
         <source>Distance to nearest hub</source>
         <translation>Abstand zum nächsten Knoten</translation>
     </message>
@@ -13409,37 +13427,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
         <source>Hub point layer</source>
         <translation>Nabenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
         <source>Hub ID field</source>
         <translation>Nabenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
         <source>Spoke point layer</source>
         <translation>Speichenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
         <source>Spoke ID field</source>
         <translation>Speichenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1396"/>
         <source>Hub lines</source>
         <translation>Knotenlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1397"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
         <source>Same layer given for both hubs and spokes</source>
         <translation>Gleicher Name für Naben- und Speichenlayer gewählt</translation>
     </message>
@@ -13447,52 +13465,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HypsometricCurves</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1408"/>
         <source>DEM to analyze</source>
         <translation>Zu analysierendes DEM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1409"/>
         <source>Boundary layer</source>
         <translation>Begrenzungslayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1410"/>
         <source>Step</source>
         <translation>Schrittweite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1411"/>
         <source>Use % of area instead of absolute value</source>
         <translation>Prozentsatz der Fläche statt absolutem Wert verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1406"/>
         <source>Hypsometric curves</source>
         <translation>Höhenschichtenkurven</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1407"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
         <source>Feature %d does not intersect raster or entirely located in NODATA area</source>
         <translation>Objekt %d schneidet das Raster nicht oder ist komplett im leeren Bereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
         <source>Area</source>
         <translation>Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1417"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
         <source>Elevation</source>
         <translation>Geländehöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
         <source>Feature %d is smaller than raster cell size</source>
         <translation>Objekt %d ist kleiner als Rasterzellengröße</translation>
     </message>
@@ -13500,81 +13518,81 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>ImportIntoPostGIS</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1431"/>
         <source>Wrong database connection name: %s</source>
         <translation>Falscher Datenbankverbindungsname: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1434"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1432"/>
         <source>Couldn't connect to database:
 %s</source>
         <translation>Keine Datenbankverbindung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1433"/>
         <source>Error importing to PostGIS
 %s</source>
         <translation>Fehler beim PostGIS-Import
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1420"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1421"/>
         <source>Layer to import</source>
         <translation>Zu importierender Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
         <source>Schema (schema name)</source>
         <translation>Schema (Schemaname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
         <source>Table to import to (leave blank to use layer name)</source>
         <translation>Importieren in Tabelle (leer lassen um den Layername zu verwenden)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
         <source>Primary key field</source>
         <translation>Primärschlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
         <source>Geometry column</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1428"/>
         <source>Create spatial index</source>
         <translation>Räumlichen Index erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
         <source>Convert field names to lowercase</source>
         <translation>Feldnamen in Kleinschreibung umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1430"/>
         <source>Drop length constraints on character fields</source>
         <translation>Längenbeschränkungen auf Textfeld verwerfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1419"/>
         <source>Import into PostGIS</source>
         <translation>In PostGIS importieren</translation>
     </message>
@@ -13590,12 +13608,12 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>InputLayerSelectorPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1437"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1438"/>
         <source>All files (*.*);;</source>
         <translation>Alle Dateien (*.*);;</translation>
     </message>
@@ -13603,37 +13621,36 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Intersection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>Objektgeometriefehler: Ein oder mehrere Objekte wegen ungültiger Geometrie ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1443"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1444"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1445"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1448"/>
         <source>Input layer has unsupported geometry type {}</source>
-        <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+        <translation type="obsolete">Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1442"/>
         <source>Intersection</source>
         <translation>Verschneidung</translation>
     </message>
@@ -13641,37 +13658,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>JoinAttributes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1452"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1453"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
         <source>Table field</source>
         <translation>Tabellenspalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1459"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
         <source>Table field 2</source>
         <translation>Tabellenfeld 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1460"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1457"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1451"/>
         <source>Join attributes table</source>
         <translation>Attributtabellen verknüpfen</translation>
     </message>
@@ -13695,184 +13712,184 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>LAStoolsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1461"/>
         <source>LAStools folder is not configured.
 Please configure it before running LAStools algorithms.</source>
         <translation>LAStools-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1462"/>
         <source>verbose</source>
         <translation>ausführlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1463"/>
         <source>open LAStools GUI</source>
         <translation>LAStools-GUI öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1464"/>
         <source>number of cores</source>
         <translation>Kernanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1465"/>
         <source>input LAS/LAZ file</source>
         <translation>LAS/LAZ-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1466"/>
         <source>input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1467"/>
         <source>input wildcard(s)</source>
         <translation>Eingabeplatzhalter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1468"/>
         <source>merge all input files on-the-fly into one</source>
         <translation>Alle Eingabedateien spontan in einer zusammenfassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
         <source>horizontal feet</source>
         <translation>Fuß horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
         <source>vertical feet</source>
         <translation>Fuß vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
         <source>files are flightlines</source>
         <translation>Dateien sind Fluglinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
         <source>apply file source ID</source>
         <translation>Dateiquellekennung anwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
         <source>step size / pixel size</source>
         <translation>Schrittweite/Pixelgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
         <source>output LAS/LAZ file</source>
         <translation>LAS/LAZ-Ausgabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1475"/>
         <source>output format</source>
         <translation>Ausgabeformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1476"/>
         <source>Output raster file</source>
         <translation>Ausgaberasterdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1477"/>
         <source>Output vector file</source>
         <translation>Ausgabevektordatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1478"/>
         <source>output directory</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1479"/>
         <source>output appendix</source>
         <translation>Ausgabe Anhang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
         <source>empty temporary directory</source>
         <translation>Leeres Temporärverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
         <source>additional command line parameter(s)</source>
         <translation>Weitere(r) Kommandozeilenparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
         <source>filter (by return, classification, flags)</source>
         <translation>filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
         <source>second filter (by return, classification, flags)</source>
         <translation>zweiter Filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1484"/>
         <source>third filter (by return, classification, flags)</source>
         <translation>dritter Filter (nach Return, Klassifikation, Flag)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1485"/>
         <source>filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Filtern (nach Koordinaten, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1486"/>
         <source>value for filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Wert für Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1487"/>
         <source>second filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Zweiter Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1488"/>
         <source>value for second filter (by coordinate, intensity, GPS time, ...)</source>
         <translation>Wert für zweiten Filter (nach Koordinate, Intensität, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
         <source>transform (coordinates)</source>
         <translation>Umwandeln (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
         <source>value for transform (coordinates)</source>
         <translation>Wert für Transformation (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
         <source>second transform (coordinates)</source>
         <translation>zweite Umwandlung (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
         <source>value for second transform (coordinates)</source>
         <translation>Wert für zweite Umwandlung (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
         <source>transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1494"/>
         <source>value for transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Wert für Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1498"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1495"/>
         <source>second transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Zweite Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1496"/>
         <source>value for second transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Wert für zweite Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
@@ -13880,12 +13897,12 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LAStoolsUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1500"/>
         <source>LAStools command line</source>
         <translation>LAStools Kommandozeile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1501"/>
         <source>LAStools console output</source>
         <translation>LAStools-Konsolenausgabe</translation>
     </message>
@@ -13911,42 +13928,42 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LengthArea</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1505"/>
         <source>Length Area Stream Source</source>
         <translation>Länge Fläche Strom Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1506"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1507"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -13954,42 +13971,42 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LengthAreaMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1516"/>
         <source>Length Area Stream Source (multifile)</source>
         <translation>Länge Fläche Strom Quelle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1517"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1518"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1519"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1520"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1521"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1525"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1522"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1523"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -13997,22 +14014,22 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LidarToolsAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1527"/>
         <source>LAStools folder</source>
         <translation>LAStools-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1528"/>
         <source>Fusion folder</source>
         <translation>Fusion-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1529"/>
         <source>Wine folder</source>
         <translation>Wine-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1530"/>
         <source>Tools for LiDAR data</source>
         <translation>Werkzeuge für LiDAR-Daten</translation>
     </message>
@@ -14020,37 +14037,37 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LinesIntersection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1535"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1536"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1537"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1538"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1539"/>
         <source>Intersect unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Schnitts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1540"/>
         <source>Intersections</source>
         <translation>Schnittpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1534"/>
         <source>Line intersections</source>
         <translation>Linienschnittpunkte</translation>
     </message>
@@ -14058,22 +14075,22 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
 <context>
     <name>LinesToPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1545"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1546"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
         <source>Polygons from lines</source>
         <translation>Polygon aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1544"/>
         <source>Lines to polygons</source>
         <translation>Linien zu Polygonen</translation>
     </message>
@@ -15587,37 +15604,37 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MeanAndStdDevPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1552"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1553"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1554"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1555"/>
         <source>Mean field</source>
         <translation>Durchschnittswert Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
         <source>StdDev field</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
         <source>Plot</source>
         <translation>Plot</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1551"/>
         <source>Mean and standard deviation plot</source>
         <translation>Mittel- und Standardabweichungsplott</translation>
     </message>
@@ -15625,32 +15642,32 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MeanCoords</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1562"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1563"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1564"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1565"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1566"/>
         <source>Mean coordinates</source>
         <translation>Mittlere Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1561"/>
         <source>Mean coordinate(s)</source>
         <translation>Mittlere Koordinate(n)</translation>
     </message>
@@ -15658,37 +15675,37 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>Merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1571"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1572"/>
         <source>Layers to merge</source>
         <translation>Zusammenzuführende Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
         <source>All layers must have same geometry type!</source>
         <translation>Alle Layer müssen den gleichen Geometrietyp haben!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
         <source>{} field in layer {} has different data type than in other layers.</source>
         <translation>Feld {} im Layer {} hat einen anderen Datentyp als in anderen Layern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
         <source>Attribute type mismatch</source>
         <translation>Attributtyp nicht passend</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1573"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1570"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
@@ -15696,22 +15713,22 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MergeData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1580"/>
         <source>Merge LAS Files</source>
         <translation>LAS-Dateien zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1581"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1582"/>
         <source>Input LAS files</source>
         <translation>LAS-Eingabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1583"/>
         <source>Output merged LAS file</source>
         <translation>Zusammengefasste LAS-Ausgabedatei</translation>
     </message>
@@ -15719,12 +15736,12 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>MessageBarProgress</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1590"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1587"/>
         <source>Executing algorithm <i>{0}</i></source>
         <translation>Führe Algorithmus aus <i>{0}</i></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1588"/>
         <source>Problem executing algorithm</source>
         <translation>Problem bei Algorithmus-Ausführung</translation>
     </message>
@@ -16174,17 +16191,17 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>ModelerAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1592"/>
         <source>Model</source>
         <translation>Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1593"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1594"/>
         <source>Parameter %s in algorithm %s in the model is run with default value! Edit the model to make sure that this is correct.</source>
         <translation>Parameter %s in Algorithmus %s im Modell wird mit Vorgabewert ausgeführt! Bitte Modell bearbeiten, um sicherzustellen, dass dies richtig ist.</translation>
     </message>
@@ -16193,39 +16210,39 @@ Funktioniert auf allen ändernbaren Layern</translation>
         <translation type="obsolete">Falscher Wert: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1596"/>
         <source>Prepare algorithm: %s</source>
         <translation>Bereite Algorithmus vor: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1597"/>
         <source>Running %s [%i/%i]</source>
         <translation>Verarbeite %s [%i/%i]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1598"/>
         <source>OK. Execution took %0.3f ms (%i outputs).</source>
         <translation>OK. Ausführung dauerte %0.3f ms (%i Ausgaben).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
         <source>Failed</source>
         <translation>Fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1603"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
         <source>Error executing algorithm %s
 %s</source>
         <translation>Fehler in Algorithmusausführung %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
         <source>Model processed ok. Executed %i algorithms total</source>
         <translation>Modellverarbeitung OK. Ausgeführte Anzahl der Algorithmen: %i</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
         <source>Wrong value %s for %s %s</source>
         <translation>Falscher Wert %s für %s %s</translation>
     </message>
@@ -16233,22 +16250,22 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>ModelerAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1605"/>
         <source>Models folder</source>
         <translation>Modellverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1606"/>
         <source>Models</source>
         <translation>Modelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1607"/>
         <source>Could not load model %s</source>
         <translation>Konnte Modell %s nicht laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
         <source>Could not load model %s
 %s</source>
         <translation>Konnte Modell nicht laden %s
@@ -16258,153 +16275,153 @@ Funktioniert auf allen ändernbaren Layern</translation>
 <context>
     <name>ModelerDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1612"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1613"/>
         <source>[Enter model name here]</source>
         <translation>[Modellname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1614"/>
         <source>[Enter group name here]</source>
         <translation>[Gruppenname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1617"/>
         <source>Empty model</source>
         <translation>Leeres Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
         <source>Save Model As Image</source>
         <translation>Modell als Bild speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
         <source>PNG files (*.png *.PNG)</source>
         <translation>PNG-Dateien (*.png *.PNG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1621"/>
         <source>Save Model As Python Script</source>
         <translation>Modell als Pythonskript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1622"/>
         <source>Python files (*.py *.PY)</source>
         <translation>Python-Dateien (*.py *.PY)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1623"/>
         <source>Model exported</source>
         <translation>Modell exportiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1624"/>
         <source>Model was correctly exported.</source>
         <translation>Modell wurde korrekt exportiert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1626"/>
         <source>Please enter group and model names before saving</source>
         <translation>Bitte Gruppen- und Modellnamen vor dem Speichern angeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1627"/>
         <source>Save Model</source>
         <translation>Modell speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1628"/>
         <source>Processing models (*.model)</source>
         <translation>Verarbeitungsmodelle (*.model)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1629"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1630"/>
         <source>Unable to save edits. Reason:
  %s</source>
         <translation>Änderung konnten nicht gespeichert werden. Grund:
  %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
         <source>Can't save model</source>
         <translation>Konnte Modell nicht speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
         <source>Processing models (*.model *.MODEL)</source>
         <translation>Auswertungsmodelle (*.model *.MODEL)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1637"/>
         <source>Could not load model %s
 %s</source>
         <translation>Konnte Modell %s nicht laden
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1639"/>
         <source>The selected model could not be loaded.
 See the log for more information.</source>
         <translation>Das gewählte Modell konnte nicht geladen werden.
 Mehr Informationen.im Protokoll.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
         <source>Model doesn't contains any algorithms and/or parameters and can't be executed</source>
         <translation>Model beinhaltet keine Algorithmen und/oder Parameter und kann deshalb nicht ausgeführt werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
         <source>This model can't be saved in its original location (probably you do not have permission to do it). Please, use the 'Save as...' option.</source>
         <translation>Dieses Modell kann nicht an seiner ursprünglichen Stelle gespeichert werden (wahrscheinlich haben Sie keine Berechtigung dazu). Bitte 'Speichern als...' verwenden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1633"/>
         <source>Model saved</source>
         <translation>Modell gespeichert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1634"/>
         <source>Model was correctly saved.</source>
         <translation>Modell wurde korrekt gespeichert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1635"/>
         <source>Open Model</source>
         <translation>Modell öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
         <source>Could not open model</source>
         <translation>Konnte Modell nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1640"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1615"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1616"/>
         <source>There are unsaved changes in model. Continue?</source>
         <translation>Ungesicherte Änderung am Modell. Fortfahren?</translation>
     </message>
@@ -16412,7 +16429,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerOnlyAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1644"/>
         <source>Modeler-only tools</source>
         <translation>Nur-Modellierungswerkzeuge</translation>
     </message>
@@ -16420,142 +16437,142 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParameterDefinitionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1648"/>
         <source>Parameter definition</source>
         <translation>Parameter Definitionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1649"/>
         <source>Parameter name</source>
         <translation>Parameter Namen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1650"/>
         <source>Checked</source>
         <translation>Überprüft</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
         <source>Parent layer</source>
         <translation>Übergeordneter Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1670"/>
         <source>Required</source>
         <translation>Erforderlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1671"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
         <source>Shape type</source>
         <translation>Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1653"/>
         <source>Any</source>
         <translation>Jeder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1654"/>
         <source>Point</source>
         <translation>Punkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1655"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1656"/>
         <source>Polygon</source>
         <translation>Polygon</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
         <source>Data type</source>
         <translation>Daten Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
         <source>Vector (any)</source>
         <translation>Vector (jeder)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
         <source>Vector (point)</source>
         <translation>Vector (Punkt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
         <source>Vector (line)</source>
         <translation>Vektor (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
         <source>Vector (polygon)</source>
         <translation>Vektor (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
         <source>Min/Max values</source>
         <translation>Min/Max Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1665"/>
         <source>Default value</source>
         <translation>Vorgabewert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1669"/>
         <source>Folder</source>
         <translation>Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
         <source>Unable to define parameter</source>
         <translation>Nicht in der Lage Parameter zu definieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
         <source>Invalid parameter name</source>
         <translation>Ungültiger Parameter Name</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -16563,52 +16580,65 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParametersDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1679"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1680"/>
         <source>Show advanced parameters</source>
         <translation>Zeige erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1681"/>
         <source>Parent algorithms</source>
         <translation>Übergeordneter Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1683"/>
+        <source><p>Downloading algorithm help... Please wait.</p></source>
+        <translation><p>Lade Algorithmenhilfe herunter... Bite warten.</p></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1684"/>
+        <source><h2>No help available for this algorithm</h2></source>
+        <translation><h2>Keine Hilfe zu diesem Algorithmus verfügbar</h2></translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1685"/>
+        <source><h2>No help available for this algorithm</h2><p>{}</p></source>
+        <translation><h2>Keine Hilfe zu diesem Algorithmus verfügbar</h2><p>{}</p></translation>
+    </message>
+    <message>
         <source><h2>Sorry, no help is available for this algorithm.</h2></source>
-        <translation><h2>Sorry, keine Hilfe für diesen Algorithmus verfügbar.</h2></translation>
+        <translation type="obsolete"><h2>Sorry, keine Hilfe für diesen Algorithmus verfügbar.</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1687"/>
         <source><h2>Could not open help file :-( </h2></source>
-        <translation><h2>Hilfedatei konnte nicht geöffnet werden :-( </h2></translation>
+        <translation type="obsolete"><h2>Hilfedatei konnte nicht geöffnet werden :-( </h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1686"/>
         <source>Hide advanced parameters</source>
         <translation>Verstecke erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1687"/>
         <source>'%s' from algorithm '%s'</source>
         <translation>'%s' von Algorithmus '%s'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
         <source>Unable to add algorithm</source>
         <translation>Nicht in der Lage Algorithmus hinzuzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1689"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -16616,7 +16646,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultilineTextPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1693"/>
         <source>[Use text below]</source>
         <translation>[Benutze Text unterhalb]</translation>
     </message>
@@ -16624,22 +16654,22 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipartToSingleparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1698"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1701"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
         <source>Single parts</source>
         <translation>Einzelteile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1697"/>
         <source>Multipart to singleparts</source>
         <translation>Mehr- zu einteilig</translation>
     </message>
@@ -16647,27 +16677,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleFileInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1704"/>
         <source>Add file</source>
         <translation>Datei hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1705"/>
         <source>Remove file(s)</source>
         <translation>Datei(en) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1709"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
         <source>Select file(s)</source>
         <translation>Datei(en) wählen</translation>
     </message>
@@ -16675,17 +16705,17 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1712"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1713"/>
         <source>Clear selection</source>
         <translation>Auswahl aufheben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
         <source>Toggle selection</source>
         <translation>Auswahl umschalten</translation>
     </message>
@@ -16693,12 +16723,12 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1718"/>
         <source>0 elements selected</source>
         <translation>0 Elemente ausgewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1719"/>
         <source>%d elements selected</source>
         <translation>%d Elemente ausgewählt</translation>
     </message>
@@ -16706,47 +16736,47 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NearestNeighbourAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1724"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1725"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
         <source>Nearest neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
         <source>Observed mean distance</source>
         <translation>Beobachtete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
         <source>Expected mean distance</source>
         <translation>Erwartete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
         <source>Nearest neighbour index</source>
         <translation>Nächster Nachbar Index</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1731"/>
         <source>Z-Score</source>
         <translation>Z-Wertung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1723"/>
         <source>Nearest neighbour analysis</source>
         <translation>Nächster Nachbaranalyse</translation>
     </message>
@@ -16803,87 +16833,87 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NumberInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1735"/>
         <source>[Enter your formula here]</source>
         <translation>[Formel hier eingeben]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1736"/>
         <source>Values from data layers extents</source>
         <translation>Werte aus den Layerausmaßen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1737"/>
         <source>Min X</source>
         <translation>Min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1738"/>
         <source>Max X</source>
         <translation>Max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1739"/>
         <source>Min Y</source>
         <translation>Min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
         <source>Max Y</source>
         <translation>Max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1741"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1742"/>
         <source>Values from raster layers statistics</source>
         <translation>Werte aus Rasterlayerstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1743"/>
         <source>Mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1744"/>
         <source>Std. deviation</source>
         <translation>Std.-abweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
         <source>Max value</source>
         <translation>Max. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1746"/>
         <source>Min value</source>
         <translation>Min. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1747"/>
         <source>Values from QGIS map canvas</source>
         <translation>Werte aus QGIS-Kartefenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1748"/>
         <source>Current extent</source>
         <translation>Aktuelle Ausmaße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1749"/>
         <source>Full extent of all layers in map canvas</source>
         <translation>Volles Ausmaß aller Layer der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1750"/>
         <source>Wrong expression</source>
         <translation>Falscher Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
         <source>The expression entered is not correct</source>
         <translation>Der eingegebene Ausdruck ist ungültig</translation>
     </message>
@@ -16891,19 +16921,19 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1755"/>
         <source>Could not open OTB algorithm: %s
 %s</source>
         <translation>Kann OTB-Algorithmus nicht öffnen: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1756"/>
         <source>OTB execution command</source>
         <translation>OTB-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
         <source>Adapter for %s not found</source>
         <translation>Adapter für %s nicht gefunden</translation>
     </message>
@@ -16911,42 +16941,42 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1762"/>
         <source>Problem with OTB installation: OTB was not found or is not correctly installed</source>
         <translation>Problem mit OTB-Installation: OTB wurde nicht gefunden oder ist nicht richtig installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
         <source>Problem with OTB installation: installed OTB version (%s) is not supported</source>
         <translation>Problem mit OTB-Installation: Installierte OTB-Version (%s) wird nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
         <source>Could not open OTB algorithm: %s</source>
         <translation>Konnte OTB-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1765"/>
         <source>OTB command line tools folder</source>
         <translation>OTB Kommandozeilen Werkzeuge Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1766"/>
         <source>OTB applications folder</source>
         <translation>OTB Anwendungsordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1767"/>
         <source>SRTM tiles folder</source>
         <translation>SRTM Kachel Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1768"/>
         <source>Geoid file</source>
         <translation>Geoid Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1761"/>
         <source>Orfeo Toolbox (Image analysis)</source>
         <translation>Orfeo Toolbox (Bildanalyse)</translation>
     </message>
@@ -16954,32 +16984,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2Ogr</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1773"/>
         <source>[OGR] Conversion</source>
         <translation>[OGR] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
         <source>Destination Format</source>
         <translation>Zielformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
         <source>Creation options</source>
         <translation>Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1777"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1772"/>
         <source>Convert format</source>
         <translation>Format konvertieren</translation>
     </message>
@@ -16987,52 +17017,52 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1782"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1783"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1784"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltenname ("geometry" bei Shapedateien, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1785"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1786"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1787"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1788"/>
         <source>Output as singlepart geometries (only used when dissolving by attribute)</source>
         <translation>Als einteilige Geometrien ausgaben (wird nur verwendet, wenn nach Attribute aufgelöst wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1789"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1781"/>
         <source>Buffer vectors</source>
         <translation>Vektoren puffern</translation>
     </message>
@@ -17040,32 +17070,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1795"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
         <source>Clip layer</source>
         <translation>Layer zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1799"/>
         <source>Clipped (polygon)</source>
         <translation>Abgeschnitten (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1794"/>
         <source>Clip vectors by polygon</source>
         <translation>Vektoren durch Polygon zuschneiden</translation>
     </message>
@@ -17073,32 +17103,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClipExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1804"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1805"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1806"/>
         <source>Clip extent</source>
         <translation>Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1807"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1808"/>
         <source>Clipped (extent)</source>
         <translation>Abgeschnitten (Grenze)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1803"/>
         <source>Clip vectors by extent</source>
         <translation>Vektoren auf Ausmaße zuschneiden</translation>
     </message>
@@ -17106,67 +17136,67 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrDissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1813"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1816"/>
         <source>Dissolve field</source>
         <translation>Auflösungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1817"/>
         <source>Output as multipart geometries</source>
         <translation>Ausgabe als mehrteilige Geometrien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1818"/>
         <source>Keep input attributes</source>
         <translation>Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1819"/>
         <source>Count dissolved features</source>
         <translation>Aufgelöste Objekte zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
         <source>Compute area and perimeter of dissolved features</source>
         <translation>Fläche und Umfang der aufgelösten Objekte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1823"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
         <source>Compute min/max/sum/mean for the following numeric attribute</source>
         <translation>Min/Max/Summe/Durchschnitt der folgenden nummerischen Attribute berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1824"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
         <source>Numeric attribute to compute dissolved features stats</source>
         <translation>Nummerische Attribute um Statistik zu ausgelösten Objekten zu berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1823"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1824"/>
         <source>Dissolved</source>
         <translation>Aufgelöst</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1812"/>
         <source>Dissolve polygons</source>
         <translation>Polygone auflösen</translation>
     </message>
@@ -17174,62 +17204,62 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrOneSideBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1829"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1830"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1833"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1831"/>
         <source>Operation</source>
         <translation>Operation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1832"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1833"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1834"/>
         <source>Buffer side</source>
         <translation>Pufferseite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
         <source>Output as singlepart geometries (only used when dissolving by attribute)</source>
         <translation>Als einteilige Geometrien ausgaben (wird nur verwendet, wenn nach Attribute aufgelöst wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1838"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1839"/>
         <source>Single sided buffer</source>
         <translation>Doppelseitiger Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1828"/>
         <source>Single sided buffers (and offset lines) for lines</source>
         <translation>Einseitige Puffer (und Versatzlinien) für Linien</translation>
     </message>
@@ -17237,37 +17267,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrPointsOnLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1844"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1845"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1846"/>
         <source>Geometry column name ("geometry" for Shapefiles, may be different for other formats)</source>
         <translation>Geometriespaltename ("geometry" für Shapedatei, kann bei anderen Formaten abweichen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1847"/>
         <source>Distance from line start represented as fraction of line length</source>
         <translation>Abstand vom Linienanfang als Bruchteil der Linienlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1850"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
         <source>Additional creation options (see ogr2ogr manual)</source>
         <translation>Zusätzliche Erzeugungsoptionen (siehe ogr2ogr-Handbuch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1851"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
         <source>Points along lines</source>
         <translation>Punkte entlang Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1843"/>
         <source>Create points along lines</source>
         <translation>Punkte entlang von Linien erzeugen</translation>
     </message>
@@ -17275,87 +17305,87 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrTableToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1855"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1856"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
         <source>Primary key</source>
         <translation>Primärschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1860"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandene Feld, wird genutzt, wenn obige Option leergelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1862"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1863"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1864"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1865"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
         <source>Continue after a failure, skipping the failed record</source>
         <translation>Nach Fehler fortsetzen und fehlerhaften Datensatz überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1869"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1853"/>
         <source>Import layer/table as geometryless table into PostgreSQL database</source>
         <translation>Layer/Tabelle als geometrielose Tabelle in PostgreSQL importieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1854"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1861"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17363,167 +17393,167 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1875"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1876"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1880"/>
         <source>Host</source>
         <translation>Host</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1881"/>
         <source>Port</source>
         <translation>Port</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
         <source>Username</source>
         <translation>Benutzername</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
         <source>Database name</source>
         <translation>Datenbankname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
         <source>Password</source>
         <translation>Passwort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1885"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1886"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1892"/>
         <source>Maximum distance between 2 nodes (densification)</source>
         <translation>Maximaler Abstand zwischen zwei Knoten (Verdichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1893"/>
         <source>Select features by extent (defined in input layer CRS)</source>
         <translation>Wähle Objekte nach Ausdehnung (definiert in Eingabelayer KBS)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1894"/>
         <source>Clip the input layer using the above (rectangle) extent</source>
         <translation>Eingabelayer auf obige (rechteckigen) Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1896"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1902"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1900"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1901"/>
         <source>Do not create spatial index</source>
         <translation>Keinen räumlichen Index erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1904"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1902"/>
         <source>Continue after a failure, skipping the failed feature</source>
         <translation>Nach Fehler fortsetzen und fehlerhaftes Objekt überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1905"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1873"/>
         <source>Import Vector into PostGIS database (new connection)</source>
         <translation>Vektor in PostGIS-Datenbank importieren (neue Verbindung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1874"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1877"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1878"/>
         <source>Reproject to this CRS on output </source>
         <translation>Bei Ausgabe auf dieses KBS reprojizieren </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1879"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1887"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandenes Feld, wird verwendet, wenn obige Option leer gelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1903"/>
         <source>Promote to Multipart</source>
         <translation>In Mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1904"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1895"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17531,147 +17561,147 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1911"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1912"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1917"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1918"/>
         <source>Table name, leave blank to use input name</source>
         <translation>Tabellenname,  leer lassen um Eingabenamen zu verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1921"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1922"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1923"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1926"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1924"/>
         <source>Maximum distance between 2 nodes (densification)</source>
         <translation>Maximaler Abstand zwischen zwei Knoten (Verdichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1925"/>
         <source>Select features by extent (defined in input layer CRS)</source>
         <translation>Wähle Objekte nach Ausdehnung (definiert in Eingabelayer KBS)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1926"/>
         <source>Clip the input layer using the above (rectangle) extent</source>
         <translation>Eingabelayer auf obige (rechteckigen) Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
         <source>Group N features per transaction (Default: 20000)</source>
         <translation>n Objekte je Transaktion gruppieren (Voreinstellung: 20000)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1929"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1931"/>
         <source>Append and add new fields to existing table</source>
         <translation>Anhängen und neue Felder zu vorhandener Tabelle hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1932"/>
         <source>Do not launder columns/table names</source>
         <translation>Spalten/Tabellennamen nicht bereinigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1933"/>
         <source>Do not create spatial index</source>
         <translation>Keinen räumlichen Index erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
         <source>Continue after a failure, skipping the failed feature</source>
         <translation>Nach Fehler fortsetzen und fehlerhaftes Objekt überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1909"/>
         <source>Import Vector into PostGIS database (available connections)</source>
         <translation>Vektor in PostGIS-Datenbank importieren (vorhandene Verbindungen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1912"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1910"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1914"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
         <source>Reproject to this CRS on output </source>
         <translation>Bei Ausgabe auf dieses KBS reprojizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1916"/>
         <source>Override source CRS</source>
         <translation>Quell-CRS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (Neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
         <source>Primary key (existing field, used if the above option is left empty)</source>
         <translation>Primärschlüssel (vorhandene Feld, wird genutzt, wenn obige Option leergelassen wird)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1935"/>
         <source>Promote to Multipart</source>
         <translation>In mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
         <source>Keep width and precision of input attributes</source>
         <translation>Breite und Genauigkeit der Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1927"/>
         <source>Select features using a SQL "WHERE" statement (Ex: column='value')</source>
         <translation>Objekte mit SQL "Where"-Klausel auswählen (Bsp: column='value')</translation>
     </message>
@@ -17679,27 +17709,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1942"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
         <source>Summary output only</source>
         <translation>Nur Zusammenfassung ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1945"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1941"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -17707,37 +17737,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrSql</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1949"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1950"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1951"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1952"/>
         <source>SQL</source>
         <translation>SQL</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1953"/>
         <source>Dialect</source>
         <translation>Dialekt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
         <source>SQL result</source>
         <translation>SQL-Ergebnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
         <source>Empty SQL. Please enter valid SQL expression and try again.</source>
         <translation>Leerer SQL-Ausdruck. Bitte einen gültigen SQL-Ausdruck eingeben und wiederholen.</translation>
     </message>
@@ -17745,22 +17775,22 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OpenViewerAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1959"/>
         <source>Open Fusion LAS viewer</source>
         <translation>OpenFusion-LAS-Ansicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1960"/>
         <source>Visualization</source>
         <translation>Visualisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1963"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1961"/>
         <source>Unable to open viewer</source>
         <translation>Konnte Anzeige nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1962"/>
         <source>The current Fusion folder does not contain the viewer executable.
 Please check the configuration in the Processing settings dialog.</source>
         <translation>Das aktuelle Fusion-Verzeichnis enthält das Anzeigeprogramm nicht.
@@ -17839,37 +17869,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OrientedMinimumBoundingBox</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1966"/>
         <source>Oriented minimum bounding box</source>
         <translation>Minimaler gerichteter Umgrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1967"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1968"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1969"/>
         <source>Calculate OMBB for each feature separately</source>
         <translation>Minimaler gerichteter Umgrenzungsrahmen für jedes Objekt einzeln berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1970"/>
         <source>Oriented_MBBox</source>
         <translation>Minimale orientierte Umrandungsgrenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
         <source>Can't calculate an OMBB for each point, it's a point. The number of points must be greater than 2</source>
         <translation>Kann MOUG für jeden Punkt nicht berechnen. es ist ein Punkt. Die Anzahl der Punkt muß größer als 2 sein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
         <source>Can't calculate an OMBB for feature {0}.</source>
         <translation>Kann MOUG für Objekt {0} nicht bestimmen.</translation>
     </message>
@@ -17877,12 +17907,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputFile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1976"/>
         <source>All files(*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1977"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien(*.%s)</translation>
     </message>
@@ -17890,7 +17920,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputHTML</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1981"/>
         <source>HTML files(*.html)</source>
         <translation>HTML Dateien (*.html)</translation>
     </message>
@@ -17898,7 +17928,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1985"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17906,47 +17936,47 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1989"/>
         <source>[Save to temporary file]</source>
         <translation>[In temporärer Datei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1990"/>
         <source>Save to a temporary file</source>
         <translation>In temporärer Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1991"/>
         <source>Save to file...</source>
         <translation>In Datei speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1992"/>
         <source>Save to memory layer</source>
         <translation>In Memory-Layer speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
         <source>Save to Spatialite table...</source>
         <translation>In Spatialite-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1994"/>
         <source>Save to PostGIS table...</source>
         <translation>In PostGIS-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1995"/>
         <source>Save Spatialite</source>
         <translation>Speichere Spatialite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1996"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1997"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
@@ -17954,7 +17984,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2003"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2001"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -17988,12 +18018,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterMultipleInput</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2005"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2006"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18001,7 +18031,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2012"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2010"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18009,7 +18039,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2014"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18017,7 +18047,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2020"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2018"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -18025,32 +18055,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2022"/>
         <source>[Not selected]</source>
         <translation>[nicht gewählt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2024"/>
         <source> [optional]</source>
         <translation> [optional]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2025"/>
         <source>Iterate over this layer</source>
         <translation>Iteriere über diesen Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2026"/>
         <source>Open output file after running algorithm</source>
         <translation>Öffne Ausgabedatei nach erfolgreicher Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2027"/>
         <source>[not set]</source>
         <translation>[nicht gesetzt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2023"/>
         <source> (xmin, xmax, ymin, ymax)</source>
         <translation> (xmin, xmax, ymin, ymax)</translation>
     </message>
@@ -18058,42 +18088,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglas</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2031"/>
         <source>Peuker Douglas</source>
         <translation>Peuker-Douglas</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2032"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2033"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2034"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2035"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2036"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2039"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2037"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2040"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2038"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -18101,42 +18131,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglasMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2042"/>
         <source>Peuker Douglas (multifile)</source>
         <translation>Peuker-Douglas (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2043"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2044"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2045"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2046"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2047"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2048"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2049"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -18144,57 +18174,57 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2054"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2055"/>
         <source>Linear (N*k x 3) distance matrix</source>
         <translation>Lineare (N*k x 3) Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2056"/>
         <source>Standard (N x T) distance matrix</source>
         <translation>Standard (N x T) Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2057"/>
         <source>Summary distance matrix (mean, std. dev., min, max)</source>
         <translation>Zusammenfassende Distanzmatrix (mtl, std.abw., min, max.)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2059"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2060"/>
         <source>Target point layer</source>
         <translation>Zielpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2061"/>
         <source>Target unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Ziels</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2064"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2062"/>
         <source>Output matrix type</source>
         <translation>Typ der Ausgabematrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2065"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2063"/>
         <source>Use only the nearest (k) target points</source>
         <translation>Nur (k) nächste Zielpunkte verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2053"/>
         <source>Distance matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
@@ -18202,32 +18232,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsDisplacement</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2068"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2069"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2070"/>
         <source>Displacement distance</source>
         <translation>Verlagerungsdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2071"/>
         <source>Horizontal distribution for two point case</source>
         <translation>Horizontale Verteilung für Zweipunktefall</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2072"/>
         <source>Displaced</source>
         <translation>Versetzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2067"/>
         <source>Points displacement</source>
         <translation>Punktversatz</translation>
     </message>
@@ -18235,27 +18265,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2077"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2078"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2079"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2080"/>
         <source>Points along line</source>
         <translation>Punkte entlang Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2076"/>
         <source>Generate points (pixel centroids) along line</source>
         <translation>Punkte (Pixelzentren) entlang einer Linie erzeugen</translation>
     </message>
@@ -18263,27 +18293,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2085"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2088"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2086"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2087"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2088"/>
         <source>Points from polygons</source>
         <translation>Punkte aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2086"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2084"/>
         <source>Generate points (pixel centroids) inside polygons</source>
         <translation>Punkte (Pixelzentren) in Polygonen erzeugen</translation>
     </message>
@@ -18291,32 +18321,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygon</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2093"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2094"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2098"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2097"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2092"/>
         <source>Count points in polygon</source>
         <translation>Punkte in Polygon zählen</translation>
     </message>
@@ -18332,37 +18362,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonUnique</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2102"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2103"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2104"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2105"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
         <source>Unique count</source>
         <translation>Eindeutige Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2101"/>
         <source>Count unique points in polygon</source>
         <translation>Eindeutige Punkte in Polygon zählen</translation>
     </message>
@@ -18370,37 +18400,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonWeighted</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2112"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2114"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2115"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2116"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2119"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
         <source>Weighted count</source>
         <translation>Gewichtete Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2111"/>
         <source>Count points in polygon(weighted)</source>
         <translation>Punkte in Polygon zählen (gewichtet)</translation>
     </message>
@@ -18408,37 +18438,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsLayerFromTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2122"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2123"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2124"/>
         <source>X field</source>
         <translation>X-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
         <source>Y field</source>
         <translation>Y-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
         <source>Points from table</source>
         <translation>Punkte aus Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2121"/>
         <source>Points layer from table</source>
         <translation>Punktlayer aus Tabelle</translation>
     </message>
@@ -18446,42 +18476,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsToPaths</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2132"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2133"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
         <source>Group field</source>
         <translation>Gruppierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
         <source>Order field</source>
         <translation>Sortierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
         <source>Date format (if order field is DateTime)</source>
         <translation>Datumsformat (wenn Sortierungsfeld DateTime ist)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2137"/>
         <source>Paths</source>
         <translation>Pfade</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2138"/>
         <source>Directory</source>
         <translation>Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2131"/>
         <source>Points to path</source>
         <translation>Punkte zu Weg</translation>
     </message>
@@ -18489,27 +18519,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolarPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2143"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2147"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2145"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2148"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2146"/>
         <source>Value field</source>
         <translation>Wertfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2142"/>
         <source>Polar plot</source>
         <translation>Polarplot</translation>
     </message>
@@ -18517,42 +18547,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolyClipData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2153"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2150"/>
         <source>Poly Clip Data</source>
         <translation>Poly-Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2151"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2154"/>
         <source>Output clipped LAS file</source>
         <translation>Zugeschnittene LAS-Datei ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2155"/>
         <source>Use Shape attribute</source>
         <translation>Shapeattribut nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2158"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2156"/>
         <source>Shape field index</source>
         <translation>Shapefeldindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2159"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2157"/>
         <source>Shape value</source>
         <translation>Shapewert</translation>
     </message>
@@ -18560,52 +18590,52 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2167"/>
         <source>Processing lines...</source>
         <translation>Verarbeite Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2168"/>
         <source>Noding lines...</source>
         <translation>Bestimme Knoten in Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
         <source>Polygonizing...</source>
         <translation>Polygonisiert...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
         <source>No polygons were created!</source>
         <translation>Es wurden keine Polygone erzeugt!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2162"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2163"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2164"/>
         <source>Keep table structure of line layer</source>
         <translation>Tabellenstruktur des Linienlayers beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
         <source>Create geometry columns</source>
         <translation>Geometriespalten erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2166"/>
         <source>Polygons from lines</source>
         <translation>Polygone aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2161"/>
         <source>Polygonize</source>
         <translation>Polygonbildung</translation>
     </message>
@@ -18613,22 +18643,22 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolygonsToLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2177"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2175"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2176"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2177"/>
         <source>Lines from polygons</source>
         <translation>Linien aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2174"/>
         <source>Polygons to lines</source>
         <translation>Polygone zu Linien</translation>
     </message>
@@ -18636,36 +18666,36 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PostGISExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2184"/>
         <source>Wrong database connection name: %s</source>
         <translation>Falscher Datenbankverbindungsname: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
         <source>Couldn't connect to database:
 %s</source>
         <translation>Keine Datenbankverbindung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2186"/>
         <source>Error executing SQL:
 %s</source>
         <translation>Fehler bei SQL-Ausführung:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2182"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2183"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2181"/>
         <source>PostGIS execute SQL</source>
         <translation>PostGIS-SQL-Ausführen</translation>
     </message>
@@ -18681,7 +18711,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Postprocessing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2192"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2190"/>
         <source>Loading resulting layers</source>
         <translation>Lade Ergebnis Layer</translation>
     </message>
@@ -18702,75 +18732,75 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Processing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2194"/>
         <source>Could not load provider: %s
 %s</source>
         <translation>Konnte Datenanbieter nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2195"/>
         <source>Error: Algorithm {0} not found
 </source>
         <translation>Fehler: Algorithmus {0} nicht gefunden
 </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2197"/>
         <source>Error: Wrong parameter value {0} for parameter {1}.</source>
         <translation>Fehler: Falscher Wert {0} für Parameter {1}.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2198"/>
         <source>Error in %s. Wrong parameter value %s for parameter %s.</source>
         <translation>Fehler in %s. Falscher Parameterwert %s für Parameter %s.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2199"/>
         <source>Error: Missing parameter value for parameter {0}.</source>
         <translation>Fehler: Fehlender Wert für Parameter {0}.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
         <source>Error in %s. Missing parameter value for parameter %s.</source>
         <translation>Fehler in %s. Fehlender Parameterwert for Parameter %s.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
         <source>Error: Wrong number of parameters</source>
         <translation>Fehler: Falsche Parameteranzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
         <source>Error: Wrong parameter value: </source>
         <translation>Fehler: Falscher Parameterwert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2205"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2203"/>
         <source>Error: Wrong output value: </source>
         <translation>Fehler: Falscher Ausgabewert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2204"/>
         <source>Unable to execute algorithm
 {0}</source>
         <translation>Kann Algorithmus nicht ausführen
 {0}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2205"/>
         <source>Warning: Not all input layers use the same CRS.
 This can cause unexpected results.</source>
         <translation>Warnung: Nicht alle Eingabelayer verwenden das gleiche KBS.
 Dies kann zu unerwarteten Ergebnissen führen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2206"/>
         <source>There were errors executing the algorithm.</source>
         <translation>Fehler bei der Ausführung des Algorithmus.</translation>
     </message>
@@ -18778,97 +18808,97 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingConfig</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2210"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2211"/>
         <source>Show extra info in Log panel</source>
         <translation>Zeige Extrainformation im Log Panel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2212"/>
         <source>Keep dialog open after running an algorithm</source>
         <translation>Behalte Dialog nach Abschluss des Algorithmus offen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2213"/>
         <source>Use only selected features</source>
         <translation>Nur gewählte Objekte nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
         <source>Use filename as layer name</source>
         <translation>Benutze Dateinamen als Layernamen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
         <source>Show recently executed algorithms</source>
         <translation>Zeige zuletzt ausgeführte Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2216"/>
         <source>Show tooltip when there are disabled providers</source>
         <translation>Tooltip anzeigen, wenn es abgeschaltete Anbieter gibt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2217"/>
         <source>Output folder</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2218"/>
         <source>Show layer CRS definition in selection boxes</source>
         <translation>Zeige Layer Koordinatensystem in Auswahlboxen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
         <source>Warn before executing if layer CRS's do not match</source>
         <translation>Zeige Warnung wenn Layer Koordinatensysteme nicht übereinstimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
         <source>Style for raster layers</source>
         <translation>Stil für Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
         <source>Style for point layers</source>
         <translation>Stil für Punktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2222"/>
         <source>Style for line layers</source>
         <translation>Stil für Linienlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2223"/>
         <source>Style for polygon layers</source>
         <translation>Stil für Polygonlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2224"/>
         <source>Pre-execution script</source>
         <translation>Skript zur Ausführung vor dem Run</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
         <source>Post-execution script</source>
         <translation>Skript zur Ausführung nach dem Run</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
         <source>Recent algs</source>
         <translation>Kürzliche verwendete Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2229"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
         <source>Default output vector layer extension</source>
         <translation>Erweiterungsvoreingestellung für Vektorlayerausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2230"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
         <source>Default output raster layer extension</source>
         <translation>Erweiterungsvoreingestellung für Rasterlayerausgaben</translation>
     </message>
@@ -18876,7 +18906,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingLog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2232"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
@@ -18884,106 +18914,110 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingPlugin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2236"/>
         <source>Pro&cessing</source>
         <translation>&Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2237"/>
         <source>&Toolbox</source>
         <translation>&Werkzeugkiste</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2238"/>
         <source>Graphical &Modeler...</source>
         <translation>Grafische &Modellierung...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
         <source>&History...</source>
         <translation>&Historie...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2240"/>
         <source>&Options...</source>
         <translation>&Optionen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
         <source>&Results Viewer...</source>
         <translation>&Ergebnisanzeige...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2244"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2242"/>
         <source>&Commander</source>
         <translation>&Commander</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2245"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2243"/>
+        <source>Ctrl+Alt+D</source>
+        <translation>Strg+Alt+D</translation>
+    </message>
+    <message>
         <source>Ctrl+Alt+M</source>
-        <translation>Strg+Alt+M</translation>
+        <translation type="obsolete">Strg+Alt+M</translation>
     </message>
 </context>
 <context>
     <name>ProcessingToolbox</name>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2247"/>
         <source>Processing Toolbox</source>
         <translation>Verarbeitungswerkzeuge</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="27"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2248"/>
         <source>Enter algorithm name to filter list</source>
         <translation>Algorithmenname eingeben, um Liste zu filtern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="61"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2249"/>
         <source>There are disabled providers that contain algorithms including your text string. Click <a href="view">to view them.</a></source>
         <translation>Es gibt deaktivierte Anbieter, die passende Algorithmen enthalten (siehe <a href="view">Anzeige</a>).</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="84"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2250"/>
         <source><html><head/><body><p>You can add more algorithms to the toolbox, <a href="enable"><span style=" text-decoration: underline; color:#0000ff;">enable additional providers.</span></a>&nbsp;&nbsp;&nbsp;<a href="close"><span style=" text-decoration: underline; color:#0000ff;">[close]</span></a></p></body></html></source>
         <translation><html><head/><body><p>Durch <a href="enable"><span style=" text-decoration: underline; color:#0000ff;">Einschalten weiterer Anbieter</span> können der Werkzeugleiste mehr Algorithmen hinzugefügt werden.</a>&nbsp;&nbsp;&nbsp;<a href="close"><span style=" text-decoration: underline; color:#0000ff;">[schließen]</span></a></p></body>< [...]
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2251"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
         <source>Execute</source>
         <translation>Ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2253"/>
         <source>Execute as batch process</source>
         <translation>Als Stapelprozeß ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2254"/>
         <source>Edit rendering styles for outputs</source>
         <translation>Darstellungsstile zur Ausgabe bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2255"/>
         <source>Error executing algorithm</source>
         <translation>Fehler bei Algorithmenausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2256"/>
         <source><h3>This algorithm cannot be run :-( </h3>
 %s</source>
         <translation><h3>Dieser Algorithmus kann nicht ausgeführt werden run :-( </h3>
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
         <source>Recently used algorithms</source>
         <translation>Zuletzt verwendete Algorithmen</translation>
     </message>
@@ -19041,7 +19075,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
         <translation>Stacktrace</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2261"/>
         <location filename="../python/python-i18n.cpp" line="30"/>
         <source>View message log</source>
         <translation>Protokoll anzeigen</translation>
@@ -19521,7 +19555,7 @@ QGIS-API ist über iface zu benutzen. Geben Sie help(iface) ein, um mehr Informa
 <context>
     <name>QGISAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2265"/>
         <source>QGIS geoalgorithms</source>
         <translation>QGIS-Geo-Algorithmen</translation>
     </message>
@@ -19660,27 +19694,27 @@ QGIS-API ist über iface zu benutzen. Geben Sie help(iface) ein, um mehr Informa
         <translation>Schätze Normalenableitungen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11321"/>
+        <location filename="../src/app/qgisapp.cpp" line="11340"/>
         <source>minidump written to %1</source>
         <translation>Minidump in %1 geschrieben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11325"/>
+        <location filename="../src/app/qgisapp.cpp" line="11344"/>
         <source>writing of minidump to %1 failed (%2)</source>
         <translation>Speichern des Minidumps in %1 gescheitert (%2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11332"/>
+        <location filename="../src/app/qgisapp.cpp" line="11351"/>
         <source>creation of minidump to %1 failed (%2)</source>
         <translation>Erzeugung des Minidump in %1 gescheitert (%2)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11335"/>
+        <location filename="../src/app/qgisapp.cpp" line="11354"/>
         <source>Crash dumped</source>
         <translation>Absturz abgebildet</translation>
     </message>
     <message>
-        <location filename="../src/app/main.cpp" line="752"/>
+        <location filename="../src/app/main.cpp" line="768"/>
         <source>QGIS starting in non-interactive mode not supported.
 You are seeing this message most likely because you have no DISPLAY environment variable set.
 </source>
@@ -19710,12 +19744,12 @@ Diese Meldung erscheint höchstwahrscheinlich, weil die Umgebungsvariable DISPLA
         <translation>Um Objekte zu wählen einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmaptoolselectutils.cpp" line="120"/>
+        <location filename="../src/app/qgsmaptoolselectutils.cpp" line="151"/>
         <source>CRS Exception</source>
         <translation>KBS-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmaptoolselectutils.cpp" line="121"/>
+        <location filename="../src/app/qgsmaptoolselectutils.cpp" line="152"/>
         <source>Selection extends beyond layer's coordinate system</source>
         <translation>Auswahl überschreitet das Koodinatensystem des Layers</translation>
     </message>
@@ -19818,15 +19852,15 @@ Sie wird deaktiviert.</translation>
         <translation>Fehler beim Lesen der Metadaten der Erweiterung %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1402"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1416"/>
         <source>Could not open CRS database %1
 Error(%2): %3</source>
         <translation>Konnte KBS-Datenbank %1 nicht öffnen
 Fehler(%2): %3</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1405"/>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1513"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1419"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1527"/>
         <location filename="../src/core/qgsvectorlayerrenderer.cpp" line="215"/>
         <source>CRS</source>
         <translation>KBS</translation>
@@ -19834,22 +19868,22 @@ Fehler(%2): %3</translation>
     <message>
         <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="147"/>
         <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="496"/>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1253"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1267"/>
         <location filename="../src/core/qgsdistancearea.cpp" line="239"/>
         <location filename="../src/providers/grass/qgsgrassgislib.cpp" line="231"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3309"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3331"/>
         <location filename="../src/server/qgssldconfigparser.cpp" line="1699"/>
         <source>Generated CRS</source>
         <comment>A CRS automatically generated from layer info get this prefix for description</comment>
         <translation>Erzeugtes KBS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1513"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1527"/>
         <source>Saved user CRS [%1]</source>
         <translation>Benutzer-KBS gespeichert [%1]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1814"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1828"/>
         <source>Imported from GDAL</source>
         <translation>Importiert aus GDAL</translation>
     </message>
@@ -19876,261 +19910,261 @@ Fehler(%2): %3</translation>
         <translation>Ein Problem beim Versuch einer Koordinatentransformation eines Punktes aus. Konnte daher die Fläche des Polygons nicht berechnen.</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="980"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="994"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1109"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1123"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="986"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1000"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1115"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1129"/>
         <source> m²</source>
         <translation> m²</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="984"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1113"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1130"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1184"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="990"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1119"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1136"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1190"/>
         <source> km²</source>
         <translation> km²</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="989"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1118"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1180"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1189"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="995"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1124"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1186"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1195"/>
         <source> ha</source>
         <translation> ha</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1001"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1020"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1007"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1026"/>
         <source> m</source>
         <translation> m</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1005"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1011"/>
         <source> km</source>
         <translation> km</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1010"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1016"/>
         <source> mm</source>
         <translation> mm</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1015"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1021"/>
         <source> cm</source>
         <translation> cm</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1030"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1036"/>
         <source> sq ft</source>
         <translation> Quadratfuß</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1035"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1041"/>
         <source> acres</source>
         <translation> Morgen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1041"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1047"/>
         <source> sq mile</source>
         <translation> Quadratmeile</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1051"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1057"/>
         <source> foot</source>
         <translation> Fuß</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1055"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1061"/>
         <source> feet</source>
         <translation> Fuß</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1060"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1066"/>
         <source> mile</source>
         <translation> Meilen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1068"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1074"/>
         <source> sq. NM</source>
         <translation> Quadratseemeilen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1072"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1078"/>
         <source> NM</source>
         <translation> sm</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1078"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1220"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1084"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1226"/>
         <source> sq.deg.</source>
         <translation> sq.deg.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1083"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1089"/>
         <source> degree</source>
         <translation> Grad</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1085"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1091"/>
         <source> degrees</source>
         <translation> Grad</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="1138"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1147"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1144"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1153"/>
         <source> ft²</source>
         <translation> ft²</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="1142"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1160"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1172"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1202"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1148"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1166"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1178"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1208"/>
         <source> mi²</source>
         <translation> mi²</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="1156"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1165"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1162"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1171"/>
         <source> yd²</source>
         <translation> yd²</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1198"/>
-        <location filename="../src/core/qgsdistancearea.cpp" line="1207"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1204"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1213"/>
         <source> ac</source>
         <translation> ac</translation>
     </message>
     <message utf8="true">
-        <location filename="../src/core/qgsdistancearea.cpp" line="1214"/>
+        <location filename="../src/core/qgsdistancearea.cpp" line="1220"/>
         <source> nm²</source>
         <translation> nm²</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="268"/>
+        <location filename="../src/core/qgsexpression.cpp" line="271"/>
         <source>Cannot convert '%1' to double</source>
         <translation>Kann '%1' nicht in Fließkommazahl umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="284"/>
+        <location filename="../src/core/qgsexpression.cpp" line="287"/>
         <source>Cannot convert '%1' to int</source>
         <translation>Kann '%1' nicht in Ganzzahl umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="304"/>
+        <location filename="../src/core/qgsexpression.cpp" line="307"/>
         <source>Cannot convert '%1' to DateTime</source>
         <translation>Kann '%1' nicht in DateTime umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="318"/>
+        <location filename="../src/core/qgsexpression.cpp" line="321"/>
         <source>Cannot convert '%1' to Date</source>
         <translation>Kann '%1' nicht in Datum umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="332"/>
+        <location filename="../src/core/qgsexpression.cpp" line="335"/>
         <source>Cannot convert '%1' to Time</source>
         <translation>Kann '%1' nicht in Zeit umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="349"/>
+        <location filename="../src/core/qgsexpression.cpp" line="352"/>
         <source>Cannot convert '%1' to Interval</source>
         <translation>Kann '%1' nicht in Interval umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="409"/>
+        <location filename="../src/core/qgsexpression.cpp" line="412"/>
         <source>Cannot convert '%1' to boolean</source>
         <translation>Kann '%1' nicht in Wahrheitswert umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="553"/>
-        <location filename="../src/core/qgsexpression.cpp" line="586"/>
+        <location filename="../src/core/qgsexpression.cpp" line="556"/>
+        <location filename="../src/core/qgsexpression.cpp" line="589"/>
         <source>Domain max must be greater than domain min</source>
         <translation>Bereichsmaxium muß größe als Minimum sein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="591"/>
+        <location filename="../src/core/qgsexpression.cpp" line="594"/>
         <source>Exponent must be greater than 0</source>
         <translation>Exponent muß größer als 0 sein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="862"/>
-        <location filename="../src/core/qgsexpression.cpp" line="876"/>
-        <location filename="../src/core/qgsexpression.cpp" line="890"/>
+        <location filename="../src/core/qgsexpression.cpp" line="865"/>
+        <location filename="../src/core/qgsexpression.cpp" line="879"/>
+        <location filename="../src/core/qgsexpression.cpp" line="893"/>
         <source>Invalid regular expression '%1': %2</source>
         <translation>Ungültiger regulärer Ausdruck '%1': %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="1357"/>
+        <location filename="../src/core/qgsexpression.cpp" line="1360"/>
         <source>Point index is out of range</source>
         <translation>Punktindex außerhalb des Bereichs</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="1509"/>
+        <location filename="../src/core/qgsexpression.cpp" line="1512"/>
         <source>Function make_point requires 2-4 arguments</source>
         <translation>Funktion make_point braucht 2-4 Argumente</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="1570"/>
+        <location filename="../src/core/qgsexpression.cpp" line="1573"/>
         <source>Function make_polygon requires an argument</source>
         <translation>Funktion make_polygon erfordert ein Argument</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="1610"/>
+        <location filename="../src/core/qgsexpression.cpp" line="1613"/>
         <source>Index is out of range</source>
         <translation>Index außerhalb des Bereichs</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2081"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2084"/>
         <source>Function `azimuth` requires exactly two parameters. %1 given.</source>
         <translation>Funktion `azimuth` erfordert genau zwei Parameter. %1 angegeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2093"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2096"/>
         <source>Function `azimuth` requires two points as arguments.</source>
         <translation>Funktion `azimuth` erfordert zwei Punkte als Argumente.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2283"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2286"/>
         <source>Number of places must be positive</source>
         <translation>Anzahl der Stellen muß positiv sein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2304"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2376"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2416"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2307"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2379"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2419"/>
         <source>Cannot convert '%1:%2:%3' to color</source>
         <translation>Kann %1:%2:%3 nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2343"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2397"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2437"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2458"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2346"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2400"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2440"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2461"/>
         <source>Cannot convert '%1:%2:%3:%4' to color</source>
         <translation>Kann %1:%2:%3:%4 nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2355"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2358"/>
         <source>"%1" is not a valid color ramp</source>
         <translation>"%1" ist kein gültiger Farbverlauf</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2481"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2484"/>
         <source>Cannot convert '%1:%2:%3:%4:%5' to color</source>
         <translation>Kann '%1:%2:%3:%4:%5' nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2492"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2535"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2582"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2596"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2495"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2538"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2585"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2599"/>
         <source>Cannot convert '%1' to color</source>
         <translation>Kann '%1' nicht in Farbe umwandeln</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2526"/>
-        <location filename="../src/core/qgsexpression.cpp" line="2571"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2529"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2574"/>
         <source>Unknown color component '%1'</source>
         <translation>Unbekannter Farbteil '%1'</translation>
     </message>
@@ -20140,20 +20174,20 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="854"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1874"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="2120"/>
-        <location filename="../src/core/pal/feature.cpp" line="1392"/>
-        <location filename="../src/core/pal/feature.cpp" line="1411"/>
-        <location filename="../src/core/pal/feature.cpp" line="1441"/>
-        <location filename="../src/core/pal/feature.cpp" line="1483"/>
+        <location filename="../src/core/pal/feature.cpp" line="1425"/>
+        <location filename="../src/core/pal/feature.cpp" line="1444"/>
+        <location filename="../src/core/pal/feature.cpp" line="1474"/>
+        <location filename="../src/core/pal/feature.cpp" line="1516"/>
+        <location filename="../src/core/pal/geomfunction.cpp" line="366"/>
         <location filename="../src/core/pal/labelposition.cpp" line="264"/>
         <location filename="../src/core/pal/labelposition.cpp" line="503"/>
         <location filename="../src/core/pal/labelposition.cpp" line="533"/>
         <location filename="../src/core/pal/labelposition.cpp" line="566"/>
         <location filename="../src/core/pal/labelposition.cpp" line="623"/>
         <location filename="../src/core/pal/pointset.cpp" line="284"/>
-        <location filename="../src/core/pal/pointset.cpp" line="333"/>
-        <location filename="../src/core/pal/pointset.cpp" line="807"/>
-        <location filename="../src/core/pal/pointset.cpp" line="849"/>
-        <location filename="../src/core/pal/pointset.cpp" line="919"/>
+        <location filename="../src/core/pal/pointset.cpp" line="764"/>
+        <location filename="../src/core/pal/pointset.cpp" line="806"/>
+        <location filename="../src/core/pal/pointset.cpp" line="876"/>
         <source>Exception: %1</source>
         <translation>Ausnahme: %1</translation>
     </message>
@@ -20165,20 +20199,20 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1562"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1874"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="2120"/>
-        <location filename="../src/core/pal/feature.cpp" line="1392"/>
-        <location filename="../src/core/pal/feature.cpp" line="1411"/>
-        <location filename="../src/core/pal/feature.cpp" line="1441"/>
-        <location filename="../src/core/pal/feature.cpp" line="1483"/>
+        <location filename="../src/core/pal/feature.cpp" line="1425"/>
+        <location filename="../src/core/pal/feature.cpp" line="1444"/>
+        <location filename="../src/core/pal/feature.cpp" line="1474"/>
+        <location filename="../src/core/pal/feature.cpp" line="1516"/>
+        <location filename="../src/core/pal/geomfunction.cpp" line="366"/>
         <location filename="../src/core/pal/labelposition.cpp" line="264"/>
         <location filename="../src/core/pal/labelposition.cpp" line="503"/>
         <location filename="../src/core/pal/labelposition.cpp" line="533"/>
         <location filename="../src/core/pal/labelposition.cpp" line="566"/>
         <location filename="../src/core/pal/labelposition.cpp" line="623"/>
         <location filename="../src/core/pal/pointset.cpp" line="284"/>
-        <location filename="../src/core/pal/pointset.cpp" line="333"/>
-        <location filename="../src/core/pal/pointset.cpp" line="807"/>
-        <location filename="../src/core/pal/pointset.cpp" line="849"/>
-        <location filename="../src/core/pal/pointset.cpp" line="919"/>
+        <location filename="../src/core/pal/pointset.cpp" line="764"/>
+        <location filename="../src/core/pal/pointset.cpp" line="806"/>
+        <location filename="../src/core/pal/pointset.cpp" line="876"/>
         <source>GEOS</source>
         <translation>GEOS</translation>
     </message>
@@ -20222,64 +20256,64 @@ Fehler(%2): %3</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="158"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="178"/>
         <source>segments %1 and %2 of line %3 intersect at %4</source>
         <translation>Segmente %1 und %2 der Linie %3 schneiden sich bei %4</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="173"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="193"/>
         <source>ring %1 of polygon %2 not in exterior ring</source>
         <translation>Ring %1 des Polygons %2 nicht innerhalb des äußeren Rings</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="209"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="229"/>
         <source>GEOS error:could not produce geometry for GEOS (check log window)</source>
         <translation>GEOS-Fehler: Konnte Geometrie nicht für GEOS erzeugen (Protokollfenster prüfen)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="226"/>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="234"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="246"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="254"/>
         <source>GEOS error:%1</source>
         <translation>GEOS-Fehler:%1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="290"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="310"/>
         <source>polygon %1 has no rings</source>
         <translation>Polygon %1 hat keine  Ringe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="302"/>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="307"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="322"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="327"/>
         <source>polygon %1 inside polygon %2</source>
         <translation>Polygon %1 liegt im Polygon %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="321"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="341"/>
         <source>Unknown geometry type</source>
         <translation>Unbekannter Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="322"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="342"/>
         <source>Unknown geometry type %1</source>
         <translation>Unbekannter Geometrietyp %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="331"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="351"/>
         <source>Geometry validation was aborted.</source>
         <translation>Geometrieprüfung wurde abgebrochen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="335"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="355"/>
         <source>Geometry has %1 errors.</source>
         <translation>Geometrie hat %1 Fehler.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="340"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="360"/>
         <source>Geometry is valid.</source>
         <translation>Geometrie ist gültig.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgeometryvalidator.cpp" line="368"/>
+        <location filename="../src/core/qgsgeometryvalidator.cpp" line="388"/>
         <source>invalid line</source>
         <translation>Ungültige Linie</translation>
     </message>
@@ -20446,15 +20480,15 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1920"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1936"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1959"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="66"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1647"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2159"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2176"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2224"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2250"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2319"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2325"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2343"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="73"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1744"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2256"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2273"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2321"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2347"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2416"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2422"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2440"/>
         <source>OGR</source>
         <translation>OGR</translation>
     </message>
@@ -20514,19 +20548,19 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="557"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2454"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1659"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1756"/>
         <source>Arc/Info ASCII Coverage</source>
         <translation>Arc/Info ASCII Coverage</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="622"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2461"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1664"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1761"/>
         <source>Atlas BNA</source>
         <translation>Atlas BNA</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1669"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1766"/>
         <source>Comma Separated Value</source>
         <translation>Komma-separierte Werte [CSV]</translation>
     </message>
@@ -20544,8 +20578,8 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="767"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2489"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1701"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1703"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1798"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1800"/>
         <source>FMEObjects Gateway</source>
         <translation>FMEObjects Gateway</translation>
     </message>
@@ -20633,7 +20667,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="794"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2496"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1709"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1806"/>
         <source>GeoJSON</source>
         <translation>GeoJSON</translation>
     </message>
@@ -20690,7 +20724,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="888"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2510"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1714"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1811"/>
         <source>GeoRSS</source>
         <translation>GeoRSS</translation>
     </message>
@@ -20742,14 +20776,14 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="977"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2517"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1719"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1816"/>
         <source>Geography Markup Language [GML]</source>
         <translation>Geography Markup Language [GML]</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="992"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2524"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1724"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1821"/>
         <source>Generic Mapping Tools [GMT]</source>
         <translation>Generic Mapping Tools [GMT]</translation>
     </message>
@@ -20786,21 +20820,21 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1055"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2531"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1729"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1826"/>
         <source>GPS eXchange Format [GPX]</source>
         <translation>GPS-Austauschformat [GPX]</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1070"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2538"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1747"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1844"/>
         <source>INTERLIS 1</source>
         <translation>INTERLIS 1</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1085"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2545"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1752"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1849"/>
         <source>INTERLIS 2</source>
         <translation>INTERLIS 2</translation>
     </message>
@@ -20822,7 +20856,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1120"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2552"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1761"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1858"/>
         <source>Keyhole Markup Language [KML]</source>
         <translation>Keyhole Markup Language [KML]</translation>
     </message>
@@ -20892,7 +20926,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1224"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1239"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2574"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1771"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1868"/>
         <source>Microstation DGN</source>
         <translation>Microstation DGN</translation>
     </message>
@@ -20934,14 +20968,14 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1311"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2581"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1804"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1901"/>
         <source>S-57 Base file</source>
         <translation>S-57 Base-Datei</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1326"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2588"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1810"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1907"/>
         <source>Spatial Data Transfer Standard [SDTS]</source>
         <translation>Spatial Data Transfer Standard [SDTS]</translation>
     </message>
@@ -21017,8 +21051,8 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1481"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2603"/>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="313"/>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="440"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="330"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="457"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
@@ -21035,7 +21069,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1507"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2610"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1856"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1953"/>
         <source>AutoCAD DXF</source>
         <translation>AutoCAD DXF</translation>
     </message>
@@ -21052,7 +21086,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1540"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2617"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1851"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1948"/>
         <source>Geoconcept</source>
         <translation>Geoconcept</translation>
     </message>
@@ -21074,7 +21108,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1571"/>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2624"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1682"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1779"/>
         <source>ESRI FileGDB</source>
         <translation>ESRI-FileGDB</translation>
     </message>
@@ -21105,23 +21139,23 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Transformation fehlgeschlagen, Schreiben gestoppt. (Ausnahme %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3833"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3854"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3879"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3946"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3967"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3992"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="66"/>
         <source>Unable to load %1 provider</source>
         <translation>Kann Datenanbieter %1 nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3841"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3862"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3887"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3954"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3975"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4000"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="75"/>
         <source>Provider %1 has no %2 method</source>
         <translation>Datenanbieter %1 hat keine Methode %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3936"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4049"/>
         <source>Loaded from Provider</source>
         <translation>Aus Datenanbieter geladen</translation>
     </message>
@@ -21295,8 +21329,12 @@ Nur %1 von %2 Objekten geschrieben.</translation>
         <translation>Ellipsenmarkierung</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgssymbollayerv2registry.cpp" line="41"/>
         <source>Vector Field marker</source>
+        <translation type="obsolete">Vektorfeldmarkierung</translation>
+    </message>
+    <message>
+        <location filename="../src/core/symbology-ng/qgssymbollayerv2registry.cpp" line="41"/>
+        <source>Vector field marker</source>
         <translation>Vektorfeldmarkierung</translation>
     </message>
     <message>
@@ -21711,7 +21749,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     </message>
     <message>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="2184"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1984"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2081"/>
         <source>GDAL/OGR VSIFileHandler</source>
         <translation>GDAL/OGR-VSI-Dateihandler</translation>
     </message>
@@ -21896,306 +21934,307 @@ stderr: %4</translation>
     </message>
     <message>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="1867"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2800"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3537"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2828"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3540"/>
         <source>Unsupported type for field %1</source>
         <translation>Nicht unterstützter Typ für Feld %1</translation>
     </message>
     <message>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="1881"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2819"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3557"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2847"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3560"/>
         <source>Creation of fields failed</source>
         <translation>Erzeugung der Felder gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="66"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="73"/>
         <source>OGR[%1] error %2: %3</source>
         <translation>OGR[%1] Fehler %2: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="238"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="250"/>
         <source>Unable to create the datasource. %1 exists and overwrite flag is false.</source>
         <translation>Konnte die Datenquelle nicht erzeugen. %1 bereits vorhanden und Überschreiben ist aus.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1647"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1744"/>
         <source>Unable to get driver %1</source>
         <translation>Konnte Treiber %1 nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1655"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1752"/>
         <source>Arc/Info Binary Coverage</source>
         <translation>Arc/Info-Binär-Coverage</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1672"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1769"/>
         <source>DODS</source>
         <translation>DODS</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1676"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1773"/>
         <source>CouchDB</source>
         <translation>CouchDB</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1796"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1893"/>
         <source>OpenFileGDB</source>
         <translation>OpenFileGDB</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1686"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1688"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1783"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1785"/>
         <source>ESRI Personal GeoDatabase</source>
         <translation>ESRI-Personal-GeoDatabase</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1694"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1791"/>
         <source>ESRI ArcSDE</source>
         <translation>ESRI-ArcSDE</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1698"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1795"/>
         <source>ESRI Shapefiles</source>
         <translation>ESRI-Shapedateien</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="2503"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1734"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1831"/>
         <source>GeoPackage</source>
         <translation>GeoPackage</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1739"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1836"/>
         <source>Grass Vector</source>
         <translation>GRASS-Vektor</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1743"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1840"/>
         <source>Informix DataBlade</source>
         <translation>Informix-DataBlade</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1757"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1854"/>
         <source>Ingres</source>
         <translation>Ingres</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1766"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1863"/>
         <source>Mapinfo File</source>
         <translation>Mapinfo-Datei</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1776"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1873"/>
         <source>MySQL</source>
         <translation>MySQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1780"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1877"/>
         <source>MSSQL</source>
         <translation>MSSQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1784"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1881"/>
         <source>Oracle Spatial</source>
         <translation>Oracle Spatial</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1788"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1885"/>
         <source>ODBC</source>
         <translation>ODBC</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1792"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1889"/>
         <source>OGDI Vectors</source>
         <translation>OGDI-Vektoren</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1800"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1897"/>
         <source>PostgreSQL</source>
         <translation>PostgreSQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1816"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1913"/>
         <source>Systematic Organization of Spatial Information [SOSI]</source>
         <translation>Systematic Organization of Spatial Information [SOSI]</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1821"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1918"/>
         <source>SQLite/SpatiaLite</source>
         <translation>SQLite/SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1826"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1941"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1923"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2038"/>
         <source>Storage and eXchange Format</source>
         <translation>Storage and eXchange Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1831"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1928"/>
         <source>UK. NTF2</source>
         <translation>UK. NTF2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1835"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1932"/>
         <source>U.S. Census TIGER/Line</source>
         <translation>U.S. Census TIGER/Line</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1839"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1936"/>
         <source>VRT - Virtual Datasource</source>
         <translation>VRT - Virtuelle Datenquellen</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1845"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1942"/>
         <source>X-Plane/Flightgear</source>
         <translation>X-Plane/Flightgear</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1621"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1861"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1958"/>
         <source>Open Document Spreadsheet</source>
         <translation>Open-Dokument-Tabelle</translation>
     </message>
     <message>
         <location filename="../src/core/qgsvectorfilewriter.cpp" line="1596"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1866"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1963"/>
         <source>MS Office Open XML spreadsheet</source>
         <translation>MS-Office-Open-XML-Tabelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1871"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1968"/>
         <source>MS Excel format</source>
         <translation>MS-Excel-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1876"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1973"/>
         <source>EDIGEO</source>
         <translation>EDIGEO</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1881"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1978"/>
         <source>NAS - ALKIS</source>
         <translation>NAS - ALKIS</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1886"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1983"/>
         <source>WAsP</source>
         <translation>WAsP</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1891"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1988"/>
         <source>PCI Geomatics Database File</source>
         <translation>PCI Geomatics-Datenbankdatei</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1896"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1993"/>
         <source>GPSTrackMaker</source>
         <translation>GPSTrackMaker</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1901"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1998"/>
         <source>Czech Cadastral Exchange Data Format</source>
         <translation>Tschechische Katasteraustauschdatenformat</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1906"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2003"/>
         <source>OpenStreetMap</source>
         <translation>OpenStreetMap</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1911"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2008"/>
         <source>Special Use Airspace Format</source>
         <translation>Special Use Airspace-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1916"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2013"/>
         <source>OpenAir Special Use Airspace Format</source>
         <translation>OpenAir Special Use Airspace-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1921"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2018"/>
         <source>Planetary Data Systems TABLE</source>
         <translation>Planetary Data Systems TABLE</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1926"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2023"/>
         <source>Hydrographic Transfer Format</source>
         <translation>Hydrographisches Transfer-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1931"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2028"/>
         <source>Scalable Vector Graphics</source>
         <translation>Skalierbare Vektorgrafik</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1936"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2033"/>
         <source>Arc/Info Generate</source>
         <translation>Arc/Info Generate</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1946"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2043"/>
         <source>Geospatial PDF</source>
         <translation>Geospatial-PDF</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1951"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2048"/>
         <source>SEG-Y</source>
         <translation>SEG-Y</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1956"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2053"/>
         <source>SEG-P1</source>
         <translation>SEG-P1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1957"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2054"/>
         <source>UKOOA P1/90</source>
         <translation>UKOOA P1/90</translation>
     </message>
     <message>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="2190"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1991"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2088"/>
         <source>All files</source>
         <translation>Alle Dateien</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2159"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2256"/>
         <source>Duplicate field (10 significant characters): %1</source>
         <translation>Doppeltes Feld (10 signifikante Zeichen): %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2176"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2273"/>
         <source>Creating the data source %1 failed: %2</source>
         <translation>Erzeugung der Datenquelle %1 gescheitert: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2224"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2321"/>
         <source>Unknown vector type of %1</source>
         <translation>Unbekannter Vektortyp %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2250"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2347"/>
         <source>Creation of OGR data source %1 failed: %2</source>
         <translation>Erzeugung der OGR-Datenquelle %1 gescheitert: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2319"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2416"/>
         <source>field %1 with unsupported type %2 skipped</source>
         <translation>Feld %1 wegen nicht unterstütztem Typ %2 übersprungen</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2325"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2422"/>
         <source>creation of field %1 failed</source>
         <translation>Erzeugung des Feld %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2343"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2440"/>
         <source>Couldn't create file %1.qpj</source>
         <translation>Konnte Datei %1.qpj nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="365"/>
+        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="251"/>
+        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="489"/>
         <source>Fetching features failed.
 SQL:%1
 Error: %2</source>
@@ -22204,72 +22243,73 @@ SQL: %1
 Fehler:%2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="368"/>
+        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="254"/>
+        <location filename="../src/providers/oracle/qgsoraclefeatureiterator.cpp" line="492"/>
         <source>Oracle</source>
         <translation>Oracle</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2488"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2976"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3330"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3715"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3781"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3812"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3958"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2517"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3004"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3333"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3718"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3784"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3815"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3961"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="139"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5160"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5241"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5430"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5485"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5597"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5185"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5266"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5449"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5502"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5611"/>
         <source>Connection to database failed</source>
         <translation>Verbindung zur Datenbank schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2500"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2529"/>
         <source>No owner name found</source>
         <translation>Kein Besitzername gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2687"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3474"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2716"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3477"/>
         <source>Creation of data source %1 failed: 
 %2</source>
         <translation>Erzeugung der Datenquelle %1 gescheitert: 
 %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2721"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3492"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2750"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3495"/>
         <source>Loading of the layer %1 failed</source>
         <translation>Laden des Layers %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2764"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2792"/>
         <source>Field name clash found (%1 not remappable)</source>
         <translation>Feldnamenkonflikt gefunden (%1 nicht abbildbar)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2982"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3010"/>
         <source>%1 not owner of the table %2.</source>
         <translation>%1 nicht Besitzer der Tabelle %2.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2998"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3026"/>
         <source>Unable to determine number of geometry columns of layer %1.%2: 
 %3</source>
         <translation>Konnte die Geometriespaltenanzahl des Layer %1.%2 nicht feststellen: 
 %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3031"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3059"/>
         <source>Unable to delete layer %1.%2: 
 %3</source>
         <translation>Konnte Layer %1.%2 nicht löschen: 
 %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3041"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3069"/>
         <source>Unable to clean metadata %1.%2: 
 %3</source>
         <translation>Konnte Metadaten %1.%2 nicht löschen: 
@@ -22281,8 +22321,8 @@ Fehler:%2</translation>
         <translation>Kein Ergebnispuffer</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="219"/>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="231"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="234"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="246"/>
         <source>Fetching from cursor %1 failed
 Database error: %2</source>
         <translation>Laden aus Cursor %1 gescheitert
@@ -22290,112 +22330,112 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="184"/>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="219"/>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="231"/>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="363"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="234"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="246"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="378"/>
         <source>PostGIS</source>
         <translation>PostGIS</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="363"/>
+        <location filename="../src/providers/postgres/qgspostgresfeatureiterator.cpp" line="378"/>
         <source>Infinite filter rectangle specified</source>
         <translation>Unendliches Filterrechteck angegeben</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3730"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3758"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3733"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3761"/>
         <source>Unable to delete layer %1: 
 %2</source>
         <translation>Konnte Ebene %1 nicht löschen: 
 %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3792"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3795"/>
         <source>Unable to delete schema %1: 
 %2</source>
         <translation>Konnte Schema %1 nicht löschen: 
 %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3836"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3839"/>
         <source>Unable to save layer style. It's not possible to create the destination table on the database. Maybe this is due to table permissions (user=%1). Please contact your database admin</source>
         <translation>Kann den Layerstil nicht speicher. Es ist nicht möglich die Zieltabelle in der Datenbank anzulegen.  Dies kann mit den Tabellenberechtigungen (Benutzer=%1) zusammenhängen. Wenden Sie sich bitte an den Datenbankadministrator</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3890"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5346"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3893"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5369"/>
         <source>Save style in database</source>
         <translation>Stil in Datenbank speichern</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3891"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5347"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3894"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5370"/>
         <source>A style named "%1" already exists in the database for this layer. Do you want to overwrite it?</source>
         <translation>Ein Stil "%1" für diesen Layer ist bereits in der Datenbank vorhanden. Soll er überschrieben werden?</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3895"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3898"/>
         <source>Operation aborted. No changes were made in the database</source>
         <translation>Vorgang abgebrochen. Es wurden keine Datenbankänderungen vorgenommen</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3943"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3946"/>
         <source>Unable to save layer style. It's not possible to insert a new record into the style table. Maybe this is due to table permissions (user=%1). Please contact your database administrator.</source>
         <translation>Kann den Layerstil nicht speicher. Es ist nicht möglich Datensätze in die Stiltabelle einzufügen.  Dies kann mit den Tabellenberechtigungen (Benutzer=%1) zusammenhängen. Wenden Sie sich bitte an den Datenbankadministrator.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3997"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4066"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4000"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4069"/>
         <source>Connection to database failed using username: %1</source>
         <translation>Verbindung zur Datenbank mit Benutzername %1 fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4015"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4041"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4082"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5254"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5338"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5398"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5453"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5498"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5534"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5561"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5615"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4018"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4044"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4085"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5279"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5361"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5417"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5470"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5515"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5549"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5575"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5629"/>
         <source>Error executing query: %1</source>
         <translation>Fehler bei Abfrageausführung: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4016"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4019"/>
         <source>Error executing the select query for related styles. The query was logged</source>
         <translation>Fehler beim Abfragen von zusammenhängenden Stilen.  Die Abfragen wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4042"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5562"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4045"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5576"/>
         <source>Error executing the select query for unrelated styles. The query was logged</source>
         <translation>Fehler beim Abfragen von unzusammenhängenden Stilen.  Die Abfragen wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4083"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5616"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4086"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5630"/>
         <source>Error executing the select query. The query was logged</source>
         <translation>Fehler bei Abfrage.  Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4078"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5611"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4081"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5625"/>
         <source>Consistency error in table '%1'. Style id should be unique</source>
         <translation>Konsistenzfehler in Tabelle '%1'. Stilkennung sollte eindeutig sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="313"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="330"/>
         <source>SQLite error: %2
 SQL: %1</source>
         <translation>SQLite-Fehler:%2
 SQL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="440"/>
+        <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="457"/>
         <source>SQLite error getting feature: %1</source>
         <translation>SQLite-Fehler beim Objektladen: %1</translation>
     </message>
@@ -22415,67 +22455,67 @@ SQL: %1</translation>
         <translation>Erzeugung der Felder gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5102"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5127"/>
         <source>Unable to initialize SpatialMetadata:
 </source>
         <translation>Konnte räumliche Metadaten nicht initialisieren:
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5128"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5153"/>
         <source>Could not create a new database
 </source>
         <translation>Konnte neue Datenbank nicht anlegen
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5138"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5163"/>
         <source>Unable to activate FOREIGN_KEY constraints [%1]</source>
         <translation>Konnte Fremdschlüssel-Constraint nicht aktivieren [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5172"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5197"/>
         <source>Unable to delete table %1
 </source>
         <translation>Konnte Tabelle %1 nicht löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5184"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5209"/>
         <source>Unable to delete table %1:
 </source>
         <translation>Konnte Tabelle %1 nicht löschen:</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5255"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5339"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5399"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5499"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5280"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5362"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5418"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5516"/>
         <source>Error looking for style. The query was logged</source>
         <translation>Fehler bei der Stilsuche. Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5290"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5315"/>
         <source>Unable to save layer style. It's not possible to create the destination table on the database.</source>
         <translation>Konnte Layerstil nicht speichern. Es war nicht möglich die Zieltabelle in der Datenbank anzulegen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5352"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5375"/>
         <source>Operation aborted</source>
         <translation>Operation abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5454"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5471"/>
         <source>Error executing loading style. The query was logged</source>
         <translation>Fehler beim Laden des Stils. Die Abfrage wurde protokolliert</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5513"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5514"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5530"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5531"/>
         <source>No styles available on DB</source>
         <translation>Keine Stil in der Datenbank verfügbar</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5535"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5550"/>
         <source>Error loading styles. The query was logged</source>
         <translation>Fehler beim Laden des Stils. Die Abfrage wurde protokolliert</translation>
     </message>
@@ -22497,7 +22537,7 @@ SQL: %1</translation>
         <location filename="../src/python/qgspythonutilsimpl.cpp" line="145"/>
         <location filename="../src/python/qgspythonutilsimpl.cpp" line="152"/>
         <location filename="../src/python/qgspythonutilsimpl.cpp" line="196"/>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="244"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="236"/>
         <source>Python support will be disabled.</source>
         <translation>Die Python-Unterstützung wird abgeschaltet.</translation>
     </message>
@@ -22523,28 +22563,28 @@ SQL: %1</translation>
         <translation>Konnte QGIS-Utils nicht öffnen.</translation>
     </message>
     <message>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="320"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="311"/>
         <source>An error occurred during execution of following code:</source>
         <translation>Fehler bei der Ausführung folgenden Codes:</translation>
     </message>
     <message>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="331"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="322"/>
         <source>Python version:</source>
         <translation>Python-Version:</translation>
     </message>
     <message>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="332"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="323"/>
         <source>QGIS version:</source>
         <translation>QGIS-Version:</translation>
     </message>
     <message>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="333"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="324"/>
         <source>Python path:</source>
         <translation>Python-Pfad:</translation>
     </message>
     <message>
         <location filename="../src/python/qgspythonutilsimpl.cpp" line="87"/>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="337"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="328"/>
         <source>Python error</source>
         <translation>Python-Fehler</translation>
     </message>
@@ -22679,12 +22719,12 @@ SQL: %1</translation>
         <translation>Mehrteiliges Objekt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="886"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="898"/>
         <source>Save style to DB (%1)</source>
         <translation>Stil in DB speichern (%1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1250"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1270"/>
         <source>Could not save symbology because:
 %1</source>
         <translation>Konnte Darstellung nicht speichern, weil:
@@ -22701,38 +22741,38 @@ SQL: %1</translation>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="447"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="460"/>
         <source>Global</source>
         <translation>Global</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="576"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="589"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="641"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="654"/>
         <location filename="../src/plugins/topology/dockModel.cpp" line="24"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="716"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="732"/>
         <source>Map Settings</source>
         <translation>Karteneinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="751"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="767"/>
         <source>Composition</source>
         <translation>Zusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="818"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="834"/>
         <source>Atlas</source>
         <translation>Atlas</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="855"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="871"/>
         <source>Composer Item</source>
         <translation>Zusammensstellungselement</translation>
     </message>
@@ -22742,42 +22782,42 @@ SQL: %1</translation>
         <translation>Objektkennung</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="607"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="620"/>
         <source>linear</source>
         <translation>Linear</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="611"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="624"/>
         <source>radial</source>
         <translation>Radial</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="615"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="628"/>
         <source>conical</source>
         <translation>Konisch</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="629"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="642"/>
         <source>feature</source>
         <translation>Objekt</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="633"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="646"/>
         <source>viewport</source>
         <translation>Ansichtsfenster</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="647"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="660"/>
         <source>pad</source>
         <translation>auffüllen</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="651"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="664"/>
         <source>repeat</source>
         <translation>Wiederholen</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="655"/>
+        <location filename="../src/core/symbology-ng/qgsfillsymbollayerv2.cpp" line="668"/>
         <source>reflect</source>
         <translation>Reflektieren</translation>
     </message>
@@ -22829,12 +22869,12 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1485"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1496"/>
         <source>Generated default style</source>
         <translation>Erzeugte Vorgabestile</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1486"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1497"/>
         <source>Style was missing in capabilities</source>
         <translation>Stil fehlte in den Capabilities</translation>
     </message>
@@ -22874,7 +22914,7 @@ Antwort war:
         <translation>Rasterbildfüllung</translation>
     </message>
     <message>
-        <location filename="../src/python/qgspythonutilsimpl.cpp" line="244"/>
+        <location filename="../src/python/qgspythonutilsimpl.cpp" line="236"/>
         <source>Couldn't load PyQGIS Server.</source>
         <translation>Kann PyQGIS Server nicht laden.</translation>
     </message>
@@ -23065,12 +23105,14 @@ Antwort war:
         <translation>Projektfarben</translation>
     </message>
     <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="206"/>
         <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="141"/>
         <location filename="../src/providers/spatialite/qgsspatialitedataitems.cpp" line="186"/>
         <source>Delete Connection</source>
         <translation>Verbindung löschen</translation>
     </message>
     <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="207"/>
         <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="142"/>
         <location filename="../src/providers/spatialite/qgsspatialitedataitems.cpp" line="187"/>
         <source>Are you sure you want to delete the connection to %1?</source>
@@ -23082,11 +23124,13 @@ Antwort war:
         <translation>Objekt löschen</translation>
     </message>
     <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="344"/>
         <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="327"/>
         <source>Delete Table</source>
         <translation>Tabelle löschen</translation>
     </message>
     <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="345"/>
         <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="328"/>
         <source>Are you sure you want to delete %1.%2?</source>
         <translation>Soll %1.%2 wirklich gelöscht werden?</translation>
@@ -23892,7 +23936,7 @@ Operation kann nicht zurückgenommen werden!
         <translation>Ein verstecktes Attribut ist nicht vom Benutzer zu sehen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/virtual/qgsvirtuallayerfeatureiterator.cpp" line="131"/>
+        <location filename="../src/providers/virtual/qgsvirtuallayerfeatureiterator.cpp" line="143"/>
         <source>VLayer</source>
         <translation>VLayer</translation>
     </message>
@@ -23931,6 +23975,76 @@ Operation kann nicht zurückgenommen werden!
         <source> tr</source>
         <translation> tr</translation>
     </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2176"/>
+        <source>Node type not supported in expression translation: %1</source>
+        <translation>Knotentyp nicht für Ausdrucksübersetzung unterstützt: %1</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2200"/>
+        <source>Node type not supported: %1</source>
+        <translation>Knotentyp nicht unterstützt: %1</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2227"/>
+        <source>This use of unary operator not implemented yet</source>
+        <translation>Diese Verwendung eines unären Operators ist noch nicht implementiert</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2237"/>
+        <source>Unary operator %1 not implemented yet</source>
+        <translation>Unärer Operator %1 noch nicht implementiert</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2291"/>
+        <source>Binary operator %1 not implemented yet</source>
+        <translation>Binärer Operator '%1'noch nicht implementiert</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2333"/>
+        <source>Literal type not supported: %1</source>
+        <translation>Literaler Typ nicht unterstützt: %1</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2467"/>
+        <source><BBOX> is currently supported only in form: bbox($geometry, geomFromWKT('...'))</source>
+        <translation><BBOX> wird derzeit nur in Form bbox($geometry, geomFromWKT('...')) unterstützt</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2484"/>
+        <source>Unable to translate spatial operator: at least one must refer to geometry.</source>
+        <translation>Kann räumlichen Operator nicht übersetzen: mindestens einer muß sich auf Geometrie beziehen.</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2493"/>
+        <source>spatial operator: the other operator must be a geometry constructor function</source>
+        <translation>Räumlicher Operator: der andere Operator muß eine Geometrie erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2504"/>
+        <source>geom_from_wkt: argument must be string literal</source>
+        <translation>geom_from_wkt: das Argument muß eine Zeichenkette sein</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2519"/>
+        <source>geom_from_gml: argument must be string literal</source>
+        <translation>geom_from_wkt: das Argument muß eine Zeichenkette sein</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2527"/>
+        <source>geom_from_gml: unable to parse XML</source>
+        <translation>geom_from_gml: kann XML nicht interpretieren</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2536"/>
+        <source>spatial operator: unknown geometry constructor function</source>
+        <translation>Räumlicher Operator: der andere Operator muß eine Geometrie erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsogcutils.cpp" line="2552"/>
+        <source>Special columns/constants are not supported.</source>
+        <translation>Spezielle Spalten/Konstanten nicht unterstützt.</translation>
+    </message>
 </context>
 <context>
     <name>QSpatiaLiteDriver</name>
@@ -24207,17 +24321,17 @@ Operation kann nicht zurückgenommen werden!
         <translation>Aktuelle Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1601"/>
-        <location filename="../src/app/qgisapp.cpp" line="5624"/>
-        <location filename="../src/app/qgisapp.cpp" line="7317"/>
-        <location filename="../src/app/qgisapp.cpp" line="7397"/>
-        <location filename="../src/app/qgisapp.cpp" line="10369"/>
+        <location filename="../src/app/qgisapp.cpp" line="1606"/>
+        <location filename="../src/app/qgisapp.cpp" line="5632"/>
+        <location filename="../src/app/qgisapp.cpp" line="7337"/>
+        <location filename="../src/app/qgisapp.cpp" line="7417"/>
+        <location filename="../src/app/qgisapp.cpp" line="10389"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1595"/>
-        <location filename="../src/app/qgisapp.cpp" line="1601"/>
+        <location filename="../src/app/qgisapp.cpp" line="1600"/>
+        <location filename="../src/app/qgisapp.cpp" line="1606"/>
         <source>Failed to open Python console:</source>
         <translation>Konnte Python-Konsole nicht öffnen:</translation>
     </message>
@@ -24240,94 +24354,94 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         <translation>QGIS - %1 ('%2')</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1714"/>
-        <location filename="../src/app/qgisapp.cpp" line="11213"/>
+        <location filename="../src/app/qgisapp.cpp" line="1719"/>
+        <location filename="../src/app/qgisapp.cpp" line="11232"/>
         <source>Panels</source>
         <translation>Bedienfelder</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1716"/>
-        <location filename="../src/app/qgisapp.cpp" line="11224"/>
+        <location filename="../src/app/qgisapp.cpp" line="1721"/>
+        <location filename="../src/app/qgisapp.cpp" line="11243"/>
         <source>Toolbars</source>
         <translation>Werkzeugkästen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1775"/>
+        <location filename="../src/app/qgisapp.cpp" line="1780"/>
         <source>Window</source>
         <translation>Fenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1790"/>
+        <location filename="../src/app/qgisapp.cpp" line="1795"/>
         <source>&Database</source>
         <translation>Da&tenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="1794"/>
+        <location filename="../src/app/qgisapp.cpp" line="1799"/>
         <source>&Web</source>
         <translation>&Web</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2016"/>
+        <location filename="../src/app/qgisapp.cpp" line="2022"/>
         <source>Progress bar that displays the status of rendering layers and other time-intensive operations</source>
         <translation>Fortschrittsanzeige für das Zeichnen von Layern und andere zeitintensive Operationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2045"/>
+        <location filename="../src/app/qgisapp.cpp" line="2051"/>
         <source>Current map scale</source>
         <translation>Aktueller Kartenmaßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2056"/>
+        <location filename="../src/app/qgisapp.cpp" line="2062"/>
         <source>Displays the current map scale</source>
         <translation>Zeigt den momentanen Kartenmaßstab an</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2057"/>
+        <location filename="../src/app/qgisapp.cpp" line="2063"/>
         <source>Current map scale (formatted as x:y)</source>
         <translation>Aktueller Kartenmaßstab (x:y formatiert)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2098"/>
+        <location filename="../src/app/qgisapp.cpp" line="2104"/>
         <source>Render</source>
         <translation>Zeichnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2102"/>
+        <location filename="../src/app/qgisapp.cpp" line="2108"/>
         <source>When checked, the map layers are rendered in response to map navigation commands and other events. When not checked, no rendering is done. This allows you to add a large number of layers and symbolize them before rendering.</source>
         <translation>Wenn angewählt, werden die Kartenlayer abhängig von der Bedienung der Navigationsinstrumente, gezeichnet. Anderenfalls werden die Layer nicht gezeichnet. Dies erlaubt es, eine große Layeranzahl hinzuzufügen und das Aussehen der Layer vor dem Zeichnen zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2106"/>
+        <location filename="../src/app/qgisapp.cpp" line="2112"/>
         <source>Toggle map rendering</source>
         <translation>Zeichnen der Karte einschalten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2119"/>
+        <location filename="../src/app/qgisapp.cpp" line="2125"/>
         <source>This icon shows whether on the fly coordinate reference system transformation is enabled or not. Click the icon to bring up the project properties dialog to alter this behaviour.</source>
         <translation>Diese Icon zeigt an, ob Spontantransformation des Koordinatenbezugssystem aktiv ist. Anklicken, um dies in den Projektionseigenschaften zu ändern.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2123"/>
+        <location filename="../src/app/qgisapp.cpp" line="2129"/>
         <source>CRS status - Click to open coordinate reference system dialog</source>
         <translation>KBS-Status - Klicken um den Dialog zum Koordinatenbezugssystem zu öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2128"/>
+        <location filename="../src/app/qgisapp.cpp" line="2134"/>
         <source>Ready</source>
         <translation>Fertig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2577"/>
+        <location filename="../src/app/qgisapp.cpp" line="2583"/>
         <source>Map overview canvas. This canvas can be used to display a locator map that shows the current extent of the map canvas. The current extent is shown as a red rectangle. Any layer on the map can be added to the overview canvas.</source>
         <translation>Übersichtsfenster. Dieses Fenster kann benutzt werden um die momentane Ausdehnung des Kartenfensters darzustellen. Der momentane Ausschnitt ist als rotes Rechteck dargestellt. Jeder Layer in der Karte kann zum Übersichtsfenster hinzugefügt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2698"/>
+        <location filename="../src/app/qgisapp.cpp" line="2704"/>
         <source>Map legend that displays all the layers currently on the map canvas. Click on the check box to turn a layer on or off. Double click on a layer in the legend to customize its appearance and set other properties.</source>
         <translation>Legende, die alle im Kartenfenster angezeigten Layer enthält. Bitte auf die Kontrollkästchen klicken, um einen Layer an- oder auszuschalten. Mit einem Doppelklick in der Legende kann die Erscheinung und sonstige Eigenschaften eines Layers festgelegt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2790"/>
+        <location filename="../src/app/qgisapp.cpp" line="2796"/>
         <source>Map layer list that displays all layers in drawing order.</source>
         <translation>Layerliste, die alle Layer in Zeichenreihenfolge anzeigt.</translation>
     </message>
@@ -24337,174 +24451,174 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         <translation>Benutzer qgis.db</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3028"/>
-        <location filename="../src/app/qgisapp.cpp" line="4267"/>
+        <location filename="../src/app/qgisapp.cpp" line="3034"/>
+        <location filename="../src/app/qgisapp.cpp" line="4274"/>
         <source>< Blank ></source>
         <translation>< Leer ></translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3083"/>
+        <location filename="../src/app/qgisapp.cpp" line="3089"/>
         <source>QGIS version</source>
         <translation>QGIS-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3093"/>
+        <location filename="../src/app/qgisapp.cpp" line="3099"/>
         <source>QGIS code revision</source>
         <translation>QGIS-Codeversion</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3098"/>
+        <location filename="../src/app/qgisapp.cpp" line="3104"/>
         <source>Compiled against Qt</source>
         <translation>Kompiliert gegen Qt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3099"/>
+        <location filename="../src/app/qgisapp.cpp" line="3105"/>
         <source>Running against Qt</source>
         <translation>Laufendes Qt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3103"/>
+        <location filename="../src/app/qgisapp.cpp" line="3109"/>
         <source>Compiled against GDAL/OGR</source>
         <translation>Kompiliert mit GDAL/OGR</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3104"/>
+        <location filename="../src/app/qgisapp.cpp" line="3110"/>
         <source>Running against GDAL/OGR</source>
         <translation>Läuft mit GDAL/OGR</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3113"/>
+        <location filename="../src/app/qgisapp.cpp" line="3119"/>
         <source>PostgreSQL Client Version</source>
         <translation>PostgreSQL-Client-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3117"/>
+        <location filename="../src/app/qgisapp.cpp" line="3123"/>
         <source>No support.</source>
         <translation>Keine Unterstützung.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3121"/>
+        <location filename="../src/app/qgisapp.cpp" line="3127"/>
         <source>SpatiaLite Version</source>
         <translation>SpatiaLite-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3127"/>
+        <location filename="../src/app/qgisapp.cpp" line="3133"/>
         <source>QWT Version</source>
         <translation>QWT-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3128"/>
+        <location filename="../src/app/qgisapp.cpp" line="3134"/>
         <source>PROJ.4 Version</source>
         <translation>PROJ.4-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3132"/>
+        <location filename="../src/app/qgisapp.cpp" line="3138"/>
         <source>QScintilla2 Version</source>
         <translation>QScintilla2-Version</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3135"/>
+        <location filename="../src/app/qgisapp.cpp" line="3141"/>
         <source>This copy of QGIS writes debugging output.</source>
         <translation>Diese QGIS-Kopie schreibt Debugausgaben.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3298"/>
+        <location filename="../src/app/qgisapp.cpp" line="3304"/>
         <source>%1 doesn't have any layers</source>
         <translation>%1 hat keine Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3299"/>
-        <location filename="../src/app/qgisapp.cpp" line="3306"/>
-        <location filename="../src/app/qgisapp.cpp" line="3675"/>
+        <location filename="../src/app/qgisapp.cpp" line="3305"/>
+        <location filename="../src/app/qgisapp.cpp" line="3312"/>
+        <location filename="../src/app/qgisapp.cpp" line="3682"/>
         <source>Invalid Data Source</source>
         <translation>Ungültige Datenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3305"/>
-        <location filename="../src/app/qgisapp.cpp" line="3674"/>
+        <location filename="../src/app/qgisapp.cpp" line="3311"/>
+        <location filename="../src/app/qgisapp.cpp" line="3681"/>
         <source>%1 is not a valid or recognized data source</source>
         <translation>%1 ist keine gültige Datenquelle oder wird nicht erkannt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3405"/>
+        <location filename="../src/app/qgisapp.cpp" line="3412"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3703"/>
+        <location filename="../src/app/qgisapp.cpp" line="3710"/>
         <source>PostgreSQL</source>
         <translation>PostgreSQL</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3703"/>
+        <location filename="../src/app/qgisapp.cpp" line="3710"/>
         <source>Cannot get PostgreSQL select dialog from provider.</source>
         <translation>Kann PostgreSQL-Auswahldialog des Datenanbieters nicht bestimmen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3759"/>
+        <location filename="../src/app/qgisapp.cpp" line="3766"/>
         <source>%1 is an invalid layer - not loaded</source>
         <translation>%1 ist ein ungültiger Layer - nicht geladen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3760"/>
+        <location filename="../src/app/qgisapp.cpp" line="3767"/>
         <source>%1 is an invalid layer and cannot be loaded. Please check the <a href="#messageLog">message log</a> for further info.</source>
         <translation>%1 ist ein ungültiger Layer und kann nicht geladen werden. Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4398"/>
-        <location filename="../src/app/qgisapp.cpp" line="4581"/>
-        <location filename="../src/app/qgisapp.cpp" line="4658"/>
+        <location filename="../src/app/qgisapp.cpp" line="4405"/>
+        <location filename="../src/app/qgisapp.cpp" line="4588"/>
+        <location filename="../src/app/qgisapp.cpp" line="4665"/>
         <source>QGIS files</source>
         <translation>QGIS-Dateien</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6519"/>
-        <location filename="../src/app/qgisapp.cpp" line="6570"/>
+        <location filename="../src/app/qgisapp.cpp" line="6532"/>
+        <location filename="../src/app/qgisapp.cpp" line="6583"/>
         <source>An error occurred during the merge operation</source>
         <translation>Beim Zusammenführen trat ein Fehler auf</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6966"/>
+        <location filename="../src/app/qgisapp.cpp" line="6979"/>
         <source>New temporary scratch layer name</source>
         <translation>Name des neuen Temporärlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7134"/>
+        <location filename="../src/app/qgisapp.cpp" line="7147"/>
         <source>Cannot copy style</source>
         <translation>Kann Stil nicht kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7164"/>
+        <location filename="../src/app/qgisapp.cpp" line="7177"/>
         <source>Cannot parse style</source>
         <translation>Kann Stil nicht interpretieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7172"/>
+        <location filename="../src/app/qgisapp.cpp" line="7192"/>
         <source>Cannot paste style</source>
         <translation>Kann Stil nicht einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7589"/>
+        <location filename="../src/app/qgisapp.cpp" line="7609"/>
         <source>Filter on joined fields</source>
         <translation>Filter auf verknüpften Feldern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7746"/>
+        <location filename="../src/app/qgisapp.cpp" line="7766"/>
         <source>No legend entries selected</source>
         <translation>Keine Einträge der Legende gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7747"/>
+        <location filename="../src/app/qgisapp.cpp" line="7767"/>
         <source>Select the layers and groups you want to remove in the legend.</source>
         <translation>Zu löschende Layer oder Gruppen in der Legende wählen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7754"/>
+        <location filename="../src/app/qgisapp.cpp" line="7774"/>
         <source>Remove layers and groups</source>
         <translation>Layer und Gruppen löschen</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="7754"/>
+        <location filename="../src/app/qgisapp.cpp" line="7774"/>
         <source>Remove %n legend entries?</source>
         <comment>number of legend items to remove</comment>
         <translation>
@@ -24513,7 +24627,7 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="7766"/>
+        <location filename="../src/app/qgisapp.cpp" line="7786"/>
         <source>%n legend entries removed.</source>
         <comment>number of removed legend entries</comment>
         <translation>
@@ -24522,240 +24636,245 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7873"/>
+        <location filename="../src/app/qgisapp.cpp" line="7893"/>
         <source>%1 (%2 type unsupported)</source>
         <translation>%1 (Typ %2 nicht unterstützt)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7907"/>
+        <location filename="../src/app/qgisapp.cpp" line="7927"/>
         <source>Cannot copy style to duplicated layer.</source>
         <translation>Kann Stil nicht in kopierten Layer anwenden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8834"/>
+        <location filename="../src/app/qgisapp.cpp" line="8563"/>
+        <source>https://qgis.org/en/site/getinvolved/development/bugreporting.html</source>
+        <translation>https://qgis.org/de/site/getinvolved/development/bugreporting.html</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgisapp.cpp" line="8854"/>
         <source>Do you want to save the current project? %1</source>
         <translation>Wollen Sie das aktuelle Projekt speichern? %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10349"/>
+        <location filename="../src/app/qgisapp.cpp" line="10369"/>
         <source>Invalid Layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3793"/>
+        <location filename="../src/app/qgisapp.cpp" line="3800"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3793"/>
+        <location filename="../src/app/qgisapp.cpp" line="3800"/>
         <source>Cannot get SpatiaLite select dialog from provider.</source>
         <translation>Kann SpatiaLite-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3808"/>
+        <location filename="../src/app/qgisapp.cpp" line="3815"/>
         <source>Delimited Text</source>
         <translation>Getrennte Texte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3808"/>
+        <location filename="../src/app/qgisapp.cpp" line="3815"/>
         <source>Cannot get Delimited Text select dialog from provider.</source>
         <translation>Konnte Auswahldialog für getrennte Texte nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3865"/>
+        <location filename="../src/app/qgisapp.cpp" line="3872"/>
         <source>MSSQL</source>
         <translation>MSSQL</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3865"/>
+        <location filename="../src/app/qgisapp.cpp" line="3872"/>
         <source>Cannot get MSSQL select dialog from provider.</source>
         <translation>Konnte den MSSQL-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3882"/>
+        <location filename="../src/app/qgisapp.cpp" line="3889"/>
         <source>Oracle</source>
         <translation>Oracle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3882"/>
+        <location filename="../src/app/qgisapp.cpp" line="3889"/>
         <source>Cannot get Oracle select dialog from provider.</source>
         <translation>Konnte den Oracle-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3905"/>
+        <location filename="../src/app/qgisapp.cpp" line="3912"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3905"/>
+        <location filename="../src/app/qgisapp.cpp" line="3912"/>
         <source>Cannot get WMS select dialog from provider.</source>
         <translation>Konnte den WMS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3922"/>
+        <location filename="../src/app/qgisapp.cpp" line="3929"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3922"/>
+        <location filename="../src/app/qgisapp.cpp" line="3929"/>
         <source>Cannot get WCS select dialog from provider.</source>
         <translation>Konnte den WCS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3944"/>
+        <location filename="../src/app/qgisapp.cpp" line="3951"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3944"/>
+        <location filename="../src/app/qgisapp.cpp" line="3951"/>
         <source>Cannot get WFS select dialog from provider.</source>
         <translation>Konnte WFS-Auswahldialog nicht vom Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4133"/>
+        <location filename="../src/app/qgisapp.cpp" line="4140"/>
         <source>Default failed to open: %1</source>
         <translation>Öffnen der Vorgabe fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4137"/>
+        <location filename="../src/app/qgisapp.cpp" line="4144"/>
         <source>Default not found: %1</source>
         <translation>Vorgabe nicht gefunden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4139"/>
+        <location filename="../src/app/qgisapp.cpp" line="4146"/>
         <source>Open Template Project</source>
         <translation>Vorlageprojekt öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4164"/>
+        <location filename="../src/app/qgisapp.cpp" line="4171"/>
         <source>Auto-open Project</source>
         <translation>Automatisch zu öffnendes Projekt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4201"/>
+        <location filename="../src/app/qgisapp.cpp" line="4208"/>
         <source>Failed to open: %1</source>
         <translation>Öffnen gescheitert: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4224"/>
+        <location filename="../src/app/qgisapp.cpp" line="4231"/>
         <source>Not valid project file: %1</source>
         <translation>Ungültige Projektdatei: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4237"/>
+        <location filename="../src/app/qgisapp.cpp" line="4244"/>
         <source>Project failed to open: %1</source>
         <translation>Projektöffnen fehlgeschlagen: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4244"/>
+        <location filename="../src/app/qgisapp.cpp" line="4251"/>
         <source>Default template has been reopened: %1</source>
         <translation>Vorgabevorlage wurde wiedergeöffnet: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4251"/>
+        <location filename="../src/app/qgisapp.cpp" line="4258"/>
         <source>File not found: %1</source>
         <translation>Datei nicht gefunden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4333"/>
+        <location filename="../src/app/qgisapp.cpp" line="4340"/>
         <source>Calculating...</source>
         <translation>Berechne...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4333"/>
-        <location filename="../src/app/qgisapp.cpp" line="5549"/>
+        <location filename="../src/app/qgisapp.cpp" line="4340"/>
+        <location filename="../src/app/qgisapp.cpp" line="5557"/>
         <source>Abort...</source>
         <translation>Abbrechen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4396"/>
+        <location filename="../src/app/qgisapp.cpp" line="4403"/>
         <source>Choose a QGIS project file to open</source>
         <translation>QGIS-Projektdatei zum Öffnen wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4432"/>
+        <location filename="../src/app/qgisapp.cpp" line="4439"/>
         <source>Loading project: %1</source>
         <translation>Lade Projekt: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4459"/>
+        <location filename="../src/app/qgisapp.cpp" line="4466"/>
         <source>Unable to open project</source>
         <translation>Kann das Projekt nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4535"/>
+        <location filename="../src/app/qgisapp.cpp" line="4542"/>
         <source>Security warning</source>
         <translation>Sicherheitswarnung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4536"/>
+        <location filename="../src/app/qgisapp.cpp" line="4543"/>
         <source>project macros have been disabled.</source>
         <translation>Projektmakros wurden abgeschaltet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4527"/>
+        <location filename="../src/app/qgisapp.cpp" line="4534"/>
         <source>Enable macros</source>
         <translation>Makros aktivieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4559"/>
+        <location filename="../src/app/qgisapp.cpp" line="4566"/>
         <source>Project loaded</source>
         <translation>Projekt geladen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4579"/>
+        <location filename="../src/app/qgisapp.cpp" line="4586"/>
         <source>Choose a QGIS project file</source>
         <translation>Eine QGIS-Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4625"/>
-        <location filename="../src/app/qgisapp.cpp" line="4677"/>
+        <location filename="../src/app/qgisapp.cpp" line="4632"/>
+        <location filename="../src/app/qgisapp.cpp" line="4684"/>
         <source>Saved project to: %1</source>
         <translation>Projekt in %1 gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4635"/>
-        <location filename="../src/app/qgisapp.cpp" line="4685"/>
+        <location filename="../src/app/qgisapp.cpp" line="4642"/>
+        <location filename="../src/app/qgisapp.cpp" line="4692"/>
         <source>Unable to save project %1</source>
         <translation>Konnte Projekt %1 nicht speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4656"/>
+        <location filename="../src/app/qgisapp.cpp" line="4663"/>
         <source>Choose a file name to save the QGIS project file as</source>
         <translation>Name für zu speichernden QGIS-Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4845"/>
+        <location filename="../src/app/qgisapp.cpp" line="4852"/>
         <source>Unable to load %1</source>
         <translation>%1 kann nicht geladen werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4967"/>
+        <location filename="../src/app/qgisapp.cpp" line="4974"/>
         <source>Choose a file name to save the map image as</source>
         <translation>Name für Datei zum Speichern des Kartenabbilds wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4972"/>
+        <location filename="../src/app/qgisapp.cpp" line="4979"/>
         <source>Saved map image to %1</source>
         <translation>Kartenabbild als %1 gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5357"/>
+        <location filename="../src/app/qgisapp.cpp" line="5364"/>
         <source>Default system font substituted.</source>
         <translation>Durch voreingestellten Systemfont ersetzt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5376"/>
+        <location filename="../src/app/qgisapp.cpp" line="5383"/>
         <source>Labeling</source>
         <translation>Beschriftung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5377"/>
+        <location filename="../src/app/qgisapp.cpp" line="5384"/>
         <source>Font for layer <b><u>%1</u></b> was not found (<i>%2</i>). %3</source>
         <translation>Schriftart <i>%2</i> für Layer <b><u>%1</u></b> nicht gefunden. %3</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5368"/>
+        <location filename="../src/app/qgisapp.cpp" line="5375"/>
         <source>Open labeling dialog</source>
         <translation>Beschriftungseinstelllungen öffnen</translation>
     </message>
@@ -24801,125 +24920,125 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         <translation>Protokoll-Fenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2044"/>
+        <location filename="../src/app/qgisapp.cpp" line="2050"/>
         <source>Scale</source>
         <translation>Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2073"/>
+        <location filename="../src/app/qgisapp.cpp" line="2079"/>
         <source>Rotation</source>
         <translation>Drehung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2584"/>
+        <location filename="../src/app/qgisapp.cpp" line="2590"/>
         <source>Overview Panel</source>
         <translation>Übersichtsfenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2700"/>
+        <location filename="../src/app/qgisapp.cpp" line="2706"/>
         <source>Layers Panel</source>
         <translation>Layerfenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2726"/>
-        <location filename="../src/app/qgisapp.cpp" line="2728"/>
+        <location filename="../src/app/qgisapp.cpp" line="2732"/>
+        <location filename="../src/app/qgisapp.cpp" line="2734"/>
         <source>Add Group</source>
         <translation>Gruppe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2734"/>
+        <location filename="../src/app/qgisapp.cpp" line="2740"/>
         <source>Manage Layer Visibility</source>
         <translation>Layersichtberkeitseinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2740"/>
-        <location filename="../src/app/qgisapp.cpp" line="2742"/>
+        <location filename="../src/app/qgisapp.cpp" line="2746"/>
+        <location filename="../src/app/qgisapp.cpp" line="2748"/>
         <source>Filter Legend By Map Content</source>
         <translation>Legende nach Karteninhalt filtern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2747"/>
+        <location filename="../src/app/qgisapp.cpp" line="2753"/>
         <source>Filter legend by expression</source>
         <translation>Legende nach Ausdruck filtern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2751"/>
-        <location filename="../src/app/qgisapp.cpp" line="2753"/>
+        <location filename="../src/app/qgisapp.cpp" line="2757"/>
+        <location filename="../src/app/qgisapp.cpp" line="2759"/>
         <source>Expand All</source>
         <translation>Alle ausklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2755"/>
-        <location filename="../src/app/qgisapp.cpp" line="2757"/>
+        <location filename="../src/app/qgisapp.cpp" line="2761"/>
+        <location filename="../src/app/qgisapp.cpp" line="2763"/>
         <source>Collapse All</source>
         <translation>Alle einklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2791"/>
+        <location filename="../src/app/qgisapp.cpp" line="2797"/>
         <source>Layer Order Panel</source>
         <translation>Layerreihenfolgefenster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3108"/>
+        <location filename="../src/app/qgisapp.cpp" line="3114"/>
         <source>Compiled against GEOS</source>
         <translation>Kompiliert mit GEOS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3109"/>
+        <location filename="../src/app/qgisapp.cpp" line="3115"/>
         <source>Running against GEOS</source>
         <translation>Läuft mit GEOS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3823"/>
+        <location filename="../src/app/qgisapp.cpp" line="3830"/>
         <source>Virtual layer</source>
         <translation>Virtueller Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3823"/>
+        <location filename="../src/app/qgisapp.cpp" line="3830"/>
         <source>Cannot get virtual layer select dialog from provider.</source>
         <translation>Kann Auswahldialog für virtuelle Layer nicht vom  Datenanbieter holen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4296"/>
+        <location filename="../src/app/qgisapp.cpp" line="4303"/>
         <source>Layer creation failed. Please check the <a href="#messageLog">message log</a> for further information.</source>
         <translation>Layererzeugung fehlgeschlagen. Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4343"/>
-        <location filename="../src/app/qgisapp.cpp" line="4349"/>
-        <location filename="../src/app/qgisapp.cpp" line="4355"/>
-        <location filename="../src/app/qgisapp.cpp" line="4364"/>
-        <location filename="../src/app/qgisapp.cpp" line="4370"/>
+        <location filename="../src/app/qgisapp.cpp" line="4350"/>
+        <location filename="../src/app/qgisapp.cpp" line="4356"/>
+        <location filename="../src/app/qgisapp.cpp" line="4362"/>
+        <location filename="../src/app/qgisapp.cpp" line="4371"/>
+        <location filename="../src/app/qgisapp.cpp" line="4377"/>
         <source>Raster calculator</source>
         <translation>Rasterrechner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4344"/>
+        <location filename="../src/app/qgisapp.cpp" line="4351"/>
         <source>Calculation complete.</source>
         <translation>Berechnung beendet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4350"/>
+        <location filename="../src/app/qgisapp.cpp" line="4357"/>
         <source>Could not create destination file.</source>
         <translation>Kann die Zieldatei nicht erzeugen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4356"/>
+        <location filename="../src/app/qgisapp.cpp" line="4363"/>
         <source>Could not read input layer.</source>
         <translation>Konnte Eingabelayer nicht lesen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4365"/>
+        <location filename="../src/app/qgisapp.cpp" line="4372"/>
         <source>Could not parse raster formula.</source>
         <translation>Rasterformel konnte nicht interpretiert werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4371"/>
+        <location filename="../src/app/qgisapp.cpp" line="4378"/>
         <source>Insufficient memory available for operation.</source>
         <translation>Nicht genug Speicher für Operation verfügbar.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4447"/>
+        <location filename="../src/app/qgisapp.cpp" line="4454"/>
         <source>Do you want to open the backup file
 %1
 instead?</source>
@@ -24928,165 +25047,165 @@ instead?</source>
 geöffnet werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4615"/>
+        <location filename="../src/app/qgisapp.cpp" line="4622"/>
         <source>Insufficient permissions</source>
         <translation>Ungenügende Zugriffsrechte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4616"/>
+        <location filename="../src/app/qgisapp.cpp" line="4623"/>
         <source>The project file is not writable.</source>
         <translation>Die Projektdatei ist schreibgeschützt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4719"/>
+        <location filename="../src/app/qgisapp.cpp" line="4726"/>
         <source>DXF export completed</source>
         <translation>DXF-Export abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4723"/>
+        <location filename="../src/app/qgisapp.cpp" line="4730"/>
         <source>DXF export failed</source>
         <translation>DXF-Export fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5388"/>
-        <location filename="../src/app/qgisapp.cpp" line="5409"/>
+        <location filename="../src/app/qgisapp.cpp" line="5395"/>
+        <location filename="../src/app/qgisapp.cpp" line="5416"/>
         <source>Commit errors</source>
         <translation>Fehler beim Festschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5389"/>
-        <location filename="../src/app/qgisapp.cpp" line="5410"/>
+        <location filename="../src/app/qgisapp.cpp" line="5396"/>
+        <location filename="../src/app/qgisapp.cpp" line="5417"/>
         <source>Could not commit changes to layer %1</source>
         <translation>Konnte Änderungen am Layer %1 nicht festschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5391"/>
+        <location filename="../src/app/qgisapp.cpp" line="5398"/>
         <source>Errors: %1
 </source>
         <translation>Fehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5398"/>
+        <location filename="../src/app/qgisapp.cpp" line="5405"/>
         <source>Show more</source>
         <translation>Mehr zeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5448"/>
+        <location filename="../src/app/qgisapp.cpp" line="5455"/>
         <source>Labeling Options</source>
         <translation>Beschriftungsoptionen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5449"/>
+        <location filename="../src/app/qgisapp.cpp" line="5456"/>
         <source>Please select a vector layer first</source>
         <translation>Bitte wählen zur zuvor einen Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5457"/>
+        <location filename="../src/app/qgisapp.cpp" line="5464"/>
         <source>Layer labeling settings</source>
         <translation>Layerbeschriftungseinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5551"/>
+        <location filename="../src/app/qgisapp.cpp" line="5559"/>
         <source>Reading raster</source>
         <translation>Lade Raster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5552"/>
+        <location filename="../src/app/qgisapp.cpp" line="5560"/>
         <source>Saving raster</source>
         <translation>Speichere Raster</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5625"/>
+        <location filename="../src/app/qgisapp.cpp" line="5633"/>
         <source>Cannot write raster error code: %1</source>
         <translation>Rasterschreibfehlercode: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5636"/>
-        <location filename="../src/app/qgisapp.cpp" line="5769"/>
+        <location filename="../src/app/qgisapp.cpp" line="5652"/>
+        <location filename="../src/app/qgisapp.cpp" line="5784"/>
         <source>Saving done</source>
         <translation>Speichern abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5637"/>
+        <location filename="../src/app/qgisapp.cpp" line="5653"/>
         <source>Export to raster file has been completed</source>
         <translation>Rasterdateiexport abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5770"/>
+        <location filename="../src/app/qgisapp.cpp" line="5785"/>
         <source>Export to vector file has been completed</source>
         <translation>Export in Vektordatei ist abgeschlossen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5776"/>
+        <location filename="../src/app/qgisapp.cpp" line="5791"/>
         <source>Save error</source>
         <translation>Fehler beim Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5777"/>
+        <location filename="../src/app/qgisapp.cpp" line="5792"/>
         <source>Export to vector file failed.
 Error: %1</source>
         <translation>Export in Vektordatei schlug fehl.
 Fehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5840"/>
-        <location filename="../src/app/qgisapp.cpp" line="8419"/>
-        <location filename="../src/app/qgisapp.cpp" line="8428"/>
-        <location filename="../src/app/qgisapp.cpp" line="8489"/>
-        <location filename="../src/app/qgisapp.cpp" line="8498"/>
+        <location filename="../src/app/qgisapp.cpp" line="5855"/>
+        <location filename="../src/app/qgisapp.cpp" line="8439"/>
+        <location filename="../src/app/qgisapp.cpp" line="8448"/>
+        <location filename="../src/app/qgisapp.cpp" line="8509"/>
+        <location filename="../src/app/qgisapp.cpp" line="8518"/>
         <source>No Layer Selected</source>
         <translation>Keinen Layer ausgewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5841"/>
+        <location filename="../src/app/qgisapp.cpp" line="5856"/>
         <source>To delete features, you must select a vector layer in the legend</source>
         <translation>Zum Löschen von Objekte zu muss ein Vektorlayer in der Legende gewählt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5849"/>
+        <location filename="../src/app/qgisapp.cpp" line="5864"/>
         <source>No Vector Layer Selected</source>
         <translation>Es wurde kein Vektorlayer gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5850"/>
+        <location filename="../src/app/qgisapp.cpp" line="5865"/>
         <source>Deleting features only works on vector layers</source>
         <translation>Löschen von Objekten ist nur von Vektorlayern möglich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5857"/>
+        <location filename="../src/app/qgisapp.cpp" line="5872"/>
         <source>Provider does not support deletion</source>
         <translation>Datenanbieter unterstützt keine Löschoperationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5858"/>
+        <location filename="../src/app/qgisapp.cpp" line="5873"/>
         <source>Data provider does not support deleting features</source>
         <translation>Der Datenanbieter hat nicht die Möglichkeit Objekte zu löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5865"/>
-        <location filename="../src/app/qgisapp.cpp" line="6373"/>
-        <location filename="../src/app/qgisapp.cpp" line="6382"/>
-        <location filename="../src/app/qgisapp.cpp" line="6483"/>
+        <location filename="../src/app/qgisapp.cpp" line="5880"/>
+        <location filename="../src/app/qgisapp.cpp" line="6386"/>
+        <location filename="../src/app/qgisapp.cpp" line="6395"/>
+        <location filename="../src/app/qgisapp.cpp" line="6496"/>
         <source>Layer not editable</source>
         <translation>Der Layer kann nicht bearbeitet werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5866"/>
+        <location filename="../src/app/qgisapp.cpp" line="5881"/>
         <source>The current layer is not editable. Choose 'Start editing' in the digitizing toolbar.</source>
         <translation>Der aktuelle Layer kann nicht bearbeitet werden. Bitte 'Bearbeitungsstatus umschalten' aus der Digitalisierwerkzeugleiste wählen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5875"/>
+        <location filename="../src/app/qgisapp.cpp" line="5890"/>
         <source>No Features Selected</source>
         <translation>Keine Objekte gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5881"/>
+        <location filename="../src/app/qgisapp.cpp" line="5896"/>
         <source>Delete features</source>
         <translation>Objekte löschen</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="5881"/>
+        <location filename="../src/app/qgisapp.cpp" line="5896"/>
         <source>Delete %n feature(s)?</source>
         <comment>number of features to delete</comment>
         <translation>
@@ -25095,22 +25214,22 @@ Fehler: %1</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5886"/>
+        <location filename="../src/app/qgisapp.cpp" line="5901"/>
         <source>Features deleted</source>
         <translation>Objekt gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5890"/>
+        <location filename="../src/app/qgisapp.cpp" line="5905"/>
         <source>Problem deleting features</source>
         <translation>Problem beim Löschen der Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5891"/>
+        <location filename="../src/app/qgisapp.cpp" line="5906"/>
         <source>A problem occurred during deletion of %1 feature(s)</source>
         <translation>Ein Problem trat bei der Löschung von %1 Objekt(en) auf</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="5896"/>
+        <location filename="../src/app/qgisapp.cpp" line="5911"/>
         <source>%n feature(s) deleted.</source>
         <comment>number of features deleted</comment>
         <translation>
@@ -25119,190 +25238,190 @@ Fehler: %1</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5942"/>
+        <location filename="../src/app/qgisapp.cpp" line="5957"/>
         <source>Merging features...</source>
         <translation>Objekte werden verschmolzen...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5942"/>
+        <location filename="../src/app/qgisapp.cpp" line="5957"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5995"/>
+        <location filename="../src/app/qgisapp.cpp" line="6010"/>
         <source>Create unique print composer title</source>
         <translation>Eindeutigen Druckzusammenstellungstitel erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5998"/>
+        <location filename="../src/app/qgisapp.cpp" line="6013"/>
         <source>(title generated if left empty)</source>
         <translation>(Leergelassene Titel werden generiert)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6012"/>
+        <location filename="../src/app/qgisapp.cpp" line="6027"/>
         <source>Composer title</source>
         <translation>Titel der Druckzusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6027"/>
+        <location filename="../src/app/qgisapp.cpp" line="6042"/>
         <source>Title can not be empty!</source>
         <translation>Titel kann nicht leer sein!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6037"/>
+        <location filename="../src/app/qgisapp.cpp" line="6052"/>
         <source>Title already exists!</source>
         <translation>Titel bereits vorhanden!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6056"/>
-        <location filename="../src/app/qgisapp.cpp" line="6157"/>
+        <location filename="../src/app/qgisapp.cpp" line="6071"/>
+        <location filename="../src/app/qgisapp.cpp" line="6170"/>
         <source>Composer %1</source>
         <translation>Druckzusammenstellung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6113"/>
+        <location filename="../src/app/qgisapp.cpp" line="6128"/>
         <source> copy</source>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6151"/>
+        <location filename="../src/app/qgisapp.cpp" line="6164"/>
         <source>Loading composer %1</source>
         <translation>Lade Zusammenstellung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6363"/>
-        <location filename="../src/app/qgisapp.cpp" line="6466"/>
+        <location filename="../src/app/qgisapp.cpp" line="6376"/>
+        <location filename="../src/app/qgisapp.cpp" line="6479"/>
         <source>No active layer</source>
         <translation>Kein aktiver Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6364"/>
+        <location filename="../src/app/qgisapp.cpp" line="6377"/>
         <source>No active layer found. Please select a layer in the layer list</source>
         <translation>Keinen aktiven Layer gefunden. Bitte einen Layer aus der Liste wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6394"/>
-        <location filename="../src/app/qgisapp.cpp" line="6502"/>
-        <location filename="../src/app/qgisapp.cpp" line="6550"/>
+        <location filename="../src/app/qgisapp.cpp" line="6407"/>
+        <location filename="../src/app/qgisapp.cpp" line="6515"/>
+        <location filename="../src/app/qgisapp.cpp" line="6563"/>
         <source>Not enough features selected</source>
         <translation>Nicht genug Objekte gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6395"/>
-        <location filename="../src/app/qgisapp.cpp" line="6503"/>
-        <location filename="../src/app/qgisapp.cpp" line="6551"/>
+        <location filename="../src/app/qgisapp.cpp" line="6408"/>
+        <location filename="../src/app/qgisapp.cpp" line="6516"/>
+        <location filename="../src/app/qgisapp.cpp" line="6564"/>
         <source>The merge tool requires at least two selected features</source>
         <translation>Das Verschmelzungswerkzeug erfordert mindestens zwei gewählte Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6412"/>
+        <location filename="../src/app/qgisapp.cpp" line="6425"/>
         <source>Merged feature attributes</source>
         <translation>Objektattribute vereinen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6438"/>
-        <location filename="../src/app/qgisapp.cpp" line="6605"/>
+        <location filename="../src/app/qgisapp.cpp" line="6451"/>
+        <location filename="../src/app/qgisapp.cpp" line="6618"/>
         <source>Invalid result</source>
         <translation>Ungültiges Ergebnis</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6439"/>
-        <location filename="../src/app/qgisapp.cpp" line="6606"/>
+        <location filename="../src/app/qgisapp.cpp" line="6452"/>
+        <location filename="../src/app/qgisapp.cpp" line="6619"/>
         <source>Could not store value '%1' in field of type %2</source>
         <translation>Konnte Wert '%1' nicht im Feld des Typs %2 speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6518"/>
-        <location filename="../src/app/qgisapp.cpp" line="6569"/>
+        <location filename="../src/app/qgisapp.cpp" line="6531"/>
+        <location filename="../src/app/qgisapp.cpp" line="6582"/>
         <source>Merge failed</source>
         <translation>Zusammenführung fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6587"/>
+        <location filename="../src/app/qgisapp.cpp" line="6600"/>
         <source>Merged features</source>
         <translation>Objekte verschmelzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6722"/>
-        <location filename="../src/app/qgisapp.cpp" line="6747"/>
-        <location filename="../src/app/qgisapp.cpp" line="6772"/>
+        <location filename="../src/app/qgisapp.cpp" line="6735"/>
+        <location filename="../src/app/qgisapp.cpp" line="6760"/>
+        <location filename="../src/app/qgisapp.cpp" line="6785"/>
         <source>No active vector layer</source>
         <translation>Kein aktiver Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6723"/>
+        <location filename="../src/app/qgisapp.cpp" line="6736"/>
         <source>To invert selection, choose a vector layer in the legend</source>
         <translation>Um die Objektauswahl umzukehren einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6748"/>
+        <location filename="../src/app/qgisapp.cpp" line="6761"/>
         <source>To select all, choose a vector layer in the legend</source>
         <translation>Um alle Objekte zu wählen einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6773"/>
+        <location filename="../src/app/qgisapp.cpp" line="6786"/>
         <source>To select features, choose a vector layer in the legend</source>
         <translation>Um Objekte zu wählen einen Vektorlayer in der Legende wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6810"/>
+        <location filename="../src/app/qgisapp.cpp" line="6823"/>
         <source>Features cut</source>
         <translation>Objekte ausgeschnitten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6836"/>
+        <location filename="../src/app/qgisapp.cpp" line="6849"/>
         <source>Features pasted</source>
         <translation>Objekte eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6924"/>
-        <location filename="../src/app/qgisapp.cpp" line="6931"/>
         <location filename="../src/app/qgisapp.cpp" line="6937"/>
-        <location filename="../src/app/qgisapp.cpp" line="7040"/>
-        <location filename="../src/app/qgisapp.cpp" line="7047"/>
+        <location filename="../src/app/qgisapp.cpp" line="6944"/>
+        <location filename="../src/app/qgisapp.cpp" line="6950"/>
         <location filename="../src/app/qgisapp.cpp" line="7053"/>
+        <location filename="../src/app/qgisapp.cpp" line="7060"/>
         <location filename="../src/app/qgisapp.cpp" line="7066"/>
-        <location filename="../src/app/qgisapp.cpp" line="7080"/>
+        <location filename="../src/app/qgisapp.cpp" line="7079"/>
+        <location filename="../src/app/qgisapp.cpp" line="7093"/>
         <source>Paste features</source>
         <translation>Objekte einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6925"/>
+        <location filename="../src/app/qgisapp.cpp" line="6938"/>
         <source>no features could be successfully pasted.</source>
         <translation>Es wurden keine Objekte erfolgreich eingefügt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6932"/>
+        <location filename="../src/app/qgisapp.cpp" line="6945"/>
         <source>%1 features were successfully pasted.</source>
         <translation>%1 Objekte wurden erfolgreich eingefügt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6938"/>
+        <location filename="../src/app/qgisapp.cpp" line="6951"/>
         <source>%1 of %2 features could be successfully pasted.</source>
         <translation>%1 von %2 Objekte konnte erfolgreich eingefügt werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6965"/>
+        <location filename="../src/app/qgisapp.cpp" line="6978"/>
         <source>Pasted</source>
         <translation>Eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6967"/>
+        <location filename="../src/app/qgisapp.cpp" line="6980"/>
         <source>Layer name</source>
         <translation>Layername</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7041"/>
+        <location filename="../src/app/qgisapp.cpp" line="7054"/>
         <source>No features in clipboard.</source>
         <translation>Keine Objekte in der Zwischenablage.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7048"/>
+        <location filename="../src/app/qgisapp.cpp" line="7061"/>
         <source>No features with geometry found, point type layer will be created.</source>
         <translation>Keine Objekte mit Geometrie gefunden. Ein Punktlayer wird erzeugt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7054"/>
+        <location filename="../src/app/qgisapp.cpp" line="7067"/>
         <source>Multiple geometry types found, features with geometry different from %1 will be created without geometry.</source>
         <translation>Mehrere Geometriearten gefunden, Objekte mit einer anderen Geometrieart als %1 werden ohne Geometrie erzeugt.</translation>
     </message>
@@ -25311,37 +25430,37 @@ Fehler: %1</translation>
         <translation type="obsolete">Konnte neuen Layer nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7081"/>
+        <location filename="../src/app/qgisapp.cpp" line="7094"/>
         <source>Cannot create field %1 (%2,%3)</source>
         <translation>Konnte Feld %1 (%2,%3) nicht anlegen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7260"/>
+        <location filename="../src/app/qgisapp.cpp" line="7280"/>
         <source>Start editing failed</source>
         <translation>Bearbeitungsbeginn schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7261"/>
+        <location filename="../src/app/qgisapp.cpp" line="7281"/>
         <source>Provider cannot be opened for editing</source>
         <translation>Datenanbieter kann nicht zum Bearbeiten geöffnet werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7286"/>
+        <location filename="../src/app/qgisapp.cpp" line="7306"/>
         <source>Stop editing</source>
         <translation>Bearbeitung beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7287"/>
+        <location filename="../src/app/qgisapp.cpp" line="7307"/>
         <source>Do you want to save the changes to layer %1?</source>
         <translation>Sollen die Änderungen am Layer %1 gespeichert werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7318"/>
+        <location filename="../src/app/qgisapp.cpp" line="7338"/>
         <source>Problems during roll back</source>
         <translation>Probleme beim Zurücknehmen der Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7398"/>
+        <location filename="../src/app/qgisapp.cpp" line="7418"/>
         <source>Could not %1 changes to layer %2
 
 Errors: %3
@@ -25352,234 +25471,233 @@ Fehler: %3
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7399"/>
+        <location filename="../src/app/qgisapp.cpp" line="7419"/>
         <source>rollback</source>
         <translation>verworfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7399"/>
+        <location filename="../src/app/qgisapp.cpp" line="7419"/>
         <source>cancel</source>
         <translation>abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7429"/>
+        <location filename="../src/app/qgisapp.cpp" line="7449"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7429"/>
-        <location filename="../src/app/qgisapp.cpp" line="7455"/>
-        <location filename="../src/app/qgisapp.cpp" line="7481"/>
+        <location filename="../src/app/qgisapp.cpp" line="7449"/>
+        <location filename="../src/app/qgisapp.cpp" line="7475"/>
+        <location filename="../src/app/qgisapp.cpp" line="7501"/>
         <source>all</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7455"/>
+        <location filename="../src/app/qgisapp.cpp" line="7475"/>
         <source>Rollback</source>
         <translation>Verwerfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7481"/>
+        <location filename="../src/app/qgisapp.cpp" line="7501"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7497"/>
+        <location filename="../src/app/qgisapp.cpp" line="7517"/>
         <source>Current edits</source>
         <translation>Aktuelle Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7498"/>
+        <location filename="../src/app/qgisapp.cpp" line="7518"/>
         <source>%1 current changes for %2 layer(s)?</source>
         <translation>Aktuelle Änderungen für %2 Layer %1?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7590"/>
+        <location filename="../src/app/qgisapp.cpp" line="7610"/>
         <source>You are about to set a subset filter on a layer that has joined fields. Joined fields cannot be filtered, unless you convert the layer to a virtual layer first. Would you like to create a virtual layer out of this layer first?</source>
         <translation>Es soll eine Filter auf einen Layer mit verknüpften Feldern gesetzt werden. Verknüpfte Felder können nur gefiltert werden, wenn sie zuvor in einen virtuellen Layer umgewandelt werden.  Soll aus diesem Layer ein virtueller Layer erzeugt werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7793"/>
+        <location filename="../src/app/qgisapp.cpp" line="7813"/>
         <source>copy</source>
         <translation>Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7797"/>
+        <location filename="../src/app/qgisapp.cpp" line="7817"/>
         <source>Plugin layer</source>
         <translation>Erweiterungslayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7809"/>
+        <location filename="../src/app/qgisapp.cpp" line="7829"/>
         <source>Memory layer</source>
         <translation>Speicherlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7861"/>
-        <location filename="../src/app/qgisapp.cpp" line="7872"/>
+        <location filename="../src/app/qgisapp.cpp" line="7881"/>
+        <location filename="../src/app/qgisapp.cpp" line="7892"/>
         <source>Duplicate layer: </source>
         <translation>Layerduplizierung:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7862"/>
+        <location filename="../src/app/qgisapp.cpp" line="7882"/>
         <source>%1 (duplication resulted in invalid layer)</source>
         <translation>%1 (Kopieren führt zu ungültigem Layer)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7932"/>
+        <location filename="../src/app/qgisapp.cpp" line="7952"/>
         <source>Set scale visibility for selected layers</source>
         <translation>Maßstabsabhängige Sichtbarkeit der gewählten Layer setzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8225"/>
+        <location filename="../src/app/qgisapp.cpp" line="8245"/>
         <source>Couldn't load Python support library: %1</source>
         <translation>Konnte Python-Unterstützungsbibliothek nicht laden: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8236"/>
+        <location filename="../src/app/qgisapp.cpp" line="8256"/>
         <source>Couldn't resolve python support library's instance() symbol.</source>
         <translation>Konnte Symbol instance() nicht in Python-Unterstützungsbibliothek finden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8254"/>
+        <location filename="../src/app/qgisapp.cpp" line="8274"/>
         <source>Python support ENABLED :-) </source>
         <translation>Python-Unterstützung aktiviert :-) </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8280"/>
+        <location filename="../src/app/qgisapp.cpp" line="8300"/>
         <source>There is a new version of QGIS available</source>
         <translation>Eine neue Version von QGIS ist verfügbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8284"/>
+        <location filename="../src/app/qgisapp.cpp" line="8304"/>
         <source>You are running a development version of QGIS</source>
         <translation>Sie verwenden eine Entwicklungsversion von QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8288"/>
+        <location filename="../src/app/qgisapp.cpp" line="8308"/>
         <source>You are running the current version of QGIS</source>
         <translation>Sie verwenden die aktuelle Version von QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8295"/>
-        <location filename="../src/app/qgisapp.cpp" line="8301"/>
+        <location filename="../src/app/qgisapp.cpp" line="8315"/>
+        <location filename="../src/app/qgisapp.cpp" line="8321"/>
         <source>QGIS Version Information</source>
         <translation>QGIS-Versionsinformationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8301"/>
+        <location filename="../src/app/qgisapp.cpp" line="8321"/>
         <source>Unable to get current version information from server</source>
         <translation>Kann Informationen zu aktuellen Version nicht vom Server holen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8420"/>
-        <location filename="../src/app/qgisapp.cpp" line="8429"/>
+        <location filename="../src/app/qgisapp.cpp" line="8440"/>
+        <location filename="../src/app/qgisapp.cpp" line="8449"/>
         <source>To perform a full histogram stretch, you need to have a raster layer selected.</source>
         <translation>Um eine volle Histogrammstreckung durchzuführen, muß ein Rasterlayer gewählt sein.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8490"/>
-        <location filename="../src/app/qgisapp.cpp" line="8499"/>
+        <location filename="../src/app/qgisapp.cpp" line="8510"/>
+        <location filename="../src/app/qgisapp.cpp" line="8519"/>
         <source>To change brightness or contrast, you need to have a raster layer selected.</source>
         <translation>Um Helligkeit oder Kontrast zu ändern, muß ein Rasterlayer gewählt sein.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8525"/>
+        <location filename="../src/app/qgisapp.cpp" line="8545"/>
         <source>en</source>
         <comment>documentation language</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8543"/>
         <source>https://qgis.org/en/site/getinvolved/development/index.html#bugs-features-and-issues</source>
-        <translation>https://qgis.org/de/site/getinvolved/development/index.html#bugs-features-and-issues</translation>
+        <translation type="obsolete">https://qgis.org/de/site/getinvolved/development/index.html#bugs-features-and-issues</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8547"/>
+        <location filename="../src/app/qgisapp.cpp" line="8567"/>
         <source>https://qgis.org/en/site/forusers/commercial_support.html</source>
         <translation>https://qgis.org/de/site/forusers/commercial_support.html</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8671"/>
-        <location filename="../src/app/qgisapp.cpp" line="8714"/>
+        <location filename="../src/app/qgisapp.cpp" line="8691"/>
+        <location filename="../src/app/qgisapp.cpp" line="8734"/>
         <source>Layer is not valid</source>
         <translation>Layer ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11269"/>
+        <location filename="../src/app/qgisapp.cpp" line="11288"/>
         <source>Layer %1</source>
         <translation>Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8670"/>
+        <location filename="../src/app/qgisapp.cpp" line="8690"/>
         <source>The layer %1 is not a valid layer and can not be added to the map</source>
         <translation>Der Layer %1 ist ungültig und kann der Karte nicht hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6374"/>
-        <location filename="../src/app/qgisapp.cpp" line="6476"/>
+        <location filename="../src/app/qgisapp.cpp" line="6387"/>
+        <location filename="../src/app/qgisapp.cpp" line="6489"/>
         <source>The merge features tool only works on vector layers.</source>
         <translation>Das Verschmeldungswerkzeug funktioniert nur mit Vektorlayern.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6383"/>
-        <location filename="../src/app/qgisapp.cpp" line="6484"/>
+        <location filename="../src/app/qgisapp.cpp" line="6396"/>
+        <location filename="../src/app/qgisapp.cpp" line="6497"/>
         <source>Merging features can only be done for layers in editing mode.</source>
         <translation>Verschmelzung von Objekten kann nur auf Layern im Bearbeitungsmodus erfolgen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6467"/>
+        <location filename="../src/app/qgisapp.cpp" line="6480"/>
         <source>Please select a layer in the layer list</source>
         <translation>Einen Layer in der Liste wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6475"/>
+        <location filename="../src/app/qgisapp.cpp" line="6488"/>
         <source>Invalid layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6529"/>
-        <location filename="../src/app/qgisapp.cpp" line="6579"/>
+        <location filename="../src/app/qgisapp.cpp" line="6542"/>
+        <location filename="../src/app/qgisapp.cpp" line="6592"/>
         <source>Merge cancelled</source>
         <translation>Verschmelzung abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6530"/>
-        <location filename="../src/app/qgisapp.cpp" line="6580"/>
+        <location filename="../src/app/qgisapp.cpp" line="6543"/>
+        <location filename="../src/app/qgisapp.cpp" line="6593"/>
         <source>The union operation would result in a geometry type that is not compatible with the current layer.</source>
         <translation>Die Vereinigungsoperation würde einen Geometrietyp ergeben, der nicht zum aktuellen Layer paßt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8713"/>
+        <location filename="../src/app/qgisapp.cpp" line="8733"/>
         <source>The layer is not a valid layer and can not be added to the map</source>
         <translation>Der Layer ist ungültig und kann daher nicht zum Kartenfenster hinzugefügt werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8809"/>
+        <location filename="../src/app/qgisapp.cpp" line="8829"/>
         <source>Project has layer(s) in edit mode with unsaved edits, which will NOT be saved!</source>
         <translation>Projekt hat Layer im Bearbeitungsmodus mit nicht gespeicherten Bearbeitungen, die NICHT gespeichert werden!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8833"/>
+        <location filename="../src/app/qgisapp.cpp" line="8853"/>
         <source>Save?</source>
         <translation>Speichern?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9456"/>
+        <location filename="../src/app/qgisapp.cpp" line="9476"/>
         <source>Current CRS: %1 (OTFR enabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aktiv)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9462"/>
+        <location filename="../src/app/qgisapp.cpp" line="9482"/>
         <source>Current CRS: %1 (OTFR disabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aus)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9694"/>
+        <location filename="../src/app/qgisapp.cpp" line="9714"/>
         <source>Maptips require an active layer</source>
         <translation>Kartentipps erfordern einen aktuellen Layer</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="9761"/>
+        <location filename="../src/app/qgisapp.cpp" line="9781"/>
         <source>%n feature(s) selected on layer %1.</source>
         <comment>number of selected features</comment>
         <translation>
@@ -25588,98 +25706,98 @@ Fehler: %3
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10262"/>
+        <location filename="../src/app/qgisapp.cpp" line="10282"/>
         <source>Open a GDAL Supported Raster Data Source</source>
         <translation>Öffnen einer GDAL-Rasterdatenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10367"/>
+        <location filename="../src/app/qgisapp.cpp" line="10387"/>
         <source>Error adding valid layer to map canvas</source>
         <translation>Fehler beim Hinzufügen eines gültigen Layers zur Karte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10368"/>
+        <location filename="../src/app/qgisapp.cpp" line="10388"/>
         <source>Raster layer</source>
         <translation>Raster-Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10494"/>
+        <location filename="../src/app/qgisapp.cpp" line="10514"/>
         <source>%1 is not a supported raster data source</source>
         <translation>%1 ist keine unterstützte Rasterdatenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10498"/>
+        <location filename="../src/app/qgisapp.cpp" line="10518"/>
         <source>Unsupported Data Source</source>
         <translation>Nicht unterstütztes Datenformat</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10555"/>
+        <location filename="../src/app/qgisapp.cpp" line="10575"/>
         <source>Exit QGIS</source>
         <translation>QGIS beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10556"/>
+        <location filename="../src/app/qgisapp.cpp" line="10576"/>
         <source>Do you really want to quit QGIS?</source>
         <translation>Soll QGIS wirklich beendet werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10641"/>
+        <location filename="../src/app/qgisapp.cpp" line="10661"/>
         <source>This project file was saved by an older version of QGIS. When saving this project file, QGIS will update it to the latest version, possibly rendering it useless for older versions of QGIS.</source>
         <translation>Dieses Projekt wurde mit einer älteren Version von QGIS gespeichert. Erneutes Speichern der Projektdatei bringt die Datei auf den aktuellen Stand, verursacht u.U. das es mit älteren Versionen von QGIS nicht mehr verwendet werden kann.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10645"/>
+        <location filename="../src/app/qgisapp.cpp" line="10665"/>
         <source><p>This project file was saved by an older version of QGIS. When saving this project file, QGIS will update it to the latest version, possibly rendering it useless for older versions of QGIS.<p>Even though QGIS developers try to maintain backwards compatibility, some of the information from the old project file might be lost. To improve the quality of QGIS, we appreciate if you file a bug report at %3. Be sure to include the old project file, and state the ver [...]
         <translation><p>Diese Projektdatei wurde mit einer älteren QGIS-Version gespeichert. Beim Speichern dieser Projektdatei wird QGIS es auf die aktuelle Version aktualisieren und sie damit unter Umständen für ältere QGIS-Versionen unbrauchbar machen. <p>Obwohl die QGIS-Entwickler versuchen Rückwärtskompatibilität zu erhalten, könnten dabei einige Informationen der alten Projektdatei verloren gehen. Um die Qualität von QGIS zu verbessern, würden wir es begrüßen, wenn Sie  [...]
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10661"/>
+        <location filename="../src/app/qgisapp.cpp" line="10681"/>
         <source><tt>Settings:Options:General</tt></source>
         <comment>Menu path to setting options</comment>
         <translation><tt>Einstellungen:Optionen:Allgemein</tt></translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10662"/>
+        <location filename="../src/app/qgisapp.cpp" line="10682"/>
         <source>Warn me when opening a project file saved with an older version of QGIS</source>
         <translation>Beim Öffnen einer Projektdatei, die mit einer älteren QGIS-Version erstellt wurde, warnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10663"/>
+        <location filename="../src/app/qgisapp.cpp" line="10683"/>
         <source>Project file is older</source>
         <translation>Projektdatei ist älter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10667"/>
+        <location filename="../src/app/qgisapp.cpp" line="10687"/>
         <source>This project file was saved by an older version of QGIS</source>
         <translation>Die Projektdatei wurde mit einer älteren QGIS-Version gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11081"/>
+        <location filename="../src/app/qgisapp.cpp" line="11100"/>
         <source> Please check the <a href="#messageLog">message log</a> for further info.</source>
         <translation> Bitte untersuchen Sie das <a href="#messageLog">Protokoll</a> auf weitere Informationen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11080"/>
+        <location filename="../src/app/qgisapp.cpp" line="11099"/>
         <source>A network request timed out, any data received is likely incomplete.</source>
         <translation>Zeitüberschreitung bei Netzwerkanfrage, empfangene Daten wahrscheinlich nicht vollständig.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10850"/>
+        <location filename="../src/app/qgisapp.cpp" line="10870"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10851"/>
+        <location filename="../src/app/qgisapp.cpp" line="10871"/>
         <source>This layer doesn't have a properties dialog.</source>
         <translation>Dieser Layer hat keine Eigenschaftendialog.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10909"/>
+        <location filename="../src/app/qgisapp.cpp" line="10928"/>
         <source>Authentication required</source>
         <translation>Authentifikation erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10964"/>
+        <location filename="../src/app/qgisapp.cpp" line="10983"/>
         <source>Proxy authentication required</source>
         <translation>Proxy-Authentifikation erforderlich</translation>
     </message>
@@ -25692,54 +25810,54 @@ Fehler: %3
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4765"/>
+        <location filename="../src/app/qgisapp.cpp" line="4772"/>
         <source>Failed to run Python script:</source>
         <translation>Konnte Python-Skript nicht ausführen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5876"/>
+        <location filename="../src/app/qgisapp.cpp" line="5891"/>
         <source>The current layer has no selected features</source>
         <translation>Der aktuelle Layer hat keine gewählten Objekte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2074"/>
-        <location filename="../src/app/qgisapp.cpp" line="2090"/>
+        <location filename="../src/app/qgisapp.cpp" line="2080"/>
+        <location filename="../src/app/qgisapp.cpp" line="2096"/>
         <source>Current clockwise map rotation in degrees</source>
         <translation>Derzeitge Kartendrehung in Grad im Uhrzeigersinn</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2087"/>
+        <location filename="../src/app/qgisapp.cpp" line="2093"/>
         <source>Shows the current map clockwise rotation in degrees. It also allows editing to set the rotation</source>
         <translation>Zeigt die aktuelle Karte im einen Winkel in Grad im Uhrzeigersinn gedreht an.  Der Winkel kann auch eingegeben werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9454"/>
+        <location filename="../src/app/qgisapp.cpp" line="9474"/>
         <source>%1 (OTF)</source>
         <translation>%1 (SRP)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="2133"/>
-        <location filename="../src/app/qgisapp.cpp" line="2134"/>
+        <location filename="../src/app/qgisapp.cpp" line="2139"/>
+        <location filename="../src/app/qgisapp.cpp" line="2140"/>
         <source>Messages</source>
         <translation>Meldungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4736"/>
+        <location filename="../src/app/qgisapp.cpp" line="4743"/>
         <source>Error loading layer definition</source>
         <translation>Fehler beim Laden der Layerdefinition</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="5671"/>
+        <location filename="../src/app/qgisapp.cpp" line="5686"/>
         <source>Error saving layer definintion file</source>
         <translation>Fehler beim Speichern der Layerdefinitionsdatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4603"/>
+        <location filename="../src/app/qgisapp.cpp" line="4610"/>
         <source>Project file was changed</source>
         <translation>Projektdatei wurde geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="4604"/>
+        <location filename="../src/app/qgisapp.cpp" line="4611"/>
         <source>The loaded project file on disk was meanwhile changed.  Do you want to overwrite the changes?
 
 Last modification date on load was: %1
@@ -25750,12 +25868,12 @@ Letztes Änderungsdatum beim Laden war: %1
 Aktuelles letztes Änderungsdateum ist: %2</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="3088"/>
+        <location filename="../src/app/qgisapp.cpp" line="3094"/>
         <source>QGIS code branch</source>
         <translation>QGIS-Codezweig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7067"/>
+        <location filename="../src/app/qgisapp.cpp" line="7080"/>
         <source>Cannot create new layer.</source>
         <translation>Kann neuen Layer nicht erzeugen.</translation>
     </message>
@@ -25785,6 +25903,21 @@ Aktuelles letztes Änderungsdateum ist: %2</translation>
         <translation>Die 2.5D-Darstellung kann nur mit Polygonlayern genutzt werden.
 '%1' ist kein Polygonlayer und kann nicht in 2.5D dargestellt werden.</translation>
     </message>
+    <message>
+        <location filename="../src/gui/symbology-ng/qgs25drendererwidget.cpp" line="41"/>
+        <source>Select wall color</source>
+        <translation>Wandfarbe wählen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/symbology-ng/qgs25drendererwidget.cpp" line="44"/>
+        <source>Select roof color</source>
+        <translation>Dachfarbe wählen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/symbology-ng/qgs25drendererwidget.cpp" line="47"/>
+        <source>Select shadow color</source>
+        <translation>Schattenfarbe wählen</translation>
+    </message>
 </context>
 <context>
     <name>Qgs25DRendererWidgetBase</name>
@@ -26549,36 +26682,36 @@ p, li { white-space: pre-wrap; }
         <translation>Layer-KBS dem &Projekt zuweisen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="186"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="190"/>
         <source>&Open Attribute Table</source>
         <translation>&Attributtabelle öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="212"/>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="227"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="216"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="231"/>
         <source>Save As...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="258"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="262"/>
         <source>&Show All Items</source>
         <translation>Alle an&zeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="260"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="264"/>
         <source>&Hide All Items</source>
         <translation>Alle &verstecken</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="159"/>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="293"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="163"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="298"/>
         <source>Edit Symbol...</source>
         <translation>Symbol bearbeiten...</translation>
     </message>
     <message>
         <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="77"/>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="213"/>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="228"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="217"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="232"/>
         <source>Save As Layer Definition File...</source>
         <translation>Als Layerdefinitionsdatei speichern...</translation>
     </message>
@@ -26588,12 +26721,12 @@ p, li { white-space: pre-wrap; }
         <translation>Auf eigene Auflösung &zoomen (100%)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="217"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="221"/>
         <source>&Filter...</source>
         <translation>&Filter...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="239"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="243"/>
         <source>&Properties</source>
         <translation>Eige&nschaften</translation>
     </message>
@@ -26605,7 +26738,7 @@ p, li { white-space: pre-wrap; }
     <message>
         <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="74"/>
         <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="124"/>
-        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="173"/>
+        <location filename="../src/app/qgsapplayertreeviewmenuprovider.cpp" line="177"/>
         <source>Paste Style</source>
         <translation>Stil einfügen</translation>
     </message>
@@ -26698,28 +26831,28 @@ Auth-DB-Pfad:		%10
 <context>
     <name>QgsAtlasComposition</name>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="252"/>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="846"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="242"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="836"/>
         <source>Composer</source>
         <translation>Zusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="252"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="242"/>
         <source>Atlas name eval error: %1</source>
         <translation>Atlasnamenauswertungsfehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="413"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="403"/>
         <source>No matching atlas features</source>
         <translation>Keine passenden Atlas-Objekte</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="438"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="428"/>
         <source>Atlas feature %1 of %2</source>
         <translation>Atlasobjekt %1 von %2</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="846"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="836"/>
         <source>Atlas filename evaluation error: %1</source>
         <translation>Atlas-Dateinamenauswertungsfehler: %1</translation>
     </message>
@@ -26758,7 +26891,7 @@ Ausdruckfehler:
         <translation>Keine passenden Atlas-Objekte gefunden!</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgsatlascompositionwidget.cpp" line="309"/>
+        <location filename="../src/app/composer/qgsatlascompositionwidget.cpp" line="310"/>
         <source>Expression based filter</source>
         <translation>Ausdrucksbasierter Filter</translation>
     </message>
@@ -27121,12 +27254,12 @@ Ausdruckfehler:
         <translation>Attributänderung</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="664"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="669"/>
         <source>The python init function (<code>%1</code>) does not accept three arguments as expected!<br>Please check the function name in the  <b>Fields</b> tab of the layer properties.</source>
         <translation>Die Python-Init-Funktion (<code>%1</code>) akzeptiert wider Erwarten keine drei Argumente!<br>Bitte den Funktionsnamen im Reiter <b>Felder</b> in den Layereigenschaften überprüfen.</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="680"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="685"/>
         <source>The python init function (<code>%1</code>) could not be found!<br>Please check the function name in the <b>Fields</b> tab of the layer properties.</source>
         <translation>Die Python-Init-Funktion (<code>%1</code>) wurde nicht gefunden!<br>Bitte den Funktionsnamen im Reiter <b>Felder</b> der Layereigenschaften überprüfen.</translation>
     </message>
@@ -27383,7 +27516,7 @@ Ausdruckfehler:
     </message>
     <message>
         <location filename="../src/ui/qgsattributetabledialog.ui" line="760"/>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="264"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="263"/>
         <source>Update All</source>
         <translation>Alle aktualisieren</translation>
     </message>
@@ -27483,83 +27616,96 @@ Ausdruckfehler:
         <translation>Strg+I</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="158"/>
         <source>Attribute table - %1 (%n Feature(s))</source>
         <comment>feature count</comment>
-        <translation>
+        <translation type="obsolete">
             <numerusform>Attributtabelle - %1 (ein Objekt gefunden)</numerusform>
             <numerusform>Attributtabelle - %1 (%n Objekte gefunden)</numerusform>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="421"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="420"/>
         <source>An error occurred while evaluating the calculation string:
 %1</source>
         <translation>Ein Fehler trat bei der Auswertung des Rechenausdrucks auf:
 %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="699"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="698"/>
         <source>Failed to add field</source>
         <translation>Konnte Feld nicht hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="699"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="698"/>
         <source>Failed to add field '%1' of type '%2'. Is the field name unique?</source>
         <translation>Konnte Feld '%1' vom Typ '%2' nicht hinzufügen. Ist der Feldname eindeutig?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="802"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="801"/>
         <source>Parsing error</source>
         <translation>Parsingfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="813"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="812"/>
         <source>Evaluation error</source>
         <translation>Auswertungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="266"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="265"/>
         <source>Update Filtered</source>
         <translation>Aktualisierung gefiltert</translation>
     </message>
+    <message numerus="yes">
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="158"/>
+        <source>%1 (%n Feature(s))</source>
+        <comment>feature count</comment>
+        <translation>
+            <numerusform>%1 (ein Objekt)</numerusform>
+            <numerusform>%1 (%n Objekte)</numerusform>
+        </translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="254"/>
+        <source> %1 :: Features total: %2, filtered: %3, selected: %4%5</source>
+        <translation> %1 :: Objekte gesamt:%2, gefiltert: %3, gewählt: %4%5</translation>
+    </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="421"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="420"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="481"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="480"/>
         <source>Expression based filter</source>
         <translation>Ausdrucksbasierter Filter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="691"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="690"/>
         <source>Attribute added</source>
         <translation>Attribut hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="727"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="726"/>
         <source>Deleted attribute</source>
         <translation>Attribut gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="734"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="733"/>
         <source>The attribute(s) could not be deleted</source>
         <translation>Attribut(e) konnte(n) nicht gelöscht werden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="734"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="733"/>
         <source>Attribute error</source>
         <translation>Attributfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="852"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="851"/>
         <source>Error filtering</source>
         <translation>Fehlerfilterung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="587"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="586"/>
         <source>Geometryless feature added</source>
         <translation>Geometrieloses Objekt hinzugefügt</translation>
     </message>
@@ -27574,12 +27720,11 @@ Ausdruckfehler:
         <translation>Alle Objekte des anfänglichen Kartenausschnitts zeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="255"/>
         <source>Attribute table - %1 :: Features total: %2, filtered: %3, selected: %4%5</source>
-        <translation>Attributtabelle - %1 :: Objekte gesamt: %2, gefiltert: %3, gewählt: %4%5</translation>
+        <translation type="obsolete">Attributtabelle - %1 :: Objekte gesamt: %2, gefiltert: %3, gewählt: %4%5</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsattributetabledialog.cpp" line="260"/>
+        <location filename="../src/app/qgsattributetabledialog.cpp" line="259"/>
         <source>, spatially limited</source>
         <translation>, räumlich begrenzt</translation>
     </message>
@@ -30807,27 +30952,27 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
         <translation>Keine Farbe</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="397"/>
+        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="399"/>
         <source>Default color</source>
         <translation>Vorgabefarbe</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="428"/>
+        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="430"/>
         <source>Copy color</source>
         <translation>Farbe kopieren</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="432"/>
+        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="434"/>
         <source>Paste color</source>
         <translation>Farbe einfügen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="451"/>
+        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="453"/>
         <source>Pick color</source>
         <translation>Farbe abgreifen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="455"/>
+        <location filename="../src/gui/qgscolorbuttonv2.cpp" line="457"/>
         <source>Choose color...</source>
         <translation>Farbe wählen...</translation>
     </message>
@@ -31338,21 +31483,21 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
         <translation>&Einstellungen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1628"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2009"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2472"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1652"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2033"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2496"/>
         <source>Save composition as</source>
         <translation>Zusammenstellung speichern als</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1663"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2150"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2508"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1687"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2174"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2532"/>
         <source>Export atlas to directory</source>
         <translation>Atlas in Verzeichnis exportieren</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3497"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3481"/>
         <source>Composer</source>
         <translation>Zusammenstellung</translation>
     </message>
@@ -31428,8 +31573,8 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     </message>
     <message>
         <location filename="../src/app/composer/qgscomposer.cpp" line="470"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="909"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="921"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="933"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="945"/>
         <source>%1%</source>
         <translation>%1%</translation>
     </message>
@@ -31460,314 +31605,312 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     </message>
     <message>
         <location filename="../src/app/composer/qgscomposer.cpp" line="876"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="4092"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="4137"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="4076"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="4121"/>
         <source>Set as atlas feature for %1</source>
         <translation>Als Atlas-Objekt für %1 setzen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="891"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="915"/>
         <source>x: %1 mm</source>
         <translation>x: %1 mm</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="892"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="916"/>
         <source>y: %1 mm</source>
         <translation>y: %1 mm</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="893"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="917"/>
         <source>page: %3</source>
         <translation>Seite: %3</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1055"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1082"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1079"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1106"/>
         <source>Enable atlas preview</source>
         <translation>Atlas-Voransicht einschalten</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1056"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1080"/>
         <source>Atlas in not currently enabled for this composition!</source>
         <translation>Atlas in dieser Zusammenstellung nicht aktiv!</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1083"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1107"/>
         <source>No matching atlas features found!</source>
         <translation>Keine passenden Atlas-Objekte gefunden!</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1630"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1654"/>
         <source>PDF Format</source>
         <translation>PDF-Format</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1649"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2135"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2492"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1673"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2159"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2516"/>
         <source>Empty filename pattern</source>
         <translation>Dateinamenmuster leer</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1650"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2136"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2493"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1674"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2160"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2517"/>
         <source>The filename pattern is empty. A default one will be used.</source>
         <translation>Das Dateinamenmuster ist leer. Eine Voreinstellung wird benutzt.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1673"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2200"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2519"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1697"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2224"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2543"/>
         <source>Unable to write into the directory</source>
         <translation>Konnte nicht in das Verzeichnis schreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1674"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2201"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2520"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1698"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2225"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2544"/>
         <source>The given output directory is not writable. Cancelling.</source>
         <translation>Im Ausgabeverzeichnis konnte nicht geschrieben werden.  Breche ab.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1694"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1711"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1736"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1737"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1757"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1785"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1876"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1718"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1735"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1760"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1761"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1781"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1809"/>
         <location filename="../src/app/composer/qgscomposer.cpp" line="1900"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1901"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2227"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2252"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2253"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2321"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2569"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2598"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2599"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1924"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1925"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2251"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2276"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2277"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2345"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2593"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2622"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2623"/>
         <source>Atlas processing error</source>
         <translation>Atlas-Verarbeitungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1695"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1877"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2228"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2570"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1719"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1901"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2252"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2594"/>
         <source>Feature filter parser error: %1</source>
         <translation>Interpretationsfehler bei Objektfilter: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1712"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1758"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1786"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2102"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2322"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2667"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2825"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1736"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1782"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1810"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2126"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2346"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2691"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2849"/>
         <source>Error creating %1.</source>
         <translation>Fehler beim Erzeugung von %1.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1720"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1884"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2236"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2578"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1744"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1908"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2260"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2602"/>
         <source>Rendering maps...</source>
         <translation>Zeichne Karten...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1720"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1884"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2236"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2578"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1744"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1908"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2260"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2602"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1721"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1885"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2237"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2579"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1745"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1909"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2261"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2603"/>
         <source>Exporting atlas</source>
         <translation>Exportiere Atlas</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1971"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1995"/>
         <source>Big image</source>
         <translation>Großes Bild</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1972"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1996"/>
         <source>To create image %1x%2 requires about %3 MB of memory. Proceed?</source>
         <translation>Die Erzeugung des %1x%2 Bilds benötigt etwa %3 MB Hauptspeicher. Fortfahren?</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2076"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2100"/>
         <source>Memory Allocation Error</source>
         <translation>Speicherreservierungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2077"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2101"/>
         <source>Trying to create image #%1( %2x%3 @ %4dpi ) may result in a memory overflow.
 Please try a lower resolution or a smaller papersize</source>
         <translation>Erzeugung des Bildes #%1 (%2x%3 mit %4 DPI) könnte zu einem Speicherüberlauf führen.
 Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2101"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2125"/>
         <source>Image export error</source>
         <translation>Bildexportfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2175"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2199"/>
         <source>Image format: </source>
         <translation>Bildformat: </translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2421"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2445"/>
         <source>SVG warning</source>
         <translation>SVG-Warnung</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2422"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3832"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2446"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3816"/>
         <source>Don't show this message again</source>
         <translation>Diese Meldung nicht mehr anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2426"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2450"/>
         <source><p>The SVG export function in QGIS has several problems due to bugs and deficiencies in the </source>
         <translation><p>Die SVG-Exportfunktion in QGIS hat einige Probleme durch Fehler und Einschränkungen im </translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2428"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2452"/>
         <source>Qt4 svg code. In particular, there are problems with layers not being clipped to the map bounding box.</p></source>
         <translation>Qt4-SVG-Code. Genauergesagt ist die Ausgabebegrenzung der Layer auf die Kartengrenzen ein Problem</p></translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2431"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2455"/>
         <source>If you require a vector-based output file from Qgis it is suggested that you try printing to PostScript if the SVG output is not satisfactory.</p></source>
         <translation>Wenn die SVG-Ausgabe nicht zufriedenstellend ist, wird für vektorbasierende QGIS-Ausgabe der Druck in PostScript empfohlen.</p></translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2474"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2498"/>
         <source>SVG Format</source>
         <translation>SVG-Format</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2666"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2824"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2690"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2848"/>
         <source>SVG export error</source>
         <translation>SVG-Exportfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2793"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2817"/>
         <source> on page </source>
         <translation>auf Seite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2793"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2817"/>
         <source>SVG error</source>
         <translation>SVG-Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2793"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2817"/>
         <source>There was an error in SVG output for SVG layer </source>
         <translation>Fehler in der SVG Ausgabe für SVG Layer </translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2969"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2993"/>
         <source> copy</source>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2975"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2999"/>
         <source>Duplicating composer...</source>
         <translation>Dupliziere Druckzusammenstellung...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2987"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3011"/>
         <source>Duplicate Composer</source>
         <translation>Druckzusammenstellungsduplizierung</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2988"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3012"/>
         <source>Composer duplication failed.</source>
         <translation>Duplikation der Druckzusammenstellung gescheitert.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3011"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3035"/>
         <source>Save template</source>
         <translation>Vorlage speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3013"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3037"/>
         <source>Composer templates</source>
         <translation>Druckvorlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3037"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3061"/>
         <source>Save error</source>
         <translation>Fehler beim Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3037"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3061"/>
         <source>Error, could not save file</source>
         <translation>Fehler, in Datei konnte nicht gespeichert werden</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3050"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3072"/>
         <source>Load template</source>
         <translation>Vorlage laden</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3063"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3085"/>
         <source>Read error</source>
         <translation>Lesefehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3063"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3085"/>
         <source>Error, could not read file</source>
         <translation>Fehler, Datei konnte nicht gelesen werden</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3080"/>
         <source>Composer error</source>
-        <translation>Zusammenstellungsfehler</translation>
+        <translation type="obsolete">Zusammenstellungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3080"/>
         <source>Error, could not create new composer</source>
-        <translation>Fehler, konnte keine neue Zusammenstellung erzeugen</translation>
+        <translation type="obsolete">Fehler, konnte keine neue Zusammenstellung erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3097"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="883"/>
         <source>Loading template into composer...</source>
         <translation>Lade Zusammenstellung aus Vorlage...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3830"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3814"/>
         <source>Project contains WMS layers</source>
         <translation>Projekt enthält WMS-Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3831"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3815"/>
         <source>Some WMS servers (e.g. UMN mapserver) have a limit for the WIDTH and HEIGHT parameter. Printing layers from such servers may exceed this limit. If this is the case, the WMS layer will not be printed</source>
         <translation>Einige WMS-Server (z.B. UMN-Mapserver) haben Begrenzungen für die WIDTH- und HEIGHT-Parameter. Falls diese Begrenzungen beim Ausdruck überschritten werden, werden diese WMS-Layer nicht gedruckt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3845"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3829"/>
         <source>Project contains composition effects</source>
         <translation>Projekt enthält Kompositionseffekte</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3846"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3830"/>
         <source>Advanced composition effects such as blend modes or vector layer transparency are enabled in this project, which cannot be printed as vectors. Printing as a raster is recommended.</source>
         <translation>Erweiterte Kompositionseffekte wie Mischmodi oder Vektorlayertransparenz sind in diesem Projekt eingeschaltet, die nicht als Vektor gedruckt werden können. Drucken als Raster wird empfohlen.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3847"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3831"/>
         <source>Print as raster</source>
         <translation>Als Raster drucken</translation>
     </message>
@@ -32078,7 +32221,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerAttributeTableV2</name>
     <message>
-        <location filename="../src/core/composer/qgscomposerattributetablev2.cpp" line="153"/>
+        <location filename="../src/core/composer/qgscomposerattributetablev2.cpp" line="101"/>
         <source><attribute table></source>
         <translation><attribute table></translation>
     </message>
@@ -33970,72 +34113,77 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerItemWidget</name>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="222"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="117"/>
+        <source>Composer Item</source>
+        <translation>Zusammensstellungselement</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="238"/>
         <source>Frame color changed</source>
         <translation>Rahmenfarbe geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="242"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="258"/>
         <source>Background color changed</source>
         <translation>Hintergrundfarbe geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="258"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="274"/>
         <source>Item position changed</source>
         <translation>Elementposition geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="324"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="340"/>
         <source>Item outline width</source>
         <translation>Elementumrissbreite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="337"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="353"/>
         <source>Item frame join style</source>
         <translation>Elementrahmen Verbindungsstil</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="349"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="365"/>
         <source>Item frame toggled</source>
         <translation>Elementrahmen umgeschaltet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="362"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="378"/>
         <source>Item background toggled</source>
         <translation>Elementhintergrund umgeschaltet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="645"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="661"/>
         <source>Select background color</source>
         <translation>Hintergrundfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="648"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="664"/>
         <source>Select frame color</source>
         <translation>Rahmenfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="662"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="678"/>
         <source>Item blend mode changed</source>
         <translation>Element Überblendungsmodus verändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="675"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="691"/>
         <source>Item transparency changed</source>
         <translation>Elementtransparenz verändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="685"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="701"/>
         <source>Item id changed</source>
         <translation>Elementkennung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="838"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="854"/>
         <source>Item rotation changed</source>
         <translation>Elementdrehung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="849"/>
+        <location filename="../src/app/composer/qgscomposeritemwidget.cpp" line="865"/>
         <source>Exclude from exports changed</source>
         <translation>Ausschluß aus Export geändert</translation>
     </message>
@@ -34350,12 +34498,12 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerLegend</name>
     <message>
-        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="558"/>
+        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="607"/>
         <source><legend></source>
         <translation><legend></translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="562"/>
+        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="611"/>
         <source>%1...</source>
         <translation>%1...</translation>
     </message>
@@ -34384,7 +34532,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerLegendMenuProvider</name>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1081"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1112"/>
         <source>Reset to defaults</source>
         <translation>Auf Voreinstellungen zurücksetzen</translation>
     </message>
@@ -34402,172 +34550,177 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Randfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="156"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="158"/>
         <source>Item wrapping changed</source>
         <translation>Elementumbruch geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="168"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="170"/>
         <source>Legend title changed</source>
         <translation>Legendentitel geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="181"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="183"/>
         <source>Legend title alignment changed</source>
         <translation>Legendentitelausrichtung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="192"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="194"/>
         <source>Legend column count</source>
         <translation>Legendenspaltenanzahl</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="206"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="208"/>
         <source>Legend split layers</source>
         <translation>Layerlegende aufgeteilt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="218"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="220"/>
         <source>Legend equal column width</source>
         <translation>Gleiche Spaltenbreite eingeschaltet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="230"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="232"/>
         <source>Legend symbol width</source>
         <translation>Legendensymbolbreite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="242"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="244"/>
         <source>Legend symbol height</source>
         <translation>Legendensymbolhöhe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="254"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="256"/>
         <source>Wms Legend width</source>
         <translation>WMS-Legendenbreite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="266"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="268"/>
         <source>Wms Legend height</source>
         <translation>WMS-Legendenhöhe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="278"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="280"/>
         <source>Legend title space bottom</source>
         <translation>Unterer Legendentitelzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="290"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="292"/>
         <source>Legend group space</source>
         <translation>Legendgruppenzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="302"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="304"/>
         <source>Legend layer space</source>
         <translation>Legendlayerzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="314"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="316"/>
         <source>Legend symbol space</source>
         <translation>Legendensymbolzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="328"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="330"/>
         <source>Legend icon label space</source>
         <translation>Legendeniconbeschriftungszwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="344"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="346"/>
         <source>Title font changed</source>
         <translation>Titelschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="361"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="363"/>
         <source>Legend group font changed</source>
         <translation>Legendgruppenschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="378"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="380"/>
         <source>Legend layer font changed</source>
         <translation>Legendenlayerschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="395"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="397"/>
         <source>Legend item font changed</source>
         <translation>Legendenelementschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="411"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="413"/>
         <source>Legend font color changed</source>
         <translation>Legendschriftfarbe geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="421"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="433"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="423"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="435"/>
         <source>Legend box space</source>
         <translation>Legendenrahmenzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="585"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="587"/>
         <source>Legend map changed</source>
         <translation>Legendenkarte geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="600"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="602"/>
+        <source>Legend resize to contents</source>
+        <translation>Legende an Inhaltsgröße anpassen</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="617"/>
         <source>Legend raster borders</source>
         <translation>Legendenrasterränder</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="614"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="631"/>
         <source>Legend raster border width</source>
         <translation>Legendenrasterrandstärke</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="628"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="645"/>
         <source>Legend raster border color</source>
         <translation>Legendenrasterrandfarbe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="753"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1054"/>
         <source>Legend item properties</source>
         <translation>Eigenschaften des Legendenelements</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="753"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1054"/>
         <source>Item text</source>
         <translation>Elementtext</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="758"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1059"/>
         <source>Legend item edited</source>
         <translation>Legendenelement bearbeitet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="817"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="851"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="860"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="888"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="927"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="779"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="813"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="822"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="850"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="889"/>
         <source>Legend updated</source>
         <translation>Legende aktualisiert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="903"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="865"/>
         <source>Legend group added</source>
         <translation>Legendengruppe hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="904"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="866"/>
         <source>Group</source>
         <translation>Gruppe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="983"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="949"/>
         <source>Map %1</source>
         <translation>Karte %1</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="985"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="951"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
@@ -34605,90 +34758,89 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Textumbruch ein</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="165"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="172"/>
         <source>Legend items</source>
         <translation>Legendenelemente</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="272"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="285"/>
         <source>Add group</source>
         <translation>Gruppe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="346"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="359"/>
         <source>Show feature count for each class of vector layer.</source>
         <translation>Objektanzahl für jede Vektorlayerklasse anzeigen.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="437"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="450"/>
         <source>Fonts</source>
         <translation>Schriftart</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="864"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="877"/>
         <source>Space above text using subgroup style.</source>
         <translation>Abstand über Text mit Untergruppenstil.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="867"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="880"/>
         <source>Subgroup space</source>
         <translation>Untergruppenabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="884"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="897"/>
         <source>Space above symbol and symbol label.</source>
         <translation>Abstand über Symbol und Symbolbeschriftung.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="941"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="954"/>
         <source>Column space</source>
         <translation>Spaltenabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="532"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="545"/>
         <source>Columns</source>
         <translation>Spalten</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="550"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="563"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="570"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="583"/>
         <source>Equal column widths</source>
         <translation>Gleiche Spaltenbreite</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="580"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="593"/>
         <source>Split layers</source>
         <translation>Layer aufteilen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="826"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="839"/>
         <source>Spacing</source>
         <translation>Zwischenräume</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="621"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="641"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="734"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="784"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="807"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="857"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="877"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="897"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="917"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="934"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="951"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="971"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="634"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="654"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="747"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="797"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="820"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="870"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="890"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="910"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="930"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="947"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="964"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="984"/>
         <source> mm</source>
         <translation> mm</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="133"/>
         <source>Title alignment:</source>
-        <translation>Titelausrichtung:</translation>
+        <translation type="obsolete">Titelausrichtung:</translation>
     </message>
     <message>
         <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="141"/>
@@ -34706,158 +34858,168 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Rechts</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="202"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="209"/>
         <source>Update whole legend. Layers are added/removed according to main application legend. User defined labels will be deleted.</source>
         <translation>Ganze Legende aktualiseren. Layer werden gemäß der Hauptlegende hinzugefügt/entfernt. Benutzerdefinierte Beschriftungen werden gelöscht.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="205"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="212"/>
         <source>Update all</source>
         <translation>Alle aktualisieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="275"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="288"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="179"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="186"/>
         <source>Auto update</source>
         <translation>Automatisch aktualisieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="369"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="133"/>
+        <source>Title alignment</source>
+        <translation>Titelausrichtung</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="159"/>
+        <source>Resize to fit contents</source>
+        <translation>An Inhaltsgröße anpassen</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="382"/>
         <source>Filter Legend By Map Content</source>
         <translation>Legende nach Karteninhalt filtern</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="421"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="434"/>
         <source>Filter out legend elements that lie outside the current atlas feature.</source>
         <translation>Legendenelemente die außerhalb des aktuellen Atlas-Objekt liegen ausfiltern.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="424"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="437"/>
         <source>Only show items inside current atlas feature</source>
         <translation>Nur Objekte im aktuellen Atlas-Objekt anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="455"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="468"/>
         <source>Title font...</source>
         <translation>Titelschrift...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="462"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="475"/>
         <source>Subgroup font...</source>
         <translation>Untergruppen-Schriftart...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="469"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="482"/>
         <source>Group font...</source>
         <translation>Gruppenschrift...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="476"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="489"/>
         <source>Item font...</source>
         <translation>Elementschrift...</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="485"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="498"/>
         <source>Font color</source>
         <translation>Schriftfarbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="577"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="590"/>
         <source>Allow splitting layer items into multiple columns.</source>
         <translation>Aufteilung der Layerelemente in mehrere Spalten erlauben.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="593"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="606"/>
         <source>Symbol</source>
         <translation>Symbol</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="611"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="624"/>
         <source>Symbol width</source>
         <translation>Symbolbreite</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="631"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="644"/>
         <source>Symbol height</source>
         <translation>Symbolhöhe</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="651"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="664"/>
         <source>Draw border for raster symbols</source>
         <translation>Rand um Rastersymbole zeichnen</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="666"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="679"/>
         <source>Border color</source>
         <translation>Randfarbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="715"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="728"/>
         <source>Thickness</source>
         <translation>Dicke</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="731"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="744"/>
         <source>Hairline</source>
         <translation>Haarlinie</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="756"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="769"/>
         <source>WMS LegendGraphic</source>
         <translation>WMS-LegendGraphic</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="774"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="787"/>
         <source>Legend width</source>
         <translation>Legendenbreite</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="797"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="810"/>
         <source>Legend height</source>
         <translation>Legendenhöhe</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="844"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="857"/>
         <source>Space above text using group style.</source>
         <translation>Abstand über Text mit Gruppenstil.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="847"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="860"/>
         <source>Group Space</source>
         <translation>Gruppenabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="887"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="900"/>
         <source>Symbol space</source>
         <translation>Symbolabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="904"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="917"/>
         <source>Space between symbol icon and symbol label (symbol label left margin).</source>
         <translation>Abstand zwischen Symbolicon und -beschriftung (linker Beschriftungsrand).</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="907"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="920"/>
         <source>Icon label space</source>
         <translation>Iconbeschriftungsabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="924"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="937"/>
         <source>Box space</source>
         <translation>Rahmenabstand</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="958"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="968"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="971"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="981"/>
         <source>Space below title.</source>
         <translation>Zwischenraum unter Titel.</translation>
     </message>
     <message>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="961"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="974"/>
         <source>Title space</source>
         <translation>Titelzwischenraum</translation>
     </message>
@@ -34897,7 +35059,7 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
     <message>
         <location filename="../src/app/composer/qgscomposermanager.cpp" line="257"/>
         <location filename="../src/app/composer/qgscomposermanager.cpp" line="262"/>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="313"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="302"/>
         <source>Template error</source>
         <translation>Vorlagenfehler</translation>
     </message>
@@ -34922,72 +35084,71 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Fehler, konnte Zusammenstellung nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="294"/>
         <source>Loading template into composer...</source>
-        <translation>Lade Zusammenstellung aus Vorlage...</translation>
+        <translation type="obsolete">Lade Zusammenstellung aus Vorlage...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="313"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="302"/>
         <source>Error, could not load template file</source>
         <translation>Fehler, konnte Vorlage nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="329"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="318"/>
         <source>Choose template</source>
         <translation>Vorlage wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="331"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="320"/>
         <source>Composer templates</source>
         <translation>Druckvorlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="356"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="345"/>
         <source>File system error</source>
         <translation>Dateisystemfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="356"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="345"/>
         <source>Error, could not open or create local directory</source>
         <translation>Fehler, konnte lokales Verzeichnis nicht öffnen oder erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="393"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="382"/>
         <source>Remove composers</source>
         <translation>Zusammenstellungen entfernen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="394"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="383"/>
         <source>Do you really want to remove all selected map composers?</source>
         <translation>Soll wirklich alle Zusammenstellungen gelöscht werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="404"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="393"/>
         <source>Remove composer</source>
         <translation>Zusammenstellung entfernen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="406"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="395"/>
         <source>Do you really want to remove the map composer '%1'?</source>
         <translation>Soll die Zusammenstellung '%1' wirklich gelöscht werden?</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="483"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="472"/>
         <source> copy</source>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="489"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="478"/>
         <source>Duplicating composer...</source>
         <translation>Kopiere Druckzusammenstellung...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="506"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="495"/>
         <source>Duplicate Composer</source>
         <translation>Zusammenstellungsduplikat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="507"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="496"/>
         <source>Composer duplication failed.</source>
         <translation>Kopie der Zusammenstellung gescheitert.</translation>
     </message>
@@ -35033,30 +35194,30 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerMap</name>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="141"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="2119"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="142"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="2120"/>
         <source>Map %1</source>
         <translation>Karte %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="345"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="346"/>
         <source>Map will be printed here</source>
         <translation>Karte wird hier gedruckt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1471"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1655"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1472"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1656"/>
         <source>Grid %1</source>
         <translation>Gitter %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1533"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1972"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1534"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1973"/>
         <source>Overview %1</source>
         <translation>Übersicht %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="2148"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="2149"/>
         <source>Map Settings</source>
         <translation>Karteneinstellungen</translation>
     </message>
@@ -36093,12 +36254,12 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerNameDelegate</name>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="599"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="588"/>
         <source>Rename composer</source>
         <translation>Zusammenstellung umbenennen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposermanager.cpp" line="599"/>
+        <location filename="../src/app/composer/qgscomposermanager.cpp" line="588"/>
         <source>There is already a composer named "%1"</source>
         <translation>Es gibt bereits eine Zusammenstellung namens "%1"</translation>
     </message>
@@ -37366,85 +37527,85 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposerView</name>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="821"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="824"/>
         <source>QGIS</source>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="837"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="840"/>
         <source>Label added</source>
         <translation>Beschriftung hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="384"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="387"/>
         <source>Scale bar added</source>
         <translation>Maßstabsleiste hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="865"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="868"/>
         <source>Legend added</source>
         <translation>Legende hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="808"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="811"/>
         <source>Picture added</source>
         <translation>Bild hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="893"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="896"/>
         <source>Table added</source>
         <translation>Tabelle hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="460"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="463"/>
         <source>Shape added</source>
         <translation>Form hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="730"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="733"/>
         <source>Move item content</source>
         <translation>Elementinhalt verschieben</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="759"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="762"/>
         <source>Arrow added</source>
         <translation>Pfeil hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="786"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="789"/>
         <source>Map added</source>
         <translation>Karte hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="912"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="915"/>
         <source>Attribute table added</source>
         <translation>Attributtabelle hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="917"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="920"/>
         <source>Attribute table frame added</source>
         <translation>Attributtabellenrahmen hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="940"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="943"/>
         <source>HTML item added</source>
         <translation>HTML-Element hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="945"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="948"/>
         <source>HTML frame added</source>
         <translation>HTML-Rahmen hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="1462"/>
-        <location filename="../src/gui/qgscomposerview.cpp" line="1471"/>
-        <location filename="../src/gui/qgscomposerview.cpp" line="1480"/>
-        <location filename="../src/gui/qgscomposerview.cpp" line="1489"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="1465"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="1474"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="1483"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="1492"/>
         <source>Item moved</source>
         <translation>Element verschoben</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscomposerview.cpp" line="1587"/>
+        <location filename="../src/gui/qgscomposerview.cpp" line="1590"/>
         <source>Zoom item content</source>
         <translation>Zum Elementinhalt zoomen</translation>
     </message>
@@ -37452,107 +37613,122 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposition</name>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1238"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1241"/>
         <source>Label added</source>
         <translation>Beschriftung hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1281"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1284"/>
         <source>Map added</source>
         <translation>Karte hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1326"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1329"/>
         <source>Arrow added</source>
         <translation>Pfeil hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1354"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1357"/>
         <source>Scale bar added</source>
         <translation>Maßstabsleiste hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1384"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1387"/>
         <source>Shape added</source>
         <translation>Form hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1412"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1415"/>
         <source>Picture added</source>
         <translation>Bild hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1440"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1443"/>
         <source>Legend added</source>
         <translation>Legende hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1468"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1471"/>
         <source>Table added</source>
         <translation>Tabelle hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1729"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1523"/>
+        <source>Group added</source>
+        <translation>Gruppe hinzugefügt</translation>
+    </message>
+    <message>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1736"/>
         <source>Aligned items left</source>
         <translation>Element links ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1759"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1766"/>
         <source>Aligned items horizontal center</source>
         <translation>Elemente horizontal zentriert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1846"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1853"/>
         <source>Aligned items vertical center</source>
         <translation>Elemente vertikal zentriert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1789"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1796"/>
         <source>Aligned items right</source>
         <translation>Elemente rechts ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1818"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1825"/>
         <source>Aligned items top</source>
         <translation>Element oben ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1874"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1881"/>
         <source>Aligned items bottom</source>
         <translation>Element unten ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1889"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1896"/>
         <source>Items locked</source>
         <translation>Element gesperrt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1909"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1916"/>
         <source>Items unlocked</source>
         <translation>Element entsperrt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1987"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1962"/>
+        <source>Items grouped</source>
+        <translation>Elemente gruppiert</translation>
+    </message>
+    <message>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1986"/>
+        <source>Items ungrouped</source>
+        <translation>Elementgruppierung aufgelöst</translation>
+    </message>
+    <message>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2018"/>
         <source>Item z-order changed</source>
         <translation>Elementebene geändert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2558"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2598"/>
         <source>Remove item group</source>
         <translation>Elementgruppe entfernen</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2582"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2625"/>
         <source>Frame deleted</source>
         <translation>Rahmen gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2589"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2630"/>
         <source>Item deleted</source>
         <translation>Element gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2606"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2643"/>
         <source>Multiframe removed</source>
         <translation>Mehrfachrahmen gelöscht</translation>
     </message>
@@ -37598,159 +37774,159 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsCompositionWidget</name>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="37"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="38"/>
         <source>mm</source>
         <translation>mm</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="38"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="39"/>
         <source>inch</source>
         <translation>Zoll</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="41"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="411"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="528"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="42"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="424"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="541"/>
         <source>Landscape</source>
         <translation>Querformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="42"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="532"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="43"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="545"/>
         <source>Portrait</source>
         <translation>Hochformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="88"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="682"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="91"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="695"/>
         <source>Map %1</source>
         <translation>Karte %1</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="285"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="298"/>
         <source>A5 (148x210 mm)</source>
         <translation>A5 (148x210 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="286"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="299"/>
         <source>A4 (210x297 mm)</source>
         <translation>A4 (210x297 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="287"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="300"/>
         <source>A3 (297x420 mm)</source>
         <translation>A3 (297x420 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="288"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="301"/>
         <source>A2 (420x594 mm)</source>
         <translation>A2 (420x594 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="289"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="302"/>
         <source>A1 (594x841 mm)</source>
         <translation>A1 (594x841 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="290"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="303"/>
         <source>A0 (841x1189 mm)</source>
         <translation>A0 (841x1189 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="291"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="304"/>
         <source>B5 (176 x 250 mm)</source>
         <translation>B5 (176 x 250 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="292"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="305"/>
         <source>B4 (250 x 353 mm)</source>
         <translation>B4 (250 x 353 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="293"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="306"/>
         <source>B3 (353 x 500 mm)</source>
         <translation>B3 (353 x 500 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="294"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="307"/>
         <source>B2 (500 x 707 mm)</source>
         <translation>B2 (500 x 707 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="295"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="308"/>
         <source>B1 (707 x 1000 mm)</source>
         <translation>B1 (707 x 1000 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="296"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="309"/>
         <source>B0 (1000 x 1414 mm)</source>
         <translation>B0 (1000 x 1414 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="298"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="311"/>
         <source>Legal (8.5x14 in)</source>
         <translation>Legal (8.5x14")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="299"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="312"/>
         <source>ANSI A (Letter; 8.5x11 in)</source>
         <translation>ANSI A (Brief; 8,5x11")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="300"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="313"/>
         <source>ANSI B (Tabloid; 11x17 in)</source>
         <translation>ANSI B (Tabloid; 11x17")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="301"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="314"/>
         <source>ANSI C (17x22 in)</source>
         <translation>ANSI C (17x22")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="302"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="315"/>
         <source>ANSI D (22x34 in)</source>
         <translation>ANSI D (22x34")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="303"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="316"/>
         <source>ANSI E (34x44 in)</source>
         <translation>ANSI E (34x44")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="304"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="317"/>
         <source>Arch A (9x12 in)</source>
         <translation>Arch A (9x12")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="305"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="318"/>
         <source>Arch B (12x18 in)</source>
         <translation>Arch B (12x18")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="306"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="319"/>
         <source>Arch C (18x24 in)</source>
         <translation>Arch C (18x24")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="307"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="320"/>
         <source>Arch D (24x36 in)</source>
         <translation>Arch D (24x36")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="308"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="321"/>
         <source>Arch E (36x48 in)</source>
         <translation>Arch E (36x48")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="309"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="322"/>
         <source>Arch E1 (30x42 in)</source>
         <translation>Arch E1 (30x42")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="311"/>
         <location filename="../src/app/composer/qgscompositionwidget.cpp" line="324"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="343"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="378"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="337"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="356"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="391"/>
         <source>Custom</source>
         <translation>Benutzerdefiniert</translation>
     </message>
@@ -38096,17 +38272,17 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
         <translation>Das gewünschte räumliche Bezugssystem (KBS) ist ungültig. Die Koordinaten können nicht reprojiziert werden.  Das KBS ist: %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatetransform.cpp" line="704"/>
+        <location filename="../src/core/qgscoordinatetransform.cpp" line="703"/>
         <source>inverse transform</source>
         <translation>Rücktransformation</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatetransform.cpp" line="704"/>
+        <location filename="../src/core/qgscoordinatetransform.cpp" line="703"/>
         <source>forward transform</source>
         <translation>Vorwärtstransformation</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatetransform.cpp" line="709"/>
+        <location filename="../src/core/qgscoordinatetransform.cpp" line="708"/>
         <source>%1 of
 %2PROJ.4: %3 +to %4
 Error: %5</source>
@@ -38334,17 +38510,17 @@ und aktuelle Datei ist [%3]</translation>
         <translation>Erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="123"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="125"/>
         <source>Enter CURRENT master authentication password</source>
         <translation>Aktuelles Hauptpaßwort für Authentifikation eingeben</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="123"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="125"/>
         <source>Set NEW master authentication password</source>
         <translation>Neues Hauptpaßwort für Authentifikation setzen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgscredentialdialog.cpp" line="140"/>
+        <location filename="../src/gui/qgscredentialdialog.cpp" line="142"/>
         <source>Password attempts: %1</source>
         <translation>Paßwortversuche: %1</translation>
     </message>
@@ -38573,8 +38749,12 @@ und aktuelle Datei ist [%3]</translation>
     </message>
     <message>
         <location filename="../src/ui/qgscustomizationdialogbase.ui" line="154"/>
+        <source>Check All</source>
+        <translation>Alle abhaken</translation>
+    </message>
+    <message>
         <source>Select All</source>
-        <translation>Alle wählen</translation>
+        <translation type="obsolete">Alle wählen</translation>
     </message>
 </context>
 <context>
@@ -39954,7 +40134,7 @@ nicht angezeigt</translation>
         <translation>Ungültiger Untermengenstring %1 für %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/delimitedtext/qgsdelimitedtextprovider.cpp" line="1098"/>
+        <location filename="../src/providers/delimitedtext/qgsdelimitedtextprovider.cpp" line="1099"/>
         <source>The file has been updated by another application - reloading</source>
         <translation>Die Datei wurde von einer anderen Applikation geändert - wird neugeladen</translation>
     </message>
@@ -41065,56 +41245,56 @@ nicht angezeigt</translation>
 <context>
     <name>QgsDirectoryParamWidget</name>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Size</source>
         <translation>Größe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Permissions</source>
         <translation>Zugriffsrechte</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Owner</source>
         <translation>Besitzer</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Group</source>
         <translation>Gruppe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="964"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1062"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="966"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1064"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="1017"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1022"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1019"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1024"/>
         <source>folder</source>
         <translation>Ordner</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsdataitem.cpp" line="1027"/>
-        <location filename="../src/core/qgsdataitem.cpp" line="1032"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1029"/>
+        <location filename="../src/core/qgsdataitem.cpp" line="1034"/>
         <source>file</source>
         <translation>Datei</translation>
     </message>
@@ -41219,12 +41399,12 @@ Parser-Fehler:
 <context>
     <name>QgsDxfExportDialog</name>
     <message>
-        <location filename="../src/app/qgsdxfexportdialog.cpp" line="556"/>
+        <location filename="../src/app/qgsdxfexportdialog.cpp" line="558"/>
         <source>Export as DXF</source>
         <translation>Als DXF exportieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsdxfexportdialog.cpp" line="556"/>
+        <location filename="../src/app/qgsdxfexportdialog.cpp" line="558"/>
         <source>DXF files *.dxf *.DXF</source>
         <translation>DXF-Dateien *.dxf *.DXF</translation>
     </message>
@@ -41305,12 +41485,12 @@ Parser-Fehler:
 <context>
     <name>QgsEditorWidgetRegistry</name>
     <message>
-        <location filename="../src/gui/editorwidgets/core/qgseditorwidgetregistry.cpp" line="257"/>
+        <location filename="../src/gui/editorwidgets/core/qgseditorwidgetregistry.cpp" line="258"/>
         <source>Unknown attribute editor widget '%1'</source>
         <translation>Unbekanntes Attributbearbeitungselement '%1'</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/core/qgseditorwidgetregistry.cpp" line="295"/>
+        <location filename="../src/gui/editorwidgets/core/qgseditorwidgetregistry.cpp" line="296"/>
         <source>Could not save unknown editor widget type '%1'.</source>
         <translation>Konnte unbekanntes Bearbeitungselement '%1' nicht speichern.</translation>
     </message>
@@ -41421,12 +41601,12 @@ Parser-Fehler:
 <context>
     <name>QgsEffectStackCompactWidget</name>
     <message>
-        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="391"/>
+        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="401"/>
         <source>Draw effects</source>
         <translation>Zeicheneffekte</translation>
     </message>
     <message>
-        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="396"/>
+        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="406"/>
         <source>Customise effects</source>
         <translation>Effekte einstellen</translation>
     </message>
@@ -41434,7 +41614,7 @@ Parser-Fehler:
 <context>
     <name>QgsEffectStackPropertiesDialog</name>
     <message>
-        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="355"/>
+        <location filename="../src/gui/effects/qgseffectstackpropertieswidget.cpp" line="365"/>
         <source>Effect Properties</source>
         <translation>Effekteigenschaften</translation>
     </message>
@@ -41447,14 +41627,22 @@ Parser-Fehler:
         <translation>Effekte</translation>
     </message>
     <message>
-        <location filename="../src/ui/effects/qgseffectstackpropertieswidgetbase.ui" line="86"/>
         <source>Add symbol layer</source>
-        <translation>Symbollayer hinzufügen</translation>
+        <translation type="obsolete">Symbollayer hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/effects/qgseffectstackpropertieswidgetbase.ui" line="99"/>
         <source>Remove symbol layer</source>
-        <translation>Symbollayer löschen</translation>
+        <translation type="obsolete">Symbollayer löschen</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/effects/qgseffectstackpropertieswidgetbase.ui" line="86"/>
+        <source>Add new effect</source>
+        <translation>Neuen Effekt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/effects/qgseffectstackpropertieswidgetbase.ui" line="99"/>
+        <source>Remove effect</source>
+        <translation>Effekt entfernen</translation>
     </message>
     <message>
         <location filename="../src/ui/effects/qgseffectstackpropertieswidgetbase.ui" line="112"/>
@@ -41654,89 +41842,89 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>QgsExpression</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="80"/>
+        <location filename="../src/core/qgsexpression.cpp" line="83"/>
         <source>second|seconds</source>
         <comment>list of words separated by | which reference years</comment>
         <translation>sekunde|sekunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="81"/>
+        <location filename="../src/core/qgsexpression.cpp" line="84"/>
         <source>minute|minutes</source>
         <comment>list of words separated by | which reference minutes</comment>
         <translation>minute|minuten</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="82"/>
+        <location filename="../src/core/qgsexpression.cpp" line="85"/>
         <source>hour|hours</source>
         <comment>list of words separated by | which reference minutes hours</comment>
         <translation>stunde|stunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="83"/>
+        <location filename="../src/core/qgsexpression.cpp" line="86"/>
         <source>day|days</source>
         <comment>list of words separated by | which reference days</comment>
         <translation>tag|tage</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="84"/>
+        <location filename="../src/core/qgsexpression.cpp" line="87"/>
         <source>week|weeks</source>
         <comment>wordlist separated by | which reference weeks</comment>
         <translation>woche|wochen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="85"/>
+        <location filename="../src/core/qgsexpression.cpp" line="88"/>
         <source>month|months</source>
         <comment>list of words separated by | which reference months</comment>
         <translation>monat|monate</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="86"/>
+        <location filename="../src/core/qgsexpression.cpp" line="89"/>
         <source>year|years</source>
         <comment>list of words separated by | which reference years</comment>
         <translation>jahr|jahre</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3319"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3331"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3370"/>
-        <location filename="../src/core/qgsexpression.cpp" line="3382"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3337"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3349"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3388"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3400"/>
         <source>No root node! Parsing failed?</source>
         <translation>Kein Wurzelknoten! Parsen gescheitert?</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3414"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3432"/>
         <source>(no root)</source>
         <translation>(Keine Wurzel)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3610"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3628"/>
         <source>Unary minus only for numeric values.</source>
         <translation>Negatives Vorzeichen nur für nummerische Werte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="3682"/>
+        <location filename="../src/core/qgsexpression.cpp" line="3700"/>
         <source>Can't preform /, *, or % on DateTime and Interval</source>
         <translation>Kann /, * or % nicht auf Daten oder Intervallen ausführen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4243"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4288"/>
         <source>[unsupported type;%1; value:%2]</source>
         <translation>[nicht unterstützter Typ;%1; Wert:%2]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4282"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4339"/>
         <source>Column '%1' not found</source>
         <translation>Spalte '%1' nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4398"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4455"/>
         <source>function help for %1 missing</source>
         <translation>Funktionshilfe für %1 fehlt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4403"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4423"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4439"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4460"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4480"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4496"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="282"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="293"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="304"/>
@@ -41758,17 +41946,17 @@ p, li { white-space: pre-wrap; }
         <translation>Gruppe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4413"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4470"/>
         <source>%1 %2</source>
         <translation>%1 %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4424"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4481"/>
         <source>Syntax</source>
         <translation>Syntax</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4426"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4483"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="254"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="405"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="425"/>
@@ -41794,7 +41982,7 @@ p, li { white-space: pre-wrap; }
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4443"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4500"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="11"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="23"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="35"/>
@@ -41969,139 +42157,139 @@ p, li { white-space: pre-wrap; }
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4469"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4526"/>
         <source>Arguments</source>
         <translation>Argumente</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4484"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4541"/>
         <source>Examples</source>
         <translation>Beispiele</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4501"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4558"/>
         <source>Notes</source>
         <translation>Hinweise</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4603"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4660"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="385"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4604"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4661"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="549"/>
         <source>Operators</source>
         <translation>Operatoren</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4605"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4662"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="295"/>
         <source>Conditionals</source>
         <translation>Bedingungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4606"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4663"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="362"/>
         <source>Fields and Values</source>
         <translation>Felder und Werte</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4607"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4664"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="495"/>
         <source>Math</source>
         <translation>Mathematik</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4608"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4665"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="317"/>
         <source>Conversions</source>
         <translation>Umwandlungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4609"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4666"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="339"/>
         <source>Date and Time</source>
         <translation>Datum und Zeit</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4610"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4667"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="582"/>
         <source>String</source>
         <translation>Zeichenketten</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4611"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4668"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="284"/>
         <source>Color</source>
         <translation>Farbe</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4612"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4669"/>
         <source>Geometry</source>
         <translation>Geometrie</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4613"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4670"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="571"/>
         <source>Record</source>
         <translation>Datensatz</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4614"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4671"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="593"/>
         <source>Variables</source>
         <translation>Variablen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4615"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4672"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="374"/>
         <source>Fuzzy Matching</source>
         <translation>Unscharfer Vergleich</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4616"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4673"/>
         <source>Recent (%1)</source>
         <translation>Letztes (%1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4632"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4689"/>
         <source><i>&lt;empty geometry&gt;</i></source>
         <translation><i>&lt;leere Geometrie&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4634"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4691"/>
         <source><i>&lt;geometry: %1&gt;</i></source>
         <translation><i>&lt;Geometrie: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4640"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4697"/>
         <source><i>&lt;feature: %1&gt;</i></source>
         <translation><i>&lt;Objekt: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4646"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4703"/>
         <source><i>&lt;interval: %1 days&gt;</i></source>
         <translation><i>&lt;Intervall: %1 Tage&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4651"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4708"/>
         <source><i>&lt;date: %1&gt;</i></source>
         <translation><i>&lt;date: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4656"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4713"/>
         <source><i>&lt;time: %1&gt;</i></source>
         <translation><i>&lt;time: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4661"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4718"/>
         <source><i>&lt;datetime: %1&gt;</i></source>
         <translation><i>&lt;datetime: %1&gt;</i></translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4668"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4725"/>
         <source>'%1...'</source>
         <translation>'%1...'</translation>
     </message>
@@ -42616,8 +42804,8 @@ p, li { white-space: pre-wrap; }
         <translation>4 = 2+2 AND 1 = 1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4423"/>
-        <location filename="../src/core/qgsexpression.cpp" line="4439"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4480"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4496"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="271"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="842"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1207"/>
@@ -46045,6 +46233,12 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <translation>y</translation>
     </message>
     <message>
+        <location filename="../src/core/qgsexpression_texts.cpp" line="192"/>
+        <location filename="../src/core/qgsexpression_texts.cpp" line="194"/>
+        <source>Returns the current scale denominator of the map canvas.<br><br>Note: This function is only available in some contexts and will be 0 otherwise.</source>
+        <translation>Liefert den aktuellen Maßstabsnenne des Kartenfensters.<br><br>Hinweis: Die Funktion ist nur in manchen Kontexten verfügbar und ansonsten 0.</translation>
+    </message>
+    <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1726"/>
         <location filename="../src/core/qgsexpression_texts.cpp" line="1744"/>
         <source>y coordinate of point</source>
@@ -46826,10 +47020,8 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <translation>Liefert den Umfang des aktuellen Objekts. Der durch die Funktion berechnete Umfang berücksichtigt die aktuellen Ellipsoid- und Abstandseinheiteneinstellung.  Z.B., wenn ein Ellipsoid für das Projekt eingestellt ist, ist der Umfang ellipsoidal und anderenfalls planimetrisch berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression_texts.cpp" line="192"/>
-        <location filename="../src/core/qgsexpression_texts.cpp" line="194"/>
         <source>Returns the current scale of the map canvas.<br><br>Note: This function is only available in some contexts and will be 0 otherwise.</source>
-        <translation>Liefert den aktuellen Maßstab des Kartenfensters.<br><br>Hinweis: Die Funktion ist nur in manchen Kontexten verfügbar und ansonsten 0.</translation>
+        <translation type="obsolete">Liefert den aktuellen Maßstab des Kartenfensters.<br><br>Hinweis: Die Funktion ist nur in manchen Kontexten verfügbar und ansonsten 0.</translation>
     </message>
     <message>
         <location filename="../src/core/qgsexpression_texts.cpp" line="271"/>
@@ -50000,12 +50192,12 @@ Referenz im Funktionsnamen: my_form_open
 <context>
     <name>QgsFormAnnotationDialog</name>
     <message>
-        <location filename="../src/app/qgsformannotationdialog.cpp" line="37"/>
+        <location filename="../src/app/qgsformannotationdialog.cpp" line="36"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsformannotationdialog.cpp" line="76"/>
+        <location filename="../src/app/qgsformannotationdialog.cpp" line="75"/>
         <source>Qt designer file</source>
         <translation>Qt-Designer-Datei</translation>
     </message>
@@ -50387,23 +50579,23 @@ p, li { white-space: pre-wrap; }
         <translation>Kann Polygonobjekt nicht abschließen bevor es mindestens drei Punkte hat.</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="838"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="946"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="835"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="943"/>
         <source>Feature added</source>
         <translation>Objekt hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="847"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="923"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="930"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="939"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="954"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="844"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="920"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="927"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="936"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="951"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="848"/>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="955"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="845"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="952"/>
         <source>Could not commit changes to layer %1
 
 Errors: %2
@@ -50414,47 +50606,47 @@ Fehler: %2
 </translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="923"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="920"/>
         <source>The feature could not be added because removing the polygon intersections would change the geometry type</source>
         <translation>Das Objekt kann nicht hinzugefügt werden, weil das Löschen der Polygonüberschneidungen den Geometrietyp ändern würde</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="930"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="927"/>
         <source>An error was reported during intersection removal</source>
         <translation>Ein Fehler wurde während der Schnittpunktlöschung berichtet</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="939"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="936"/>
         <source>Cannot add feature. Unknown WKB type. Choose a different layer and try again.</source>
         <translation>Kann Objekt nicht hinzufügen. Unbekannter Geometrietyp. Bitte einen anderen Layer wählen und noch einmal probieren.</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1031"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1028"/>
         <source>Save GPS log file as</source>
         <translation>GPS-Protokoll als Datei speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1031"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1028"/>
         <source>NMEA files</source>
         <translation>NMEA-Dateien</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1081"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1078"/>
         <source>&Add feature</source>
         <translation>&Objekt hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1100"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1097"/>
         <source>&Add Point</source>
         <translation>&Punkt hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1103"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1100"/>
         <source>&Add Line</source>
         <translation>&Linie hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1106"/>
+        <location filename="../src/app/gps/qgsgpsinformationwidget.cpp" line="1103"/>
         <source>&Add Polygon</source>
         <translation>&Pol&ygon hinzufügen</translation>
     </message>
@@ -52149,17 +52341,17 @@ Bitte wählen Sie eine gültige Datei.</translation>
 <context>
     <name>QgsGeometryGeneratorSymbolLayerWidget</name>
     <message>
-        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3112"/>
+        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3113"/>
         <source>Polygon / MultiPolygon</source>
         <translation>Polygon / MultiPolygon</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3113"/>
+        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3114"/>
         <source>LineString / MultiLineString</source>
         <translation>LineString / MultiLineString</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3114"/>
+        <location filename="../src/gui/symbology-ng/qgssymbollayerv2widget.cpp" line="3115"/>
         <source>Point / MultiPoint</source>
         <translation>Point / MultiPoint</translation>
     </message>
@@ -53736,35 +53928,41 @@ p, li { white-space: pre-wrap; }
         <translation>GML-GetFeature-Netzwerkaktualisierungsanfrage für authcfg %1 gescheitet</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgml.cpp" line="123"/>
+        <location filename="../src/core/qgsgml.cpp" line="112"/>
+        <source>GML Getfeature network reply update failed for authcfg %1</source>
+        <translation>Aktualisierung der GML-Getfeature-Netzwerkantwort mit authcfg schlug fehl: %1</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsgml.cpp" line="137"/>
         <source>Loading GML data
 %1</source>
         <translation>Lade GML-Daten
 %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgml.cpp" line="123"/>
+        <location filename="../src/core/qgsgml.cpp" line="137"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgml.cpp" line="144"/>
+        <location filename="../src/core/qgsgml.cpp" line="158"/>
         <source>Error: %1 on line %2, column %3</source>
         <translation>Fehler: %1 in Zeile %2, Spalte %3</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgml.cpp" line="148"/>
+        <location filename="../src/core/qgsgml.cpp" line="162"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsgml.cpp" line="163"/>
+        <location filename="../src/core/qgsgml.cpp" line="177"/>
         <source>GML Getfeature network request failed with error: %1</source>
         <translation>GML-GetFeature-Netzwerkanfrage scheiterte mit Fehler: %1</translation>
     </message>
     <message>
         <location filename="../src/core/qgsgml.cpp" line="94"/>
-        <location filename="../src/core/qgsgml.cpp" line="164"/>
+        <location filename="../src/core/qgsgml.cpp" line="113"/>
+        <location filename="../src/core/qgsgml.cpp" line="178"/>
         <source>Network</source>
         <translation>Netzwerk</translation>
     </message>
@@ -56633,12 +56831,12 @@ in Zeile %2, Spalte %3</translation>
         <translation>HTML-Beschriftung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="38"/>
+        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="37"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="81"/>
+        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="80"/>
         <source>html</source>
         <translation>HTML</translation>
     </message>
@@ -56859,179 +57057,179 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsIdentifyResultsDialog</name>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="261"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="263"/>
         <source>Identify Results</source>
         <translation>Abfrageergebnisse</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="289"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="291"/>
         <source>Feature</source>
         <translation>Objekt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="290"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="292"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="306"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="308"/>
         <source>Current layer</source>
         <translation>Aktueller Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="307"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="309"/>
         <source>Top down, stop at first</source>
         <translation>Von oben nach unten, beim ersten halten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="308"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="310"/>
         <source>Top down</source>
         <translation>Von oben nach unten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="309"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="311"/>
         <source>Layer selection</source>
         <translation>Layerauswahl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="411"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="770"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="413"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="772"/>
         <source>(Derived)</source>
         <translation>(abgeleitet)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="426"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="428"/>
         <source>(Actions)</source>
         <translation>(Aktionen)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="432"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="839"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="957"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1324"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="434"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="841"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="959"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1326"/>
         <source>Edit feature form</source>
         <translation>Objektformular bearbeiten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="432"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="839"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="957"/>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1324"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="434"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="841"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="959"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1326"/>
         <source>View feature form</source>
         <translation>Objektformular anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="315"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="317"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="314"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="316"/>
         <source>Tree</source>
         <translation>Baum</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="316"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="318"/>
         <source>Graph</source>
         <translation>Graph</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="505"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="507"/>
         <source>feature id</source>
         <translation>Objektkennung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="708"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="710"/>
         <source>Format</source>
         <translation>Format</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="757"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="759"/>
         <source>No attributes.</source>
         <translation>Keine Attribute.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="963"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="965"/>
         <source>Zoom to feature</source>
         <translation>Zum Objekt zoomen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="964"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="966"/>
         <source>Copy feature</source>
         <translation>Objekt kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="965"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="967"/>
         <source>Toggle feature selection</source>
         <translation>Auswahl des Objekts umkehren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="968"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="970"/>
         <source>Copy attribute value</source>
         <translation>Attributwert kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="969"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="971"/>
         <source>Copy feature attributes</source>
         <translation>Objektattribute kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="982"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="984"/>
         <source>Copy GetFeatureInfo request URL</source>
         <translation>GetFeatureInfo-Abfrage-URL kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="990"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="992"/>
         <source>Clear results</source>
         <translation>Ergebnisse löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="991"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="993"/>
         <source>Clear highlights</source>
         <translation>Hervorhebungen löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="992"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="994"/>
         <source>Highlight all</source>
         <translation>Alle hervorheben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="993"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="995"/>
         <source>Highlight layer</source>
         <translation>Layer hervorheben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="996"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="998"/>
         <source>Activate layer</source>
         <translation>Layer aktivieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="997"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="999"/>
         <source>Layer properties...</source>
         <translation>Layereigenschaften...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1000"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1002"/>
         <source>Expand all</source>
         <translation>Alle ausklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1001"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1003"/>
         <source>Collapse all</source>
         <translation>Alle einklappen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1591"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1593"/>
         <source>Attributes changed</source>
         <translation>Attribute geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1747"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1749"/>
         <source>Cannot print</source>
         <translation>Drucken nicht möglich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1747"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="1749"/>
         <source>Cannot print this item</source>
         <translation>Kann dieses Element nicht drucken</translation>
     </message>
@@ -57039,7 +57237,7 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsIdentifyResultsWebView</name>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="93"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="94"/>
         <source>Print</source>
         <translation>Drucken</translation>
     </message>
@@ -57047,7 +57245,7 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsIdentifyResultsWebViewItem</name>
     <message>
-        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="211"/>
+        <location filename="../src/app/qgsidentifyresultsdialog.cpp" line="213"/>
         <source>Loading...</source>
         <translation>Lade...</translation>
     </message>
@@ -59498,6 +59696,16 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <source>Zoom to feature id failed</source>
         <translation>Zoom auf Objektkennung gescheitert</translation>
     </message>
+    <message>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1143"/>
+        <source>Cannot pan to selected feature(s)</source>
+        <translation>Kann Karte nicht zu gewählten Objekten bewegen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1143"/>
+        <source>Geometry is NULL</source>
+        <translation>Geometry ist NULL</translation>
+    </message>
 </context>
 <context>
     <name>QgsMapCanvasSnappingUtils</name>
@@ -59515,7 +59723,12 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <translation>Abgeschaltet - es werden zu viele Objekte angezeigt. Bitte näher heranzoomen oder einige Layer abschalten.</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvastracer.cpp" line="71"/>
+        <location filename="../src/gui/qgsmapcanvastracer.cpp" line="70"/>
+        <source>Tracing may not work correctly. Please check topology of the input layers.</source>
+        <translation>Spurverfolgung funktioniert vielleicht nicht richtig. Bitte die Topologie der Eingabelayer überprüfen.</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsmapcanvastracer.cpp" line="76"/>
         <source>Tracing</source>
         <translation>Spurverfolgung</translation>
     </message>
@@ -59559,103 +59772,103 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsMapLayer</name>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="384"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="994"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="385"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1014"/>
         <source>Specify CRS for layer %1</source>
         <translation>KBS für Layer %1 angeben</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1137"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1153"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1547"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1157"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1173"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1572"/>
         <source>%1 at line %2 column %3</source>
         <translation>%1 in Zeile %2, Spalte %3</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1169"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1583"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1189"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1608"/>
         <source>Loading style file %1 failed because:
 %2</source>
         <translation>Stildatei %1 konnte nicht geladen werden, weil:
 %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1450"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1457"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1469"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1482"/>
         <source>Could not save symbology because:
 %1</source>
         <translation>Konnte Darstellung nicht speichern, weil:
 %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1320"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1507"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1340"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1532"/>
         <source>The directory containing your dataset needs to be writable!</source>
         <translation>Der Ordner mit den Daten muss beschreibbar sein!</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1158"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1178"/>
         <source>Style not found in database</source>
         <translation>Stil nicht in der Datenbank gefunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1201"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1221"/>
         <source>Cannot apply style to layer with a different geometry type</source>
         <translation>Kann Stil nicht auf Layer mit anderem Geometrietyp anwenden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1334"/>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1521"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1354"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1546"/>
         <source>Created default style file as %1</source>
         <translation>Vorgabestildatei als %1 gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1339"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1359"/>
         <source>ERROR: Failed to created default style file as %1. Check file permissions and retry.</source>
         <translation>FEHLER: Konnte die Datei %1 für den voreingestellten Stil nicht erzeugen. Bitte überprüfen Sie die Zugriffsrechte vor einem erneuten Versuch.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1355"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1375"/>
         <source>User database could not be opened.</source>
         <translation>Benutzerdatenbank konnte nicht geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1370"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1390"/>
         <source>The style table could not be created.</source>
         <translation>Die Stiltabelle konnte nicht angelegt werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1385"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1405"/>
         <source>The style %1 was saved to database</source>
         <translation>Der Stil %1 wurde in der Datenbank gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1402"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1422"/>
         <source>The style %1 was updated in the database.</source>
         <translation>Der Stil %1 wurde in der Datenbank aktualisiert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1407"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1427"/>
         <source>The style %1 could not be updated in the database.</source>
         <translation>Der Stil %1 konnte nicht in der Datenbank aktualisiert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1413"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1433"/>
         <source>The style %1 could not be inserted into database.</source>
         <translation>Der Stil %1 konnte nicht in der Datenbank gespeichert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1526"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1551"/>
         <source>ERROR: Failed to created SLD style file as %1. Check file permissions and retry.</source>
         <translation>FEHLER: Konnte SLD-Stildatei %1 nicht erstellen. Prüfen Sie bitte die Berechtigungen und wiederholen Sie den Versuch.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1552"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1577"/>
         <source>Unable to open file %1</source>
         <translation>Konnte Datei %1 nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsmaplayer.cpp" line="1180"/>
+        <location filename="../src/core/qgsmaplayer.cpp" line="1200"/>
         <source>Root <qgis> element could not be found</source>
         <translation>Wurzelelement <qgis> nicht gefunden</translation>
     </message>
@@ -60250,17 +60463,17 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
 <context>
     <name>QgsMapToolNodeTool</name>
     <message>
-        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="231"/>
+        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="232"/>
         <source>could not snap to a segment on the current layer.</source>
         <translation>Konnte keine Segment auf dem aktuellen Layer fangen.</translation>
     </message>
     <message>
-        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="629"/>
+        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="630"/>
         <source>Inserted vertex</source>
         <translation>Stützpunkt eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="664"/>
+        <location filename="../src/app/nodetool/qgsmaptoolnodetool.cpp" line="665"/>
         <source>Geometry has been cleared. Use the add part tool to set geometry for this feature.</source>
         <translation>Geometrie wurde geleert. Bitte das Teil hinzufügen-Werkzeug verwenden um Geometrie zum Objekt hinzuzufügen.</translation>
     </message>
@@ -60674,91 +60887,91 @@ and re-encrypted using new password</source>
         <translation>&Konfiguration</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="269"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="284"/>
         <source>The calculations are based on:</source>
         <translation>Die Berechnungen basieren auf:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="291"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="365"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="306"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="380"/>
         <source>Project CRS transformation is turned off.</source>
         <translation>KBS-Transformation im Projekt deaktiviert.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="366"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="384"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="381"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="399"/>
         <source>Distance is calculated in %1, based on project CRS (%2).</source>
         <translation>Abstand wird auf Basis des Projekt-KBS (%2) in %1 berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="294"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="368"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="309"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="383"/>
         <source>Ellipsoidal calculation is not possible with CRS transformation disabled.</source>
         <translation>Ellipsoide Berechnung ist ohne KBS-Transformation nicht möglich.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="338"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="412"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="353"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="427"/>
         <source>The value is converted from %1 to %2.</source>
         <translation>Der Wert wird von %1 in %2 umgewandelt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="295"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="369"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="310"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="384"/>
         <source>Measure (OTF off)</source>
         <translation>Maß (SRP aus)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="280"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="295"/>
         <source>Both project CRS (%1) and measured area are in degrees, so area is calculated using cartesian calculations in square degrees.</source>
         <translation>Sowohl Projekt-KBS (%1) und Flächenenmessung sind in Grad, daher werden Flächen mit kartesische Berechnungen in Quadratgrad berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="292"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="310"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="307"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="325"/>
         <source>Area is calculated in %1, based on project CRS (%2).</source>
         <translation>Flächen werden in %1 berechnet auf Basis des Projekt-KBS (%2).</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="302"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="376"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="317"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="391"/>
         <source>Project CRS transformation is turned on and ellipsoidal calculation is selected.</source>
         <translation>Projekt-KBS-Transformation aktiv und ellipsoide Berechnung gewählt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="303"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="318"/>
         <source>The coordinates are transformed to the chosen ellipsoid (%1), and the area is calculated in %2.</source>
         <translation>Die Koordinaten werden auf den gewählten Ellipsoiden (%1) transformiert und die Fläche in %2 berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="309"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="383"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="324"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="398"/>
         <source>Project CRS transformation is turned on but ellipsoidal calculation is not selected.</source>
         <translation>Projekt-KBS-Transformation aktiv, aber ellipsoide Berechnung ist nicht gewählt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="313"/>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="387"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="328"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="402"/>
         <source>Measure (OTF on)</source>
         <translation>Maß (SRP an)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="354"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="369"/>
         <source>Both project CRS (%1) and measured length are in degrees, so distance is calculated using cartesian calculations in degrees.</source>
         <translation>Sowohl Projekt-KBS (%1) und gemessene Längen sind in Grad, Abstände werden durch kartesische Berechnungen in Grad berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="377"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="392"/>
         <source>The coordinates are transformed to the chosen ellipsoid (%1), and the distance is calculated in %2.</source>
         <translation>Die Koordinaten werden auf den gewählten Ellipsoiden (%1) transformiert und die Abstände in %2 berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="434"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="449"/>
         <source>Segments [%1]</source>
         <translation>Segmente [%1]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuredialog.cpp" line="502"/>
+        <location filename="../src/app/qgsmeasuredialog.cpp" line="517"/>
         <source>map units</source>
         <translation>Karteneinheiten</translation>
     </message>
@@ -60766,12 +60979,12 @@ and re-encrypted using new password</source>
 <context>
     <name>QgsMeasureTool</name>
     <message>
-        <location filename="../src/app/qgsmeasuretool.cpp" line="85"/>
+        <location filename="../src/app/qgsmeasuretool.cpp" line="86"/>
         <source>Incorrect measure results</source>
         <translation>Falsche Messergebnisse</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsmeasuretool.cpp" line="86"/>
+        <location filename="../src/app/qgsmeasuretool.cpp" line="87"/>
         <source><p>This map is defined with a geographic coordinate system (latitude/longitude) but the map extents suggests that it is actually a projected coordinate system (e.g., Mercator). If so, the results from line or area measurements will be incorrect.</p><p>To fix this, explicitly set an appropriate map coordinate system using the <tt>Settings:Project Properties</tt> menu.</source>
         <translation><p>Diese Karte ist mit einem geographischen Koordinatensystem definiert (latitude/longitude) aber die Kartenausdehnung zeigt, dass es tatsächlich eine projiziertes Koordinatensystem ist (z.B.: Mercator). Wenn das stimmt, sind die Ergebnisse der Strecken oder Flächenmessung falsch.</p><p>Um richtig messen zu können, definieren Sie bitte ein entsprechendes Koordinatensystem in dem Menü <tt>Einstellungen:Projekteinstellungen</tt>.</translation>
     </message>
@@ -61600,12 +61813,12 @@ verbesserung</translation>
 <context>
     <name>QgsNetworkAccessManager</name>
     <message>
-        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="238"/>
+        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="242"/>
         <source>Network request %1 timed out</source>
         <translation>Netzwerkanfrage %1 dauerte zu lange</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="238"/>
+        <location filename="../src/core/qgsnetworkaccessmanager.cpp" line="242"/>
         <source>Network</source>
         <translation>Netzwerk</translation>
     </message>
@@ -61874,12 +62087,12 @@ Note: giving the password is optional. It will be requested interactivly, when n
         <translation>Neuen %1 für %2 eingeben</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsnewnamedialog.cpp" line="113"/>
+        <location filename="../src/gui/qgsnewnamedialog.cpp" line="116"/>
         <source>Full names</source>
         <translation>Volle Namen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsnewnamedialog.cpp" line="144"/>
+        <location filename="../src/gui/qgsnewnamedialog.cpp" line="147"/>
         <source>%n Name(s) %1 exists</source>
         <translation>%n Namen %1 vorhanden</translation>
     </message>
@@ -61891,7 +62104,7 @@ Note: giving the password is optional. It will be requested interactivly, when n
         </translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsnewnamedialog.cpp" line="148"/>
+        <location filename="../src/gui/qgsnewnamedialog.cpp" line="151"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
@@ -63077,46 +63290,51 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
 <context>
     <name>QgsOfflineEditing</name>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="82"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="93"/>
         <source>Could not open the spatialite database</source>
         <translation>Konnte die SpatiaLite-Datenbank nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="351"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="359"/>
         <source>Unable to initialize SpatialMetadata:
 </source>
         <translation>Konnten räumliche Metadaten nicht initialisieren:
 </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="385"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="393"/>
         <source>Could not create a new database
 </source>
         <translation>Konnte neue Datenbank nicht anlegen
 </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="395"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="403"/>
         <source>Unable to activate FOREIGN_KEY constraints</source>
         <translation>Konnten FOREIGN_KEY-Einschränkung nicht aktivieren</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="518"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="527"/>
         <source>QGIS wkbType %1 not supported</source>
         <translation>QGIS WKB-Typ %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="897"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="666"/>
+        <source>Feature cannot be copied to the offline layer, please check if the online layer '%1' is still accessible.</source>
+        <translation>Objekt kann nicht in Offline-Layer kopiert werden. Bitte prüfen, ob der Online-Layer '%1' noch erreichbar ist.</translation>
+    </message>
+    <message>
+        <location filename="../src/core/qgsofflineediting.cpp" line="912"/>
         <source>Offline Editing Plugin</source>
         <translation>Offline-Bearbeitungserweiterung</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="909"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="925"/>
         <source>Could not open the spatialite logging database</source>
         <translation>Konnte die SpatiaLite-Protokolldatenbank nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsofflineediting.cpp" line="483"/>
+        <location filename="../src/core/qgsofflineediting.cpp" line="492"/>
         <source>%1: Unknown data type %2. Not using type affinity for the field.</source>
         <translation>%1: Unbekannter Datentyp %2. Typenangabe wird nicht für Feld verwendet.</translation>
     </message>
@@ -63306,184 +63524,210 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
 <context>
     <name>QgsOgrProvider</name>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2813"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3096"/>
         <source>Data source is invalid, no layer found (%1)</source>
         <translation>Datenquelle ungültig, kein Layer gefunden (%1)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="157"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="176"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="184"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1037"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1536"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2808"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2813"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2818"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="169"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="188"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="196"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1072"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1633"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3091"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3096"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3101"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3218"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3236"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3251"/>
         <source>OGR</source>
         <translation>OGR</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2808"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2818"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3091"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3101"/>
         <source>Data source is invalid (%1)</source>
         <translation>Datenquelle ungültig (%1)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="360"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="376"/>
         <source>Whole number (integer)</source>
         <translation>Ganzzahl (integer)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="362"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="378"/>
         <source>Whole number (integer 64 bit)</source>
         <translation>Ganzzahl (integer 64bit)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="364"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="380"/>
         <source>Decimal number (real)</source>
         <translation>Dezimalzahl (real)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="365"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="381"/>
         <source>Text (string)</source>
         <translation>Text (string)</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="366"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="382"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="373"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="389"/>
         <source>Time</source>
         <translation>Zeit</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="374"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="390"/>
         <source>Date & Time</source>
         <translation>Datum & Zeit</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="407"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="161"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="433"/>
         <source>OGR[%1] error %2: %3</source>
         <translation>OGR[%1] Fehler %2: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="588"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="614"/>
         <source>Unknown</source>
         <translation>Unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="951"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="986"/>
         <source>OGR error creating wkb for feature %1: %2</source>
         <translation>OGR-Fehler beim erzeugen des WKB für Objekt %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1037"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1072"/>
         <source>type %1 for attribute %2 not found</source>
         <translation>Typ %1 des Attribut %2 nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1045"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1080"/>
         <source>OGR error creating feature %1: %2</source>
         <translation>OGR-Fehler beim Erzeugen des Objekts %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1120"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1168"/>
         <source>type %1 for field %2 not found</source>
         <translation>Typ %1 des Feld %2 nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1134"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1182"/>
         <source>OGR error creating field %1: %2</source>
         <translation>OGR-Fehler bei Erzeugung des Felds %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1154"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1205"/>
         <source>OGR error deleting field %1: %2</source>
         <translation>OGR-Fehler beim Löschen des Felds %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1162"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1213"/>
         <source>Deleting fields is not supported prior to GDAL 1.9.0</source>
         <translation>GDAL 1.9.0 unterstützt das Löschen von Feldern nicht vor 1.9.0</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1183"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1294"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1411"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1237"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1350"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1488"/>
         <source>OGR error on feature %1: id too large</source>
         <translation>OGR-Fehler bei Objekt %1: ID zu groß</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1194"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1248"/>
         <source>Feature %1 for attribute update not found.</source>
         <translation>Objekt %1 zur Attributaktualisierung nicht gefunden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1207"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1261"/>
         <source>Field %1 of feature %2 doesn't exist.</source>
         <translation>Feld %1 des Objekts %2 nicht vorhanden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1263"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1317"/>
         <source>Type %1 of attribute %2 of feature %3 unknown.</source>
         <translation>Typ %1 des Attributs %2 des Objekte %3 unbekannt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1271"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1335"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1325"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1401"/>
         <source>OGR error setting feature %1: %2</source>
         <translation>OGR-Fehler beim Setzen des Objekts %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1277"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2616"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1333"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2863"/>
         <source>OGR error syncing to disk: %1</source>
         <translation>OGR-Fehler beim Syncen auf Festplatte: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1301"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1357"/>
         <source>OGR error changing geometry: feature %1 not found</source>
         <translation>OGR-Fehler beim Ändern der Geometrie: Objekt %1 nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1311"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1372"/>
         <source>OGR error creating geometry for feature %1: %2</source>
         <translation>OGR-Fehler bei Geometrieerzeugung für Objekt %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1319"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1381"/>
         <source>OGR error in feature %1: geometry is null</source>
         <translation>OGR-Fehler bei Objekt %1: Geometrie ist leer</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1326"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1390"/>
         <source>OGR error setting geometry of feature %1: %2</source>
         <translation>OGR-Fehler beim Setzen der Geometrie des Objekts %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="157"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3196"/>
+        <source>Cannot reopen datasource %1</source>
+        <translation>Kann Datenquelle %1 nicht neu öffnen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3218"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3219"/>
+        <source>Cannot reopen datasource %1 in update mode</source>
+        <translation>Kann Datenquelle %1 nicht im Aktualisierungsmodus neu öffnen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3236"/>
+        <source>Unbalanced call to leaveUpdateMode() w.r.t. enterUpdateMode()</source>
+        <translation>Aufrufe von leaveUpdateMode() und enterUpdateMode() passen nicht zusammen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3251"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3252"/>
+        <source>Cannot reopen datasource %1 in read-only mode</source>
+        <translation>Kann Datenquelle %1 nicht im schreibgeschützten Modus neu öffnen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="169"/>
         <source>Possible corruption after REPACK detected. %1 still exists. This may point to a permission or locking problem of the original DBF.</source>
         <translation>Möglicher Fehler nach REPACK entdeckt. %1 ist noch vorhanden. Dies könnte auf ein Berechtigungs- oder Dateisperrenproblem der DBF hindeuten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="176"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="188"/>
         <source>Original layer could not be reopened.</source>
         <translation>Ursprünglicher Layer konnte nicht erneut geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="184"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="196"/>
         <source>Original datasource could not be reopened.</source>
         <translation>Ursprüngliche Datenquelle konnte nicht erneut geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1417"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1494"/>
         <source>OGR error deleting feature %1: %2</source>
         <translation>OGR-Fehler beim Löschen des Objekts %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1536"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1633"/>
         <source>Shapefiles without attribute are considered read-only.</source>
         <translation>Shapedateien ohne Attribute werden als schreibgeschützt betrachtet.</translation>
     </message>
@@ -63719,489 +63963,489 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Systemwert: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="334"/>
+        <location filename="../src/app/qgsoptions.cpp" line="326"/>
         <source>Show all features</source>
         <translation>Alle Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="335"/>
+        <location filename="../src/app/qgsoptions.cpp" line="327"/>
         <source>Show selected features</source>
         <translation>Alle gewählten Objekte anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="341"/>
+        <location filename="../src/app/qgsoptions.cpp" line="333"/>
         <source>All</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="349"/>
+        <location filename="../src/app/qgsoptions.cpp" line="341"/>
         <source>Always</source>
         <translation>Immer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="350"/>
+        <location filename="../src/app/qgsoptions.cpp" line="342"/>
         <source>If needed</source>
         <translation>Wenn nötig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="351"/>
+        <location filename="../src/app/qgsoptions.cpp" line="343"/>
         <source>Never</source>
         <translation>Nie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="352"/>
+        <location filename="../src/app/qgsoptions.cpp" line="344"/>
         <source>Load all</source>
         <translation>Alle laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="357"/>
+        <location filename="../src/app/qgsoptions.cpp" line="349"/>
         <source>Check file contents</source>
         <translation>Dateiinhalt prüfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="358"/>
+        <location filename="../src/app/qgsoptions.cpp" line="350"/>
         <source>Check extension</source>
         <translation>Erweiterung prüfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="365"/>
+        <location filename="../src/app/qgsoptions.cpp" line="357"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="367"/>
+        <location filename="../src/app/qgsoptions.cpp" line="359"/>
         <source>Basic scan</source>
         <translation>Grundsuche</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="368"/>
+        <location filename="../src/app/qgsoptions.cpp" line="360"/>
         <source>Full scan</source>
         <translation>Vollsuche</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="463"/>
+        <location filename="../src/app/qgsoptions.cpp" line="455"/>
         <source>Meters</source>
         <translation>Meter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="464"/>
+        <location filename="../src/app/qgsoptions.cpp" line="456"/>
         <source>Feet</source>
         <translation>Fuß</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="465"/>
+        <location filename="../src/app/qgsoptions.cpp" line="457"/>
         <source>Nautical miles</source>
         <translation>Seemeilen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="466"/>
-        <location filename="../src/app/qgsoptions.cpp" line="491"/>
+        <location filename="../src/app/qgsoptions.cpp" line="458"/>
+        <location filename="../src/app/qgsoptions.cpp" line="483"/>
         <source>Degrees</source>
         <translation>Grad</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="467"/>
-        <location filename="../src/app/qgsoptions.cpp" line="484"/>
+        <location filename="../src/app/qgsoptions.cpp" line="459"/>
+        <location filename="../src/app/qgsoptions.cpp" line="476"/>
         <source>Map units</source>
         <translation>Karteneinheiten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="475"/>
+        <location filename="../src/app/qgsoptions.cpp" line="467"/>
         <source>Square meters</source>
         <translation>Quadratmeter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="476"/>
+        <location filename="../src/app/qgsoptions.cpp" line="468"/>
         <source>Square kilometers</source>
         <translation>Quadratkilometer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="477"/>
+        <location filename="../src/app/qgsoptions.cpp" line="469"/>
         <source>Square feet</source>
         <translation>Quadratfuß</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="478"/>
+        <location filename="../src/app/qgsoptions.cpp" line="470"/>
         <source>Square yards</source>
         <translation>Quadratyard</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="479"/>
+        <location filename="../src/app/qgsoptions.cpp" line="471"/>
         <source>Square miles</source>
         <translation>Quadratmeilen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="480"/>
+        <location filename="../src/app/qgsoptions.cpp" line="472"/>
         <source>Hectares</source>
         <translation>Hektar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="481"/>
+        <location filename="../src/app/qgsoptions.cpp" line="473"/>
         <source>Acres</source>
         <translation> Morgen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="482"/>
+        <location filename="../src/app/qgsoptions.cpp" line="474"/>
         <source>Square nautical miles</source>
         <translation>Seemeilen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="483"/>
+        <location filename="../src/app/qgsoptions.cpp" line="475"/>
         <source>Square degrees</source>
         <translation>Quadratgrat</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="492"/>
+        <location filename="../src/app/qgsoptions.cpp" line="484"/>
         <source>Radians</source>
         <translation>Bogenmaß</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="493"/>
+        <location filename="../src/app/qgsoptions.cpp" line="485"/>
         <source>Gon/gradians</source>
         <translation>Gon/Neugrad</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="494"/>
+        <location filename="../src/app/qgsoptions.cpp" line="486"/>
         <source>Minutes of arc</source>
         <translation>Bogenminuten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="495"/>
+        <location filename="../src/app/qgsoptions.cpp" line="487"/>
         <source>Seconds of arc</source>
         <translation>Bogensekunden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="496"/>
+        <location filename="../src/app/qgsoptions.cpp" line="488"/>
         <source>Turns/revolutions</source>
         <translation>Umdrehungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="619"/>
-        <location filename="../src/app/qgsoptions.cpp" line="620"/>
+        <location filename="../src/app/qgsoptions.cpp" line="611"/>
+        <location filename="../src/app/qgsoptions.cpp" line="612"/>
         <source>Cumulative pixel count cut</source>
         <translation>Kommulativer Pixelanzahl-Schnitt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="621"/>
+        <location filename="../src/app/qgsoptions.cpp" line="613"/>
         <source>Minimum / maximum</source>
         <translation>Minimum / Maximum</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="622"/>
+        <location filename="../src/app/qgsoptions.cpp" line="614"/>
         <source>Mean +/- standard deviation</source>
         <translation>Mittlere +/- Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="639"/>
+        <location filename="../src/app/qgsoptions.cpp" line="631"/>
         <source>Set selection color</source>
         <translation>Auswahlfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="649"/>
+        <location filename="../src/app/qgsoptions.cpp" line="641"/>
         <source>Set canvas color</source>
         <translation>Kartenfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="658"/>
+        <location filename="../src/app/qgsoptions.cpp" line="650"/>
         <source>Set measuring tool color</source>
         <translation>Meßwerkzeugfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="744"/>
+        <location filename="../src/app/qgsoptions.cpp" line="736"/>
         <source>Select grid color</source>
         <translation>Gitterfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="752"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1371"/>
+        <location filename="../src/app/qgsoptions.cpp" line="744"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1367"/>
         <source>Solid</source>
         <translation>Ausgefüllt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="753"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1375"/>
+        <location filename="../src/app/qgsoptions.cpp" line="745"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1371"/>
         <source>Dots</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="754"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1379"/>
+        <location filename="../src/app/qgsoptions.cpp" line="746"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1375"/>
         <source>Crosses</source>
         <translation>Kreuze</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="779"/>
+        <location filename="../src/app/qgsoptions.cpp" line="771"/>
         <source>Detected active locale on your system: %1</source>
         <translation>Festgestellte Spracheinstellung des Systems: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="814"/>
+        <location filename="../src/app/qgsoptions.cpp" line="806"/>
         <source>To vertex</source>
         <translation>Zum Stützpunkt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="815"/>
+        <location filename="../src/app/qgsoptions.cpp" line="807"/>
         <source>To segment</source>
         <translation>Zum Segment</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="816"/>
+        <location filename="../src/app/qgsoptions.cpp" line="808"/>
         <source>To vertex and segment</source>
         <translation>Zum Stützpunkt und Segment</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="825"/>
-        <location filename="../src/app/qgsoptions.cpp" line="835"/>
+        <location filename="../src/app/qgsoptions.cpp" line="817"/>
+        <location filename="../src/app/qgsoptions.cpp" line="827"/>
         <source>map units</source>
         <translation>Karteneinheiten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="829"/>
-        <location filename="../src/app/qgsoptions.cpp" line="839"/>
+        <location filename="../src/app/qgsoptions.cpp" line="821"/>
+        <location filename="../src/app/qgsoptions.cpp" line="831"/>
         <source>pixels</source>
         <translation>Pixel</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="846"/>
-        <location filename="../src/app/qgsoptions.cpp" line="861"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1314"/>
+        <location filename="../src/app/qgsoptions.cpp" line="838"/>
+        <location filename="../src/app/qgsoptions.cpp" line="853"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1310"/>
         <source>Semi transparent circle</source>
         <translation>Teiltransparenter Kreis</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="847"/>
-        <location filename="../src/app/qgsoptions.cpp" line="865"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1318"/>
+        <location filename="../src/app/qgsoptions.cpp" line="839"/>
+        <location filename="../src/app/qgsoptions.cpp" line="857"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1314"/>
         <source>Cross</source>
         <translation>Kreuz</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="848"/>
-        <location filename="../src/app/qgsoptions.cpp" line="869"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1322"/>
+        <location filename="../src/app/qgsoptions.cpp" line="840"/>
+        <location filename="../src/app/qgsoptions.cpp" line="861"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1318"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1004"/>
+        <location filename="../src/app/qgsoptions.cpp" line="996"/>
         <source>QGIS files</source>
         <translation>QGIS-Dateien</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2094"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2096"/>
         <source>Select color</source>
         <translation>Farbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2108"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2110"/>
         <source>Select palette file</source>
         <translation>Palettendatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2119"/>
-        <location filename="../src/app/qgsoptions.cpp" line="2128"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2121"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2130"/>
         <source>Invalid file</source>
         <translation>Ungültige Datei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2119"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2121"/>
         <source>Error, file does not exist or is not readable</source>
         <translation>Fehler, Datei nicht vorhanden oder nicht lesbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2128"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2130"/>
         <source>Error, no colors found in palette file</source>
         <translation>Fehler, keine Farben in der Palettendatei gefunden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2137"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2139"/>
         <source>Palette file</source>
         <translation>Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2157"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2159"/>
         <source>Error exporting</source>
         <translation>Fehler beim Export</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2157"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2159"/>
         <source>Error writing palette file</source>
         <translation>Fehler beim Schreiben der Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2201"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2203"/>
         <source>Invalid scale</source>
         <translation>Ungültiger Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2201"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2203"/>
         <source>The text you entered is not a valid scale.</source>
         <translation>Der eingegebene Text ist kein gültiger Maßstab.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="817"/>
-        <location filename="../src/app/qgsoptions.cpp" line="851"/>
+        <location filename="../src/app/qgsoptions.cpp" line="809"/>
+        <location filename="../src/app/qgsoptions.cpp" line="843"/>
         <source>Off</source>
         <translation>Aus</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="852"/>
+        <location filename="../src/app/qgsoptions.cpp" line="844"/>
         <source>QGIS</source>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="855"/>
+        <location filename="../src/app/qgsoptions.cpp" line="847"/>
         <source>GEOS</source>
         <translation>GEOS</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="877"/>
+        <location filename="../src/app/qgsoptions.cpp" line="869"/>
         <source>Round</source>
         <translation>Rund</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="878"/>
+        <location filename="../src/app/qgsoptions.cpp" line="870"/>
         <source>Mitre</source>
         <translation>Eckig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="879"/>
+        <location filename="../src/app/qgsoptions.cpp" line="871"/>
         <source>Bevel</source>
         <translation>Abgerundet</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="932"/>
-        <location filename="../src/app/qgsoptions.cpp" line="943"/>
-        <location filename="../src/app/qgsoptions.cpp" line="947"/>
+        <location filename="../src/app/qgsoptions.cpp" line="924"/>
+        <location filename="../src/app/qgsoptions.cpp" line="935"/>
+        <location filename="../src/app/qgsoptions.cpp" line="939"/>
         <source>Save default project</source>
         <translation>Als Vorgabeprojekt speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="932"/>
+        <location filename="../src/app/qgsoptions.cpp" line="924"/>
         <source>You must set a default project</source>
         <translation>Sie müssen ein Vorgabeprojekt setzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="943"/>
+        <location filename="../src/app/qgsoptions.cpp" line="935"/>
         <source>Current project saved as default</source>
         <translation>Aktuelles Projekt als Vorgabe gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="947"/>
+        <location filename="../src/app/qgsoptions.cpp" line="939"/>
         <source>Error saving current project as default</source>
         <translation>Konnte aktuelles Projekt nicht als Vorgabe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="963"/>
+        <location filename="../src/app/qgsoptions.cpp" line="955"/>
         <source>Choose a directory to store project template files</source>
         <translation>Wählen Sie ein Verzeichnis für die Speicherung von Projektvorlagedateien</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="336"/>
+        <location filename="../src/app/qgsoptions.cpp" line="328"/>
         <source>Show features visible on map</source>
         <translation>Sichtbare Objekte der Karte anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1002"/>
+        <location filename="../src/app/qgsoptions.cpp" line="994"/>
         <source>Choose project file to open at launch</source>
         <translation>Beim Start zu öffnende Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1513"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1515"/>
         <source>Create Options - %1 Driver</source>
         <translation>Erzeugungsoptionen - %1 Treiber</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1515"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1517"/>
         <source>Create Options - pyramids</source>
         <translation>Erzeugungsoptionen - Pyramiden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1568"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1570"/>
         <source>Restore UI defaults</source>
         <translation>Oberflächenvoreinstellung wiederherstellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1568"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1570"/>
         <source>Are you sure to reset the UI to default (needs restart)?</source>
         <translation>Sollen die Benutzeroberflächenvoreinstellungen wirklich zurückgesetzt werden (erfordert Neustart)?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1586"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1588"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1587"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1589"/>
         <source>If Undefined</source>
         <translation>Wenn definiert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1588"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1590"/>
         <source>Unset</source>
         <translation>Nicht gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1589"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1591"/>
         <source>Prepend</source>
         <translation>Voranstellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1590"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1592"/>
         <source>Append</source>
         <translation>Anhängen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1652"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1678"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1705"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1754"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1654"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1680"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1707"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1756"/>
         <source>Choose a directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1923"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1925"/>
         <source>Enter scale</source>
         <translation>Maßstab angeben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1924"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1926"/>
         <source>Scale denominator</source>
         <translation>Maßstabsnenner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1956"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1958"/>
         <source>Load scales</source>
         <translation>Maßstäbe laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1957"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1979"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1959"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1981"/>
         <source>XML files (*.xml *.XML)</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1978"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1980"/>
         <source>Save scales</source>
         <translation>Maßstäbe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2010"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2012"/>
         <source>No Stretch</source>
         <translation>Kein Strecken</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2011"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2013"/>
         <source>Stretch To MinMax</source>
         <translation>Strecken auf MinMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2012"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2014"/>
         <source>Stretch And Clip To MinMax</source>
         <translation>Strecken und Zuschneiden auf MinMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2013"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2015"/>
         <source>Clip To MinMax</source>
         <translation>Zuschneiden auf MinMax</translation>
     </message>
@@ -64632,9 +64876,8 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Objektattribute und -tabelle</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoptionsbase.ui" line="1411"/>
         <source>Open attribute table in a dock window (QGIS restart required)</source>
-        <translation>Attributtabelle gedockt öffnen (QGIS-Neustart erforderlich)</translation>
+        <translation type="obsolete">Attributtabelle gedockt öffnen (QGIS-Neustart erforderlich)</translation>
     </message>
     <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="1418"/>
@@ -65018,6 +65261,11 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Zusammenstellung</translation>
     </message>
     <message>
+        <location filename="../src/ui/qgsoptionsbase.ui" line="1411"/>
+        <source>Open attribute table in a dock window</source>
+        <translation>Attributtabelle gedockt öffnen</translation>
+    </message>
+    <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="1660"/>
         <source>Add Oracle layers with double click and select in extended mode</source>
         <translation>Oracle-Layer per Doppelklick hinzufügen und zur Auswahl den erweiterten Modus verwenden</translation>
@@ -65746,54 +65994,68 @@ Fehler:%2
 <context>
     <name>QgsOracleConnectionItem</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="161"/>
         <source>Edit...</source>
-        <translation>Bearbeiten...</translation>
+        <translation type="obsolete">Bearbeiten...</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="165"/>
         <source>Delete</source>
-        <translation>Löschen</translation>
+        <translation type="obsolete">Löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="169"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="175"/>
         <source>Refresh</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="210"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="183"/>
+        <source>Edit Connection...</source>
+        <translation>Verbindung bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="187"/>
+        <source>Delete Connection</source>
+        <translation>Verbindung löschen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="234"/>
         <source>Copying features...</source>
         <translation>Kopiere Objekte...</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="210"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="234"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="211"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="235"/>
         <source>Import layer</source>
         <translation>Layer importieren</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="222"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="248"/>
         <source>%1: Not a vector layer!</source>
         <translation>%1: Kein Vektorlayer!</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="244"/>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="253"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="270"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="281"/>
         <source>%1: OK!</source>
         <translation>%1: OK!</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="267"/>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="273"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="294"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="300"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="306"/>
         <source>Import to Oracle database</source>
         <translation>In Oracle-Datenbank importieren</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="268"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="294"/>
+        <source>Import cancelled.</source>
+        <translation>Import abgebrochen.</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="301"/>
         <source>Failed to import some layers!
 
 </source>
@@ -65802,7 +66064,7 @@ Fehler:%2
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="273"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="306"/>
         <source>Import was successful.</source>
         <translation>Import war erfolgreich.</translation>
     </message>
@@ -65810,54 +66072,62 @@ Fehler:%2
 <context>
     <name>QgsOracleLayerItem</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="297"/>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="310"/>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="314"/>
         <source>Delete layer</source>
-        <translation>Layer löschen</translation>
+        <translation type="obsolete">Layer löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="314"/>
         <source>Layer deleted successfully.</source>
-        <translation>Layer erfolgreich gelöscht.</translation>
+        <translation type="obsolete">Layer erfolgreich gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="335"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="353"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="357"/>
+        <source>Delete Table</source>
+        <translation>Tabelle löschen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="357"/>
+        <source>Table deleted successfully.</source>
+        <translation>Tabelle erfolgreich gelöscht.</translation>
     </message>
 </context>
 <context>
     <name>QgsOracleNewConnection</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="91"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="92"/>
         <source>Saving passwords</source>
         <translation>Paßworte speichern</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="92"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="93"/>
         <source>WARNING: You have opted to save your password. It will be stored in plain text in your project files and in your home directory on Unix-like systems, or in your user profile on Windows. If you do not want this to happen, please press the Cancel button.
 </source>
         <translation>WARNUNG: Sie haben zugestimmt Ihr Paßwort zu speichern.  Es wird im Klartext in Ihren Projektdateien, auf Unixsystemen in Ihrem Heimatverzeichnis und unter Windows in Ihrem Benutzerprofil gespeichert.  Wenn Sie dies nicht wünschen, brechen Sie den Vorgang bitte ab.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="103"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="104"/>
         <source>Save connection</source>
         <translation>Verbindung speichern</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="104"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="105"/>
         <source>Should the existing connection %1 be overwritten?</source>
         <translation>Soll die bereits existierende Verbindung %1 überschrieben werden?</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="148"/>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="157"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="150"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="159"/>
         <source>Test connection</source>
         <translation>Verbindung testen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="149"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="151"/>
         <source>Connection to %1 was successful</source>
         <translation>Verbindung zu %1 war erfolgreich</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="158"/>
+        <location filename="../src/providers/oracle/qgsoraclenewconnection.cpp" line="160"/>
         <source>Connection failed - consult message log for details.
 
 </source>
@@ -65878,17 +66148,17 @@ Fehler:%2
         <translation>Verbindungsinformationen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="64"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="71"/>
         <source>Password</source>
         <translation>Passwort</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="183"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="190"/>
         <source>Save Username</source>
         <translation>Benutzernamen speichern</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="74"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="81"/>
         <source>Username</source>
         <translation>Benutzername</translation>
     </message>
@@ -65898,62 +66168,67 @@ Fehler:%2
         <translation>Name der neuen Verbindung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="84"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="91"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="94"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="101"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="104"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="111"/>
         <source>Restrict the displayed tables to those that are in the all_sdo_geom_metadata table</source>
         <translation>Beschränke angezeigte Tabellen auf jene aus der Layerregistratur</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="117"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="124"/>
         <source>When searching for spatial tables restrict the search to tables that are owned by the user.</source>
         <translation>Beim Suchen nach räumlichen Tabellen nur Tabellen berücksichtigen, die dem Benutzer gehören.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="120"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="127"/>
         <source><html><head/><body><p>When searching for spatial tables restrict the search to tables that are owned by the user.</p></body></html></source>
         <translation><html><head/><body><p>Bei der Suche nach räumlichen Tabellen nur die berücksichtigen, die dem angemeldeten Benutzer gehören.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="160"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="167"/>
         <source>Only list the existing geometry types and don't offer to add others.</source>
         <translation>Nur vorhandene Geometrietypen anzeigen und nicht das Hinzufügen von anderen anbieten.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="166"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="173"/>
         <source>Only existing geometry types</source>
         <translation>Nur vorhandene Geometrietypen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="107"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="247"/>
+        <source>Include additional geometry attributes</source>
+        <translation>Weitere Geometrieattribute einschließen</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="114"/>
         <source><html><head/><body><p>Restricts the displayed tables to those that are in the all_sdo_geom_metadata view. This can speed up the initial display of spatial tables.</p></body></html></source>
         <translation><html><head/><body><p>Schränkt die angezeigten Tabelle auf die in der Sicht all_sdo_geom_metadata enthaltenen ein. Dies kann die anfängliche Anzeige der räumlichen Tabellen beschleunigen.</p></body></html></translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="110"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="117"/>
         <source>Only look in meta data table</source>
         <translation>Nur in der Metadatentabelle suchen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="123"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="130"/>
         <source>Only look for user's tables</source>
         <translation>Nur Tabellen des Benutzers berücksichtigen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="130"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="137"/>
         <source>Also list tables with no geometry</source>
         <translation>Auch geometrielose Tabelle anzeigen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="140"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="147"/>
         <source>Port</source>
         <translation>Port</translation>
     </message>
@@ -65963,33 +66238,33 @@ Fehler:%2
         <translation>1521</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="173"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="180"/>
         <source>&Test Connect</source>
         <translation>Verbindung &testen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="193"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="51"/>
         <source>Save Password</source>
         <translation>Passwort speichern</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="150"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="157"/>
         <source>Host</source>
         <translation>Host</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="51"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="58"/>
         <source>Use estimated table statistics for the layer metadata.</source>
         <translation>Geschätzte Tabellenstatistik für die Tabellen-Metadaten verwenden.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="54"/>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="163"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="61"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="170"/>
         <source><html><head/><body><p>When the layer is setup various metadata is required for the Oracle table. This includes information such as the table row count, geometry type and spatial extents of the data in the geometry column. If the table contains a large number of rows determining this metadata is time consuming.</p><p>By activating this option the following fast table metadata operations are done:</p><p>1) Row count is determi [...]
         <translation><html><head/><body><p>Zur Layereinbindung werden einige Metadaten zur Oracle-Tabelle benötigt. Dies schließt Informationen zur Zeilenanzahl, Geometrietyp und räumliche Ausdehnung ein. Wenn die Tabelle viele Zeilen enthält, kann dies sehr lange dauern.</p><p>Durch Aktivierung dieser Option werden die folgenden schnellen Operationen ausgeführt:</p><p>1) Zeilenanzahl wird aus all_tables.rows bestimmt.</p><p>2)  [...]
     </message>
     <message>
-        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="57"/>
+        <location filename="../src/ui/qgsoraclenewconnectionbase.ui" line="64"/>
         <source>Use estimated table metadata</source>
         <translation>Geschätzte Tabellenmetadaten nutzen</translation>
     </message>
@@ -66002,12 +66277,12 @@ Fehler:%2
 <context>
     <name>QgsOracleOwnerItem</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="363"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="408"/>
         <source>%1 as %2 in %3</source>
         <translation>%1 als %2 in %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="390"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="435"/>
         <source>as geometryless table</source>
         <translation>als geometrielose Tabelle</translation>
     </message>
@@ -66028,148 +66303,152 @@ Fehler:%2
 <context>
     <name>QgsOracleProvider</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="147"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="148"/>
         <source>Whole number</source>
         <translation>Ganzzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="148"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="149"/>
         <source>Whole big number</source>
         <translation>Große ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="149"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="150"/>
         <source>Decimal number (numeric)</source>
         <translation>Dezimalzahl (numeric)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="150"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="151"/>
         <source>Decimal number (decimal)</source>
         <translation>Dezimalzahl (decimal)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="153"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="154"/>
         <source>Decimal number (real)</source>
         <translation>Dezimalzahl (real)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="154"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="155"/>
         <source>Decimal number (double)</source>
         <translation>Dezimalzahl (double)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="157"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="158"/>
         <source>Text, fixed length (char)</source>
         <translation>Text, feste Länge (char)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="158"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="159"/>
         <source>Text, limited variable length (varchar2)</source>
         <translation>Text, begrenzte variabler Länge (varchar2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="159"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="160"/>
         <source>Text, unlimited length (long)</source>
         <translation>Text, unbegrenzter Länge (long)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="503"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="508"/>
         <source>FAILURE: Field %1 not found.</source>
         <translation>FEHLER: Feld %1 nicht gefunden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="503"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="514"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="574"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="591"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="655"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="678"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="694"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="709"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="508"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="519"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="579"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="596"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="661"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="684"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="700"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="721"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="807"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="817"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="826"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="834"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="867"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="880"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="903"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="930"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="935"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="940"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="963"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="995"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1024"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1072"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1108"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1401"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1452"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1528"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1534"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1590"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1597"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1735"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1945"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2115"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2147"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2182"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2190"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2210"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2218"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2339"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2361"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2389"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2402"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2681"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2693"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2702"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2859"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2868"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="729"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="823"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="833"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="841"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="849"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="882"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="895"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="918"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="945"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="950"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="955"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="978"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1010"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1039"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1087"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1123"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1416"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1467"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1543"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1549"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1605"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1612"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1750"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1967"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2139"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2171"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2206"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2214"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2234"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2242"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2363"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2385"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2413"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2426"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2710"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2722"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2731"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2887"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2896"/>
         <source>Oracle</source>
         <translation>Oracle</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="514"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="519"/>
         <source>Read attempt on an invalid oracle data source</source>
         <translation>Leseversuch auf ungültige Oracle-Datenquelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="570"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="575"/>
         <source>Loading comment for table %1.%2 failed [%3]</source>
         <translation>Ladens des Tabellekommentars zu  %1.%2 gescheitert [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="591"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="596"/>
         <source>Loading comment for columns of table %1.%2 failed [%3]</source>
         <translation>Ladens des Spaltenkommentar zu %1.%2 gescheitert [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="651"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="657"/>
         <source>Loading field types for table %1.%2 failed [%3]</source>
         <translation>Laden der Feldtypen der Tabelle %1.%2 fehlgeschlagen [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="673"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="679"/>
         <source>Invalid spatial index %1 on column %2.%3.%4 found - expect poor performance.</source>
         <translation>Ungültiger räumlicher Index %1 auf Spalte %2.%3.%4 gefunden - schlechte Performance ist zu erwarten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="705"/>
         <source>No spatial index on column %1.%2.%3 found - expect poor performance.</source>
-        <translation>Kein räumlicher Index auf Spalte %1.%2.%3 gefunden - schlechte Performance ist zu erwarten.</translation>
+        <translation type="obsolete">Kein räumlicher Index auf Spalte %1.%2.%3 gefunden - schlechte Performance ist zu erwarten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="689"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="695"/>
         <source>Probing for spatial index on column %1.%2.%3 failed [%4]</source>
         <translation>Suche nach räumlichen Index auf Spalte %1.%2.%3 fehlgeschlagen [%4]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="721"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="719"/>
+        <source>No spatial index on column %1 found - expect poor performance.</source>
+        <translation>Kein räumlicher Index auf Spalte %1.%2.%3 gefunden - schlechte Performance ist zu erwarten.</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="729"/>
         <source>Retrieving fields from '%1' failed [%2]</source>
         <translation>Laden der Felder aus '%1' gescheitert [%2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="802"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="818"/>
         <source>Unable to determine geometry column access privileges for column %1.%2.
 The error message from the database was:
 %3.
@@ -66180,7 +66459,7 @@ Der Fehler der Datenbank war:
 SQL: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="813"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="829"/>
         <source>Unable to determine table access privileges for the table %1.
 The error message from the database was:
 %2.
@@ -66191,18 +66470,18 @@ Der Fehler der Datenbank war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="826"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="841"/>
         <source>The custom query is not a select query.</source>
         <translation>Die Benutzerabfrage ist keine SELECT-Abfrage.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="832"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="865"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="901"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="993"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1022"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1070"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1106"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="847"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="880"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="916"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1008"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1037"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1085"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1121"/>
         <source>Unable to execute the query.
 The error message from the database was:
 %1.
@@ -66213,165 +66492,175 @@ Dei Fehlermeldung der Datenbank war:
 SQL: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="880"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="895"/>
         <source>Primary key field %1 not found in %2</source>
         <translation>Primärschlüsselfeld %1 nicht in %2 gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="930"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="945"/>
         <source>Primary key field '%1' for view not unique.</source>
         <translation>Primärschlüsselfeld '%1' der Sicht ist nicht eindeutig.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="935"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="950"/>
         <source>Key field '%1' for view not found.</source>
         <translation>Schlüsselfeld '%1' der Sicht nicht gefunden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="940"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="955"/>
         <source>No key field for view given.</source>
         <translation>Kein Schlüsselfeld für Ansicht angegeben.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="963"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="978"/>
         <source>No key field for query given.</source>
         <translation>Kein Schlüsselfeld für Abfrage gegeben.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1147"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1162"/>
         <source>Evaluation of default value failed</source>
         <translation>Auswertung des Vorgabewert gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1178"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1424"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1474"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1555"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1621"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1909"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2548"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1193"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1439"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1489"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1570"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1636"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1931"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2577"/>
         <source>Could not start transaction</source>
         <translation>Transaktion konnte nicht gestartet werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1214"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1229"/>
         <source>Could not prepare get feature id statement</source>
         <translation>Konnte Anweisung zur Bestimmung der Objektkennung nicht vorbereiten</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1293"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1308"/>
         <source>Could not prepare insert statement</source>
         <translation>Konnte Einfügeanweisung nicht vorbereiten</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1334"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1349"/>
         <source>Could not insert feature %1</source>
         <translation>Konnte Objekt %1 nicht einfügen</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1345"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1360"/>
         <source>Could not retrieve feature id %1</source>
         <translation>Konnte Objektkennung %1 nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1364"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1443"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1521"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1582"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1727"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1937"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2681"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1379"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1458"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1536"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1597"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1742"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1959"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2710"/>
         <source>Could not commit transaction</source>
         <translation>Transaktion konnte nicht festgeschrieben werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1398"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1413"/>
         <source>Oracle error while adding features: %1</source>
         <translation>Oracle-Fehler beim Attributhinzufügen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1401"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1452"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1528"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1590"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1735"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1945"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2693"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1416"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1467"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1543"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1605"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1750"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1967"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2722"/>
         <source>Could not rollback transaction</source>
         <translation>Transaktion konnte nicht zurückgerollt werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1434"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1449"/>
         <source>Deletion of feature %1 failed</source>
         <translation>Löschen des Objekts %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1450"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1465"/>
         <source>Oracle error while deleting features: %1</source>
         <translation>Oracle-Fehler beim Objektlöschen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1503"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1518"/>
         <source>Adding attribute %1 failed</source>
         <translation>Hinzufügen des Attributs %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1512"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1527"/>
         <source>Setting comment on %1 failed</source>
         <translation>Setzen des Kommentars für %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1526"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1541"/>
         <source>Oracle error while adding attributes: %1</source>
         <translation>Oracle-Fehler beim Attributhinzufügen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1534"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1597"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1549"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1612"/>
         <source>Could not reload fields.</source>
         <translation>Konnte Felder nicht neuladen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1573"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1588"/>
         <source>Dropping column %1 failed</source>
         <translation>Löschen der Spalte %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1587"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1602"/>
         <source>Oracle error while deleting attributes: %1</source>
         <translation>Oracle-Fehler beim Attributlöschen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1701"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1930"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1716"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1952"/>
         <source>Update of feature %1 failed</source>
         <translation>Aktualisierung des Objekte %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1732"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1747"/>
         <source>Oracle error while changing attributes: %1</source>
         <translation>Oracle-Fehler beim Attributändern: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1680"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1919"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1695"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1941"/>
         <source>Could not prepare update statement.</source>
         <translation>Konnte Aktualisierungsanweisung nicht vorbereiten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1942"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="163"/>
+        <source>Date</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="164"/>
+        <source>Date & Time</source>
+        <translation>Datum & Zeit</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1964"/>
         <source>Oracle error while changing geometry values: %1</source>
         <translation>Oracle-Fehler beim Geometrieändern: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2115"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2139"/>
         <source>Could not retrieve extents: %1
 SQL: %2</source>
         <translation>Konnte Ausmaße nicht bestimmen: %1
 SQL: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2145"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2169"/>
         <source>Could not execute query.
 The error message from the database was:
 %1.
@@ -66382,7 +66671,7 @@ Die Datenbankfehlermeldung war:
 SQL: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2179"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2203"/>
         <source>Could not retrieve SRID of %1.
 The error message from the database was:
 %2.
@@ -66393,7 +66682,7 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2187"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2211"/>
         <source>Could not determine SRID of %1.
 The error message from the database was:
 %2.
@@ -66404,14 +66693,14 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2208"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2232"/>
         <source>%1 has no valid geometry types.
 SQL: %2</source>
         <translation>%1 hat keine gültigen Geometrietypen.
 SQL: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2215"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2239"/>
         <source>Could not determine geometry type of %1.
 The error message from the database was:
 %2.
@@ -66422,22 +66711,22 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2252"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2276"/>
         <source>Geometry type and srid for empty column %1 of %2 undefined.</source>
         <translation>Geometrietyp und SRID für leere Spalte %1 in %2 undefiniert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2279"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2303"/>
         <source>Feature type or srid for %1 of %2 could not be determined or was not requested.</source>
         <translation>Objekttyp oder SRID für %1 aus %2 konnte nicht festgestellt werden oder wurde nicht verlangt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2307"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2331"/>
         <source>Editing and adding disabled for 2D+ layer (%1; %2)</source>
         <translation>Ändern und Hinzufügen auf 2D+-Layern abgeschaltet (%1; %2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2334"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2358"/>
         <source>Could not update metadata for %1.%2.
 SQL:%3
 Error: %4</source>
@@ -66446,7 +66735,7 @@ SQL:%3
 Fehler: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2356"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2380"/>
         <source>Could not insert metadata for %1.%2.
 SQL:%3
 Error: %4</source>
@@ -66455,7 +66744,7 @@ SQL: %3
 Fehler: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2386"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2410"/>
         <source>Creation spatial index failed.
 SQL:%1
 Error: %2</source>
@@ -66464,7 +66753,7 @@ SQL:%1
 FehleR:%2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2399"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2423"/>
         <source>Rebuild of spatial index failed.
 SQL:%1
 Error: %2</source>
@@ -66473,52 +66762,52 @@ SQL:%1
 Fehler:%2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2556"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2585"/>
         <source>Could not determine table existence.</source>
         <translation>Konnte Tabellenexistenz nicht feststellen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2568"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2597"/>
         <source>Table %1 could not be dropped.</source>
         <translation>Tabelle %1 konnte nicht gelöscht werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2573"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2602"/>
         <source>Table %1 already exists.</source>
         <translation>Tabelle %1 bereits vorhanden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2592"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2621"/>
         <source>Table creation failed.</source>
         <translation>Tabellenerzeugung gescheitert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2623"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2652"/>
         <source>Could not lookup authid %1:%2</source>
         <translation>Konnte AuthId %1:%2 nicht finden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2639"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2668"/>
         <source>Could not lookup WKT.</source>
         <translation>Konnte WKT nicht finden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2650"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2679"/>
         <source>Could not determine new srid.</source>
         <translation>Konnte freie SRID nicht feststellen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2665"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2694"/>
         <source>CRS not found and could not be created.</source>
         <translation>KBS nicht gefunden und konnte auch nicht erzeugt werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2676"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2705"/>
         <source>Could not insert metadata.</source>
         <translation>Konnte Metadaten nicht einfügen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2700"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2729"/>
         <source>Drop created table %1 failed.
 SQL:%2
 Error: %3</source>
@@ -66527,12 +66816,12 @@ SQL:%2
 Fehler: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2859"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2887"/>
         <source>Oracle SRID %1 not found.</source>
         <translation>Oracle SRID %1 nicht gefunden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2864"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2892"/>
         <source>Lookup of Oracle SRID %1 failed.
 SQL:%2
 Error:%3</source>
@@ -66541,7 +66830,7 @@ SQL:%2
 Fehler:%3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.h" line="356"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.h" line="359"/>
         <source>Oracle error: %1
 SQL: %2
 Error: %3</source>
@@ -66550,7 +66839,7 @@ SQL: %2
 Fehler: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.h" line="364"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.h" line="367"/>
         <source>Oracle error: %1
 Error: %2</source>
         <translation>Oracle-Fehler: %1
@@ -66560,7 +66849,7 @@ Fehler: %2</translation>
 <context>
     <name>QgsOracleRootItem</name>
     <message>
-        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="429"/>
+        <location filename="../src/providers/oracle/qgsoracledataitems.cpp" line="474"/>
         <source>New Connection...</source>
         <translation>Neue Verbindung...</translation>
     </message>
@@ -67046,7 +67335,7 @@ Fehler: %2</translation>
 <context>
     <name>QgsPGRootItem</name>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="728"/>
+        <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="732"/>
         <source>New Connection...</source>
         <translation>Neue Verbindung...</translation>
     </message>
@@ -67750,7 +68039,7 @@ Fehler: %2</translation>
         <translation>Ein Bild wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsphotowidgetwrapper.cpp" line="125"/>
+        <location filename="../src/gui/editorwidgets/qgsphotowidgetwrapper.cpp" line="155"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -68925,27 +69214,26 @@ p, li { white-space: pre-wrap; }
         <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="267"/>
         <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="281"/>
         <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="285"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="295"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="312"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="382"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="612"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="706"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="754"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="765"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="842"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="856"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="970"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="993"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1004"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1060"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1066"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1076"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1082"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1087"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1093"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1098"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1788"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1797"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="301"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="378"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="608"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="702"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="750"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="761"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="838"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="853"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="967"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="990"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1001"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1057"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1063"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1073"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1079"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1084"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1090"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1095"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1785"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1794"/>
         <source>PostGIS</source>
         <translation>PostGIS</translation>
     </message>
@@ -68960,17 +69248,16 @@ p, li { white-space: pre-wrap; }
         <translation>Ungültiger Rückgabewert aus Codierungseinstellung</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="295"/>
         <source>Your database has no working PostGIS support.</source>
-        <translation>Ihre Datenbank hat keine funktionierende PostGIS-Unterstützung.</translation>
+        <translation type="obsolete">Ihre Datenbank hat keine funktionierende PostGIS-Unterstützung.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="312"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="301"/>
         <source>Your PostGIS installation has no GEOS support. Feature selection and identification will not work properly. Please install PostGIS with GEOS support (http://geos.refractions.net)</source>
         <translation>Diese PostGIS-Installation hat keine GEOS-Unterstützung. Objektauswahl und -identifizierung kann nicht richtig funktionieren. Bitte PostGIS mit GEOS-Unterstützung installieren (http://geos.refractions.net)</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="382"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="378"/>
         <source>SQL:%1
 result:%2
 error:%3
@@ -68981,12 +69268,12 @@ Fehler:%3
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="754"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="750"/>
         <source>Database connection was successful, but the accessible tables could not be determined.</source>
         <translation>Die Datenbankverbindung war erfolgreich, jedoch konnten die zugänglichen Tabellen nicht bestimmt werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="610"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="606"/>
         <source>Database connection was successful, but the accessible tables could not be determined. The error message from the database was:
 %1
 </source>
@@ -68995,12 +69282,12 @@ Fehler:%3
 </translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="460"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="456"/>
         <source>Unsupported spatial column type %1</source>
         <translation>Nicht unterstützter räumlicher Spaltentyp %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="704"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="700"/>
         <source>Database connection was successful, but the accessible tables could not be determined.
 The error message from the database was:
 %1</source>
@@ -69009,44 +69296,48 @@ Die Fehlermeldung der Datenbank war:
 %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="765"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="761"/>
         <source>Unable to get list of spatially enabled tables from the database</source>
         <translation>Konnte Liste der räumlichen Tabellen der Datenbank nicht bestimmen</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="842"/>
         <source>Retrieval of postgis version failed</source>
-        <translation>Bestimmen der PostGIS-Version schlug fehl</translation>
+        <translation type="obsolete">Bestimmen der PostGIS-Version schlug fehl</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="838"/>
+        <source>No PostGIS support in the database.</source>
+        <translation>Keine PostGIS-Unterstützung in der Datenbank.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="856"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="853"/>
         <source>Could not parse postgis version string '%1'</source>
         <translation>Unverständliche PostGIS-Version '%1'</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="968"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="965"/>
         <source>Connection error: %1 returned %2 [%3]</source>
         <translation>Verbindungsfehler: %1 ergab %2 [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="991"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="988"/>
         <source>Erroneous query: %1 returned %2 [%3]</source>
         <translation>Fehlerhafte Abfrage: %1 ergab %2 [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1004"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1001"/>
         <source>Query failed: %1
 Error: no result buffer</source>
         <translation>Abfrage gescheitert: %1
 Fehler: kein Ergebnispuffer</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1056"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1053"/>
         <source>Query: %1 returned %2 [%3]</source>
         <translation>Abfrage: %1 ergab %2 [%3]</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1064"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1061"/>
         <source>%1 cursor states lost.
 SQL: %2
 Result: %3 (%4)</source>
@@ -69055,63 +69346,63 @@ SQL: %2
 Ergebnis: %3 (%4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1076"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1073"/>
         <source>resetting bad connection.</source>
         <translation>Schlechte Verbindung wird zurückgesetzt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1082"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1079"/>
         <source>retry after reset succeeded.</source>
         <translation>Erneuter Versuch nach Rücksetzung erfolgreich.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1087"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1084"/>
         <source>retry after reset failed again.</source>
         <translation>Erneuter Versuch nach Rücksetzung schlug wieder fehl.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1093"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1090"/>
         <source>connection still bad after reset.</source>
         <translation>Verbindung nach Rücksetzung immer noch schlecht.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1098"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1095"/>
         <source>bad connection, not retrying.</source>
         <translation>Schlechte Verbindung, keine neuen Versuche.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1614"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1611"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1616"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1613"/>
         <source>Geometry</source>
         <translation>Geometrie</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1618"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1615"/>
         <source>Geography</source>
         <translation>Geographie</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1620"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1617"/>
         <source>TopoGeometry</source>
         <translation>Topo-Geometrie</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1622"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1619"/>
         <source>PcPatch</source>
         <translation>PcPatch</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1787"/>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1797"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1784"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1794"/>
         <source>Query could not be canceled [%1]</source>
         <translation>Abfrage konnte nicht abgebrochen werden [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1787"/>
+        <location filename="../src/providers/postgres/qgspostgresconn.cpp" line="1784"/>
         <source>PQgetCancel failed</source>
         <translation>PQgetCancel gescheitert</translation>
     </message>
@@ -69148,7 +69439,7 @@ Ergebnis: %3 (%4)</translation>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="1390"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="1395"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="1670"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2849"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2852"/>
         <source>PostGIS</source>
         <translation>PostGIS</translation>
     </message>
@@ -69375,52 +69666,52 @@ SQL: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2291"/>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2639"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2642"/>
         <source>PostGIS error while changing attributes: %1</source>
         <translation>PostGIS-Fehler beim Attributändern: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2488"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2491"/>
         <source>PostGIS error while changing geometry values: %1</source>
         <translation>PostGIS-Fehler beim Geometrieändern: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2849"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="2852"/>
         <source>result of extents query invalid: %1</source>
         <translation>Ergebnis der Ausmaßabfrage ungültig: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3162"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3165"/>
         <source>Geometry type and srid for empty column %1 of %2 undefined.</source>
         <translation>Geometrietyp und SRID für leere Spalte %1 in %2 undefiniert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3191"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3194"/>
         <source>Feature type or srid for %1 of %2 could not be determined or was not requested.</source>
         <translation>Objekttyp oder SRID für %1 aus %2 konnte nicht festgestellt werden und wurde nicht festgelegt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3216"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3219"/>
         <source>Editing and adding disabled for 2D+ layer (%1; %2)</source>
         <translation>Ändern und Hinzufügen auf 2D+-Layern abgeschaltet (%1; %2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3605"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3608"/>
         <source>PostgreSQL version: unknown</source>
         <translation>PostgreSQL-Version: unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3606"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3609"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3626"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3629"/>
         <source>PostgreSQL not connected</source>
         <translation>PostgreSQL nicht verbunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3629"/>
+        <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3632"/>
         <source>PostgreSQL/PostGIS provider
 %1
 PostGIS %2</source>
@@ -69437,52 +69728,52 @@ PostGIS %2</translation>
 <context>
     <name>QgsProject</name>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="700"/>
+        <location filename="../src/core/qgsproject.cpp" line="704"/>
         <source>Loading layer %1</source>
         <translation>Lade Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="823"/>
+        <location filename="../src/core/qgsproject.cpp" line="827"/>
         <source>Unable to open %1</source>
         <translation>Konnte %1 nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="836"/>
+        <location filename="../src/core/qgsproject.cpp" line="840"/>
         <source>Project File Read Error</source>
         <translation>Projektlesefehler</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="837"/>
+        <location filename="../src/core/qgsproject.cpp" line="841"/>
         <source>%1 at line %2 column %3</source>
         <translation>%1 in Zeile %2, Spalte %3</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="840"/>
+        <location filename="../src/core/qgsproject.cpp" line="844"/>
         <source>Project file read error: %1 at line %2 column %3</source>
         <translation>Projektdateifehler: %1 in Zeile %2, Spalte %3</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="847"/>
+        <location filename="../src/core/qgsproject.cpp" line="851"/>
         <source>%1 for file %2</source>
         <translation>%1 in Datei %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1145"/>
+        <location filename="../src/core/qgsproject.cpp" line="1149"/>
         <source>Unable to create backup file %1</source>
         <translation>Kann Sicherung %1 nicht anlegen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1159"/>
+        <location filename="../src/core/qgsproject.cpp" line="1163"/>
         <source>Unable to save to file %1</source>
         <translation>Konnte nicht in Datei %1 speichern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1026"/>
+        <location filename="../src/core/qgsproject.cpp" line="1030"/>
         <source>%1 is not writable. Please adjust permissions (if possible) and try again.</source>
         <translation>%1 ist nicht beschreibbar. Bitte passen Sie die Zugriffsrechte (wenn möglich) und versuchen Sie es erneut.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1189"/>
+        <location filename="../src/core/qgsproject.cpp" line="1193"/>
         <source>Unable to save to file %1. Your project may be corrupted on disk. Try clearing some space on the volume and check file permissions before pressing save again.</source>
         <translation>Konnte nicht in Datei %1 speichern. Das Projekt könnten auf der Festplatte defekt sein. Bitte machen sie etwas Platz auf der Festplatte frei und überprüfen Sie die Zugriffsrechte bevor Sie es erneut versuchen.</translation>
     </message>
@@ -69581,7 +69872,7 @@ Choose ignore to continue loading without the missing layers. Choose cancel to r
     </message>
     <message>
         <location filename="../src/app/qgsprojectproperties.cpp" line="992"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1334"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1335"/>
         <source>Coordinate System Restriction</source>
         <translation>Koordinatensystemeinschränkung</translation>
     </message>
@@ -69788,197 +70079,197 @@ Choose ignore to continue loading without the missing layers. Choose cancel to r
         <translation>Andere Einschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1246"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1253"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1259"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1247"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1254"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1260"/>
         <source>Map units (%1)</source>
         <translation>Karteneinheiten (%1)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1334"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1335"/>
         <source>CRS %1 was already selected</source>
         <translation>KBS %1 war bereits gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1354"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1355"/>
         <source>Coordinate System Restrictions</source>
         <translation>Koordinatensystemeinschränkung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1355"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1356"/>
         <source>The current selection of coordinate systems will be lost.
 Proceed?</source>
         <translation>Die aktuelle Koordinatensystemauswahl wird verloren gehen.
 Fortfahren?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1388"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1389"/>
         <source>Select print composer</source>
         <translation>Druckzusammenstellung wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1388"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1389"/>
         <source>Composer Title</source>
         <translation>Titel der Druckzusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1410"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1411"/>
         <source>Select restricted layers and groups</source>
         <translation>Eingeschränkte Layer und Gruppen wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1499"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1548"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1500"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1549"/>
         <source>Start checking QGIS Server</source>
         <translation>QGIS-Serverprüfung starten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1509"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1510"/>
         <source>Use short name for "%1"</source>
         <translation>Kurzname für "%1" verwenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1518"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1519"/>
         <source>Some layers and groups have the same name or short name</source>
         <translation>Einige Layer und Gruppen haben den gleichen Namen oder Kurznamen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1519"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1520"/>
         <source>Duplicate names:</source>
         <translation>Doppelte Namen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1525"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1526"/>
         <source>All names and short names of layer and group are unique</source>
         <translation>Alle Layer- und -kurznamen und Gruppen sind eindeutig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1530"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1531"/>
         <source>Some layer short names have to be updated:</source>
         <translation>Einige Layerkurznamen wurden aktualisiert:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1535"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1536"/>
         <source>All layer short names are well formed</source>
         <translation>Alle Layerkurznamen sind richtig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1540"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1541"/>
         <source>Some layer encodings are not set:</source>
         <translation>Einige Layerkodierungen sind nicht gesetzt:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1545"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1546"/>
         <source>All layer encodings are set</source>
         <translation>Alle Layerkodierungen sind gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1555"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1556"/>
         <source>Enter scale</source>
         <translation>Maßstab eingeben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1556"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1557"/>
         <source>Scale denominator</source>
         <translation>Maßstabsnenner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1577"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1578"/>
         <source>Load scales</source>
         <translation>Maßstäbe laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1578"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1600"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1579"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1601"/>
         <source>XML files (*.xml *.XML)</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1599"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1600"/>
         <source>Save scales</source>
         <translation>Maßstäbe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1751"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1752"/>
         <source>Select a valid symbol</source>
         <translation>Ein gültiges Symbol wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1757"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1758"/>
         <source>Invalid symbol : </source>
         <translation>Ungültiges Symbil : </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1814"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1815"/>
         <source>Update layer "%1" encoding</source>
         <translation>Aktualisiere Kodierung des Layers "%1"</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1838"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1942"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1839"/>
         <location filename="../src/app/qgsprojectproperties.cpp" line="1943"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1944"/>
         <source>Parameters:</source>
         <translation>Parameter:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1942"/>
         <location filename="../src/app/qgsprojectproperties.cpp" line="1943"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1944"/>
         <source>Select %1 from pull-down menu to adjust radii</source>
         <translation>%1 aus Menü wählen, um die Radien einzustellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1954"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1955"/>
         <source>Can only use ellipsoidal calculations when CRS transformation is enabled</source>
         <translation>Ellipsoide Berechnungen nur bei eingeschalteter KBS-Transformation möglich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1988"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1989"/>
         <source>Select Color</source>
         <translation>Farbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2002"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2003"/>
         <source>Select palette file</source>
         <translation>Palettendatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2013"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2022"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2014"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2023"/>
         <source>Invalid file</source>
         <translation>Ungültige Datei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2013"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2014"/>
         <source>Error, file does not exist or is not readable</source>
         <translation>Fehler, Datei nicht vorhanden oder nicht lesbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2022"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2023"/>
         <source>Error, no colors found in palette file</source>
         <translation>Fehler, keine Farben in der Palettendatei gefunden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2031"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2032"/>
         <source>Palette file</source>
         <translation>Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2051"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2052"/>
         <source>Error exporting</source>
         <translation>Fehler beim Export</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2051"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2052"/>
         <source>Error writing palette file</source>
         <translation>Fehler beim Schreiben der Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2096"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2097"/>
         <source>Invalid scale</source>
         <translation>Ungültiger Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2096"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2097"/>
         <source>The text you entered is not a valid scale.</source>
         <translation>Der eingegebene Text ist kein gültiger Maßstab.</translation>
     </message>
@@ -69991,676 +70282,675 @@ Fortfahren?</translation>
         <translation>Projekteigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="94"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="97"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="85"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="88"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="264"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="237"/>
         <source>General settings</source>
         <translation>Allgemeine Einstellungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="392"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="424"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="365"/>
         <source>Project title</source>
         <translation>Projekttitel</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="376"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="349"/>
         <source>Descriptive project name</source>
         <translation>Beschreibender Projektname</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="379"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="352"/>
         <source>Default project title</source>
         <translation>Projekttitelvorgabe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="281"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="254"/>
         <source>Selection color</source>
         <translation>Auswahlfarbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="316"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="289"/>
         <source>Background color</source>
         <translation>Hintergrundfarbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="448"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="405"/>
         <source>absolute</source>
         <translation>Absolut</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="453"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="410"/>
         <source>relative</source>
         <translation>Relativ</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="366"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="339"/>
         <source>Save paths</source>
         <translation>Pfade speichern</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="517"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="481"/>
         <source>Semi-minor</source>
         <translation>Nebenachse</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="494"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="458"/>
         <source>Semi-major</source>
         <translation>Hauptachse</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="106"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="97"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="109"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="100"/>
         <source>Coordinate Reference System</source>
         <translation>Koordinatenbezugssystem</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="118"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="109"/>
         <source>Identify layers</source>
         <translation>Layer abfragen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="130"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="133"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="121"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="124"/>
         <source>Default styles</source>
         <translation>Vorgabestile</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="142"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="145"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="133"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="136"/>
         <source>OWS server</source>
         <translation>OWS-Server</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="175"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="166"/>
         <source>Variables</source>
         <translation>Variablen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="461"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="418"/>
         <source>Checking this setting avoids visible edge artifacts when rendering this project as separate map tiles. Rendering performance will be degraded.</source>
         <translation>Anhaken diese Einstellung vermeidet sichtbare Kanteneffekte bei der Darstellung dieses Projektes in einzelnen Kartenkacheln. Die Darstellungsgeschwindigkeit wird davon beeinträchtigt.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="464"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="421"/>
         <source>Avoid artifacts when project is rendered as map tiles (degrades performance)</source>
         <translation>Kanteneffekte bei der Darstellung in Kartenkacheln vermeiden (beeinträchtigt Geschindigkeit)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="483"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="447"/>
         <source>Ellipsoid
 (for distance calculations)</source>
         <translation>Ellipsoid
 (für Abstandsberechnungen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="552"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="516"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="575"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="539"/>
         <source>Automatic</source>
         <translation>Automatisch</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1540"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1468"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1570"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1498"/>
         <source>Short name</source>
         <translation>Kurzname</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2179"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2245"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2107"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2173"/>
         <source>Deselect all</source>
         <translation>Alle abwählen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2282"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2210"/>
         <source>Test configuration</source>
         <translation>Testkonfiguration</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2290"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2218"/>
         <source>Launch</source>
         <translation>Starten</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2439"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2349"/>
         <source>Expression Variables</source>
         <translation>Ausdrucksvariablen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="588"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="552"/>
         <source>Manual</source>
         <translation>Manuell</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="595"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="559"/>
         <source>The number of decimal places for the manual option</source>
         <translation>Setzt die Anzahl Dezimalstellen für die manuelle Option</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="608"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="572"/>
         <source>decimal places</source>
         <translation>Dezimalstellen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="627"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="591"/>
         <source>Project scales</source>
         <translation>Projektmaßstäbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="647"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="658"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="669"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="680"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="912"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="965"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1054"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1101"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="611"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="622"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="633"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="644"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="849"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="902"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="991"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1038"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="766"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="721"/>
         <source>Enable 'on the fly' CRS transformation</source>
         <translation>Spontan-KBS-Transformation aktivieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="121"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="112"/>
         <source>Identifiable layers</source>
         <translation>Abfragbare Layer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="831"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="777"/>
         <source>Project layers</source>
         <translation>Projektlayer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="841"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2146"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2232"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="787"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2074"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2160"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="846"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="792"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="851"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="797"/>
         <source>Identifiable</source>
         <translation>Abfragbar</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1044"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="981"/>
         <source>Marker</source>
         <translation>Markierung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="923"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="860"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="900"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="837"/>
         <source>Default symbols</source>
         <translation>Vorlagesymbole</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1065"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1002"/>
         <source>Fill</source>
         <translation>Füllung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1005"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="942"/>
         <source>Color Ramp</source>
         <translation>Farbverlauf</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1126"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1063"/>
         <source>Transparency</source>
         <translation>Transparenz</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1161"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1098"/>
         <source> %</source>
         <translation> %</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1198"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1135"/>
         <source>Style Manager</source>
         <translation>Stilverwaltung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1115"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1052"/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="166"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="157"/>
         <source>Relations</source>
         <translation>Beziehungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="408"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="381"/>
         <source>Project file</source>
         <translation>Projektdatei</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1186"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1123"/>
         <source>Assign random colors to symbols</source>
         <translation>Den Symbolen zufällige Farben zuordnen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1220"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1157"/>
         <source>Project colors</source>
         <translation>Projektfarben</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1226"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1163"/>
         <source>Copy colors</source>
         <translation>Farben kopieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1246"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1183"/>
         <source>Add color</source>
         <translation>Farbe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1253"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1190"/>
         <source>Paste colors</source>
         <translation>Farben einfügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1260"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1197"/>
         <source>Remove color</source>
         <translation>Farbe entfernen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1270"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1207"/>
         <source>Import</source>
         <translation>Importieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1277"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1214"/>
         <source>Export</source>
         <translation>Exportieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1331"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1259"/>
         <source>Service capabilities</source>
         <translation>Diensteigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1362"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1365"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1290"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1293"/>
         <source>The web site URL of the service provider.</source>
         <translation>Die Website-URL des Dienstanbieters.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1379"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1307"/>
         <source>Person</source>
         <translation>Person</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1352"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1280"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1496"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1424"/>
         <source>Organization</source>
         <translation>Organisation</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1372"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1300"/>
         <source>Online resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1409"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1337"/>
         <source>E-Mail</source>
         <translation>E-Mail</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1426"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1354"/>
         <source>Phone</source>
         <translation>Telefon</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1446"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1374"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1513"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1441"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1506"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1434"/>
         <source>Access constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1479"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1407"/>
         <source>Keyword list</source>
         <translation>Schlüsselwortliste</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1580"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1508"/>
         <source>WMS capabilities</source>
         <translation>WMS-Capabilities</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1897"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1825"/>
         <source>Add geometry to feature response</source>
         <translation>Geometrie der Objektantwort beifügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1607"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1535"/>
         <source>Min. X</source>
         <translation>Min. X</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1624"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1552"/>
         <source>Min. Y</source>
         <translation>Min. Y</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1641"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1569"/>
         <source>Max. X</source>
         <translation>Max. X</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1658"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1586"/>
         <source>Max. Y</source>
         <translation>Max. Y</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1675"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1603"/>
         <source>Use Current Canvas Extent</source>
         <translation>Aktuelle Anzeigegrenzen übernehmen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1845"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1773"/>
         <source>Used</source>
         <translation>Benutzte</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1698"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1626"/>
         <source>Exclude composers</source>
         <translation>Druckzusammenstellungen ausschließen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2216"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2144"/>
         <source>WCS capabilities</source>
         <translation>WCS-Capabilities</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1757"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1685"/>
         <source>Exclude layers</source>
         <translation>Layer ausschließen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1872"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1800"/>
         <source>Quality for JPEG images ( 10 : smaller image - 100 : best quality )</source>
         <translation>Qualität für JPEG-Bilder ( 10 : kleineres Bilder - 100 : beste Qualität )</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1863"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1791"/>
         <source>Use layer ids as names</source>
         <translation>Layer-IDs als Namen verwenden</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="474"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="438"/>
         <source>Measurements</source>
         <translation>Messungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="501"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="465"/>
         <source>Units for distance measurement</source>
         <translation>Einheit für Abstandsmessung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="524"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="488"/>
         <source>Units for area measurement</source>
         <translation>Einheiten  für Flächenmessung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="543"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="507"/>
         <source>Coordinate display</source>
         <translation>Koordinatenanzeige</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="559"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="523"/>
         <source>Display coordinates using</source>
         <translation>Koordinatenanzeige in</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="572"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="536"/>
         <source>Automatically sets the number of decimal places to use when displaying coordinates</source>
         <translation>Setzt die Anzahl von Nachkommastellen für die Koordinatenanzeige automatisch</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="585"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="549"/>
         <source>Manually set the number of decimal places to use when displaying coordinates</source>
         <translation>Setzt die Anzahl von Nachkommastellen zur Koordinatenanzeige manuell</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1389"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1392"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1317"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1320"/>
         <source>The contact person e-mail for the service.</source>
         <translation>Die E-Mail-Adresses der Kontaktperson des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1399"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1402"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1327"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1330"/>
         <source>The contact person name for the service.</source>
         <translation>Der Name der Kontaktperson des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1416"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1419"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1344"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1347"/>
         <source>The name of the service provider.</source>
         <translation>Der Name des Dienstanbieters.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1436"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1439"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1364"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1367"/>
         <source>The title should be brief yet descriptive enough to identify this service.</source>
         <translation>Der Titel sollte den Dienst kurz aber prägnant identifizieren.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1456"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1459"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1384"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1387"/>
         <source>The contact person phone for the service.</source>
         <translation>Die Telefonnummer der Kontaktperson des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1466"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1394"/>
         <source>The abstract is a descriptive narrative providing more information about the service.</source>
         <translation>Die Zusammenfassung ist ein beschreibender Text, der mehr Informationen zum Dienst bietet.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1486"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1489"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1414"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1417"/>
         <source>List of keywords separated by comma to help catalog searching.</source>
         <translation>Liste der durch Komma getrennten Schlüsselworte zur Katalogsuche.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1520"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1448"/>
         <source>Fees applied to the service.</source>
         <translation>Gebühren des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1530"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1458"/>
         <source>Access constraints applied to the service.</source>
         <translation>Zugriffsbeschränkungen des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1547"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1475"/>
         <source>The contact person position for the service.</source>
         <translation>Die Position der Kontaktperson des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1560"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1563"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1488"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1491"/>
         <source>A name used to identify the root layer. The short name is a text string used for machine-to-machine communication.</source>
         <translation>Name zur Identifikation des Wurzellayers. Der Kurzname ist eine Zeichenkette, die für die Kommunikation zwischen Maschinen verwendet wird.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1953"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1881"/>
         <source>GetFeatureInfo geometry precision (decimal places)</source>
         <translation>GetFeatureInfo-Geometriegenauigkeit (Dezimalstellen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1989"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1917"/>
         <source>INSPIRE (European directive)</source>
         <translation>INSPIRE (Europäische Richtlinie)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2011"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1939"/>
         <source>Service language</source>
         <translation>Dienstsprache</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2018"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1946"/>
         <source>Scenario 2 - INSPIRE related fields using embedded service metadata:</source>
         <translation>Szenario 2 - INSPIRE bezogene Felder verwenden eingebettete Dienstmetadaten:</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2040"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1968"/>
         <source>Metadata date</source>
         <translation>Metadaten-Datum</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2057"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1985"/>
         <source>Last revision date</source>
         <translation>Letztes Bearbeitungsdatum</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2067"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1995"/>
         <source>Scenario 1 - INSPIRE related fields using referenced external service metadata</source>
         <translation>Szenario 1 - INSPIRE bezogenen Felder beziehen sich auf externen Dienstmetadaten</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2082"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2010"/>
         <source>Metadata URL</source>
         <translation>Metadaten-URL</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2090"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2018"/>
         <source>application/vnd.iso.19139+xml</source>
         <translation>application/vnd.iso.19139+xml</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2095"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2023"/>
         <source>application/vnd.ogc.csw.GetRecordByIdResponse_xml</source>
         <translation>application/vnd.ogc.csw.GetRecordByIdResponse_xml</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2100"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2028"/>
         <source>application/vnd.ogc.csw_xml</source>
         <translation>application/vnd.ogc.csw_xml</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2108"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2036"/>
         <source>URL mime/type</source>
         <translation>URL mime/type</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2130"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2058"/>
         <source>WFS capabilities (also influences DXF export)</source>
         <translation>WFS-Eigenschaften (beeinflußt auch DXF-Ausgabe)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2151"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2237"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2079"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2165"/>
         <source>Published</source>
         <translation>Veröffentlich</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2156"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2084"/>
         <source>Geometry precision (decimal places)</source>
         <translation>Geometriegenauigkeit (Dezimalstellen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2161"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2089"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2166"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2094"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2171"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2099"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2186"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2252"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2114"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2180"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="154"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="157"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="145"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="148"/>
         <source>Macros</source>
         <translation>Makros</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1977"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2195"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2261"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1905"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2123"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2189"/>
         <source>Advertised URL</source>
         <translation>Angezeigte URL</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1906"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1834"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1935"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1863"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1942"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1870"/>
         <source>Maximums for GetMap request</source>
         <translation>Maxima für GetMap-Abfragen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1589"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1517"/>
         <source>Advertised extent</source>
         <translation>Angezeigte Ausmasse</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1816"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1744"/>
         <source>CRS restrictions</source>
         <translation>KBS-Beschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2397"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2316"/>
         <source>Python macros</source>
         <translation>Python-Makros</translation>
     </message>
@@ -71937,232 +72227,232 @@ Auf Hilfeknopf klicken um die gültigen Erzeugungsoptionen diese Formats zu erfa
 <context>
     <name>QgsRasterLayerProperties</name>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="74"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="73"/>
         <source>Not Set</source>
         <translation>Nicht gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="228"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="229"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="229"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="230"/>
         <source>Large resolution raster layers can slow navigation in QGIS.</source>
         <translation>Hochaufgelöste Raster können das Navigieren in QGIS verlangsamen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="230"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="231"/>
         <source>By creating lower resolution copies of the data (pyramids) performance can be considerably improved as QGIS selects the most suitable resolution to use depending on the level of zoom.</source>
         <translation>Durch das Erstellen geringer aufgelöster Kopien der Daten (Pyramiden), kann die Darstellung beschleunigt werden, da QGIS die optimale Auflösung entsprechend der gewählten Zoomeinstellung aussucht.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="231"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="232"/>
         <source>You must have write access in the directory where the original data is stored to build pyramids.</source>
         <translation>Sie brauchen Schreibrecht in dem Ordner mit den Originaldaten, um Pyramiden zu erstellen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="232"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="233"/>
         <source>Please note that building internal pyramids may alter the original data file and once created they cannot be removed!</source>
         <translation>Bitte beachten Sie, dass der Aufbau von internen Pyramiden die Originaldatei ändern kann und einmal angelegt nicht gelöscht werden kann!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="233"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="234"/>
         <source>Please note that building internal pyramids could corrupt your image - always make a backup of your data first!</source>
         <translation>Bitte beachten sie, dass der Aufbau von internen Pyramiden ihr Bild beschädigen kann - bitte sichern Sie Ihre Daten immer vorher!</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="420"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="421"/>
         <source>Layer Properties - %1</source>
         <translation>Layereigenschaften - %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="248"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="251"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="249"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="252"/>
         <source>Nearest neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="100"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="99"/>
         <source>Save as Default</source>
         <translation>Als Vorgabe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="249"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="902"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="250"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="903"/>
         <source>Bilinear</source>
         <translation>Bilinear</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="250"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="906"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="251"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="907"/>
         <source>Cubic</source>
         <translation>Kubisch</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="252"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="916"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="253"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="917"/>
         <source>Average</source>
         <translation>Mittlere</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="290"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="291"/>
         <source>Select color</source>
         <translation>Farbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="317"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="318"/>
         <source>None</source>
         <translation>Keine</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="444"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1253"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="445"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1254"/>
         <source>Red</source>
         <translation>Rot</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="445"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1253"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="446"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1254"/>
         <source>Green</source>
         <translation>Grün</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="446"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1253"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="447"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1254"/>
         <source>Blue</source>
         <translation>Blau</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="447"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="468"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1253"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1264"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="448"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="469"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1254"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1265"/>
         <source>Percent Transparent</source>
         <translation>Prozent Transparenz</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="459"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="460"/>
         <source>Gray</source>
         <translation>Grau</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="463"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="464"/>
         <source>Indexed Value</source>
         <translation>Indizierter Wert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="466"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="467"/>
         <source>From</source>
         <translation>Von</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="467"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="468"/>
         <source>To</source>
         <translation>Nach</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="657"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="658"/>
         <source>not defined</source>
         <translation>undefiniert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="698"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="699"/>
         <source>Columns: %1</source>
         <translation>Spalten: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="699"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="700"/>
         <source>Rows: %1</source>
         <translation>Zeilen: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="704"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="705"/>
         <source>Columns: </source>
         <translation>Spalten: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="704"/>
         <location filename="../src/app/qgsrasterlayerproperties.cpp" line="705"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="711"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="722"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="706"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="712"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="723"/>
         <source>n/a</source>
         <translation>n/a</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="705"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="706"/>
         <source>Rows: </source>
         <translation>Zeilen: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="711"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="722"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="712"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="723"/>
         <source>No-Data Value: </source>
         <translation>LeerWert: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="718"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="719"/>
         <source>No-Data Value: %1</source>
         <translation>Kein-Datum-Wert: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1008"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1276"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1009"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1277"/>
         <source>Write access denied</source>
         <translation>Schreibzugriff verweigert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1009"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1010"/>
         <source>Write access denied. Adjust the file permissions and try again.</source>
         <translation>Schreibzugriff verweigert. Passen Sie die Dateizugriffsrechte an und versuchen Sie es erneut.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1013"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1019"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1024"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1029"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1014"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1020"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1025"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1030"/>
         <source>Building pyramids failed.</source>
         <translation>Erstellung von Pyramiden fehlgeschlagen.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1014"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1015"/>
         <source>The file was not writable. Some formats do not support pyramid overviews. Consult the GDAL documentation if in doubt.</source>
         <translation>Die Datei war nicht beschreibbar. Einige Formate unterstützen Übersichtspyramiden nicht. Gucken Sie im Zweifel in die GDAL-Dokumentation.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1020"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1030"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1021"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1031"/>
         <source>Building pyramid overviews is not supported on this type of raster.</source>
         <translation>Für diese Art von Raster können keine Pyramiden erstellt werden. </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1025"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1026"/>
         <source>Building internal pyramid overviews is not supported on raster layers with JPEG compression and your current libtiff library.</source>
         <translation>Erstellung von interne Pyramiden-Übersichten weder für JPEG-komprimierte Rasterlayer noch durch Ihre aktuelle libtiff-Bibliothek unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1238"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1239"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1238"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1404"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1239"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1405"/>
         <source>Textfile</source>
         <translation>Textdatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1250"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1251"/>
         <source>QGIS Generated Transparent Pixel Value Export File</source>
         <translation>QGIS-erzeugte Export-Datei für transparente Pixelwerte</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1264"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1265"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1276"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1277"/>
         <source>Write access denied. Adjust the file permissions and try again.
 
 </source>
@@ -72170,17 +72460,17 @@ Auf Hilfeknopf klicken um die gültigen Erzeugungsoptionen diese Formats zu erfa
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1404"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1405"/>
         <source>Open file</source>
         <translation>Datei öffnen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1483"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1484"/>
         <source>Import Error</source>
         <translation>Importfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1483"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1484"/>
         <source>The following lines contained errors
 
 %1</source>
@@ -72189,62 +72479,62 @@ Auf Hilfeknopf klicken um die gültigen Erzeugungsoptionen diese Formats zu erfa
 %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1488"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1489"/>
         <source>Read access denied</source>
         <translation>Lesezugriff verweigert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1488"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1489"/>
         <source>Read access denied. Adjust the file permissions and try again.
 
 </source>
         <translation>Lesezugriff verweigert. Passe Dateirechte an und versuche es erneut.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1666"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1686"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1667"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1687"/>
         <source>Default Style</source>
         <translation>Vorgabestil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1700"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1701"/>
         <source>Load layer properties from style file</source>
         <translation>Layereigenschaften aus Stildatei laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1702"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1733"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1703"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1736"/>
         <source>QGIS Layer Style File</source>
         <translation>QGIS-Layerstildatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1719"/>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1748"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1722"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1751"/>
         <source>Saved Style</source>
         <translation>Gespeicherter Stil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1731"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="1734"/>
         <source>Save layer properties as style file</source>
         <translation>Layereigenschaften als Stildatei speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="95"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="94"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="97"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="96"/>
         <source>Load Style...</source>
         <translation>Stil laden...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="98"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="97"/>
         <source>Save Style...</source>
         <translation>Stil speichern...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="101"/>
+        <location filename="../src/app/qgsrasterlayerproperties.cpp" line="100"/>
         <source>Restore Default</source>
         <translation>Vorgabe wiederherstellen</translation>
     </message>
@@ -72788,37 +73078,37 @@ p, li { white-space: pre-wrap; }
         <translation>Ausgabeverzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="182"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="184"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="183"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="185"/>
         <source>The directory %1 contains files which will be overwritten: %2</source>
         <translation>Das Verzeichnis %1 enthält Dateien die überschrieben werden: %2</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="203"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="194"/>
         <source>Select output file</source>
         <translation>Ausgabedatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="203"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="194"/>
         <source>GeoTIFF</source>
         <translation>GeoTIFF</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="421"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="413"/>
         <source>layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="424"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="416"/>
         <source>user defined</source>
         <translation>Benutzerdefiniert</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="429"/>
+        <location filename="../src/gui/qgsrasterlayersaveasdialog.cpp" line="421"/>
         <source>Resolution (current: %1)</source>
         <translation>Auflösung (aktuell: %1)</translation>
     </message>
@@ -73644,37 +73934,77 @@ standard deviation ×</source>
         <translation>Bearbeitungsstatus umschalten</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="60"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="50"/>
+        <source>Toggle editing mode for child layer</source>
+        <translation>Bearbeitungsmodus der Kindlayer umschalten</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="56"/>
+        <source>Save child layer edits</source>
+        <translation>Kindlayeränderungen speichern</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="62"/>
         <source>Add feature</source>
         <translation>Objekt hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="66"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="63"/>
+        <source>Add child feature</source>
+        <translation>Kindobjekt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="69"/>
         <source>Delete feature</source>
         <translation>Objekt löschen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="72"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="70"/>
+        <source>Delete child feature</source>
+        <translation>Kindobjekt löschen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="76"/>
         <source>Link feature</source>
         <translation>Objekt verknüpfen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="78"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="77"/>
+        <source>Link existing child features</source>
+        <translation>Vorhandene Kindobjekte verknüpfen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="83"/>
         <source>Unlink feature</source>
         <translation>Objektverknüpfung lösen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="85"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="84"/>
+        <source>Unlink child feature</source>
+        <translation>Kindobjektverknüpfung lösen</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="91"/>
         <source>Form view</source>
         <translation>Formularansicht</translation>
     </message>
     <message>
         <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="92"/>
+        <source>Switch to form view</source>
+        <translation>Auf Formularansicht umschalten</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="99"/>
         <source>Table view</source>
         <translation>Tabellenansicht</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="54"/>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="100"/>
+        <source>Switch to table view</source>
+        <translation>Auf Tabellenansicht umschalten</translation>
+    </message>
+    <message>
+        <location filename="../src/gui/qgsrelationeditorwidget.cpp" line="55"/>
         <source>Save layer edits</source>
         <translation>Layeränderungen speichern</translation>
     </message>
@@ -73738,47 +74068,47 @@ standard deviation ×</source>
 <context>
     <name>QgsRelationReferenceWidget</name>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="117"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="101"/>
         <source>Open related feature form</source>
         <translation>Formular zum verbundenen Objekt öffnen</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="123"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="107"/>
         <source>Highlight feature</source>
         <translation>Objekt hervorheben</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="124"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="108"/>
         <source>Scale and highlight feature</source>
         <translation>Objekt skalieren und hervorheben</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="125"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="109"/>
         <source>Pan and highlight feature</source>
         <translation>Zum Objekt bewegen und hervorheben</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="135"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="119"/>
         <source>Select on map</source>
         <translation>Auf der Karte wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="142"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="126"/>
         <source>No selection</source>
         <translation>Keine Auswahl</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="156"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="140"/>
         <source>The relation is not valid. Please make sure your relation definitions are ok.</source>
         <translation>Die Beziehung ist ungültig. Bitte sicherstellen, dass die Beziehungsdefinitionen richtig sind.</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="305"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="289"/>
         <source>%1 (no selection)</source>
         <translation>%1 (keine Auswahl)</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="674"/>
+        <location filename="../src/gui/editorwidgets/qgsrelationreferencewidget.cpp" line="662"/>
         <source>Identify a feature of %1 to be associated. Press &lt;ESC&gt; to cancel.</source>
         <translation>Zuzuordnendes Obekt auf %1 wählen. <ESC> bricht ab. </translation>
     </message>
@@ -73805,7 +74135,7 @@ standard deviation ×</source>
     </message>
     <message>
         <location filename="../src/ui/qgsrendererrulepropsdialogbase.ui" line="35"/>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="723"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="725"/>
         <source>Filter</source>
         <translation>Filter</translation>
     </message>
@@ -73835,24 +74165,24 @@ standard deviation ×</source>
         <translation>Symbol</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="679"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="682"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="679"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="682"/>
         <source>Filter expression parsing error:
 </source>
         <translation>Filterausdrucksfehler:
 </translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="700"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="703"/>
         <source>Evaluation error</source>
         <translation>Auswertungsfehler</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="723"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="725"/>
         <source>Filter returned %n feature(s)</source>
         <comment>number of filtered features</comment>
         <translation>
@@ -74096,52 +74426,52 @@ standard deviation ×</source>
 <context>
     <name>QgsRuleBasedRendererV2Model</name>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="801"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="803"/>
         <source>(no filter)</source>
         <translation>(kein Filter)</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="828"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="830"/>
         <source><li><nobr>%1 features also in rule %2</nobr></li></source>
         <translation><li><nobr>%1 Objekte auch in Regel %2</nobr></li></translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Label</source>
         <translation>Beschriftung</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Rule</source>
         <translation>Regel</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Min. scale</source>
         <translation>Min. Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Duplicate count</source>
         <translation>Doppelte</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="893"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="895"/>
         <source>Max. scale</source>
         <translation>Max. Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="900"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="902"/>
         <source>Number of features in this rule.</source>
         <translation>Anzahl der Objekte in dieser Regel.</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="904"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="906"/>
         <source>Number of features in this rule which are also present in other rule(s).</source>
         <translation>Anzahl von Objekten in dieser Regel, die auch in anderen Regeln vorkommen.</translation>
     </message>
@@ -74239,12 +74569,12 @@ standard deviation ×</source>
         <translation>"%1" wird als ungültiger Nenner ignoriert.</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="532"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="535"/>
         <source>Calculating feature count.</source>
         <translation>Objektanzahl wird berechnet.</translation>
     </message>
     <message>
-        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="532"/>
+        <location filename="../src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp" line="535"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
@@ -75537,107 +75867,107 @@ verbesserung</translation>
 <context>
     <name>QgsSpatiaLiteProvider</name>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="576"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="581"/>
         <source>Binary object (BLOB)</source>
         <translation>Binärobjekt (BLOB)</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="577"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="582"/>
         <source>Text</source>
         <translation>Text</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="578"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="583"/>
         <source>Decimal number (double)</source>
         <translation>Dezimalzahl (double)</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="579"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="584"/>
         <source>Whole number (integer)</source>
         <translation>Ganzzahl (integer)</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="705"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="710"/>
         <source>Retrieval of spatialite version failed</source>
         <translation>Bestimmen der SpatiaLite-Version schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="705"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="720"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="818"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3502"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3538"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4061"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4237"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4275"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4319"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4339"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4359"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4480"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4682"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4752"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4868"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4906"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4987"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4997"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="710"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="725"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="826"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3390"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3453"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3524"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3560"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4083"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4259"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4297"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4341"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4361"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4381"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4502"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4618"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4704"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4774"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4890"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4928"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5009"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5019"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="720"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="725"/>
         <source>Could not parse spatialite version string '%1'</source>
         <translation>Unverständliche SpatiaLite-Version '%1'</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="818"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3502"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3538"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3768"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3805"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3846"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3915"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4021"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4061"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4105"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4237"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4275"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4319"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4339"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4359"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4480"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4682"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4752"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4868"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4906"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4987"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="826"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3390"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3453"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3524"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3560"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3790"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3827"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3868"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3937"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4043"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4083"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4127"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4259"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4297"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4341"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4361"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4381"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4502"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4618"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4704"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4774"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4890"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4928"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5009"/>
         <source>SQLite error: %2
 SQL: %1</source>
         <translation>SQLite-Fehler:%2
 SQL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="890"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3368"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3431"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3768"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3846"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3915"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4021"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4105"/>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4596"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="901"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3390"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3453"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3790"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3868"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3937"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4043"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4127"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4618"/>
         <source>unknown cause</source>
         <translation>unbekannte Ursache</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="4997"/>
+        <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5019"/>
         <source>FAILURE: Field %1 not found.</source>
         <translation>FEHLER: Feld %1 nicht gefunden.</translation>
     </message>
@@ -75831,11 +76161,25 @@ Bitte einen neuen Namen angeben:</translation>
     </message>
     <message>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="464"/>
+        <source>SpatiaLite metadata check failed</source>
+        <translation>SpatiaLite-Metadatenprüfung fehlgeschlagen</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="465"/>
+        <source>Failure getting table metadata ... is this really a SpatialLite database? %1
+
+%2</source>
+        <translation>Konnte Metadaten nicht bestimmen ... ist dies wirklich eine SpatiaLite-Datenbank? %1
+
+%2</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="468"/>
         <source>SpatiaLite Error</source>
         <translation>SpatiaLite-Fehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="465"/>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="469"/>
         <source>Unexpected error when working with: %1
 
 %2</source>
@@ -77126,17 +77470,17 @@ Es gab ein Problem mit Ihrer Symboldatenbank.</translation>
         <translation>SVG-Bemerkung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgssvgannotationdialog.cpp" line="41"/>
+        <location filename="../src/app/qgssvgannotationdialog.cpp" line="40"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgssvgannotationdialog.cpp" line="64"/>
+        <location filename="../src/app/qgssvgannotationdialog.cpp" line="63"/>
         <source>Select SVG file</source>
         <translation>SVG-Datei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgssvgannotationdialog.cpp" line="64"/>
+        <location filename="../src/app/qgssvgannotationdialog.cpp" line="63"/>
         <source>SVG files</source>
         <translation>SVG-Dateien</translation>
     </message>
@@ -77144,23 +77488,23 @@ Es gab ein Problem mit Ihrer Symboldatenbank.</translation>
 <context>
     <name>QgsSvgCache</name>
     <message>
-        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="453"/>
+        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="466"/>
         <source>SVG request failed [error: %1 - url: %2]</source>
         <translation>SVG-Abfrage gescheitert [Fehler: %1 - URL %2]</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="453"/>
-        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="476"/>
+        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="466"/>
+        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="489"/>
         <source>SVG</source>
         <translation>SVG</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="476"/>
+        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="489"/>
         <source>SVG request error [status: %1 - reason phrase: %2]</source>
         <translation>SVG-Abfragefehler [Status: %1 - Grund: %2]</translation>
     </message>
     <message>
-        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="964"/>
+        <location filename="../src/core/symbology-ng/qgssvgcache.cpp" line="977"/>
         <source>%1 of %2 bytes of svg image downloaded.</source>
         <translation>%1 von %2 Bytes des SVG-Bilds geladen.</translation>
     </message>
@@ -77495,12 +77839,12 @@ Es gab ein Problem mit Ihrer Symboldatenbank.</translation>
 <context>
     <name>QgsTextAnnotationDialog</name>
     <message>
-        <location filename="../src/app/qgstextannotationdialog.cpp" line="50"/>
+        <location filename="../src/app/qgstextannotationdialog.cpp" line="51"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgstextannotationdialog.cpp" line="36"/>
+        <location filename="../src/app/qgstextannotationdialog.cpp" line="37"/>
         <source>Select font color</source>
         <translation>Schriftfarbe wählen</translation>
     </message>
@@ -78339,7 +78683,7 @@ Fehler war:%2</translation>
 <context>
     <name>QgsValueRelationWidgetWrapper</name>
     <message>
-        <location filename="../src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp" line="127"/>
+        <location filename="../src/gui/editorwidgets/qgsvaluerelationwidgetwrapper.cpp" line="118"/>
         <source>(no selection)</source>
         <translation>(keine Auswahl)</translation>
     </message>
@@ -78388,62 +78732,62 @@ Fehler war:%2</translation>
 <context>
     <name>QgsVectorDataProvider</name>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="130"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="136"/>
         <source>Codec %1 not found. Falling back to system locale</source>
         <translation>Codec %1 nicht gefunden. Auf System-Codec zurückgegriffen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="158"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="164"/>
         <source>Add Features</source>
         <translation>Objekte hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="164"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="170"/>
         <source>Delete Features</source>
         <translation>Objekte löschen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="170"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="176"/>
         <source>Change Attribute Values</source>
         <translation>Attributwerte ändern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="176"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="182"/>
         <source>Add Attributes</source>
         <translation>Attribute hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="182"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="188"/>
         <source>Delete Attributes</source>
         <translation>Attribute löschen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="189"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="195"/>
         <source>Create Spatial Index</source>
         <translation>Räumlichen Index erstellen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="195"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="201"/>
         <source>Fast Access to Features at ID</source>
         <translation>Schneller Objektzugriff nach ID</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="201"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="207"/>
         <source>Change Geometries</source>
         <translation>Geometrien ändern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="207"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="213"/>
         <source>Presimplify Geometries</source>
         <translation>Geometrievereinfachung beim Laden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="213"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="219"/>
         <source>Presimplify Geometries with Validity Check</source>
         <translation>Geometrievereinfachung beim Laden unter Beibehaltung der Topologie</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectordataprovider.cpp" line="219"/>
+        <location filename="../src/core/qgsvectordataprovider.cpp" line="225"/>
         <source>Simultaneous Geometry and Attribute Updates</source>
         <translation>Gemeinsame Änderung von Geometrie und Attributen</translation>
     </message>
@@ -78597,151 +78941,151 @@ Fehler war:%2</translation>
 <context>
     <name>QgsVectorLayer</name>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="734"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="735"/>
         <source>Updating feature count for layer %1</source>
         <translation>Objektanzahl des Layers %1 wird aktualisiert</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="734"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="735"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="735"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="736"/>
         <source>QGIS</source>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2262"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2319"/>
         <source>ERROR: no provider</source>
         <translation>FEHLER: kein Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2268"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2325"/>
         <source>ERROR: layer not editable</source>
         <translation>FEHLER: Layer ist nicht veränderbar</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2285"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2342"/>
         <source>Commit errors:
   %1</source>
         <translation>Commit-Fehler:
   %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3481"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3594"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3487"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3600"/>
         <source>Layer comment</source>
         <translation>Layerkommentar</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3494"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3607"/>
         <source>Storage type of this layer</source>
         <translation>Speichertyp dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3502"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3615"/>
         <source>Description of this provider</source>
         <translation>Beschreibung dieses Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3509"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3622"/>
         <source>Source for this layer</source>
         <translation>Quelle dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3526"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3639"/>
         <source>Geometry type of the features in this layer</source>
         <translation>Geometrietyp der Objekte dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3535"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3648"/>
         <source>Primary key attributes</source>
         <translation>Primärschlüsselattribute</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3546"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3659"/>
         <source>The number of features in this layer</source>
         <translation>Anzahl der Objekte dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3560"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3673"/>
         <source>Extents</source>
         <translation>Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3564"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3677"/>
         <source>In layer spatial reference system units</source>
         <translation>In Bezugssystemeinheiten des Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3630"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3665"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3743"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3778"/>
         <source>In project spatial reference system units</source>
         <translation>In Bezugssystemeinheiten des Projekts</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3643"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3756"/>
         <source>Layer Spatial Reference System</source>
         <translation>Räumliches Bezugssystem des Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3654"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3767"/>
         <source>Project (Output) Spatial Reference System</source>
         <translation>Räumliches Bezugssystem des Projekts (Ausgabe)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3676"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3789"/>
         <source>Attribute field info</source>
         <translation>Attributfeldinformationen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3613"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3632"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3726"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3745"/>
         <source>xMin,yMin %1,%2 : xMax,yMax %3,%4</source>
         <translation>xMin,yMin %1;%2 : xMax,yMax %3;%4</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3551"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3664"/>
         <source>Capabilities of this layer</source>
         <translation>Funktionalität dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3618"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3731"/>
         <source>unknown extent</source>
         <translation>Unbekannte Ausmaße</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3667"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3780"/>
         <source>(Invalid transformation of layer extents)</source>
         <translation>(Transformation der Layerausdehnung ungültig)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3682"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3795"/>
         <source>Field</source>
         <translation>Feld</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3685"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3798"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3688"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3801"/>
         <source>Length</source>
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3691"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3804"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3694"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3807"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
@@ -78930,196 +79274,196 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsVectorLayerProperties</name>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="823"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="928"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="833"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="940"/>
         <source>QGIS Layer Style File</source>
         <translation>QGIS-Layerstildatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="823"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="923"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="833"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="935"/>
         <source>SLD File</source>
         <translation>SLD-Datei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="177"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="176"/>
         <source>Load from database</source>
         <translation>Aus Datenbank laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="185"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="184"/>
         <source>Save in database (%1)</source>
         <translation>In Datenbank speichern (%1)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="300"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="299"/>
         <source>Layer Properties - %1</source>
         <translation>Layereigenschaften - %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="324"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="412"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="323"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="411"/>
         <source>Stop editing mode to enable this.</source>
         <translation>Bearbeitungsmodus beenden, um dies zu aktivieren.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="360"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="359"/>
         <source>Insert expression</source>
         <translation>Ausdruck einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="393"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="392"/>
         <source>This button opens the query builder and allows you to create a subset of features to display on the map canvas rather than displaying all features in the layer</source>
         <translation>Dieser Knopf öffnet die Abfrageerstellung und ermöglicht, statt aller Objekte, eine Untermenge der Objekte auf dem Kartenfenster darzustellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="396"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="395"/>
         <source>The query used to limit the features in the layer is shown here. To enter or modify the query, click on the Query Builder button</source>
         <translation>Die Abfrage zur Begrenzung der Anzahl der Objekte wird hier angezeigt. Klicken Sie auf auf 'Abfrageerstellung', um eine Abfrage einzugeben oder zu ändern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="427"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="426"/>
         <source>Not supported</source>
         <translation>Nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="698"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="703"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="708"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="713"/>
         <source>Spatial Index</source>
         <translation>Räumlicher Index</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="698"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="708"/>
         <source>Creation of spatial index successful</source>
         <translation>Räumlichen Indexes erfolgreich erstellt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="703"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="713"/>
         <source>Creation of spatial index failed</source>
         <translation>Erstellung des räumlichen Indexes schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="731"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="741"/>
         <source>Load default style from: </source>
         <translation>Vorgabestil laden aus: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="733"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="788"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="743"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="798"/>
         <source>Cancel</source>
         <translation>Abbruch</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="734"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="789"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="744"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="799"/>
         <source>Local database</source>
         <translation>Lokale Datenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="735"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="790"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="745"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="800"/>
         <source>Datasource database</source>
         <translation>Datenquellendatenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="746"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="750"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="775"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="812"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="756"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="760"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="785"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="822"/>
         <source>Default Style</source>
         <translation>Vorgabestil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="748"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="758"/>
         <source>Loaded from Provider</source>
         <translation>Vom Datenanbieter geladen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="751"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="761"/>
         <source>No default style was found for this layer</source>
         <translation>Kein Vorgabestil für diesen Layer gefunden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="786"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="796"/>
         <source>Save default style to: </source>
         <translation>Vorgabestil speichern in: </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="822"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="832"/>
         <source>Load layer properties from style file</source>
         <translation>Layereigenschaften aus Stildatei laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="97"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="849"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="96"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="861"/>
         <source>Load Style</source>
         <translation>Stil laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="100"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="99"/>
         <source>Save as Default</source>
         <translation>Als Vorgabe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="168"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="167"/>
         <source>QGIS Layer Style File...</source>
         <translation>QGIS-Layerstildatei...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="169"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="168"/>
         <source>SLD File...</source>
         <translation>SLD-Datei...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="176"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="175"/>
         <source>Load from file...</source>
         <translation>Aus Datei laden...</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="908"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="920"/>
         <source>Style saved</source>
         <translation>Stil gespeichert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="932"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="944"/>
         <source>Save layer properties as style file</source>
         <translation>Layereigenschaften als Stildatei speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="968"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="980"/>
         <source>Saved Style</source>
         <translation>Gespeicherter Stil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1063"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1075"/>
         <source>The retrieved style is not a valid named style. Error message: %1</source>
         <translation>Der geladene Stil ist kein gültiger benannter Stil.  Fehlermeldung: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="98"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1258"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="97"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1270"/>
         <source>Save Style</source>
         <translation>Stil speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="95"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="94"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="101"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="100"/>
         <source>Restore Default</source>
         <translation>Vorgabe wiederherstellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1038"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1052"/>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1062"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1050"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1064"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1074"/>
         <source>Error occurred retrieving styles from database</source>
         <translation>Fehler beim Laden von Stilen aus der Datenbank</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1209"/>
+        <location filename="../src/app/qgsvectorlayerproperties.cpp" line="1221"/>
         <source>all</source>
         <translation>Alle</translation>
     </message>
@@ -79995,19 +80339,27 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsWFSCapabilities</name>
     <message>
-        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="177"/>
-        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="213"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="186"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="233"/>
         <source>Download of capabilities failed: network request update failed for authentication config</source>
         <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="178"/>
-        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="214"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="187"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="200"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="234"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="250"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="264"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="199"/>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="249"/>
+        <source>Download of capabilities failed: network reply update failed for authentication config</source>
+        <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/wfs/qgswfscapabilities.cpp" line="295"/>
         <source>Either the WFS server does not support WFS version 1.0.0 or the WFS url is wrong</source>
         <translation>Entweder unterstützt der WFS-Server die Version 1.0.0 nicht oder die URL ist falsch</translation>
     </message>
@@ -80039,66 +80391,76 @@ Datenanbieterfehler:</translation>
     </message>
     <message>
         <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="111"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="810"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1406"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1545"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="742"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="750"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1345"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1355"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1493"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1502"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="744"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="676"/>
         <source>%1: Exactly %2 features fetched which suggests hitting a download limit. </source>
         <translation>%1: Dass genau %2 Objekte heruntergeladen wurden, deutet auf eine Download-Begrenzung hin.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="745"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="677"/>
         <source>Zoom in to fetch all data if your layer has the 'current view extent' option enabled.</source>
         <translation>Näher heranzoomen um alle Daten zu laden, wenn beim Layer 'aktuelle Kartengrenzen' eingeschaltet sind.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="809"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1405"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1544"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="741"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1344"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1492"/>
         <source>Network request update failed for authentication config</source>
         <translation>Netzwerkaktualisierung der Authentifikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1309"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="749"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1354"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1501"/>
+        <source>Network reply update failed for authentication config</source>
+        <translation>Netzwerkaktualisierung der Authentifikationskonfiguration gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1248"/>
         <source>unknown</source>
         <translation>unbekannt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1315"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1254"/>
         <source>received %1 bytes from %2</source>
         <translation>%1 von %2 Bytes empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1701"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1657"/>
         <source>empty response</source>
         <translation>Leere Antwort</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1707"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1663"/>
         <source>WFS service exception:%1</source>
         <translation>WFS-Dienstausnahme: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1713"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1669"/>
         <source>unsuccessful service response: %1</source>
         <translation>Nichterfolgreiche Dienstantwort: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1720"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1676"/>
         <source>WFS exception report (code=%1 text=%2)</source>
         <translation>WFS-Ausnahmenbereicht (Code=%1 Text=%2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1721"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1677"/>
         <source>missing</source>
         <translation>fehlt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1727"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1683"/>
         <source>unhandled response: %1</source>
         <translation>nicht behandelte Antwort: %1</translation>
     </message>
@@ -80709,73 +81071,83 @@ Datenanbieterfehler:</translation>
 <context>
     <name>QgsWcsCapabilities</name>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="173"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="181"/>
         <source>empty capabilities document</source>
         <translation>Leeres Capabilities-Dokument</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="274"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="338"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="282"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="346"/>
         <source>
 Tried URL: %1</source>
         <translation>
 Versuchte URL: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="355"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="363"/>
         <source>Capabilities request redirected.</source>
         <translation>Eigenschaften-Abfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="382"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="399"/>
         <source>empty of capabilities: %1</source>
         <translation>Eigenschaften leer: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="403"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="429"/>
         <source>Download of capabilities failed: %1</source>
         <translation>Eigenschaften-Abfrage gescheitert: %1</translation>
     </message>
     <message>
         <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="151"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="362"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="404"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="165"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="370"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="385"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="420"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="430"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
         <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="150"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="361"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="369"/>
         <source>Download of capabilities failed: network request update failed for authentication config</source>
         <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="416"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="164"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="384"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="419"/>
+        <source>Download of capabilities failed: network reply update failed for authentication config</source>
+        <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="442"/>
         <source>%1 of %2 bytes of capabilities downloaded.</source>
         <translation>%1 von %2 Bytes der Eigenschaften heruntergeladen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="454"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="480"/>
         <source>Exception</source>
         <translation>Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="456"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="482"/>
         <source>Could not get WCS capabilities: %1</source>
         <translation>Konnte WCS-Fähigkeiten nicht erfragen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="460"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="740"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="767"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="922"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="486"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="766"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="793"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="948"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="462"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="769"/>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="924"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="488"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="795"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="950"/>
         <source>Could not get WCS capabilities in the expected format (DTD): no %1 found.
 This might be due to an incorrect WCS Server URL.
 Tag:%3
@@ -80788,17 +81160,17 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="478"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="504"/>
         <source>Version not supported</source>
         <translation>Version nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="480"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="506"/>
         <source>WCS server version %1 is not supported by QGIS (supported versions: 1.0.0, 1.1.0, 1.1.2)</source>
         <translation>WCS-Serverversion %1 wird nicht von QGIS unterstützt (unterstützte Versionen: 1.0.0, 1.1.0, 1.1.2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="742"/>
+        <location filename="../src/providers/wcs/qgswcscapabilities.cpp" line="768"/>
         <source>Could not get WCS capabilities: %1 at line %2 column %3
 This is probably due to an incorrect WCS Server URL.
 Response was:
@@ -80814,84 +81186,94 @@ Antwort war:
 <context>
     <name>QgsWcsDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1722"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1752"/>
         <source>Map request error (Status: %1; Reason phrase: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Grund:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1668"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1706"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1725"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1763"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1781"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1791"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1801"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1818"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1824"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1844"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1883"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1887"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1680"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1692"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1727"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1736"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1755"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1793"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1811"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1821"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1831"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1848"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1854"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1874"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1909"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1922"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1926"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1667"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1705"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1679"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1726"/>
         <source>Network request update failed for authentication config</source>
         <translation>Netzwerkaktualisierung der Authentifikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1754"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1691"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1735"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1908"/>
+        <source>Network reply update failed for authentication config</source>
+        <translation>Netzwerkaktualisierung der Authentifikationskonfiguration gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1784"/>
         <source>Map request error:<br>Title: %1<br>Error: %2<br>URL: <a href='%3'>%3</a>)</source>
         <translation>Kartenabfrage-Fehler:<br>Titel: %1<br>Fehler:%2<br>URL: <a href='%3'>%3</a>)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1760"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1790"/>
         <source>Map request error (Status: %1; Response: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Antwort:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1781"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1811"/>
         <source>Cannot parse multipart response: %1</source>
         <translation>Unverständliche mehrteilige Antwort: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1791"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1821"/>
         <source>Expected 2 parts, %1 received</source>
         <translation>%1 statt zwei Teile empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1801"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1831"/>
         <source>More than 2 parts (%1) received</source>
         <translation>Mehr als 2 Teile (%1) empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1816"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1846"/>
         <source>Map request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kartenabfrage-Fehler (Titel: %1; Fehler:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1822"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1852"/>
         <source>Map request error (Response: %1; URL:%2)</source>
         <translation>Kartenabfrage-Fehler (Antwort:%1; URL: %2)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1844"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1874"/>
         <source>Content-Transfer-Encoding %1 not supported</source>
         <translation>Content-Transfer-Encoding %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1883"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1922"/>
         <source>Map request failed [error:%1 url:%2]</source>
         <translation>Kartenabfrage-Fehler [Fehler:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1887"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1926"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1899"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1938"/>
         <source>%1 of %2 bytes of map downloaded.</source>
         <translation>%1 von %2 Bytes der Karte heruntergeladen.</translation>
     </message>
@@ -80925,12 +81307,12 @@ Antwort war:
     </message>
     <message>
         <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="561"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="611"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="776"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="798"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="808"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1038"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1182"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="623"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="788"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="810"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="820"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1050"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1194"/>
         <source>WCS</source>
         <translation>WCS</translation>
     </message>
@@ -80940,37 +81322,36 @@ Antwort war:
         <translation>Raster wird gedreht</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="605"/>
         <source>Block read OK</source>
-        <translation>Blocklesung OK</translation>
+        <translation type="obsolete">Blocklesung OK</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="611"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="623"/>
         <source>Received coverage has wrong size %1 x %2 (expected %3 x %4)</source>
         <translation>Empfangene Coverage hat die falsche Größe %1 x %2 (erwartet %3 x %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="768"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="780"/>
         <source>Getting map via WCS.</source>
         <translation>Lade Karte über WCS.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="776"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="788"/>
         <source>No data received</source>
         <translation>Keine Daten empfangen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="798"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="810"/>
         <source>Cannot create memory file</source>
         <translation>Konnte Speicherdatei nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="938"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="950"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="939"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="951"/>
         <source>Could not get WCS Service Exception at %1 at line %2 column %3
 
 Response was:
@@ -80983,143 +81364,143 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="978"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="990"/>
         <source>Service Exception</source>
         <translation>Dienstausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="987"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="999"/>
         <source>Request contains a format not offered by the server.</source>
         <translation>Anfrage enthält ein Format, dass der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="988"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1000"/>
         <source>Request is for a Coverage not offered by the service instance.</source>
         <translation>Angefragte Coverage wird von Serverinstanz nicht angeboten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="989"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1001"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is equal to current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage entspricht dem aktuellen Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="990"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1002"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is greater than current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage ist größer als der aktuelle Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="992"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1004"/>
         <source>Request does not include a parameter value, and the server instance did not declare a default value for that dimension.</source>
         <translation>Anfrage enthält keinen Parameterwert, und die Serverinstanz selbst definiert auch keine Vorgabe dafür.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="993"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1005"/>
         <source>Request contains an invalid parameter value.</source>
         <translation>Anfrage enthält einen ungültigen Parameterwert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="995"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1007"/>
         <source>No other exceptionCode specified by this service and server applies to this exception.</source>
         <translation>Kein anderer Ausnahmecode des Dienstes und Servers trifft auf diese Ausnahme zu.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="996"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1008"/>
         <source>Operation request contains an output CRS that can not be used within the output format.</source>
         <translation>Operationsanfrage enthält ein Ausgabe-KBS, das nicht mit dem Ausgabeformat verwendet werden kann.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="997"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1009"/>
         <source>Operation request specifies to "store" the result, but not enough storage is available to do this.</source>
         <translation>Operationsanfrage gibt das "Speichern" des Ergebnisses vor, aber es ist nicht genügend Speicher dafür verfügbar.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1024"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1036"/>
         <source>(No error code was reported)</source>
         <translation>(Kein Fehlercode zurückgegeben)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1032"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1044"/>
         <source>(Unknown error code)</source>
         <translation>(Unbekannter Fehlercode)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1035"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1047"/>
         <source>The WCS vendor also reported: </source>
         <translation>Der WCS-Betreiber meldete folgendes: </translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1038"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1050"/>
         <source>composed error message '%1'.</source>
         <translation>Zusammengestellte Fehlermeldung '%1'.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1182"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1194"/>
         <source>Cannot verify coverage full extent: %1</source>
         <translation>Konnte Grenze der Coverage nicht überprüfen: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1213"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1294"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1225"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1306"/>
         <source>Property</source>
         <translation>Eigenschaft</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1216"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1297"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1228"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1309"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1219"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1231"/>
         <source>Name (identifier)</source>
         <translation>Name (Kennung)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1220"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1301"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1232"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1313"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1221"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1302"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1233"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1314"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1224"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1236"/>
         <source>Fixed Width</source>
         <translation>Feste Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1225"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1237"/>
         <source>Fixed Height</source>
         <translation>Feste Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1226"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1238"/>
         <source>Native CRS</source>
         <translation>Natives KBS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1227"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1239"/>
         <source>Native Bounding Box</source>
         <translation>Native Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1230"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1242"/>
         <source>WGS 84 Bounding Box</source>
         <translation>WGS84-Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1238"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1243"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1250"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1255"/>
         <source>Available in CRS</source>
         <translation>Verfügbar in KBS</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1243"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1253"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1255"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1265"/>
         <source>(and %n more)</source>
         <comment>crs</comment>
         <translation>
@@ -81128,89 +81509,89 @@ Antwort war:
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1248"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1253"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1260"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1265"/>
         <source>Available in format</source>
         <translation>Verfügbar im Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1271"/>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1324"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1283"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1336"/>
         <source>Coverages</source>
         <translation>Coverages</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1277"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1289"/>
         <source>Cache Stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1285"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1297"/>
         <source>Server Properties</source>
         <translation>Server-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1305"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1317"/>
         <source>Keywords</source>
         <translation>Schlüsselworte</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1306"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1318"/>
         <source>Online Resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1307"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1319"/>
         <source>Contact Person</source>
         <translation>Kontaktperson</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1311"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1323"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1312"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1324"/>
         <source>Access Constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1313"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1325"/>
         <source>Image Formats</source>
         <translation>Bildformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1314"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1326"/>
         <source>GetCapabilitiesUrl</source>
         <translation>GetCapabilities-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1316"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1328"/>
         <source>Get Coverage Url</source>
         <translation>GetCoverage-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1316"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1328"/>
         <source>&nbsp;<font color="red">(advertised but ignored)</font></source>
         <translation>&nbsp;<font color="red">(gemeldet, aber ignoriert)</font></translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1338"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1350"/>
         <source>And %1 more coverages</source>
         <translation>Und %1 weitere Coverages</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1365"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1377"/>
         <source>Format not supported</source>
         <translation>Format nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1486"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1498"/>
         <source>Read data error</source>
         <translation>Datenlesefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1513"/>
+        <location filename="../src/providers/wcs/qgswcsprovider.cpp" line="1525"/>
         <source>RasterIO error: </source>
         <translation>Raster-E/A-Fehler: </translation>
     </message>
@@ -81246,7 +81627,7 @@ Antwort war:
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp" line="164"/>
+        <location filename="../src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp" line="167"/>
         <source>Select a file</source>
         <translation>Datei wählen</translation>
     </message>
@@ -81267,41 +81648,49 @@ Antwort war:
 <context>
     <name>QgsWmsCapabilitiesDownload</name>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1949"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1968"/>
         <source>%1 of %2 bytes of capabilities downloaded.</source>
         <translation>%1 von %2 Bytes der Eigenschaften heruntergeladen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1965"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1984"/>
         <source>Capabilities request redirected.</source>
         <translation>Eigenschaften-Abfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1971"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1990"/>
         <source>Redirect loop detected: %1</source>
         <translation>Umleitungszyklus festgestellt: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1919"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1972"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1982"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2045"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1930"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1942"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1991"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2001"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2020"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2076"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1918"/>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1981"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1929"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2000"/>
         <source>Download of capabilities failed: network request update failed for authentication config</source>
         <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2038"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="1941"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2019"/>
+        <source>Download of capabilities failed: network reply update failed for authentication config</source>
+        <translation>Laden der Eigenschaften gescheitert: Netzwerkaktualisierungsanfrage für Authentikationskonfiguration gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2069"/>
         <source>empty of capabilities: %1</source>
         <translation>Eigenschaften leer: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2044"/>
+        <location filename="../src/providers/wms/qgswmscapabilities.cpp" line="2075"/>
         <source>Download of capabilities failed: %1</source>
         <translation>Eigenschaften-Abfrage gescheitert: %1</translation>
     </message>
@@ -81309,47 +81698,47 @@ Antwort war:
 <context>
     <name>QgsWmsImageDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3222"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3268"/>
         <source>Map request error (Status: %1; Reason phrase: %2; URL:%3)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Grund:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3225"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3247"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3256"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3264"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3286"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3290"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3271"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3293"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3302"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3310"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3332"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3336"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3246"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3292"/>
         <source>Returned image is flawed [Content-Type:%1; URL:%2]</source>
         <translation>Geladenes Bild ist defekt [Content-Type:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3254"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3300"/>
         <source>Map request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kartenabfrage-Fehler (Titel: %1; Fehler:%2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3260"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3306"/>
         <source>Map request error (Status: %1; Response: %2; Content-Type: %3; URL:%4)</source>
         <translation>Kartenabfrage-Fehler (Status: %1; Antwort:%2; Content-Type: %3; URL: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3286"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3332"/>
         <source>Map request failed [error:%1 url:%2]</source>
         <translation>Kartenabfrage-Fehler [Fehler:%1; URL: %2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3290"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3336"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3302"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3348"/>
         <source>%1 of %2 bytes of map downloaded.</source>
         <translation>%1 von %2 Bytes der Karte heruntergeladen.</translation>
     </message>
@@ -81357,29 +81746,29 @@ Antwort war:
 <context>
     <name>QgsWmsLegendDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3666"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3722"/>
         <source>Redirect loop detected: %1</source>
         <translation>Umleitungszyklus festgestellt: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3667"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3723"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3738"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3795"/>
         <source>GetLegendGraphic request error</source>
         <translation>GetLegendGraphic-Abfragefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3740"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3797"/>
         <source>Status: %1
 Reason phrase: %2</source>
         <translation>Status: %1
 Grund: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3748"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3805"/>
         <source>Returned legend image is flawed [URL: %1]</source>
         <translation>Geladenes Legendenbild ist defekt [URL: %1]</translation>
     </message>
@@ -81402,46 +81791,46 @@ Grund: %2</translation>
         <translation>Konnte KBS nicht setzen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="262"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="298"/>
         <source>Number of layers and styles don't match</source>
         <translation>Anzahl von Layern und Stilen stimmt nicht überein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="262"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="835"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="844"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2392"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2808"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="298"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="871"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="880"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2428"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2845"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="351"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="387"/>
         <source>Number of tile layers must be one</source>
         <translation>Anzahl der Kachellayer muss eins sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="358"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="394"/>
         <source>Tile layer not found</source>
         <translation>Kachellayer nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="419"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="455"/>
         <source>Tile layer or tile matrix set not found</source>
         <translation>Kachellayer oder Kachelmatrixsatz nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="542"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="578"/>
         <source>Getting map via WMS.</source>
         <translation>Lade Karte über WMS.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="808"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="844"/>
         <source>Getting tiles.</source>
         <translation>Lade Kacheln.</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="816"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="852"/>
         <source>%n tile requests in background</source>
         <comment>tile request count</comment>
         <translation>
@@ -81450,7 +81839,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="817"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="853"/>
         <source>, %n cache hits</source>
         <comment>tile cache hits</comment>
         <translation>
@@ -81459,7 +81848,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="818"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="854"/>
         <source>, %n cache misses.</source>
         <comment>tile cache missed</comment>
         <translation>
@@ -81468,7 +81857,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="819"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="855"/>
         <source>, %n errors.</source>
         <comment>errors</comment>
         <translation>
@@ -81477,205 +81866,205 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="835"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="871"/>
         <source>image is NULL</source>
         <translation>Bild ist NULL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="844"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="880"/>
         <source>unexpected image size</source>
         <translation>Unerwartete Bildgröße</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1009"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1045"/>
         <source>Dom Exception</source>
         <translation>DOM-Ausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1064"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1100"/>
         <source>Service Exception</source>
         <translation>Dienstausnahme</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1069"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1105"/>
         <source>Request contains a format not offered by the server.</source>
         <translation>Anfrage enthält ein Format, dass der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1073"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1109"/>
         <source>Request contains a CRS not offered by the server for one or more of the Layers in the request.</source>
         <translation>Anfrage verlangt ein CRS für einen oder mehrere Layer, die der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1077"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1113"/>
         <source>Request contains a SRS not offered by the server for one or more of the Layers in the request.</source>
         <translation>Anfrage enthält ein SRS für einen oder mehrere Layer, die der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1081"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1117"/>
         <source>GetMap request is for a Layer not offered by the server, or GetFeatureInfo request is for a Layer not shown on the map.</source>
         <translation>GetMap-Anfrage für einen Layer, den der Server nicht anbietet oder GetFeature-Anfrage für einen Layer, der nicht auf der Karte angezeigt wird.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1086"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1122"/>
         <source>Request is for a Layer in a Style not offered by the server.</source>
         <translation>Anfrage für einen Layer in einem Stil, den der Server nicht anbietet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1090"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1126"/>
         <source>GetFeatureInfo request is applied to a Layer which is not declared queryable.</source>
         <translation>GetFeatureInfo-Anfrage wird auf einen Layer bezogen, der nicht als abfragbar deklariert ist.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1094"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1130"/>
         <source>GetFeatureInfo request contains invalid X or Y value.</source>
         <translation>GetFeatureInfo-Anfrage enthält einen ungültigen X- oder Y-Wert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1098"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1134"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is equal to current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage entspricht dem aktuellen Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1103"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1139"/>
         <source>Value of (optional) UpdateSequence parameter in GetCapabilities request is greater than current value of service metadata update sequence number.</source>
         <translation>Wert des (optionalen) Aktualisierungssequenenzzählers der GetCapabilities-Anfrage ist größer als der aktuelle Wert des Aktualisierungssequenzzähler in den Dienstmetadaten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1108"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1144"/>
         <source>Request does not include a sample dimension value, and the server did not declare a default value for that dimension.</source>
         <translation>Anfrage enthält keinen beispielhaften Dimensionswert, und der Server selbst definiert auch keinen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1113"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1149"/>
         <source>Request contains an invalid sample dimension value.</source>
         <translation>Anfrage enthält einen ungültigen beispielhaften Dimensionswert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1117"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1153"/>
         <source>Request is for an optional operation that is not supported by the server.</source>
         <translation>Anfrage ist für eine optionale Operation, die der Server nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1121"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1157"/>
         <source>(No error code was reported)</source>
         <translation>(Kein Fehlercode zurückgegeben)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1125"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1161"/>
         <source>(Unknown error code)</source>
         <translation>(Unbekannter Fehlercode)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1128"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1164"/>
         <source>The WMS vendor also reported: </source>
         <translation>Der WMS-Betreiber meldete folgendes: </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1331"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1541"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1800"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1992"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1367"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1577"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1836"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2028"/>
         <source>Property</source>
         <translation>Eigenschaft</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1334"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1544"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1803"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1995"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1370"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1580"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1839"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2031"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1339"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1453"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1375"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1489"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1347"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1383"/>
         <source>Visibility</source>
         <translation>Sichtbarkeit</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1350"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1386"/>
         <source>Visible</source>
         <translation>Sichtbar</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1350"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1386"/>
         <source>Hidden</source>
         <translation>Versteckt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1355"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1461"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1557"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1391"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1497"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1593"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1363"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1469"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1565"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1399"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1505"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1601"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1371"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1407"/>
         <source>Can Identify</source>
         <translation>Kann abgefragt werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1374"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1382"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1390"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1810"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1410"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1418"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1426"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1846"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1374"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1382"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1390"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1810"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1410"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1418"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1426"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1846"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1379"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1415"/>
         <source>Can be Transparent</source>
         <translation>Kann transparent sein</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1387"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1423"/>
         <source>Can Zoom In</source>
         <translation>Kann herangezoomt werden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1395"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1431"/>
         <source>Cascade Count</source>
         <translation>Kaskadiere Anzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1403"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1439"/>
         <source>Fixed Width</source>
         <translation>Feste Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1411"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1447"/>
         <source>Fixed Height</source>
         <translation>Feste Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1421"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1431"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1457"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1467"/>
         <source>Available in CRS</source>
         <translation>Verfügbar in KBS</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1434"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1470"/>
         <source>(and %n more)</source>
         <comment>crs</comment>
         <translation>
@@ -81684,95 +82073,95 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1444"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1480"/>
         <source>Available in style</source>
         <translation>Verfügbar im Stil</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1479"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1515"/>
         <source>LegendURLs</source>
         <translation>LegendenURLs</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1532"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1568"/>
         <source>Server Properties</source>
         <translation>Server-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1512"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1730"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1548"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1766"/>
         <source>Selected Layers</source>
         <translation>Gewählte Layer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1514"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1747"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1550"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1783"/>
         <source>Other Layers</source>
         <translation>Andere Layer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1520"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1556"/>
         <source>Tile Layer Properties</source>
         <translation>Kachellayer-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1524"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1560"/>
         <source>Cache Stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1549"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1585"/>
         <source>WMS Version</source>
         <translation>WMS-Version</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1573"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1609"/>
         <source>Keywords</source>
         <translation>Schlüsselworte</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1581"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1617"/>
         <source>Online Resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1589"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1625"/>
         <source>Contact Person</source>
         <translation>Kontaktperson</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1601"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1637"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1609"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1645"/>
         <source>Access Constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1699"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1735"/>
         <source>Image Formats</source>
         <translation>Bildformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1689"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1707"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1725"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1743"/>
         <source>Identify Formats</source>
         <translation>Abfrageformate</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1715"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1751"/>
         <source>Layer Count</source>
         <translation>Layeranzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1647"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1683"/>
         <source>Tile Layer Count</source>
         <translation>Kachellayeranzahl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1010"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1046"/>
         <source>Could not get WMS Service Exception: %1 at line %2 column %3
 
 Response was:
@@ -81785,278 +82174,278 @@ Antwort war:
 %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1617"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1653"/>
         <source>GetCapabilitiesUrl</source>
         <translation>GetCapabilities-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1624"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1660"/>
         <source>GetMapUrl</source>
         <translation>GetMap-URL</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1627"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1634"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1641"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1663"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1670"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1677"/>
         <source>&nbsp;<font color="red">(advertised but ignored)</font></source>
         <translation>&nbsp;<font color="red">(gemeldet, aber ignoriert)</font></translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1631"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1667"/>
         <source>GetFeatureInfoUrl</source>
         <translation>GetFeatureInfoUrl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1638"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1674"/>
         <source>GetLegendGraphic</source>
         <translation>GetLegendGraphic</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1654"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1690"/>
         <source>GetTileUrl</source>
         <translation>GetTileUrl</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1663"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1699"/>
         <source>Tile templates</source>
         <translation>Kachelvorlagen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1675"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1711"/>
         <source>FeatureInfo templates</source>
         <translation>FeatureInfo-Vorlagen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1763"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1799"/>
         <source>Tileset Properties</source>
         <translation>Tileset-Eigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1774"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1810"/>
         <source>Identifier</source>
         <translation>Kennung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1776"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1812"/>
         <source>Tile mode</source>
         <translation>Kachelmodus</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1785"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1821"/>
         <source>WMTS</source>
         <translation>WMTS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1789"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1825"/>
         <source>WMS-C</source>
         <translation>WMS-C</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1793"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1829"/>
         <source>Invalid tile mode</source>
         <translation>Ungültiger Kachelmodus</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1807"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1843"/>
         <source>Selected</source>
         <translation>Ausgewählt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1816"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1852"/>
         <source>Available Styles</source>
         <translation>Verfügbare Stile</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1829"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1834"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1865"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1870"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1837"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1873"/>
         <source>Bounding Box</source>
         <translation>Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1850"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1886"/>
         <source>Available Tilesets</source>
         <translation>Verfügbare Kachelsätze</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1886"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1922"/>
         <source>Selected tile matrix set </source>
         <translation>Gewählter Kachelmatrixsatz </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1888"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1924"/>
         <source>Scale</source>
         <translation>Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1889"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1925"/>
         <source>Tile size [px]</source>
         <translation>Kachengröße [px]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1890"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1926"/>
         <source>Tile size [mu]</source>
         <translation>Kachengröße [KE]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1891"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1927"/>
         <source>Matrix size</source>
         <translation>Matrixgröße</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1892"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1928"/>
         <source>Matrix extent [mu]</source>
         <translation>Matrixgrenzen [KE]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1893"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1929"/>
         <source>Bounds</source>
         <translation>Grenzen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1894"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1930"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1895"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1931"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1896"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1932"/>
         <source>Top</source>
         <translation>Oben</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1897"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1933"/>
         <source>Left</source>
         <translation>Links</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1898"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1934"/>
         <source>Bottom</source>
         <translation>Unten</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1899"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1935"/>
         <source>Right</source>
         <translation>Rechts</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1929"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1955"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1965"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1991"/>
         <source>%n missing row(s)</source>
         <translation>%n fehlende Zeilen</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1930"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1966"/>
         <source>Layer's upper bound: %1</source>
         <translation>Obere Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1942"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1968"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1978"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2004"/>
         <source>%n missing column(s)</source>
         <translation>%n fehlende Spalten</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1943"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1979"/>
         <source>Layer's left bound: %1</source>
         <translation>Linke Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1956"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1992"/>
         <source>Layer's lower bound: %1</source>
         <translation>Untere Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1969"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2005"/>
         <source>Layer's right bound: %1</source>
         <translation>Rechte Begrenzung des Layers: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1986"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2022"/>
         <source>Cache stats</source>
         <translation>Cache-Statistik</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="1999"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2035"/>
         <source>Hits</source>
         <translation>Treffer</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2005"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2041"/>
         <source>Misses</source>
         <translation>Fehlgriffe</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2011"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2047"/>
         <source>Errors</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2034"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2070"/>
         <source>Format not supported</source>
         <translation>Format nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2054"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2090"/>
         <source>Context not fully specified (extent was defined but width and/or height was not).</source>
         <translation>Kontext nicht vollständig angegeben (Ausmaß wurde definiert, aber Breite und Höhe nicht).</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2390"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2426"/>
         <source>Get feature info request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Abfrageanfragefehler (Titel:%1; Fehler: %2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2512"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2548"/>
         <source>GML schema is not valid</source>
         <translation>GML-Schema ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2518"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2554"/>
         <source>GML is not valid</source>
         <translation>GML ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2532"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2607"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2568"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2643"/>
         <source>Cannot identify</source>
         <translation>Abfrage gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2608"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2644"/>
         <source>Result parsing failed. %1 feature types were guessed from gml (%2) but no features were parsed.</source>
         <translation>Ergebnisüberprüfung fehlgeschlagen. %1 Objekttypen wurden aus dem gml (%2) geraten aber keine Objekte wurden analysiert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2766"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2802"/>
         <source>identify request redirected.</source>
         <translation>Identify-Anfrage umgeleitet.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2782"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2819"/>
         <source>Map getfeatureinfo error %1: %2</source>
         <translation>GetFeatureInfo-Fehler %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2791"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2828"/>
         <source>Cannot parse getfeatureinfo: %1</source>
         <translation>Konnte GetFeatureInfo nicht interpretieren: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2806"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="2843"/>
         <source>Map getfeatureinfo error: %1 [%2]</source>
         <translation>GetFeatureInfo-Fehler %1 [%2]</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3134"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3180"/>
         <source>%1 of %2 bytes of GetLegendGraphic downloaded.</source>
         <translation>%1 von %2 Bytes der Legendengrafik heruntergeladen.</translation>
     </message>
@@ -82064,44 +82453,44 @@ Antwort war:
 <context>
     <name>QgsWmsTiledImageDownloadHandler</name>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3440"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3486"/>
         <source>Tile request error</source>
         <translation>Tile-Anfragefehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3440"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3486"/>
         <source>Status: %1
 Reason phrase: %2</source>
         <translation>Status: %1
 Grund: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3460"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3506"/>
         <source>Tile request error (Title:%1; Error:%2; URL: %3)</source>
         <translation>Kachelabfrage-Fehler (Titel: %1; Fehler: %2; URL: %3)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3462"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3470"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3523"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3571"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3589"/>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3598"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3508"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3516"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3569"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3617"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3635"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3644"/>
         <source>WMS</source>
         <translation>WMS</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3466"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3512"/>
         <source>Tile request error (Status:%1; Content-Type:%2; Length:%3; URL: %4)</source>
         <translation>Kachelabfrage-Fehler (Status: %1; Content-Typ: %2; Länge: %3; URL: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3522"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3568"/>
         <source>Returned image is flawed [Content-Type:%1; URL: %2]</source>
         <translation>Geladenes Bild ist defekt [Content-Type:%1; URL: %2]</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3556"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3602"/>
         <source>%n tile requests in background</source>
         <comment>tile request count</comment>
         <translation>
@@ -82110,7 +82499,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3557"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3603"/>
         <source>, %n cache hits</source>
         <comment>tile cache hits</comment>
         <translation>
@@ -82119,7 +82508,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3558"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3604"/>
         <source>, %n cache misses.</source>
         <comment>tile cache missed</comment>
         <translation>
@@ -82128,7 +82517,7 @@ Grund: %2</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3559"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3605"/>
         <source>, %n errors.</source>
         <comment>errors</comment>
         <translation>
@@ -82137,17 +82526,17 @@ Grund: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3571"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3617"/>
         <source>Not logging more than 100 request errors.</source>
         <translation>Nicht mehr als 100 Abfragefehler werden protokolliert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3588"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3634"/>
         <source>Tile request max retry error. Failed %1 requests for tile %2 of tileRequest %3 (url: %4)</source>
         <translation>Maximale Wiederholungen erreicht. %1 Abfragen der Kachel %2 der Kachelabfrage %3 (url: %4)</translation>
     </message>
     <message>
-        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3597"/>
+        <location filename="../src/providers/wms/qgswmsprovider.cpp" line="3643"/>
         <source>repeat tileRequest %1 tile %2(retry %3)</source>
         <translation>Wiederhole Kachelabfrage %1, Kachel %2 (Wiederholung %3)</translation>
     </message>
@@ -82315,41 +82704,41 @@ Grund: %2</translation>
 <context>
     <name>RAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2269"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2270"/>
         <source>User R scripts</source>
         <translation>R-Benutzerskripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
         <source>Could not load R script: %s.
  Problem with line %s</source>
         <translation>Konnte R-Skript nicht laden: %s.
 Problem mit Zeile %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2272"/>
         <source>R Console Output</source>
         <translation>R-Konsolenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2273"/>
         <source>R folder is not configured.
 Please configure it before running R scripts.</source>
         <translation>R-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von R-Skripten einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
         <source>R execution commands</source>
         <translation>R-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
         <source><p>This algorithm requires R to be run. Unfortunately it seems that R is not installed in your system or it is not correctly configured to be used from QGIS</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Click here</a> to know more about how to install and configure R to be used with QGIS</p></source>
         <translation><p>Dieser Algorithmus erfordert die Ausführung von R. Leider scheint R nicht richtig für die Verwendung in QGIS installiert oder konfiguriert zu sein</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Hier klicken</a> um mehr zur Installation und Konfiguration von R für QGIS zu erfahren</p></translation>
     </message>
@@ -82357,32 +82746,32 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2279"/>
         <source>Create new R script</source>
         <translation>Neues R-Skript erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2280"/>
         <source>R Scripts folder</source>
         <translation>R-Skriptverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
         <source>R folder</source>
         <translation>R-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2282"/>
         <source>R user library folder</source>
         <translation>R-Benutzerbibliotheksverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2283"/>
         <source>Use 64 bit version</source>
         <translation>64bit-Version verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2284"/>
         <source>Could not load R script: %s
 %s</source>
         <translation>Konnte R-Skript nicht laden: %s
@@ -82392,25 +82781,25 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2288"/>
         <source>R execution console output</source>
         <translation>Konsolenausgabe aus R-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2289"/>
         <source><h2>R Output</h2>
 </source>
         <translation><h2>R-Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
         <source>R folder is not configured.
 Please configure it before running R scripts.</source>
         <translation>R-Verzeichnis nicht konfiguriert.
 Bitte vor der Ausführung von R-Skripten einstellen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
         <source><p>This algorithm requires R to be run. Unfortunately, it seems that R is not installed in your system, or it is not correctly configured to be used from QGIS</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Click here</a> to know more about how to install and configure R to be used with QGIS</p></source>
         <translation><p>Dieser Algorithmus erfordert die Ausführung von R. Leider scheint R nicht richtig für die Verwendung in QGIS installiert oder konfiguriert zu sein</p><p><a href="http://docs.qgis.org/testing/en/docs/user_manual/processing/3rdParty.html">Hier klicken</a> um mehr zur Installation und Konfiguration von R für QGIS zu erfahren</p></translation>
     </message>
@@ -82418,52 +82807,52 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomExtract</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2296"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2300"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2301"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2304"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
         <source>Extracted (random)</source>
         <translation>Extrahiert (zufällig)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2305"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
         <source>Selected number is greater than feature count. Choose a lower value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2304"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2295"/>
         <source>Random extract</source>
         <translation>Zufälliger Ausschnitt</translation>
     </message>
@@ -82471,57 +82860,57 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomExtractWithinSubsets</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2309"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2310"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2311"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2313"/>
         <source>ID field</source>
         <translation>Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2314"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2315"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
         <source>Extracted (random stratified)</source>
         <translation>Extrahiert (zufällig geschichtet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
         <source>Selected number is greater that feature count. Choose lesser value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
         <source>Percentage can't be greater than 100. Set correct value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2308"/>
         <source>Random extract within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -82529,38 +82918,38 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RandomPointsAlongLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2323"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2324"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2325"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2326"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2322"/>
         <source>Random points along line</source>
         <translation>Zufällige Punkte entlang einer Linie</translation>
     </message>
@@ -82568,38 +82957,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2333"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2334"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2335"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2337"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2338"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2332"/>
         <source>Random points in extent</source>
         <translation>Zufällige Punkte in Grenzen</translation>
     </message>
@@ -82607,38 +82996,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2343"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2344"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2346"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2347"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2348"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2342"/>
         <source>Random points in layer bounds</source>
         <translation>Zufällige Punkte in den Layergrenzen</translation>
     </message>
@@ -82646,53 +83035,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsFixed</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2353"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2356"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2357"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2358"/>
         <source>Number or density of points</source>
         <translation>Anzahl der Dichtepunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2359"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2360"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2361"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2352"/>
         <source>Random points inside polygons (fixed)</source>
         <translation>Zufällige Punkte in Polygonen (festgelegt)</translation>
     </message>
@@ -82700,53 +83089,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsVariable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2366"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2367"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2368"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2369"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2370"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2371"/>
         <source>Number field</source>
         <translation>Nummernfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2372"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2373"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
         <source>Can not generate requested number of random points. Maximum number of attempts exceeded.</source>
         <translation>Kann angeforderte Anzahl von zufälligen Punkte nicht erzeugen.
 Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2365"/>
         <source>Random points inside polygons (variable)</source>
         <translation>Zufällige Punkte in Polygonen (variable)</translation>
     </message>
@@ -82754,52 +83143,52 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2379"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2380"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2381"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2382"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2383"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2384"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2385"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2386"/>
         <source>Selected number is greater than feature count. Choose a lower value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2378"/>
         <source>Random selection</source>
         <translation>Zufällige Auswahl</translation>
     </message>
@@ -82807,57 +83196,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelectionWithinSubsets</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2392"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2393"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2394"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2395"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2396"/>
         <source>ID Field</source>
         <translation>ID Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2397"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2398"/>
         <source>Number/percentage of selected features</source>
         <translation>Anzahl/Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2399"/>
         <source>Selection stratified</source>
         <translation>Geschichtete Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2400"/>
         <source>Selected number is greater that feature count. Choose lesser value and try again.</source>
         <translation>Die gewählte Zahl ist größer als die Objektanzahl. Kleineren Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
         <source>Percentage can't be greater than 100. Set a different value and try again.</source>
         <translation>Prozentsatz kann nicht größer 100 sein. Anderen Wert wählen und wiederholen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2391"/>
         <source>Random selection within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -82865,42 +83254,42 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2405"/>
         <source>Raster layer bounds</source>
         <translation>Rasterlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2406"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2408"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2409"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2410"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -82908,32 +83297,32 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2417"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2418"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2419"/>
         <source>Number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2420"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2418"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2416"/>
         <source>Raster layer histogram</source>
         <translation>Rasterlayerhistogramm</translation>
     </message>
@@ -82941,57 +83330,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2426"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2428"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2429"/>
         <source>Minimum value</source>
         <translation>Minimalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2430"/>
         <source>Maximum value</source>
         <translation>Maximalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
         <source>Mean value</source>
         <translation>Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
         <source>valid cells count</source>
         <translation>Anzahl von gültigen Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2436"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
         <source>No-data cells count</source>
         <translation>Anzahl von NoData Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
         <source>Standard deviation</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2425"/>
         <source>Raster layer statistics</source>
         <translation>Rasterlayerstatistik</translation>
     </message>
@@ -83008,37 +83397,37 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RegularPoints</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2440"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2441"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2442"/>
         <source>Point spacing/count</source>
         <translation>Punktabstände/-anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2443"/>
         <source>Initial inset from corner (LH side)</source>
         <translation>Anfängliche Einsatz von Ecke (linke Seite)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
         <source>Apply random offset to point spacing</source>
         <translation>Zufälligen Versatz auf Punktabstand anwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
         <source>Use point spacing</source>
         <translation>Benutze Punktabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2439"/>
         <source>Regular points</source>
         <translation>Regelmäßige Punkte</translation>
     </message>
@@ -83046,12 +83435,12 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RenderingStyleFilePanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2449"/>
         <source>Select style file</source>
         <translation>Wähle Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2450"/>
         <source>QGIS Layer Style File (*.qml *.QML)</source>
         <translation>QGIS Layerstildatei (*.qml *.QML)</translation>
     </message>
@@ -83059,27 +83448,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReprojectLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2455"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2456"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2459"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2460"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2454"/>
         <source>Reproject layer</source>
         <translation>Layer reprojizieren</translation>
     </message>
@@ -83087,27 +83476,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReverseLineDirection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2462"/>
         <source>Reverse line direction</source>
         <translation>Linienrichtung umgekehren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2463"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2464"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2465"/>
         <source>Reversed</source>
         <translation>Umgekehrt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
         <source>Error reversing line</source>
         <translation>Fehler bei Linienumkehrung</translation>
     </message>
@@ -83338,10 +83727,14 @@ Maximalzahl der Versuche überschritten.</translation>
     </message>
     <message>
         <location filename="../src/plugins/roadgraph/shortestpathwidget.cpp" line="251"/>
-        <source>Plugin isn't configured! Please go to the Vector → Road graph → Settings to configure it.</source>
+        <source>Plugin isn't configured! Please go to the Vector, Road graph, Settings to configure it.</source>
         <translation>Erweiterung ist nicht konfiguriert. Bitte unter Vektor/Straßengraph/Einstellungen konfigurieren.</translation>
     </message>
     <message>
+        <source>Plugin isn't configured! Please go to the Vector → Road graph → Settings to configure it.</source>
+        <translation type="obsolete">Erweiterung ist nicht konfiguriert. Bitte unter Vektor/Straßengraph/Einstellungen konfigurieren.</translation>
+    </message>
+    <message>
         <location filename="../src/plugins/roadgraph/shortestpathwidget.cpp" line="272"/>
         <location filename="../src/plugins/roadgraph/shortestpathwidget.cpp" line="277"/>
         <source>Tie point failed</source>
@@ -83401,1277 +83794,1277 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SAGAAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
         <source>Slope Length</source>
         <translation>Hanglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
         <source>Shapes Buffer (Attribute distance)|Shapes Buffer</source>
         <translation>Shapepuffer (Attributabstand)|Shapepuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="120"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="418"/>
         <source>Representativeness|Representativeness (Grid)</source>
         <translation>Repräsentativität|Repräsentativität (Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="379"/>
         <source>Gaussian Filter</source>
         <translation>Gauss'scher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="574"/>
         <source>Flow Accumulation (Top-Down)</source>
         <translation>Flußdichte (Oben-Unten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
         <source>Convex Hull</source>
         <translation>Konvexe Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="564"/>
         <source>Flow Accumulation (Recursive)</source>
         <translation>Flußdichte (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
         <source>Polygon Centroids</source>
         <translation>Polygonschwerpunkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="61"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
         <source>Flow Accumulation (Flow Tracing)</source>
         <translation>Flußdichte (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
         <source>Point Statistics for Polygons</source>
         <translation>Polygon-Punktstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="570"/>
         <source>Grid Values to Points (randomly)</source>
         <translation>Gitterwerte zu Punkten (zufällig)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
         <source>Clip Points with Polygons</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
         <source>Gradient Vectors from Direction and Length</source>
         <translation>Gradientenvektor aus Richtung und Länge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
         <source>Grid Statistics for Polygons</source>
         <translation>Gitterstatistik für Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="520"/>
         <source>Layer of extreme value</source>
         <translation>Extrema-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
         <source>Create Graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="510"/>
         <source>Difference</source>
         <translation>Unterschied</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="143"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="344"/>
         <source>Clip Grid with Polygon</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="572"/>
         <source>Crop to Data</source>
         <translation>Auf Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="157"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="442"/>
         <source>Close Gaps</source>
         <translation>Lücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="410"/>
         <source>Multiresolution Index of Valley Bottom Flatness (MRVBF)</source>
         <translation>Mehrauflösung-Talbodenebenheitsindex (MRVBF)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="449"/>
         <source>Gradient Vectors from Surface</source>
         <translation>Gradientenvektor aus Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
         <source>GWR for Multiple Predictor Grids</source>
         <translation>GWR für mehrere Vorsagegitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="552"/>
         <source>Multiple Regression Analysis (Points/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Punkt/Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="60"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="504"/>
         <source>Hypsometry</source>
         <translation>Hypsometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="51"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
         <source>Aggregation Index</source>
         <translation>Aggregationsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="152"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="451"/>
         <source>Identity</source>
         <translation>Identität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
         <source>LS Factor</source>
         <translation>LS-Faktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="435"/>
         <source>DTM Filter (slope-based)</source>
         <translation>DTM-Filter (Hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="432"/>
         <source>Effective Air Flow Heights</source>
         <translation>Effektive Luftflußhöhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="387"/>
         <source>Confusion Matrix (Polygons / Grid)</source>
         <translation>Wahrheitsmatrix (Polygone / Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="391"/>
         <source>Multilevel B-Spline Interpolation for Categories</source>
         <translation>Mehrstufen-B-Spline-Interpolation für Kategorien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
         <source>Add Grid Values to Points</source>
         <translation>Gitterwerte zu Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
         <source>Kernel Density Estimation</source>
         <translation>Kerndichtenschätzung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="378"/>
         <source>Grid Cell Index</source>
         <translation>Gitterzellenindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="573"/>
         <source>Mass Balance Index</source>
         <translation>Gleichgewichtsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
         <source>Transform Shapes</source>
         <translation>Shapes transformieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="453"/>
         <source>Regression analysis|Regression Analysis (Points/Grid)</source>
         <translation>Regressionanalyse|Regressionsanalyse (Punkte/Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
         <source>Polygon Properties</source>
         <translation>Polygoneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
         <source>Geographically Weighted Multiple Regression</source>
         <translation>Geografischgewichtete Mehrfach-Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="519"/>
         <source>GWR for Multiple Predictors (Gridded Model Output)</source>
         <translation>GWR für mehrere Vorsagegitter (Gerasterte Modellausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="477"/>
         <source>Directional Statistics for Single Grid</source>
         <translation>Richtungsstatistik für Einzelraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="545"/>
         <source>Fill Sinks|Fill Sinks (Planchon/Darboux, 2001)</source>
         <translation>Senken füllen|Senken füllen (Planchon/Darboux, 2001)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="528"/>
         <source>Grids Product</source>
         <translation>Rasterprodukte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="524"/>
         <source>Fill Gaps in Records</source>
         <translation>Datensatzlücken füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
         <source>Topographic Correction</source>
         <translation>Topographische Korrektur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="474"/>
         <source>Grid Buffer</source>
         <translation>Gitterpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="373"/>
         <source>Catchment Area (Flow Tracing)</source>
         <translation>Einzugsbereich (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="578"/>
         <source>User Defined Filter</source>
         <translation>Benutzerdefinierter Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="516"/>
         <source>Watershed Segmentation</source>
         <translation>Niederschlagssegmentierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="511"/>
         <source>Line Simplification</source>
         <translation>Linienvereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="443"/>
         <source>Convergence Index (Search Radius)</source>
         <translation>Konvergenzindex (Suchradius)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
         <source>Topographic Wetness Index (TWI)</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
         <source>Upslope Area|4</source>
         <translation>Anstieg Areal4</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="559"/>
         <source>Laplacian Filter</source>
         <translation>Laplace-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="563"/>
         <source>Grid Proximity Buffer</source>
         <translation>Gitterannährungspuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="328"/>
         <source>Aggregate Point Observations</source>
         <translation>Punktbeobachtung sammeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
         <source>Transpose Grids</source>
         <translation>Gitter transponieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
         <source>Topographic Position Index (TPI)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
         <source>Grid Masking</source>
         <translation>Gittermaskierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="92"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="532"/>
         <source>Channel Network and Drainage Basins</source>
         <translation>Kanalnetzwerk und Drainagebecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
         <source>Real Surface Area</source>
         <translation>Echte Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="541"/>
         <source>Threshold Buffer</source>
         <translation>Schwellenpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
         <source>Add Grid Values to Shapes</source>
         <translation>Gitterwerte zu Shapes hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
         <source>QuadTree Structure to Shapes</source>
         <translation>Quad-Tree-Struktur zu Shapes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="174"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
         <source>Analytical Hillshading</source>
         <translation>Analytische Schummerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
         <source>Surface Specific Points</source>
         <translation>Oberflächen spezifische Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
         <source>Transect through polygon shapefile</source>
         <translation>Durch Polygonshapedateien schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
         <source>Convert Lines to Polygons</source>
         <translation>Linien in Polygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="155"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="462"/>
         <source>Local Minima and Maxima</source>
         <translation>Lokale Minima und Maxima</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="386"/>
         <source>Accumulated Cost (Isotropic)</source>
         <translation>Aufgelaufenen Kosten (isotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="345"/>
         <source>Line Dissolve</source>
         <translation>Linien auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="556"/>
         <source>Resampling</source>
         <translation>Abtastung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
         <source>Fuzzy Union (OR)</source>
         <translation>Fuzzy-Vereinigung (ODER)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="147"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="406"/>
         <source>Natural Neighbour</source>
         <translation>Natürlicher Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="415"/>
         <source>Convert Lines to Points</source>
         <translation>Linien in Punkten umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="40"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
         <source>Thin Plate Spline (Global)</source>
         <translation>Thin Plate Spline (global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
         <source>Polygon dissolve (by attribute)|Polygon Dissolve</source>
         <translation>Polygon auflösen (nach Attribut)|Polygon auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="139"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="466"/>
         <source>Stream Power Index</source>
         <translation>Stromstärkeindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
         <source>Global Moran's I for Grids</source>
         <translation>Global Moran I für Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="479"/>
         <source>Polynomial Regression</source>
         <translation>Polynominalregression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
         <source>Multiple Regression Analysis (Grid/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="52"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="331"/>
         <source>Nearest Neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="526"/>
         <source>Water Retention Capacity</source>
         <translation>Bodenwasserspannungskapazität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="500"/>
         <source>Gradient Vectors from Directional Components</source>
         <translation>Gradientenvektoren aus gerichteten Komponenten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="489"/>
         <source>Majority Filter</source>
         <translation>Mehrheitsfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="411"/>
         <source>Flow Path Length</source>
         <translation>Fließweglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
         <source>Simple Region Growing</source>
         <translation>Einfaches Region-Growing</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="514"/>
         <source>Simulation</source>
         <translation>Simulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="420"/>
         <source>Get Shapes Extents</source>
         <translation>Shapeausmaße bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="17"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="568"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="482"/>
         <source>Fill Sinks XXL (Wang & Liu)</source>
         <translation>Senken füllen XXL (Wang & Liu)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="447"/>
         <source>B-Spline Approximation</source>
         <translation>B-Spline-Approximation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
         <source>Polygon Parts to Separate Polygons</source>
         <translation>Polygonteile in Einzelpolygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
         <source>Points Thinning</source>
         <translation>Punkte ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="199"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="505"/>
         <source>Change Date Format</source>
         <translation>Datumsformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="429"/>
         <source>Gradient Vector from Cartesian to Polar Coordinates</source>
         <translation>Gradientenvektor aus kartesischen in Polar-Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
         <source>Fragmentation Classes from Density and Connectivity</source>
         <translation>Fragmentierungsklassen aus Dichte und Verbindungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
         <source>Ordinary Kriging</source>
         <translation>Normales Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="208"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="498"/>
         <source>Grid Volume</source>
         <translation>Rastervolumen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
         <source>Patching</source>
         <translation>Zusammenflicken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
         <source>Ordered Weighted Averaging|Ordered Weighted Averaging (OWA)</source>
         <translation>Sortiertes gewichtetes Mitteln|Sortiertes gewichtetes Mitteln (OWA)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
         <source>Thin Plate Spline (TIN)</source>
         <translation>Thin-Plate-Spline (TIN)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="394"/>
         <source>SAGA Wetness Index</source>
         <translation>SAGA Feuchtigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="484"/>
         <source>Histogram Surface</source>
         <translation>Histogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
         <source>Merge Layers</source>
         <translation>Layer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
         <source>Grid Skeletonization</source>
         <translation>Rasterskelettierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
         <source>Catchment Area|Catchment Area (Parallel)</source>
         <translation>Einzugsgebiet|Einzugsgebiet (Parallel)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="135"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
         <source>Geometric Figures</source>
         <translation>Geometrische Figuren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="413"/>
         <source>Spatial Point Pattern Analysis</source>
         <translation>Räumliche Punktmusteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="487"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="555"/>
         <source>Sink Removal</source>
         <translation>Ablauf entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
         <source>Convert Points to Line(s)</source>
         <translation>Punkte in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
         <source>Change Grid Values</source>
         <translation>Gitterwert ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="496"/>
         <source>Line Properties</source>
         <translation>Linieneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
         <source>Convert Multipoints to Points</source>
         <translation>Multipunkt zu Punkt umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
         <source>Cell Balance</source>
         <translation>Zellengleichgewicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
         <source>Fill Sinks (Wang & Liu)</source>
         <translation>Senken füllen (Wang & Liu)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
         <source>Convert Data Storage Type</source>
         <translation>Datenspeichertyp umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="494"/>
         <source>Rank Filter</source>
         <translation>Rangfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
         <source>Change Detection</source>
         <translation>Erkennung ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="353"/>
         <source>Strahler Order</source>
         <translation>Strahler-Reihenfolge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="150"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="390"/>
         <source>Inverse Distance Weighted</source>
         <translation>gewichtete inverse Distanz (IDW)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="550"/>
         <source>Multilevel B-Spline Interpolation (from Grid)</source>
         <translation>Mehrstufen-B-Spline-Interpolation (aus Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
         <source>Geographically Weighted Multiple Regression (Points/Grids)</source>
         <translation>Geografischgewichtete Mehrfach-Regression (Punkt/Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="553"/>
         <source>Fast Region Growing Algorithm</source>
         <translation>Schneller Regionswachstumalgorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="133"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="434"/>
         <source>Terrain Ruggedness Index (TRI)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="14"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="554"/>
         <source>GWR for Single Predictor Grid</source>
         <translation>GWR für einzelnes Vorsagegitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="352"/>
         <source>Points Filter</source>
         <translation>Punktfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="473"/>
         <source>Radius of Variance (Grid)</source>
         <translation>Radius der Varianz (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="337"/>
         <source>Geographically Weighted Multiple Regression (Points)</source>
         <translation>Geografischgewichtete Mehrfach-Regression (Punkte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
         <source>Sink Drainage Route Detection</source>
         <translation>Ablaufdrainageweg bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="204"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
         <source>GWR for Single Predictor (Gridded Model Output)</source>
         <translation>GWR für einzelnes Vorsagegitter (Gerasterte Modellausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="338"/>
         <source>Cubic Spline Approximation</source>
         <translation>Kubische Spline-Nährung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
         <source>Overland Flow Distance to Channel Network</source>
         <translation>Überlandflußabstand zu Kanalnetzwerken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
         <source>Shapes Buffer (Fixed distance)|Shapes Buffer</source>
         <translation>Shapepuffer (fester Abstand)|Shapepuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="439"/>
         <source>Line-Polygon Intersection</source>
         <translation>Linien-Polygon-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
         <source>Accumulated Cost (Anisotropic)</source>
         <translation>Aufgelaufenen Kosten (Anisotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
         <source>Fragmentation (Alternative)</source>
         <translation>Fragmentierung (Alternative)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="518"/>
         <source>Principle Components Analysis</source>
         <translation>Hauptkomponentenanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
         <source>Ordinary Kriging (Global)</source>
         <translation>Normales Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
         <source>Multi-Band Variation</source>
         <translation>Mehrkanalvariation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
         <source>Universal Kriging (Global)</source>
         <translation>Universeles Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
         <source>Analytical Hierarchy Process</source>
         <translation>Analytischer Hierachieprozeß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
         <source>Diurnal Anisotropic Heating</source>
         <translation>Anisotrope Erwärmung über Tag</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="548"/>
         <source>Variogram Surface</source>
         <translation>Variogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="15"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="493"/>
         <source>Multi Direction Lee Filter</source>
         <translation>Mehrrichtung-Lee-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="56"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
         <source>Watershed Basins</source>
         <translation>Einzugsgebietsbecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="67"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="393"/>
         <source>Supervised Classification</source>
         <translation>Überwachte Klassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="438"/>
         <source>Soil Texture Classification</source>
         <translation>Bodentexturklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="549"/>
         <source>Vectorising Grid Classes</source>
         <translation>Vektorisierende Gitter-Klassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="375"/>
         <source>Modified Quadratic Shepard</source>
         <translation>Modifizierte quadratische Shepard-Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="455"/>
         <source>Variogram Cloud</source>
         <translation>Variogramm Wolke</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="481"/>
         <source>Morphometric Protection Index</source>
         <translation>Morphometrischer Schutzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
         <source>Universal Kriging</source>
         <translation>Universeles Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="419"/>
         <source>Raster calculator|Grid Calculator</source>
         <translation>Rasterrechner|Rasterrechner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="471"/>
         <source>Grid Orientation</source>
         <translation>Gitterrichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="535"/>
         <source>Convergence Index</source>
         <translation>Konvergenzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
         <source>Shapes to Grid</source>
         <translation>Shapes in Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="503"/>
         <source>Land Surface Temperature</source>
         <translation>Landoberflächentemperatur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="405"/>
         <source>Polygon dissolve (all polygons)|Polygon Dissolve</source>
         <translation>Polygon auflösen (alle Polygone)|Polygon auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
         <source>Flow Width and Specific Catchment Area</source>
         <translation>Flußbreite und spezifisches Einzugsgebiet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="444"/>
         <source>Random Terrain Generation</source>
         <translation>Zufälliges Gelände erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="79"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
         <source>Convert Polygons to Lines</source>
         <translation>Polygon in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="255"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
         <source>Fuzzy Intersection (AND)</source>
         <translation>Fuzzy-Schnittmenge (UND)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="334"/>
         <source>Polygon Shape Indices</source>
         <translation>Polygonshapeindizes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="354"/>
         <source>Cluster Analysis for Grids</source>
         <translation>Häufungsanalyse für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="470"/>
         <source>Burn Stream Network into DEM</source>
         <translation>Stromnetzwerk in DEM brennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
         <source>Relative Heights and Slope Positions</source>
         <translation>Relative Höhen und Hangpositionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
         <source>Regression Kriging</source>
         <translation>Regressionskrigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
         <source>Simple Kriging</source>
         <translation>Einfaches Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="483"/>
         <source>Fuzzify</source>
         <translation>Fuzzifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
         <source>Catchment Area (Recursive)</source>
         <translation>Einzugsbereich (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="401"/>
         <source>Convert Polygon/Line Vertices to Points</source>
         <translation>Polygon-/Linienstützpunkte in Punkte umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
         <source>Least Cost Paths</source>
         <translation>Pfad geringster Kosten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="492"/>
         <source>Split Shapes Layer Randomly</source>
         <translation>Shapelayer zufällig aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="114"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
         <source>Grid Standardisation</source>
         <translation>Gitterstandardisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
         <source>Proximity Grid</source>
         <translation>Näheraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
         <source>Contour Lines from Grid</source>
         <translation>Umrandungslinien aus Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
         <source>Fragmentation (Standard)</source>
         <translation>Fragmentierung (Standard)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
         <source>Invert Data/No-Data</source>
         <translation>Daten/Leerdaten invertieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
         <source>Vegetation Index (Slope Based)</source>
         <translation>Vegetationsindex (hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="341"/>
         <source>Statistics for Grids</source>
         <translation>Statistik für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="569"/>
         <source>Grids Sum</source>
         <translation>Gittersumme</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
         <source>Triangulation</source>
         <translation>Triangulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="7"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
         <source>Grid Values to Points</source>
         <translation>Gitterwerte in Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="577"/>
         <source>Add Coordinates to points</source>
         <translation>Koordinaten zu Punkten hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="346"/>
         <source>Symmetrical Difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="476"/>
         <source>Flat Detection</source>
         <translation>Flacherkennung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="113"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="575"/>
         <source>Aggregate</source>
         <translation>Aggregieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="11"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
         <source>Sky View Factor</source>
         <translation>Himmelsichtfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="74"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="576"/>
         <source>Grid Difference</source>
         <translation>Gitterdifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="422"/>
         <source>Vertical Distance to Channel Network</source>
         <translation>Vertikale Distanz in Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
         <source>Random Field</source>
         <translation>Zufälliges Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
         <source>Simple Filter</source>
         <translation>Einfacher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
         <source>Minimum Distance Analysis</source>
         <translation>Minimumdistanzanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
         <source>Shrink and Expand</source>
         <translation>Verkleinern und Vergrößern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
         <source>Cut Shapes Layer</source>
         <translation>Shapelayer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="571"/>
         <source>TPI Based Landform Classification</source>
         <translation>TPI basierte Landformklassifikation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="351"/>
         <source>Intersect</source>
         <translation>Schnittmengen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="327"/>
         <source>Profile from points table|Profile from points</source>
         <translation>Profile aus Punkttabelle|Profil aus Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="371"/>
         <source>Downslope Distance Gradient</source>
         <translation>Abwärtsabstandsgrendiente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="521"/>
         <source>Channel Network</source>
         <translation>Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="424"/>
         <source>Pattern Analysis</source>
         <translation>Musteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="507"/>
         <source>Fit N Points to shape</source>
         <translation>N-Punkte in Shape einpassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
         <source>Remove Duplicate Points</source>
         <translation>Doppelte Punkte entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
         <source>Reclassify Grid Values</source>
         <translation>Gitterwert neuklassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="45"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="421"/>
         <source>Geographically Weighted Regression (Points/Grid)</source>
         <translation>Geografischgewichtete Regression (Punkt/Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="566"/>
         <source>Create Lines Graticule|Create Graticule</source>
         <translation>Liniengradnetz erzeugen|Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
         <source>Diffusive Hillslope Evolution (ADI)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
         <source>Diffusive Hillslope Evolution (FTCS)</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="544"/>
         <source>Flow Accumulation (QM of ESP)</source>
         <translation>Flußdichte (QM von ESP)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="417"/>
         <source>Close One Cell Gaps</source>
         <translation>Einzellenlücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
         <source>Successive Flow Routing</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="343"/>
         <source>Diversity of Categories</source>
         <translation></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
         <source>Thin Plate Spline</source>
         <translation>Thin Plate Spline</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
         <source>Slope, Aspect, Curvature</source>
         <translation>Neigung, Exposition, Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
         <source>Create Polygons Graticule|Create Graticule</source>
         <translation>Polygongradnetz erzeugen|Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
         <source>Fill Sinks (QM of ESP)</source>
         <translation>Senken füllen (QM von ESP)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="357"/>
         <source>Function</source>
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
         <source>GWR for Multiple Predictors</source>
         <translation>GWR für mehrere Vorhersagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="561"/>
         <source>Wind effect|Wind Effect (Windward / Leeward Index)</source>
         <translation>Windeffekt|Wind Effekt (Windwärts / Leeindex)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="407"/>
         <source>Close Gaps with Spline</source>
         <translation>Lücken mit Spline schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="522"/>
         <source>Change Time Format</source>
         <translation>Zeitformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
         <source>Thin Plate Spline (Local)</source>
         <translation>Thin Plate Spline (Lokal)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="381"/>
         <source>Grid Normalisation</source>
         <translation>Gitternormalisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
         <source>Seed Generation</source>
         <translation>Saaterzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="457"/>
         <source>Polygon-Line Intersection</source>
         <translation>Polygon-Linien-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="350"/>
         <source>Running Average</source>
         <translation>Beweglicher Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="256"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="534"/>
         <source>Cross-Classification and Tabulation</source>
         <translation>Kreuzklassifizierung und Tabellierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
         <source>Gradient Vector from Polar to Cartesian Coordinates</source>
         <translation>Gradientenvektor aus Polar- zu kartesischen Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="376"/>
         <source>Metric Conversions</source>
         <translation>Metrische Umwandlungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="339"/>
         <source>RGB Composite</source>
         <translation>RGB-Composite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
         <source>Edge Contamination</source>
         <translation>Kantenverunreinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="340"/>
         <source>Curvature Classification</source>
         <translation>Wölbungsklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
         <source>Filter Clumps</source>
         <translation>Klumpen filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
         <source>Overland Flow - Kinematic Wave D8</source>
         <translation>Überlandfluß - Kinematische Welle D8</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="488"/>
         <source>Profiles from Lines</source>
         <translation>Profile aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
         <source>Distance Matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="367"/>
         <source>Residual analysis|Residual Analysis (Grid)</source>
         <translation>Restanalyse|Restanalyse (Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="478"/>
         <source>Zonal Grid Statistics</source>
         <translation>Zonengitterstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="365"/>
         <source>Grid Division</source>
         <translation>Gitterteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
         <source>Lake Flood</source>
         <translation>Seeflut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
         <source>Add Polygon Attributes to Points</source>
         <translation>Polygonattribute zu Punkten hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="533"/>
         <source>Multilevel B-Spline Interpolation</source>
         <translation>Mehrstufen-B-Spline-Interpolation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
         <source>Cross Profiles</source>
         <translation>Kreuzprofile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="235"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
         <source>Polar to Cartesian Coordinates</source>
         <translation>Polar- zu kartesischen Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="84"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="542"/>
         <source>Mosaick raster layers|Mosaicking</source>
         <translation>Stitching von Rasterlayern|Stitching</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="562"/>
         <source>Fire Risk Analysis</source>
         <translation>Feuerriskikoanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="495"/>
         <source>Geographically Weighted Regression</source>
         <translation>Geografischgewichtete Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
         <source>Separate points by direction</source>
         <translation>Punkte nach Richtung aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="551"/>
         <source>Polygons to Edges and Nodes</source>
         <translation>Polygone zu Kanten und Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
         <source>Morphological Filter</source>
         <translation>Morphologischer Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
         <source>Vector Ruggedness Measure (VRM)</source>
         <translation>Vektorrauhigkeitsmaß (VRM)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
         <source>Fast Representativeness</source>
         <translation>Schnelle Repräsentativität</translation>
     </message>
@@ -84697,24 +85090,24 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SagaAlgorithm212</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2470"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2471"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
         <source>Input layer %s has more than one band.
 Multiband layers are not supported by SAGA</source>
         <translation>Eingabelayer %s hat mehr als einen Kanal.
 Mehrkanallayer werden von SAGA nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2473"/>
         <source>Input layers do not have the same grid extent.</source>
         <translation>Eingabelayer haben nicht die gleichen Gitterabmessungen.</translation>
     </message>
@@ -84722,12 +85115,12 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithm213</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2477"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2478"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
@@ -84735,47 +85128,47 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2482"/>
         <source>SAGA folder</source>
         <translation>SAGA-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2483"/>
         <source>Enable SAGA Import/Export optimizations</source>
         <translation>SAGA-Im-/Exportoptimierungen einschalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
         <source>Activate</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2487"/>
         <source>Problem with SAGA installation: SAGA was not found or is not correctly installed</source>
         <translation>Problem mit SAGA-Installation: SAGA wurde nicht gefunden oder ist nicht richtig installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2488"/>
         <source>Problem with SAGA installation: installed SAGA version (%s) is not supported</source>
         <translation>Problem mit SAGA-Installation: Installierte SAGA-Version (%s) ist nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2489"/>
         <source>Could not open SAGA algorithm: %s</source>
         <translation>Konnte SAGA-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
         <source>Could not open SAGA algorithm: %s
 %s</source>
         <translation>Konnte SAGA-Algorithmus nicht öffnen: %s
@@ -84785,7 +85178,7 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2494"/>
         <source>SAGA execution console output</source>
         <translation>Konsolenausgabe der SAGA-Ausführung</translation>
     </message>
@@ -84793,22 +85186,22 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SaveSelectedFeatures</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2499"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2501"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2498"/>
         <source>Save selected features</source>
         <translation>Gewählte Objekt speichern</translation>
     </message>
@@ -84816,36 +85209,36 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>ScriptAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2505"/>
         <source>User scripts</source>
         <translation>Benutzer Skripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2506"/>
         <source>Could not load script: %s
 Problem with line: %s</source>
         <translation>Konnte Skript nicht laden: %s
 Problem in Zeile: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
         <source>[Test scripts]</source>
         <translation>[Test Skripte]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
         <source>Could not load script: %s.
 Problem with line "%s"</source>
         <translation>Konnte Skript nicht laden: %s
 Problem in Zeile: "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2510"/>
         <source>Could not load script: %s.
 Problem with line %d</source>
         <translation>Konnte Skript nicht laden: %s.
@@ -84855,17 +85248,17 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2514"/>
         <source>Create new script</source>
         <translation>Erzeuge neues Skript</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2515"/>
         <source>Scripts folder</source>
         <translation>Skript Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2516"/>
         <source>Scripts</source>
         <translation>Skripte</translation>
     </message>
@@ -84873,39 +85266,39 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptEditorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
         <source>Python scripts (*.py)</source>
         <translation>Python-Skripte (*.py)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2525"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
         <source>Processing R script (*.rsx)</source>
         <translation>Verarbeitete R-Skript (*.rsx)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
         <source>Save script</source>
         <translation>Skript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2527"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2525"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2526"/>
         <source>Unable to save edits. Reason:
  %s</source>
         <translation>Änderung konnten nicht gespeichert werden. Grund:
  %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2520"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2521"/>
         <source>There are unsaved changes in script. Continue?</source>
         <translation>Es gibt ungesicherte Skriptänderungen.  Fortfahren?</translation>
     </message>
@@ -84961,57 +85354,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2531"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2532"/>
         <source>begins with </source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
         <source>Selected (attribute)</source>
         <translation>Auswahl (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
         <source>Operators %s can be used only with string fields.</source>
         <translation>Operatoren %s könnte nur in Textfeldern verwendet werden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2530"/>
         <source>Select by attribute</source>
         <translation>Nach Attribut wählen</translation>
     </message>
@@ -85019,42 +85412,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttributeSum</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2545"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2547"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2548"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2549"/>
         <source>Selected (attribute sum)</source>
         <translation>Auswahl (Attributsumme)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2550"/>
         <source>There is no selection in the input layer. Select one feature and try again.</source>
         <translation>Im Eingabelayer ist nichts ausgewählt. Bitte ein Objekt wählen und nocheinmal versuchen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2551"/>
         <source>No adjacent features found.</source>
         <translation>Keine benachbarten Objekte gefunden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2544"/>
         <source>Select by attribute sum</source>
         <translation>Nach Attributsumme wählen</translation>
     </message>
@@ -85062,47 +85455,47 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByExpression</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2556"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2557"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl wird erstellt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2558"/>
         <source>adding to current selection</source>
         <translation>Füge zur aktuellen Auswahl hinzu</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2559"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2563"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
         <source>Expression</source>
         <translation>Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2562"/>
         <source>Modify current selection by</source>
         <translation>Vorhandene Auswaähl ändern durch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2563"/>
         <source>Selected (expression)</source>
         <translation>Auswahl (Ausdruck)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2555"/>
         <source>Select by expression</source>
         <translation>Nach Ausdruck wählen</translation>
     </message>
@@ -85110,57 +85503,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2568"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2570"/>
         <source>adding to current selection</source>
         <translation>Füge zur aktuellen Auswahl hinzu</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2571"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2572"/>
         <source>Layer to select from</source>
         <translation>Layer von dem gewählt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2573"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2574"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2575"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
         <source>Modify current selection by</source>
         <translation>Aktuelle Auswahl ändern mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
         <source>Selected (location)</source>
         <translation>Auswahl (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2567"/>
         <source>Select by location</source>
         <translation>Nach Position selektieren</translation>
     </message>
@@ -85221,27 +85614,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetRasterStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2582"/>
         <source>Raster general tools</source>
         <translation>Allgemeine Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2585"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2581"/>
         <source>Set style for raster layer</source>
         <translation>Setze Stil für Rasterlayer</translation>
     </message>
@@ -85249,27 +85642,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetVectorStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2590"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2591"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2592"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2589"/>
         <source>Set style for vector layer</source>
         <translation>Setze Stil für Vektorlayer</translation>
     </message>
@@ -85277,14 +85670,14 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Setting</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2597"/>
         <source>Wrong parameter value:
 %s</source>
         <translation>Falscher Parameterwert:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2598"/>
         <source>Specified path does not exist:
 %s</source>
         <translation>Angegebener Pfad existiert nicht:
@@ -85566,7 +85959,7 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ShowTestDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2602"/>
         <source>Unit test</source>
         <translation>Unit-Test</translation>
     </message>
@@ -85574,32 +85967,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SimplifyGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2607"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2608"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2609"/>
         <source>Tolerance</source>
         <translation>Toleranz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2610"/>
         <source>Simplified</source>
         <translation>Vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
         <source>Simplify: Input geometries have been simplified from %s to %s points</source>
         <translation>Vereinfachen: Eingabegeometrien wurden von %s auf %s Punkte vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2606"/>
         <source>Simplify geometries</source>
         <translation>Geometrien vereinfachen</translation>
     </message>
@@ -85640,32 +86033,36 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SinglePartsToMultiparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2616"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2617"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2618"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2619"/>
         <source>Multipart</source>
         <translation>Mehrteilig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
+        <source>At least two features must have same attribute value! Please choose another field...</source>
+        <translation>Mindestens zwei Objekte müssen den gleichen Attributwert haben! Bitte ein anderes Feld wählen...</translation>
+    </message>
+    <message>
         <source>Invalid unique ID field</source>
-        <translation>Ungültiges eindeutiges Kennungsfeld</translation>
+        <translation type="obsolete">Ungültiges eindeutiges Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2615"/>
         <source>Singleparts to multipart</source>
         <translation>Ein- zu mehrteilig</translation>
     </message>
@@ -85712,42 +86109,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeArea</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2624"/>
         <source>Slope Area Combination</source>
         <translation>Neigungsflächenkombination</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2625"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2627"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2628"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2629"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -85755,42 +86152,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeAreaMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2635"/>
         <source>Slope Area Combination (multifile)</source>
         <translation>Neigungsflächenkombination (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2636"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2637"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2638"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2639"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -85798,37 +86195,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Smooth</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2646"/>
         <source>Smooth geometry</source>
         <translation>Geometrieglättung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2647"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2648"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
         <source>Iterations</source>
         <translation>Wiederholungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
         <source>Offset</source>
         <translation>Versatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2651"/>
         <source>Smoothed</source>
         <translation>Geglättet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2652"/>
         <source>Error smoothing geometry</source>
         <translation>Fehler bei Geometrieglättung</translation>
     </message>
@@ -85836,72 +86233,72 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SpatialJoin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2657"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2658"/>
         <source>Take attributes of the first located feature</source>
         <translation>Attribute des ersten bestimmten Objekts verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2659"/>
         <source>Take summary of intersecting features</source>
         <translation>Zusammenfassung der schneidenden Objekte erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
         <source>Only keep matching records</source>
         <translation>Nur passende Datensätze erhalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
         <source>Keep all records (including non-matching target records)</source>
         <translation>Alle Datensätze erhalten (einschließlich nicht zutreffender Zieldatensätzen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2662"/>
         <source>Target vector layer</source>
         <translation>Zielvektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2663"/>
         <source>Join vector layer</source>
         <translation>Verknüpfter Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2664"/>
         <source>Geometric predicate</source>
         <translation>Geometrische Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
         <source>Attribute summary</source>
         <translation>Attributzusammenfassung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
         <source>Statistics for summary (comma separated)</source>
         <translation>Statistik zur Zusammenfassung (kommasepariert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
         <source>Joined table</source>
         <translation>Verknüpfte Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2656"/>
         <source>Join attributes by location</source>
         <translation>Attribute nach Position zusammenfügen</translation>
     </message>
@@ -85909,32 +86306,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitLinesWithLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2674"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2675"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2676"/>
         <source>Split layer</source>
         <translation>Layer aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2677"/>
         <source>Splitted</source>
         <translation>Geteilt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
         <source>Geometry exception while splitting</source>
         <translation>Geometrieausnahme während Aufteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2673"/>
         <source>Split lines with lines</source>
         <translation>Linien with Linien teilen</translation>
     </message>
@@ -85942,32 +86339,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitRGBBands</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2682"/>
         <source>Split RGB bands</source>
         <translation>RGB-Kanäle trennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2683"/>
         <source>Image tools</source>
         <translation>Bildwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2684"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2685"/>
         <source>Output R band layer</source>
         <translation>R-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2686"/>
         <source>Output G band layer</source>
         <translation>G-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
         <source>Output B band layer</source>
         <translation>B-Ausgabekanallayer</translation>
     </message>
@@ -86003,32 +86400,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>StatisticsByCategories</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2694"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2692"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2693"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2694"/>
         <source>Field to calculate statistics on</source>
         <translation>Feld für Statistikberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
         <source>Field with categories</source>
         <translation>Feld mit Kategorien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
         <source>Statistics by category</source>
         <translation>Statistik nach Kategorie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2691"/>
         <source>Statistics by categories</source>
         <translation>Statistik nach Kategorien</translation>
     </message>
@@ -86036,37 +86433,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SumLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2701"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2702"/>
         <source>Lines</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
         <source>Lines length field name</source>
         <translation>Linienlängenfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2705"/>
         <source>Lines count field name</source>
         <translation>Linienzählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2706"/>
         <source>Line length</source>
         <translation>Linienlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2700"/>
         <source>Sum line lengths</source>
         <translation>Linienlängen summieren</translation>
     </message>
@@ -86167,38 +86564,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SymmetricalDifference</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2711"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2712"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
         <source>Difference layer</source>
         <translation>Differenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2716"/>
         <source>Input layer has unsupported geometry type {}</source>
-        <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+        <translation type="obsolete">Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2717"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2714"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2718"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2715"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2710"/>
         <source>Symmetrical difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
@@ -86206,222 +86602,222 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TAUDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="84"/>
         <source>D-Infinity Avalanche Runout (multifile)</source>
         <translation>D-Unendlich Lawinenauslauf (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
         <source>Move Outlets To Streams</source>
         <translation>Abläufe zu Strömem verschieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="283"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
         <source>D8 Flow Directions (multifile)</source>
         <translation>D8 Flußrichtungen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
         <source>Topographic Wetness Index</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
         <source>Move Outlets To Streams (multifile)</source>
         <translation>Abläufe zu Strömem verschieben (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="113"/>
         <source>Stream Reach and Watershed</source>
         <translation>Flußausdehnung und Wasserscheiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
         <source>D-Infinity Reverse Accumulation</source>
         <translation>D-Unendlich umgekehrte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="297"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
         <source>Slope Over Area Ratio</source>
         <translation>Gefälle-über-Flächenverhältnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
         <source>Select GT Threshold (multifile)</source>
         <translation>GT-Schwelle wählen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
         <source>D-Infinity Contributing Area (multifile)</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
         <source>D-Infinity Concentration Limited Accumulation (multifile)</source>
         <translation>D-Infinity konzentrationsbegrenzte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="303"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
         <source>D8 Distance To Streams</source>
         <translation>D8 Abstand zu Strömen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
         <source>D-Infinity Decaying Accumulation</source>
         <translation>D-Unendlich abnehmende Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
         <source>D-Infinity Flow Directions (multifile)</source>
         <translation>D-Unendlich Flußrichtungen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
         <source>Select GT Threshold</source>
         <translation>GT-Schwelle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="287"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
         <source>D8 Contributing Area</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
         <source>Stream Reach and Watershed (multifile)</source>
         <translation>Flußausdehnung und Wasserscheiden (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="114"/>
         <source>Gage Watershed - 2 (multifile)</source>
         <translation>Einzugsgebiet messen - 2 (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="284"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="120"/>
         <source>D-Infinity Concentration Limited Accumulation</source>
         <translation>D-Unendlich konzentrationsbegrenzte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
         <source>D-Infinity Flow Directions</source>
         <translation>D-Infinity Fließrichtungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
         <source>Gage Watershed - 2</source>
         <translation>Einzugsgebiet messen - 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
         <source>D-Infinity Contributing Area</source>
         <translation>D-Unendlich beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
         <source>Slope Over Area Ratio (multifile)</source>
         <translation>Gefälle-über-Flächenverhältnis (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="269"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
         <source>D8 Extreme Upslope Value (multifile)</source>
         <translation>D8 Extremer Aufwärtswert (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
         <source>D-Infinity Reverse Accumulation (multifile)</source>
         <translation>D-Unendlich umgekehrte Akkumulation (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
         <source>Pit Remove</source>
         <translation>Löcher entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="281"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
         <source>Gage Watershed</source>
         <translation>Einzugsgebiet messen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="270"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="92"/>
         <source>Stream Definition By Threshold</source>
         <translation>Stromdefinition nach Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="275"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
         <source>D8 Extreme Upslope Value</source>
         <translation>D8 Extremer Aufwärtswert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
         <source>Slope Average Down</source>
         <translation>Gemitteltes Gefälle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
         <source>D8 Contributing Area (multifile)</source>
         <translation>D8 beitragende Fläche (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="299"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
         <source>D8 Distance To Streams (multifile)</source>
         <translation>D8 Abstand zu Strömen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
         <source>Gage Watershed (multifile)</source>
         <translation>Einzugsgebiet messen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
         <source>D-Infinity Avalanche Runout</source>
         <translation>D-Unendlich Lawinenauslauf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
         <source>Slope Average Down (multifile)</source>
         <translation>Gemitteltes Gefälle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
         <source>Pit Remove (multifile)</source>
         <translation>Löcher entfernen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="291"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
         <source>D-Infinity Upslope Dependence (multifile)</source>
         <translation>D-Unendlich Auswärtsabhängigkeit (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
         <source>D-Infinity Upslope Dependence</source>
         <translation>D-Unendlich Aufwärtsabhängigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
         <source>Topographic Wetness Index (multifile)</source>
         <translation>Topographischer Niederschlagsindex (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
         <source>Stream Definition By Threshold (multifile)</source>
         <translation>Stromdefinition nach Schwelle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
         <source>D8 Flow Directions</source>
         <translation>D8 Flußrichtungen</translation>
     </message>
@@ -86429,14 +86825,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2719"/>
         <source>Could not load TauDEM algorithm: %s
 %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2720"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -86444,47 +86840,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2725"/>
         <source>TauDEM command line tools folder</source>
         <translation>Verzeichnis der TauDEM-Kommandozeilenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2729"/>
         <source>MPICH2/OpenMPI bin directory</source>
         <translation>MPICH2/OpenMPI-Programmverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
         <source>Number of MPI parallel processes to use</source>
         <translation>Anzahl zu verwendender paralleler MPI-Prozesse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
         <source>Could not open TauDEM algorithm: %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht öffnen: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2724"/>
         <source>TauDEM (hydrologic analysis)</source>
         <translation>TauDEM (hydrologische Analyse)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2726"/>
         <source>TauDEM multifile command line tools folder</source>
         <translation>TauDEM-Mehrdateibefehlszeilenwerkzeugverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2727"/>
         <source>Enable singlefile TauDEM tools</source>
         <translation>TauDEM-Einzeldateibefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2728"/>
         <source>Enable multifile TauDEM tools</source>
         <translation>TauDEM-Mehrdateienbefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2732"/>
         <source>Could not open TauDEM algorithm %s:
 %s</source>
         <translation>Konnte TauDEM-Algorithmus %s nicht öffnen:
@@ -86494,14 +86890,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMMultifileAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2736"/>
         <source>Could not load TauDEM algorithm: %s
 %s</source>
         <translation>Konnte TauDEM-Algorithmus nicht laden: %s
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2737"/>
         <source>Wrong number of MPI processes used. Please set correct number before running TauDEM algorithms.</source>
         <translation>Falsche Anzahl von MPI-Prozessen verwendet. Bitte vor der Ausführung von TauDEM-Algorithmen korrekte Anzahl einstellen.</translation>
     </message>
@@ -86509,12 +86905,12 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2741"/>
         <source>TauDEM execution console output</source>
         <translation>Konsolenausgabe der TauDEM-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2742"/>
         <source>TauDEM command:</source>
         <translation>TauDEM-Befehl:</translation>
     </message>
@@ -86522,27 +86918,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TextToFloat</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2747"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2748"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2749"/>
         <source>Text attribute to convert to float</source>
         <translation>In Fließkomma umzuwandelndes Textattribut </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2750"/>
         <source>Float from text</source>
         <translation>Fließkomma aus Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2746"/>
         <source>Text to float</source>
         <translation>Text zu Fließkomma</translation>
     </message>
@@ -86550,47 +86946,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TinSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2754"/>
         <source>Tin Surface Create</source>
         <translation>TIN-Oberflächenerzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2755"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2756"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2759"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2760"/>
         <source>.dtm output surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
         <source>Select specific return</source>
         <translation>Bestimmtes Ergebnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2761"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
@@ -86612,7 +87008,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TreeProviderItem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2766"/>
         <source> [{0} geoalgorithms]</source>
         <translation> [{0} Geo-Algorithmen]</translation>
     </message>
@@ -86620,38 +87016,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Union</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2771"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2772"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2773"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2777"/>
         <source>Input layer has unsupported geometry type {}</source>
-        <translation>Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
+        <translation type="obsolete">Eingabelayer hat einen nicht unterstützten Geometrietyp {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2774"/>
         <source>Feature geometry error: One or more output features ignored due to invalid geometry.</source>
         <translation>
 Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometrie wurden ignoriert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2775"/>
         <source>GEOS geoprocessing error: One or more input features have invalid geometry.</source>
         <translation>GEOS-Verarbeitungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2770"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
@@ -86659,42 +87054,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>UniqueValues</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2780"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2781"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2782"/>
         <source>Target field</source>
         <translation>Zielfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
         <source>Unique values</source>
         <translation>Eindeutige Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
         <source>Total unique values</source>
         <translation>Gesamtzahl eindeutiger Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2785"/>
         <source><p>Total unique values: </source>
         <translation><p>Gesamte eindeutige Werte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2786"/>
         <source><p>Unique values:</p></source>
         <translation><p>Eindeutige Werte:</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2779"/>
         <source>List unique values</source>
         <translation>Eindeutige Werte auflisten</translation>
     </message>
@@ -86789,37 +87184,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VariableDistanceBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2791"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2792"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2793"/>
         <source>Distance field</source>
         <translation>Distanzfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2794"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2795"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2796"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2790"/>
         <source>Variable distance buffer</source>
         <translation>Puffer variabler Distanz</translation>
     </message>
@@ -86840,47 +87235,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorGrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2801"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2802"/>
         <source>Output grid as polygons</source>
         <translation>Gitter als Polygone ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2803"/>
         <source>Output grid as lines</source>
         <translation>Gitter als Linien ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2804"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2805"/>
         <source>X spacing</source>
         <translation>X-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
         <source>Y spacing</source>
         <translation>Y-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2808"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2800"/>
         <source>Vector grid</source>
         <translation>Vektorraster</translation>
     </message>
@@ -86888,42 +87283,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2812"/>
         <source>Vector layer bounds</source>
         <translation>Vektorlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2813"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2814"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2815"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2817"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2818"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2823"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2819"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -86931,32 +87326,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2824"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2825"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2826"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2827"/>
         <source>number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2828"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2823"/>
         <source>Vector layer histogram</source>
         <translation>Vektorlayerhistogramm</translation>
     </message>
@@ -86964,32 +87359,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerScatterplot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2833"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2834"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2835"/>
         <source>X attribute</source>
         <translation>X-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2836"/>
         <source>Y attribute</source>
         <translation>Y-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2837"/>
         <source>Scatterplot</source>
         <translation>Streudiagramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2832"/>
         <source>Vector layer scatterplot</source>
         <translation>Vektorlayerstreuungsplott</translation>
     </message>
@@ -86997,27 +87392,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorSplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2842"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2843"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2844"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2849"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
         <source>Output directory</source>
         <translation>Ausgabeverzeichniss</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2841"/>
         <source>Split vector layer</source>
         <translation>Vektorlayer teilen</translation>
     </message>
@@ -87093,27 +87488,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VoronoiPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2851"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2852"/>
         <source>Buffer region</source>
         <translation>Region puffern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2849"/>
         <source>Voronoi polygons</source>
         <translation>Voronoipolygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2850"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2853"/>
         <source>Input file should contain at least 3 points. Choose another file and try again.</source>
         <translation>Eingabedatei sollte mindestens 3 Punkte enthalten. Eine andere Datei wählen und nochmal versuchen.</translation>
     </message>
@@ -88540,42 +88935,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ZonalStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2858"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2859"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2860"/>
         <source>Raster band</source>
         <translation>Rasterkanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
         <source>Vector layer containing zones</source>
         <translation>Zonenvektorlayer </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
         <source>Output column prefix</source>
         <translation>Ausgabespaltenpräfix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2863"/>
         <source>Load whole raster in memory</source>
         <translation>Ganzes Raster in Speicher laden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2864"/>
         <source>Zonal statistics</source>
         <translation>Zonenstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2857"/>
         <source>Zonal Statistics</source>
         <translation>Räumliche Statistik</translation>
     </message>
@@ -88596,17 +88991,17 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>alg</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2870"/>
         <source>You need to set at least source/sink_where or source/sink_cats parameters for each set!</source>
         <translation>Es muß zumindest der source/sink_where oder source/sink_cats Parameter für jeden Satz gesetzt sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2869"/>
         <source>You need to set at least setX_where or setX_cats parameters for each set!</source>
         <translation>Es muß zumindest die setX_where oder setX_cats  Parameter für jeden Satz gesetzt sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2868"/>
         <source>Fusion</source>
         <translation>Fusion</translation>
     </message>
@@ -88614,42 +89009,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>aspect</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2875"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2876"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2877"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2878"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2879"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2880"/>
         <source>Return trigonometric angle (instead of azimuth)</source>
         <translation>Trigonometrischen Winkel (statt Azimut) zurückgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
         <source>Return 0 for flat (instead of -9999)</source>
         <translation>0 (statt -9999) für Ebene zurückgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2874"/>
         <source>Aspect</source>
         <translation>Perspektive</translation>
     </message>
@@ -88657,27 +89052,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2885"/>
         <source>blast2dem</source>
         <translation>blast2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2886"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2887"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2888"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2889"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -88685,27 +89080,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2893"/>
         <source>blast2demPro</source>
         <translation>blast2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2894"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2895"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2896"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2897"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -88713,37 +89108,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2901"/>
         <source>blast2iso</source>
         <translation>blast2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2902"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2903"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2904"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Iso-Linien bereinigen, wenn kürzer als (0 = keine Bereinigung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2907"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -88751,37 +89146,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2isoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2911"/>
         <source>blast2isoPro</source>
         <translation>blast2isoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2912"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2913"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2914"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Iso-Linien vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2917"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -88789,37 +89184,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>buildvrt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2926"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2922"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2923"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2924"/>
         <source>Resolution</source>
         <translation>Auflösung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2925"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2926"/>
         <source>Allow projection difference</source>
         <translation>Unterschiedliche Projektionen zulassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
         <source>Virtual</source>
         <translation>Virtuell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2921"/>
         <source>Build Virtual Raster</source>
         <translation>Virtuelles Raster generieren</translation>
     </message>
@@ -91934,37 +92329,37 @@ Durch Klick auf <label>Berechnen</label> wird der kürzeste Weg mit
 <context>
     <name>contour</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2931"/>
         <source>Contour</source>
         <translation>Kontur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2932"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2933"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2934"/>
         <source>Interval between contour lines</source>
         <translation>Intervall zwischen Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2935"/>
         <source>Attribute name (if not set, no elevation attribute is attached)</source>
         <translation>Attributname (wenn nicht angegeben, wird kein Höhenattribut zugefügt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2940"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2936"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2937"/>
         <source>Contours</source>
         <translation>Konturen</translation>
     </message>
@@ -92836,17 +93231,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>expressions</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2743"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2754"/>
         <source>Vector</source>
         <translation>Vektor</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2745"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2756"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="2747"/>
+        <location filename="../src/core/qgsexpression.cpp" line="2758"/>
         <source>Plugin</source>
         <translation>Plugin</translation>
     </message>
@@ -92854,264 +93249,264 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>fTools</name>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="398"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="394"/>
         <source>QGIS version detected: </source>
         <translation>Festgestellte QGIS-Version: </translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="399"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="395"/>
         <source>This version of fTools requires at least QGIS version 1.0.0
 Plugin will not be enabled.</source>
         <translation>Diese fTools-Version erfordert mindestens QGIS Version 1.0.0
 Erweiterung wird nicht aktiviert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="400"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="396"/>
         <source>&Analysis Tools</source>
         <translation>&Analyse-Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="401"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="397"/>
         <source>Distance Matrix...</source>
         <translation>Distanzmatrix...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="398"/>
         <source>Sum Line Lengths...</source>
         <translation>Linienlängen summieren...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="399"/>
         <source>Points in Polygon...</source>
         <translation>Punkte in Polygonen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="400"/>
         <source>Basic Statistics...</source>
         <translation>Grundstatistik...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="405"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="401"/>
         <source>List Unique Values...</source>
         <translation>Eindeutige Werte auflisten...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="406"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="402"/>
         <source>Nearest Neighbour Analysis...</source>
         <translation>Nächster Nachbaranalyse...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="407"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="403"/>
         <source>Mean Coordinate(s)...</source>
         <translation>Mittlere Koordinate(n)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="408"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="404"/>
         <source>Line Intersections...</source>
         <translation>Linienschnittpunkte...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="410"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="406"/>
         <source>Random Selection...</source>
         <translation>Zufällige Auswahl...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="411"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="407"/>
         <source>Random Selection Within Subsets...</source>
         <translation>Zufällige Auswahl in Untermengen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="408"/>
         <source>Random Points...</source>
         <translation>Zufällige Punkte...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="413"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="409"/>
         <source>Regular Points...</source>
         <translation>Regelmäßige Punkte...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="410"/>
         <source>Vector Grid...</source>
         <translation>Vektorgitter...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="415"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="411"/>
         <source>Select by Location...</source>
         <translation>Nach Position auswählen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="416"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="412"/>
         <source>Polygon from Layer Extent...</source>
         <translation>Polygon aus Layergrenzen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="418"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="414"/>
         <source>Convex Hull(s)...</source>
         <translation>Konvexe Hülle(n)...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="419"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="415"/>
         <source>Buffer(s)...</source>
         <translation>Puffer...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="420"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="416"/>
         <source>Intersect...</source>
         <translation>Überschneidet...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="421"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="417"/>
         <source>Union...</source>
         <translation>Vereinigen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="423"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="419"/>
         <source>Clip...</source>
         <translation>Clipper...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="424"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="420"/>
         <source>Dissolve...</source>
         <translation>Alles auflösen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="425"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="421"/>
         <source>Difference...</source>
         <translation>Unterschied...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="426"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="422"/>
         <source>Eliminate Sliver Polygons...</source>
         <translation>Splitterpolygone entfernen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="428"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="424"/>
         <source>Export/Add Geometry Columns...</source>
         <translation>Geometriespalten exportieren/hinzufügen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="429"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="425"/>
         <source>Check Geometry Validity...</source>
         <translation>Geometriegültigkeit prüfen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="426"/>
         <source>Polygon Centroids...</source>
         <translation>Polygonschwerpunkte...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="427"/>
         <source>Delaunay Triangulation...</source>
         <translation>Delaunay-Triangulation...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="432"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="428"/>
         <source>Voronoi Polygons...</source>
         <translation>Voronoi-Polygone...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="433"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="429"/>
         <source>Extract Nodes...</source>
         <translation>Knoten extrahieren...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="434"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="430"/>
         <source>Simplify Geometries...</source>
         <translation>Geometrien vereinfachen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="435"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="431"/>
         <source>Densify Geometries...</source>
         <translation>Geometrien verdichten...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="436"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="432"/>
         <source>Multipart to Singleparts...</source>
         <translation>Mehr- zu einteilig...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="433"/>
         <source>Singleparts to Multipart...</source>
         <translation>Ein- zu mehrteilig...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="438"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="434"/>
         <source>Polygons to Lines...</source>
         <translation>Polygone zu Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="439"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="435"/>
         <source>Lines to Polygons...</source>
         <translation>Linien zu Polygonen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="441"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="437"/>
         <source>Define Current Projection...</source>
         <translation>Aktuelle Projektion definieren...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="442"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="438"/>
         <source>Join Attributes by Location...</source>
         <translation>Attribute nach Position zusammenführen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="443"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="439"/>
         <source>Split Vector Layer...</source>
         <translation>Vektorlayer teilen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="444"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="440"/>
         <source>Merge Shapefiles to One...</source>
         <translation>Shapedateien zu einer zusammenführen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="441"/>
         <source>Create Spatial Index...</source>
         <translation>Räumlichen Index erzeugen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="409"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="405"/>
         <source>&Research Tools</source>
         <translation>&Forschungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="394"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="442"/>
         <source>Save output shapefile</source>
         <translation>Shapefile speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="443"/>
         <source>Select input file</source>
         <translation>Eingabedatei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="396"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="444"/>
         <source>Select input files</source>
         <translation>Eingabedateien wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="397"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="445"/>
         <source>Save output directory</source>
         <translation>Ausgabeverzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="417"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="413"/>
         <source>&Geoprocessing Tools</source>
         <translation>&Geoverarbeitungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="422"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="418"/>
         <source>Symmetrical Difference...</source>
         <translation>Symmetrische Differenz...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="427"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="423"/>
         <source>G&eometry Tools</source>
         <translation>G&eometrie-Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/fTools/python-i18n.cpp" line="440"/>
+        <location filename="../python/plugins/fTools/python-i18n.cpp" line="436"/>
         <source>&Data Management Tools</source>
         <translation>&Datenmanagement-Werkzeuge</translation>
     </message>
@@ -93119,47 +93514,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>fillnodata</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2942"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2943"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2944"/>
         <source>Search distance</source>
         <translation>Suchdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2945"/>
         <source>Smooth iterations</source>
         <translation>Glättungsiterationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2946"/>
         <source>Band to operate on</source>
         <translation>Zu bearbeitender Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
         <source>Validity mask</source>
         <translation>Gültigkeitsmaske</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
         <source>Do not use default validity mask</source>
         <translation>Voreingestellte Gültigkeitsmaske nicht verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2949"/>
         <source>Filled</source>
         <translation>Gefüllt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2941"/>
         <source>Fill nodata</source>
         <translation>"Leerwert" füllen</translation>
     </message>
@@ -93167,37 +93562,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToCHM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2953"/>
         <source>flightlinesToCHM</source>
         <translation>flightlinesToCHM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2954"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2955"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2956"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2958"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2963"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2959"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -93205,32 +93600,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToDTMandDSM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2963"/>
         <source>flightlinesToDTMandDSM</source>
         <translation>flightlinesToDTMandDSM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2964"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2965"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2966"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2967"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2968"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -93238,32 +93633,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>flightlinesToSingleCHMpitFree</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2972"/>
         <source>flightlinesToSingleCHMpitFree</source>
         <translation>flightlinesToSingleCHMpitFree</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2973"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2974"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2975"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2976"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
@@ -93271,92 +93666,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdal2tiles</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2981"/>
         <source>gdal2tiles</source>
         <translation>gdal2tiles</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2982"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2983"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2984"/>
         <source>Tile cutting profile</source>
         <translation>Kachelschneideprofil</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2985"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2986"/>
         <source>The spatial reference system used for the source input data</source>
         <translation>Das räumliche Bezugssystem der Eingabedaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2987"/>
         <source>Zoom levels to render</source>
         <translation>Darzustellende Zoomstufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
         <source>Resume mode, generate only missing files</source>
         <translation>Wiederaufnahmemodus, nur fehlende Dateien erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
         <source>NODATA transparency value to assign to the input data</source>
         <translation>Den Eingabedaten zuzuweisender Leer-Transparenzwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
         <source>Generate KML for Google Earth - default for "geodetic" profile and "raster" in EPSG:4326</source>
         <translation>KML für Google-Earth erzeugen - voreingestellt auf "geodätisches" Profil und "Raster" in EPSG:4326</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2991"/>
         <source>Avoid automatic generation of KML files for EPSG:4326</source>
         <translation>Automatische Erzeugung von KML-Dateien für EPSG:4326 vermeiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
         <source>URL address where the generated tiles are going to be published</source>
         <translation>URL unter der die generierten Kacheln veröffentlich werden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
         <source>Web viewer to generate</source>
         <translation>Zu erzeugende Webanzeige</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
         <source>Title of the map</source>
         <translation>Kartentitel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
         <source>Copyright for the map</source>
         <translation>Urheberrecht der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3000"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
         <source>Google Maps API key from http://code.google.com/apis/maps/signup.html</source>
         <translation>Google-Maps-API-Schlüssel von http://code.google.com/apis/maps/signup.html</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
         <source>Bing Maps API key from https://www.bingmapsportal.com/</source>
         <translation>Bing-Maps-API-Schlüssel von https://www.bingmapsportal.com/</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -93364,27 +93759,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdal2xyz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3003"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3004"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3005"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
         <source>xyz</source>
         <translation>xyz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3002"/>
         <source>gdal2xyz</source>
         <translation>gdal2xyz</translation>
     </message>
@@ -93392,42 +93787,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdaladdo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3011"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3012"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3013"/>
         <source>Overview levels</source>
         <translation>Übersichtsebenen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3014"/>
         <source>Remove all existing overviews</source>
         <translation>Alle Übersichten entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3019"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3015"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3020"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
         <source>Overview format</source>
         <translation>Übersichtsformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3021"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3017"/>
         <source>Pyramidized</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3010"/>
         <source>Build overviews (pyramids)</source>
         <translation>Übersichten erzeugen (Pyramiden)</translation>
     </message>
@@ -93435,97 +93830,97 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdalcalc</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3022"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3023"/>
         <source>Input layer A</source>
         <translation>Eingabelayer A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3024"/>
         <source>Number of raster band for raster A</source>
         <translation>Kanalnummer für Raster A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3025"/>
         <source>Input layer B</source>
         <translation>Eingabelayer B</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3030"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
         <source>Number of raster band for raster B</source>
         <translation>Kanalnummer für Raster B</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
         <source>Input layer C</source>
         <translation>Eingabelayer C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3032"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3028"/>
         <source>Number of raster band for raster C</source>
         <translation>Kanalnummer für Raster C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3029"/>
         <source>Input layer D</source>
         <translation>Eingabelayer D</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3030"/>
         <source>Number of raster band for raster D</source>
         <translation>Kanalnummer für Raster D</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3031"/>
         <source>Input layer E</source>
         <translation>Eingabelayer E</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3032"/>
         <source>Number of raster band for raster E</source>
         <translation>Kanalnummer für Raster E</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3033"/>
         <source>Input layer F</source>
         <translation>Eingabelayer F</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
         <source>Number of raster band for raster F</source>
         <translation>Kanalnummer für Raster F</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3039"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
         <source>Calculation in gdalnumeric syntax using +-/* or any numpy array functions (i.e. logical_and())</source>
         <translation>Berechnung in Syntax von gdalnumeric mit +-/* oder anderen Numpy-Feldfunktionen (z.B. logical_end()) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3040"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3036"/>
         <source>Set output nodata value</source>
         <translation>Ausgabeleerwert festlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3041"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3037"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3038"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3039"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3021"/>
         <source>Raster calculator</source>
         <translation>Rasterrechner</translation>
     </message>
@@ -93533,32 +93928,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>gdaltindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3044"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3045"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3046"/>
         <source>Tile index field</source>
         <translation>Kachelindexfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3047"/>
         <source>Skip files with different projection reference</source>
         <translation>Dateien mit anderer Projektion überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3048"/>
         <source>Tile index</source>
         <translation>Kachelindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3043"/>
         <source>Tile Index</source>
         <translation>Kachelindex</translation>
     </message>
@@ -96177,52 +96572,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hillshade</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3053"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3054"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3059"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3055"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3056"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3057"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3058"/>
         <source>Z factor (vertical exaggeration)</source>
         <translation>Z-Faktor (Vertikale Überhöhung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3059"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3064"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3060"/>
         <source>Azimuth of the light</source>
         <translation>Azimut des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3065"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3061"/>
         <source>Altitude of the light</source>
         <translation>Höhe des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3052"/>
         <source>Hillshade</source>
         <translation>Schummerung</translation>
     </message>
@@ -96230,37 +96625,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3069"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3065"/>
         <source>hugeFileClassify</source>
         <translation>hugeFileClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3066"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3067"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3068"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3069"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3070"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3075"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3071"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96268,37 +96663,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileGroundClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3075"/>
         <source>hugeFileGroundClassify</source>
         <translation>hugeFileGroundClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3076"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3077"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3078"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3079"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3084"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3080"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3081"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96306,37 +96701,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>hugeFileNormalize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3085"/>
         <source>hugeFileNormalize</source>
         <translation>hugeFileNormalize</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3086"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3091"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3087"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3092"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3088"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3090"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3091"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -96344,32 +96739,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>information</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3096"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3097"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3098"/>
         <source>Suppress GCP info</source>
         <translation>Paßpunktinformation unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
         <source>Suppress metadata info</source>
         <translation>Metadateninfo unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3095"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -96377,27 +96772,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3104"/>
         <source>las2dem</source>
         <translation>las2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3105"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3110"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3106"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3107"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3108"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96405,27 +96800,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3112"/>
         <source>las2demPro</source>
         <translation>las2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3113"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3114"/>
         <source>attribute (what to interpolate)</source>
         <translation>Attribute (zu Interpolieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3119"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3115"/>
         <source>product (how to output per pixel)</source>
         <translation>Produkt (Pixelausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3120"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3116"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -96433,37 +96828,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3120"/>
         <source>las2iso</source>
         <translation>las2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3121"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3122"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3123"/>
         <source>extract isoline with a spacing of</source>
         <translation>Extrahiere Isolinie mit einem Abstand von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3124"/>
         <source>clean isolines shorter than (0 = do not clean)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3125"/>
         <source>simplify segments shorter than (0 = do not simplify)</source>
         <translation>Segmente vereinfachen kürzer als (0 = nicht vereinfachen) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3130"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3126"/>
         <source>simplify segments pairs with area less than (0 = do not simplify)</source>
         <translation>Segmentpaare vereinfachen mit Fläche kleiner als (0 = nicht vereinfachen) </translation>
     </message>
@@ -96471,12 +96866,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3130"/>
         <source>las2lasPro_filter</source>
         <translation>las2lasPro_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3131"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -96484,42 +96879,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3135"/>
         <source>las2lasPro_project</source>
         <translation>las2lasPro_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3136"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3137"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3138"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3139"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3140"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3141"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3142"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -96527,22 +96922,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2lasPro_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3146"/>
         <source>las2lasPro_transform</source>
         <translation>las2lasPro_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3147"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3148"/>
         <source>operations (first 8 need an argument)</source>
         <translation>Operationen (die ersten 8 brauchen ein Argument)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3149"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -96550,12 +96945,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3153"/>
         <source>las2las_filter</source>
         <translation>las2las_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3158"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3154"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96563,42 +96958,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3158"/>
         <source>las2las_project</source>
         <translation>las2las_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3159"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3160"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3161"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3164"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3165"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -96606,22 +97001,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2las_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3169"/>
         <source>las2las_transform</source>
         <translation>las2las_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3170"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3171"/>
         <source>operations (first 8 need an argument)</source>
         <translation>Operationen (die ersten 8 brauchen ein Argument)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3172"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -96629,27 +97024,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2shp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3176"/>
         <source>las2shp</source>
         <translation>las2shp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3177"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3178"/>
         <source>use PointZ instead of MultiPointZ</source>
         <translation>PointZ statt MultiPointZ nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3179"/>
         <source>number of points per record</source>
         <translation>Anzahl der Punkte je Datensatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
         <source>Output SHP file</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
@@ -96657,12 +97052,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2tin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3184"/>
         <source>las2tin</source>
         <translation>las2tin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3189"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3185"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96670,22 +97065,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2txt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3189"/>
         <source>las2txt</source>
         <translation>las2txt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3190"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3191"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3192"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -96693,17 +97088,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>las2txtPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3196"/>
         <source>las2txtPro</source>
         <translation>las2txtPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3197"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3198"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
@@ -96711,32 +97106,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasboundary</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3202"/>
         <source>lasboundary</source>
         <translation>lasboundary</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3203"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3204"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3205"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -96744,32 +97139,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasboundaryPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3211"/>
         <source>lasboundaryPro</source>
         <translation>lasboundaryPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3212"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3213"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3214"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3215"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -96777,47 +97172,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascanopy</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3220"/>
         <source>lascanopy</source>
         <translation>lascanopy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3221"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3222"/>
         <source>square plot size</source>
         <translation>Quadratische Plottgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3223"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3224"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3229"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3225"/>
         <source>count rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Rasteranzahl (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3230"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
         <source>density rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Dichteraster (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3231"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3228"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist ein einzelner Plott</translation>
     </message>
@@ -96825,47 +97220,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascanopyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3232"/>
         <source>lascanopyPro</source>
         <translation>lascanopyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3233"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3234"/>
         <source>square plot size</source>
         <translation>Quadratische Plattgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3235"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
         <source>count rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Rasteranzahl (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3238"/>
         <source>density rasters (e.g. 2.0 5.0 10.0 20.0)</source>
         <translation>Dichteraster (z.B. 2.0 5.0 10.0 20.0)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3239"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3244"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3240"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist einzelner Plott</translation>
     </message>
@@ -96873,12 +97268,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3244"/>
         <source>lasclassify</source>
         <translation>lasclassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3245"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -96886,12 +97281,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclassifyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3249"/>
         <source>lasclassifyPro</source>
         <translation>lasclassifyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3250"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -96899,32 +97294,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasclip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3258"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3254"/>
         <source>lasclip</source>
         <translation>lasclip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3259"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3255"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3256"/>
         <source>Input polygon(s)</source>
         <translation>Eingabepolygon(e)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3257"/>
         <source>interior</source>
         <translation>Innenbereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3262"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3258"/>
         <source>what to do with points</source>
         <translation>Was mit Punkten zu tun ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3259"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -96932,17 +97327,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascolor</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3263"/>
         <source>lascolor</source>
         <translation>lascolor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3264"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3265"/>
         <source>Input ortho</source>
         <translation>Eingabe Ortho</translation>
     </message>
@@ -96950,32 +97345,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lascontrol</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3269"/>
         <source>lascontrol</source>
         <translation>lascontrol</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3274"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3270"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3271"/>
         <source>Input polygon(s)</source>
         <translation>Eingabepolygon(e)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3272"/>
         <source>interior</source>
         <translation>Innenbereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3273"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3274"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -96983,32 +97378,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasduplicate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3278"/>
         <source>lasduplicate</source>
         <translation>lasduplicate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3279"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3280"/>
         <source>keep duplicate with lowest z coordinate</source>
         <translation>Duplikat mit niedrigster Z-Koordinate halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3281"/>
         <source>only remove duplicates in x y and z</source>
         <translation>entferne nur Duplikate in x y und z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
         <source>mark surviving duplicate as single return</source>
         <translation>Markiere überlebendes Duplikat als Single Return</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
         <source>record removed duplicates to LAS/LAZ file</source>
         <translation>Speichere entfernte Duplikate in die LAS/LAZ Datei</translation>
     </message>
@@ -97016,32 +97411,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasduplicatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3287"/>
         <source>lasduplicatePro</source>
         <translation>lasduplicatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3288"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3289"/>
         <source>keep duplicate with lowest z coordinate</source>
         <translation>Duplikat mit niedrigster Z-Koordinate halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3290"/>
         <source>only remove duplicates in x y and z</source>
         <translation>entferne nur Duplikate in x y und z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3291"/>
         <source>mark surviving duplicate as single return</source>
         <translation>Markiere überlebendes Duplikat als Single Return</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3292"/>
         <source>record removed duplicates</source>
         <translation>Gelöschte Duplikate aufzeichnen</translation>
     </message>
@@ -97049,27 +97444,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3296"/>
         <source>lasgrid</source>
         <translation>lasgrid</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3297"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3298"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3299"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3304"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -97077,27 +97472,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgridPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3304"/>
         <source>lasgridPro</source>
         <translation>lasgridPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3305"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3306"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3307"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3308"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -97105,27 +97500,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasground</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3312"/>
         <source>lasground</source>
         <translation>lasground</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3313"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3314"/>
         <source>no triangle bulging during TIN refinement</source>
         <translation>keine Dreieckswölbung während TIN Verfeinerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3315"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3316"/>
         <source>preprocessing</source>
         <translation>Vorbereitung</translation>
     </message>
@@ -97133,27 +97528,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasgroundPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3320"/>
         <source>lasgroundPro</source>
         <translation>lasgroundPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3321"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3322"/>
         <source>no triangle bulging during TIN refinement</source>
         <translation>keine Dreieckswölbung während TIN Verfeinerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3323"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3324"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -97161,37 +97556,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasheight</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3328"/>
         <source>lasheight</source>
         <translation>lasheight</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3329"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3330"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3331"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3332"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3333"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3334"/>
         <source>drop below height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
@@ -97199,37 +97594,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasheightPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3338"/>
         <source>lasheightPro</source>
         <translation>lasheightPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3339"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3340"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3341"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3342"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
         <source>drop below height</source>
         <translation>ausscheiden unter Höhe</translation>
     </message>
@@ -97237,22 +97632,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3348"/>
         <source>lasindex</source>
         <translation>lasindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3349"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3350"/>
         <source>append *.lax file to *.laz file</source>
         <translation>LAX-Datei an LAZ-Datei anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3351"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -97260,22 +97655,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasindexPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3355"/>
         <source>lasindexPro</source>
         <translation>lasindexPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3356"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3357"/>
         <source>append *.lax file to *.laz file</source>
         <translation>LAX-Datei an LAZ-Datei anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3358"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -97283,42 +97678,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasinfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3362"/>
         <source>lasinfo</source>
         <translation>lasinfo</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3363"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3364"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3365"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3367"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3368"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3369"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -97326,37 +97721,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasinfoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3373"/>
         <source>lasinfoPro</source>
         <translation>lasinfoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3374"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3375"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3376"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3377"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3379"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
@@ -97364,42 +97759,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasmerge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3383"/>
         <source>lasmerge</source>
         <translation>lasmerge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3384"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3385"/>
         <source>2nd file</source>
         <translation>2. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3386"/>
         <source>3rd file</source>
         <translation>3. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3387"/>
         <source>4th file</source>
         <translation>4. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3388"/>
         <source>5th file</source>
         <translation>5. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3389"/>
         <source>6th file</source>
         <translation>6. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
         <source>7th file</source>
         <translation>7. Datei</translation>
     </message>
@@ -97407,12 +97802,12 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasmergePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3394"/>
         <source>lasmergePro</source>
         <translation>lasmergePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3395"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -97420,37 +97815,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasnoise</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3399"/>
         <source>lasnoise</source>
         <translation>lasnoise</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3400"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3401"/>
         <source>isolated if surrounding cells have only</source>
         <translation>isoliert wenn umgebende Zellen haben nur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3402"/>
         <source>resolution of isolation grid in xy</source>
         <translation>Auflösung des Isolationsgitters in xy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3403"/>
         <source>resolution of isolation grid in z</source>
         <translation>Auflösung des Isolationsgitters in z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -97458,37 +97853,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasnoisePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3409"/>
         <source>lasnoisePro</source>
         <translation>lasnoisePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3410"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3411"/>
         <source>isolated if surrounding cells have only</source>
         <translation>isoliert wenn umgebende Zellen haben nur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3412"/>
         <source>resolution of isolation grid in xy</source>
         <translation>Auflösung des Isolationsgitters in xy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3417"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3413"/>
         <source>resolution of isolation grid in z</source>
         <translation>Auflösung des Isolationsgitters in z</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3418"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3414"/>
         <source>what to do with isolated points</source>
         <translation>was machen mit isolierten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -97496,22 +97891,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3419"/>
         <source>lasoverage</source>
         <translation>lasoverage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3424"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3420"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3421"/>
         <source>size of grid used for scan angle check</source>
         <translation>Größe des Gitters zur Scanwinkel Überprüfung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3422"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -97519,22 +97914,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoveragePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3426"/>
         <source>lasoveragePro</source>
         <translation>lasoveragePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3427"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3428"/>
         <source>size of grid used for scan angle check</source>
         <translation>Größe des Gitters zur Scanwinkel Überprüfung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3429"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -97542,37 +97937,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverlap</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3433"/>
         <source>lasoverlap</source>
         <translation>lasoverlap</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3434"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3435"/>
         <source>size of grid used for overlap check</source>
         <translation>Größe des Rasters das für Überlappungstest benutzt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3436"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
         <source>operation on attribute per cell</source>
         <translation>Operation auf Attribut per Zelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3438"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3439"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -97580,37 +97975,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasoverlapPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3443"/>
         <source>lasoverlapPro</source>
         <translation>lasoverlapPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3444"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3445"/>
         <source>size of grid used for overlap check</source>
         <translation>Größe des Rasters welches für Überlappungstest benutzt wird</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3446"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3447"/>
         <source>operation on attribute per cell</source>
         <translation>Operation auf Attribut per Zelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3448"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3449"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -97618,17 +98013,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasprecision</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3453"/>
         <source>lasprecision</source>
         <translation>lasprecision</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3454"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3459"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3455"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -97636,17 +98031,17 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasquery</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3459"/>
         <source>lasquery</source>
         <translation>lasquery</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3460"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3461"/>
         <source>area of interest</source>
         <translation>Interessensgebiet</translation>
     </message>
@@ -97654,22 +98049,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassort</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3465"/>
         <source>lassort</source>
         <translation>lassort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3466"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3467"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3468"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -97677,22 +98072,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassortPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3476"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3472"/>
         <source>lassortPro</source>
         <translation>lassortPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3477"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3473"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3474"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3475"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -97700,27 +98095,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lassplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3479"/>
         <source>lassplit</source>
         <translation>lassplit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3480"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3481"/>
         <source>number of digits for file names</source>
         <translation>Anzahl der Stellen für Dateinamen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3482"/>
         <source>how to split</source>
         <translation>Wie zu teilen ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
         <source>interval or number</source>
         <translation>Interval oder Nummer</translation>
     </message>
@@ -97728,37 +98123,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasthin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3487"/>
         <source>lasthin</source>
         <translation>lasthin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3488"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3489"/>
         <source>size of grid used for thinning</source>
         <translation>Größe des Gitters zum Ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3490"/>
         <source>keep particular point per cell</source>
         <translation>Bestimmten Punkt je Zelle halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
         <source>mark thinned-away points as withheld</source>
         <translation>Ausgedünnte Punkte als unterdrückt kennzeichnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3492"/>
         <source>classify surviving points as class</source>
         <translation>Verbleibende Punkte als Klasse ansehen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3493"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -97766,37 +98161,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasthinPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3497"/>
         <source>lasthinPro</source>
         <translation>lasthinPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3498"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3499"/>
         <source>size of grid used for thinning</source>
         <translation>Gittergröße zum Ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3500"/>
         <source>keep particular point per cell</source>
         <translation>Bestimmten Punkt je Zelle halten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3501"/>
         <source>mark thinned-away points as withheld</source>
         <translation>Ausgedünnten Punkt als unterdrückt kennzeichnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
         <source>classify surviving points as class</source>
         <translation>Verbleibende Punkt als Klasse ansehen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -97804,27 +98199,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lastile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3507"/>
         <source>lastile</source>
         <translation>lastile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3508"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3509"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3510"/>
         <source>buffer around each tile</source>
         <translation>Puffer um einzelne Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3511"/>
         <source>make tiling reversible (advanced, usually not needed)</source>
         <translation>Kachelung umkehrbar machen (fortgeschritten, normalerweise nicht nötig)</translation>
     </message>
@@ -97832,32 +98227,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lastilePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3515"/>
         <source>lastilePro</source>
         <translation>lastilePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3516"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3517"/>
         <source>tile size (side length of square tile)</source>
         <translation>Kachelgröße (Seitenlänge der Quadrate) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3518"/>
         <source>buffer around each tile (avoids edge artifacts)</source>
         <translation>Buffer um einzelne Kacheln (vermeidet Randartefakte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3519"/>
         <source>more than 2000 tiles</source>
         <translation>mehr als 2000 Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3520"/>
         <source>tile base name (using sydney.laz creates sydney_274000_4714000.laz)</source>
         <translation>Kachelbasisname ('sydney.laz' erzeugt sydney_274000_4714000.laz)</translation>
     </message>
@@ -97865,22 +98260,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasvalidate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3524"/>
         <source>lasvalidate</source>
         <translation>lasvalidate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3525"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3526"/>
         <source>save report to '*_LVS.xml'</source>
         <translation>Speichert Report unter '*_LVS.xml'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3527"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -97888,22 +98283,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasvalidatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3531"/>
         <source>lasvalidatePro</source>
         <translation>lasvalidatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3532"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3533"/>
         <source>generate one '*_LVS.xml' report per file</source>
         <translation>erzeugt einen '*_LVS.xml' Report pro Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3534"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -97911,27 +98306,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasview</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3538"/>
         <source>lasview</source>
         <translation>lasview</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3539"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3540"/>
         <source>max number of points sampled</source>
         <translation>max. Anzahl von erzeugten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3541"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -97939,27 +98334,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>lasviewPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3546"/>
         <source>lasviewPro</source>
         <translation>lasviewPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3547"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3548"/>
         <source>max number of points sampled</source>
         <translation>max. Anzahl von erzeugten Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3549"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -97967,27 +98362,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>laszip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3554"/>
         <source>laszip</source>
         <translation>laszip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3555"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3556"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3557"/>
         <source>create spatial indexing file (*.lax)</source>
         <translation>Räumlichen Index erzeugen (*.lax)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -97995,27 +98390,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>laszipPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3562"/>
         <source>laszipPro</source>
         <translation>laszipPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3563"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3564"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3565"/>
         <source>create spatial indexing file (*.lax)</source>
         <translation>Räumlichen Index erzeugen (*.lax)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3566"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -98023,37 +98418,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3570"/>
         <source>Merge</source>
         <translation>Verschmelzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3571"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3572"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3573"/>
         <source>Grab pseudocolor table from first layer</source>
         <translation>Pseudofarbtabelle aus erstem Bild entnehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3574"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3580"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
@@ -98061,32 +98456,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nearblack</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3581"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3582"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3583"/>
         <source>How far from black (white)</source>
         <translation>Entfernung von Schwarz (oder Weiß)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3588"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3584"/>
         <source>Search for nearly white pixels instead of nearly black</source>
         <translation>Suche nach fast weißen statt schwarzen Pixeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
         <source>Nearblack</source>
         <translation>Fast Schwarz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3580"/>
         <source>Near black</source>
         <translation>Fast schwarz</translation>
     </message>
@@ -98094,37 +98489,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nviz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3590"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3591"/>
         <source>Raster file(s) for elevation</source>
         <translation>Rasterdatei(en) für Höhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3592"/>
         <source>Vector lines/areas overlay file(s)</source>
         <translation>Vektorlinien-/-flächenüberlagerungsdatei(en)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3593"/>
         <source>Raster file(s) for color</source>
         <translation>Rasterdatei(en) für Farbe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3598"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3594"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3595"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3589"/>
         <source>nviz</source>
         <translation>nviz</translation>
     </message>
@@ -98132,37 +98527,37 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>nviz7</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3603"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3599"/>
         <source>nviz7</source>
         <translation>nviz7</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3600"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3605"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3601"/>
         <source>Raster file(s) for elevation</source>
         <translation>Rasterdatei(en) für Höhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3602"/>
         <source>Vector lines/areas overlay file(s)</source>
         <translation>Vektorlinien-/-flächenüberlagerungsdatei(en)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3603"/>
         <source>Raster file(s) for color</source>
         <translation>Rasterdatei(en) für Farbe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3604"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3605"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
@@ -98216,22 +98611,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>pct2rgb</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3610"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3611"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3612"/>
         <source>Band to convert</source>
         <translation>Umzuwandelnder Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3609"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
@@ -98239,27 +98634,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3616"/>
         <source>Polygonize (raster to vector)</source>
         <translation>Vektorisieren (Raster nach Vektor)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3617"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3618"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3619"/>
         <source>Output field name</source>
         <translation>Ausgabefeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3620"/>
         <source>Vectorized</source>
         <translation>Vektorisiert</translation>
     </message>
@@ -98267,52 +98662,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>proximity</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3625"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3626"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3627"/>
         <source>Values</source>
         <translation>Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
         <source>Distance units</source>
         <translation>Distanzeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
         <source>Max distance (negative value to ignore)</source>
         <translation>Maximalabstand (negative Werte werden ignoriert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3630"/>
         <source>Nodata (negative value to ignore)</source>
         <translation>Leerwert (zu ignorierender negativer Wert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3631"/>
         <source>Fixed buf value (negative value to ignore)</source>
         <translation>Fester Pufferwert (negativer Werte werden ignoriert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3632"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3633"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3624"/>
         <source>Proximity (raster distance)</source>
         <translation>Nähe (Rasterabstand)</translation>
     </message>
@@ -98320,92 +98715,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rasterize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3638"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3639"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3640"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
         <source>Set output raster size (ignored if above option is checked)</source>
         <translation>Ausgabelayergröße setzen (wird ignoriert, wenn Option oben gewählt ist)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3642"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3643"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3644"/>
         <source>Raster type</source>
         <translation>Rastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
         <source>Nodata value</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3647"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3648"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3649"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3650"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3652"/>
         <source>Force the generation of an associated ESRI world file (.tfw)</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3653"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3654"/>
         <source>Rasterized</source>
         <translation>Gerastert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3637"/>
         <source>Rasterize (vector to raster)</source>
         <translation>Rastern (Vektor nach Raster)</translation>
     </message>
@@ -98413,27 +98808,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rasterize_over</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3659"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3660"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3661"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
         <source>Existing raster layer</source>
         <translation>Vorhandener Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3658"/>
         <source>Rasterize (write over existing raster)</source>
         <translation>Rastern (vorhandenes Raster überschreiben)</translation>
     </message>
@@ -98441,82 +98836,82 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>retile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3666"/>
         <source>Retile</source>
         <translation>Neukacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3667"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3668"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3669"/>
         <source>Pixel size to be used for the output file (XSIZE YSIZE like 512 512)</source>
         <translation>Größe für die Ausgabedateien in Pixel (XSIZE YSIZE wie 512 512)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
         <source>Resampling algorithm</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
         <source>Number of pyramids levels to build</source>
         <translation>Anzahl der zu erzeugenden Pyramidenstufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3673"/>
         <source>Build only the pyramids</source>
         <translation>Nur Pyramiden erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3674"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3675"/>
         <source>Output raster format</source>
         <translation>Ausgaberasterformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
         <source>Use a directory for each row</source>
         <translation>Ein Verzeichnis je Zeile verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
         <source>Name of the csv file containing the tile(s) georeferencing information</source>
         <translation>Name der CSV-Datei, die die Georeferenzierungsinformation der Kacheln enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3678"/>
         <source>Column delimiter used in the CSV file</source>
         <translation>Spaltentrennzeichen der CSV-Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3679"/>
         <source>name of shape file containing the result tile(s) index</source>
         <translation>Name der Shapedatei für den Kachelindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3680"/>
         <source>name of the attribute containing the tile name in the result shape file</source>
         <translation>Name für das Attribut des Kachelnamens in der Ergebnis-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -98524,22 +98919,22 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>rgb2pct</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3686"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3687"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3688"/>
         <source>Number of colors</source>
         <translation>Farbanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3685"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
@@ -98547,27 +98942,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>roughness</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3693"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3694"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3695"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3696"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3692"/>
         <source>Roughness</source>
         <translation>Rauhigkeit</translation>
     </message>
@@ -98657,7 +99052,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>self.output</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3700"/>
         <source>Spatialite files(*.sqlite)</source>
         <translation>Spatialite dateien(*.sqlite)</translation>
     </message>
@@ -98665,27 +99060,27 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>shp2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3704"/>
         <source>shp2las</source>
         <translation>shp2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3709"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3705"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3706"/>
         <source>Input SHP file</source>
         <translation>Eingabe shp Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3711"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3707"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3708"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
@@ -98693,32 +99088,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>sieve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3712"/>
         <source>Sieve</source>
         <translation>Sieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3717"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3713"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3718"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3714"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3719"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3715"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3716"/>
         <source>Pixel connection</source>
         <translation>Pixelverbindung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3717"/>
         <source>Sieved</source>
         <translation>Gesiebt</translation>
     </message>
@@ -98726,42 +99121,42 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>slope</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3722"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3723"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3724"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3725"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3726"/>
         <source>Use Zevenbergen&Thorne formula (instead of the Horn's one)</source>
         <translation>Benutze Zevenbergen&Thorne Formel (statt Horn)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3727"/>
         <source>Slope expressed as percent (instead of degrees)</source>
         <translation>Steigung in Prozent (statt Grad)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3728"/>
         <source>Scale (ratio of vert. units to horiz.)</source>
         <translation>Skalierung (Verh. von vert. zu horz. Einheiten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3721"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
@@ -98769,7 +99164,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>symbol_angle</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4574"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4631"/>
         <source>Angle of symbol used to render the feature (valid for marker symbols only).</source>
         <translation>Winkel des Symbols zur Objektdarstellung (nur für Markierungssymbole gültig).</translation>
     </message>
@@ -98777,7 +99172,7 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>symbol_color</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4573"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4630"/>
         <source>Color of symbol used to render the feature.</source>
         <translation>Farbe des Symbols zur Objektdarstellung.</translation>
     </message>
@@ -98981,32 +99376,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>tpi</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3733"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3734"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3735"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3736"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3737"/>
         <source>Topographic Position Index</source>
         <translation>Topographischer Positionsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3732"/>
         <source>TPI (Topographic Position Index)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
@@ -99014,102 +99409,102 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>translate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3743"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3744"/>
         <source>Set the size of the output file (In pixels or %)</source>
         <translation>Größe der Ausgabedatei setzen (in Pixel oder %)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3745"/>
         <source>Output size is a percentage of input size</source>
         <translation>Ausgabegröße in Prozent der Eingabegröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3747"/>
         <source>Expand</source>
         <translation>Ausdehnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3748"/>
         <source>Output projection for output file [leave blank to use input projection]</source>
         <translation>Projektion für Ausgabedatei [leer lassen um Eingabeprojektion zu verwenden]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3749"/>
         <source>Subset based on georeferenced coordinates</source>
         <translation>Auf georeferenzierten Koordinaten basierende Untermenge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3754"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
         <source>Copy all subdatasets of this file to individual output files</source>
         <translation>Alle Unterdatensätze dieser Datei in einzelne Dateien kopieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3759"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3741"/>
         <source>Translate (convert format)</source>
         <translation>Umwandeln (Format konvertieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3742"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3752"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen. Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3753"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3754"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3757"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF- oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3758"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
@@ -99117,32 +99512,32 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>tri</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3765"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3766"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3767"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3769"/>
         <source>Terrain Ruggedness Index</source>
         <translation>Geländerauhigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3764"/>
         <source>TRI (Terrain Ruggedness Index)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
@@ -99150,52 +99545,52 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>txt2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3773"/>
         <source>txt2las</source>
         <translation>txt2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3774"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3775"/>
         <source>Input ASCII file</source>
         <translation>ASCII-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3776"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3777"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeilen überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3778"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3779"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3780"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3781"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -99203,47 +99598,47 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>txt2lasPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3786"/>
         <source>txt2lasPro</source>
         <translation>txt2lasPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3787"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3788"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3789"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeile überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
         <source>resolution of x and y coordinate</source>
         <translation>Auflösung der X und Y Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3792"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3793"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3794"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -99251,217 +99646,217 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>variable_help</name>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4516"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4573"/>
         <source>Current QGIS version string.</source>
         <translation>Aktueller QGIS-Versionstext.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4517"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4574"/>
         <source>Current QGIS version number.</source>
         <translation>Aktuelle QGIS-Versionsnummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4518"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4575"/>
         <source>Current QGIS release name.</source>
         <translation>Aktueller QGIS-Releasename.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4519"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4576"/>
         <source>Operating system name, eg 'windows', 'linux' or 'osx'.</source>
         <translation>Betriebssystemname, z.B. 'windows', 'linux' oder 'osx'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4520"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4577"/>
         <source>QGIS platform, eg 'desktop' or 'server'.</source>
         <translation>QGIS-Plattform, z.B. 'desktop' oder 'server'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4521"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4578"/>
         <source>Current user's operating system account name.</source>
         <translation>Betriebssystemkontoname des aktuellen Benutzers.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4522"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4579"/>
         <source>Current user's operating system user name (if available).</source>
         <translation>Benutzername des aktuellen Benutzers (wenn verfügbar).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4525"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4582"/>
         <source>Title of current project.</source>
         <translation>Titel des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4526"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4583"/>
         <source>Full path (including file name) of current project.</source>
         <translation>Voller Pfad (mit Dateiname) des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4527"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4584"/>
         <source>Folder for current project.</source>
         <translation>Verzeichnis des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4528"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4585"/>
         <source>Filename of current project.</source>
         <translation>Dateiname des aktuellen Projekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4531"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4588"/>
         <source>Name of current layer.</source>
         <translation>Aktueller Rastername.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4532"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4589"/>
         <source>ID of current layer.</source>
         <translation>Kennung des aktuellen Layers.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4535"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4592"/>
         <source>Number of pages in composition.</source>
         <translation>Seitenanzahl in Zusammenstellung.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4536"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4593"/>
         <source>Composition page height in mm.</source>
         <translation>Zusammenstellungsseitenhöhe in mm.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4537"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4594"/>
         <source>Composition page width in mm.</source>
         <translation>Zusammenstellungsseitenbreite in mm.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4538"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4595"/>
         <source>Composition resolution (DPI).</source>
         <translation>Zusammenstellungsauflösung (DPI).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4541"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4598"/>
         <source>Total number of features in atlas.</source>
         <translation>Gesamtanzahl der Objekte in Atlas.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4542"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4599"/>
         <source>Current atlas feature number.</source>
         <translation>Aktuelle Atlasobjektnummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4543"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4600"/>
         <source>Current atlas file name.</source>
         <translation>Aktueller Atlas-Dateiname.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4544"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4601"/>
         <source>Current atlas page name.</source>
         <translation>Aktueller Atlas-Seitenname.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4545"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4602"/>
         <source>Current atlas feature (as feature object).</source>
         <translation>Aktuelles Atlas-Objekt (als Objekt).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4546"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4603"/>
         <source>Current atlas feature ID.</source>
         <translation>ID des aktuellen Atlasobjekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4547"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4604"/>
         <source>Current atlas feature geometry.</source>
         <translation>Geometrie des aktuellen Altas-Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4550"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4607"/>
         <source>Composer item user ID (not necessarily unique).</source>
         <translation>Benutzerkennung des aktuellen Zusammenstellungselement (nicht notwendigerweise eindeutig).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4551"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4608"/>
         <source>Composer item unique ID.</source>
         <translation>Eindeutiger ID des Zusammenstellungselements.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4552"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4609"/>
         <source>Left position of composer item (in mm).</source>
         <translation>Linke Position des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4553"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4610"/>
         <source>Top position of composer item (in mm).</source>
         <translation>Obere Position des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4554"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4611"/>
         <source>Width of composer item (in mm).</source>
         <translation>Breite des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4555"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4612"/>
         <source>Height of composer item (in mm).</source>
         <translation>Höhe des Zusammenstellungselements (in mm).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4558"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4615"/>
         <source>ID of current map destination. This will be 'canvas' for canvas renders, and the item ID for composer map renders.</source>
         <translation>Kennung des aktuellen Kartenziels. 'canvas' für Darstellung in der Karte und Kennung der Zusammenstellung bei Druckzusammenstellungen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4559"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4616"/>
         <source>Current rotation of map.</source>
         <translation>Aktuelle Kartendrehung.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4560"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4617"/>
         <source>Current scale of map.</source>
         <translation>Aktueller Kartenmaßstab.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4561"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4618"/>
         <source>Center of map.</source>
         <translation>Mittelpunkt der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4562"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4619"/>
         <source>Width of map.</source>
         <translation>Breite der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4563"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4620"/>
         <source>Height of map.</source>
         <translation>Höhe der Karte.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4565"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4622"/>
         <source>Stores the number of the current row.</source>
         <translation>Aktuelle Zeilennummer.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4566"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4623"/>
         <source>Current grid annotation value.</source>
         <translation>Aktueller Gitteranmerkungswert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4567"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4624"/>
         <source>Current grid annotation axis (eg, 'x' for longitude, 'y' for latitude).</source>
         <translation>Aktuelle Kartenmerkungsachse (z.B. 'x' für Längengrad und 'y' für Breitengrad).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4570"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4627"/>
         <source>Number of parts in rendered feature's geometry.</source>
         <translation>Anzahl der Teile der Geometrie des dargestellten Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4571"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4628"/>
         <source>Current geometry part number for feature being rendered.</source>
         <translation>Nummer des aktuellen Geometrieteils das dargestellten Objekts.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4586"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4643"/>
         <source>not set</source>
         <translation>nicht gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpression.cpp" line="4592"/>
+        <location filename="../src/core/qgsexpression.cpp" line="4649"/>
         <source><p>Current value: %1</p></source>
         <translation><p>Aktueller Wert: %1</p></translation>
     </message>
@@ -99567,92 +99962,92 @@ Erweiterung wird nicht aktiviert.</translation>
 <context>
     <name>warp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3800"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3801"/>
         <source>Source SRS</source>
         <translation>Quell-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3802"/>
         <source>Destination SRS</source>
         <translation>Ziel-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3804"/>
         <source>Output file resolution in target georeferenced units (leave 0 for no change)</source>
         <translation>Auflösung der Ausgabedatei in georeferenzierten Zieleinheiten (0 bedeutet keine Änderung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3805"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3814"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3798"/>
         <source>Warp (reproject)</source>
         <translation>Transformieren (Reprojizieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3799"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3803"/>
         <source>Nodata value, leave blank to take the nodata value from input</source>
         <translation>Leerwert, auf 'none' belassen, um den Leerwert aus der Eingabe zu übernehmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3808"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3809"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3810"/>
         <source>Set the predictor for LZW or DEFLATE compression</source>
         <translation>LZW- oder DEFLATE-Kompressionsvorhersage setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
         <source>Create tiled output (only used for the GTiff format)</source>
         <translation>Gekachelte Ausgabe (nur bei GTIFF-Format verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
         <source>Control whether the created file is a BigTIFF or a classic TIFF</source>
         <translation>Ausgabe als BigTIFF oder klassisches TIFF steuern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3813"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3815"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
diff --git a/ms-windows/osgeo4w/package-nightly.cmd b/ms-windows/osgeo4w/package-nightly.cmd
index a0e9bfb..babeb0c 100644
--- a/ms-windows/osgeo4w/package-nightly.cmd
+++ b/ms-windows/osgeo4w/package-nightly.cmd
@@ -29,7 +29,7 @@ if "%ARCH%"=="" goto usage
 if not "%SHA%"=="" set SHA=-%SHA%
 if "%SITE%"=="" set SITE=qgis.org
 
-set BUILDDIR=%CD%\build-nightly-%ARCH%
+set BUILDDIR=%CD%\build-%PACKAGENAME%-%ARCH%
 
 if "%OSGEO4W_ROOT%"=="" (
 	if "%ARCH%"=="x86" (
diff --git a/ms-windows/osgeo4w/package.cmd b/ms-windows/osgeo4w/package.cmd
index 694de15..fa2bbcb 100644
--- a/ms-windows/osgeo4w/package.cmd
+++ b/ms-windows/osgeo4w/package.cmd
@@ -29,7 +29,7 @@ if "%ARCH%"=="" goto usage
 if not "%SHA%"=="" set SHA=-%SHA%
 if "%SITE%"=="" set SITE=qgis.org
 
-set BUILDDIR=%CD%\build-%ARCH%
+set BUILDDIR=%CD%\build-%PACKAGENAME%-%ARCH%
 
 if "%OSGEO4W_ROOT%"=="" (
 	if "%ARCH%"=="x86" (
diff --git a/python/PyQt/PyQt4/Qt.py b/python/PyQt/PyQt4/Qt.py
new file mode 100644
index 0000000..03274e6
--- /dev/null
+++ b/python/PyQt/PyQt4/Qt.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+"""
+***************************************************************************
+    Qt.py
+    ---------------------
+    Date                 : September 2016
+    Copyright            : (C) 2015 by Marco Bernasocchi
+    Email                : marco at opengis dot ch
+***************************************************************************
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*                                                                         *
+***************************************************************************
+"""
+
+__author__ = 'Marco Bernasocchi'
+__date__ = 'September 2016'
+__copyright__ = '(C) 2016, Marco Bernasocchi'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+
+from PyQt4.Qt import *
diff --git a/python/PyQt/PyQt5/Qt.py b/python/PyQt/PyQt5/Qt.py
new file mode 100644
index 0000000..12e8225
--- /dev/null
+++ b/python/PyQt/PyQt5/Qt.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+"""
+***************************************************************************
+    Qt.py
+    ---------------------
+    Date                 : September 2016
+    Copyright            : (C) 2015 by Marco Bernasocchi
+    Email                : marco at opengis dot ch
+***************************************************************************
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*                                                                         *
+***************************************************************************
+"""
+
+__author__ = 'Marco Bernasocchi'
+__date__ = 'September 2016'
+__copyright__ = '(C) 2016, Marco Bernasocchi'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+
+from PyQt5.Qt import *
diff --git a/python/core/composer/qgscomposerattributetable.sip b/python/core/composer/qgscomposerattributetable.sip
index 2b8bc70..21963fc 100644
--- a/python/core/composer/qgscomposerattributetable.sip
+++ b/python/core/composer/qgscomposerattributetable.sip
@@ -162,7 +162,7 @@ class QgsComposerAttributeTable : QgsComposerTable
     void setFeatureFilter( const QString& expression );
 
     /** Returns the attributes fields which are shown by the table.
-     * @returns a QSet of integers refering to the attributes in the vector layer. If
+     * @returns a QSet of integers referring to the attributes in the vector layer. If
      * result is an empty QSet than all feature attributes will be shown.
      * @see setDisplayAttributes
      * @deprecated use QgsComposerTable::columns() instead
@@ -170,7 +170,7 @@ class QgsComposerAttributeTable : QgsComposerTable
     QSet<int> displayAttributes() const /Deprecated/;
 
     /** Sets the attributes to display in the table.
-     * @param attr QSet of integer values refering to the attributes from the vector layer to show.
+     * @param attr QSet of integer values referring to the attributes from the vector layer to show.
      * Set to an empty QSet to show all feature attributes.
      * @param refresh set to true to force the table to refetch features from its vector layer
      * and immediately update the display of the table. This may result in the table changing size
diff --git a/python/core/composer/qgscomposerattributetablev2.sip b/python/core/composer/qgscomposerattributetablev2.sip
index b8e4921..b19c606 100644
--- a/python/core/composer/qgscomposerattributetablev2.sip
+++ b/python/core/composer/qgscomposerattributetablev2.sip
@@ -231,7 +231,7 @@ class QgsComposerAttributeTableV2 : QgsComposerTableV2
     void setFeatureFilter( const QString& expression );
 
     /** Sets the attributes to display in the table.
-     * @param attr QSet of integer values refering to the attributes from the vector layer to show.
+     * @param attr QSet of integer values referring to the attributes from the vector layer to show.
      * Set to an empty QSet to show all feature attributes.
      * @param refresh set to true to force the table to refetch features from its vector layer
      * and immediately update the display of the table. This may result in the table changing size
diff --git a/python/core/composer/qgscomposerpicture.sip b/python/core/composer/qgscomposerpicture.sip
index 5588091..ab31cb0 100644
--- a/python/core/composer/qgscomposerpicture.sip
+++ b/python/core/composer/qgscomposerpicture.sip
@@ -30,6 +30,13 @@ class QgsComposerPicture: QgsComposerItem
       Unknown
     };
 
+    //! Method for syncing rotation to a map's North direction
+    enum NorthMode
+    {
+      GridNorth, /*!< Align to grid north */
+      TrueNorth, /*!< Align to true north */
+    };
+
     QgsComposerPicture( QgsComposition *composition /TransferThis/);
     ~QgsComposerPicture();
 
@@ -132,6 +139,38 @@ class QgsComposerPicture: QgsComposerItem
      */
     bool useRotationMap() const;
 
+     /**
+     * Returns the mode used to align the picture to a map's North.
+     * @see setNorthMode()
+     * @see northOffset()
+     * @note added in QGIS 2.18
+     */
+    NorthMode northMode() const;
+
+    /**
+     * Sets the mode used to align the picture to a map's North.
+     * @see northMode()
+     * @see setNorthOffset()
+     * @note added in QGIS 2.18
+     */
+    void setNorthMode( NorthMode mode );
+
+    /**
+     * Returns the offset added to the picture's rotation from a map's North.
+     * @see setNorthOffset()
+     * @see northMode()
+     * @note added in QGIS 2.18
+     */
+    double northOffset() const;
+
+    /**
+     * Sets the offset added to the picture's rotation from a map's North.
+     * @see northOffset()
+     * @see setNorthMode()
+     * @note added in QGIS 2.18
+     */
+    void setNorthOffset( double offset );
+
     /** Returns the resize mode used for drawing the picture within the composer
      * item's frame.
      * @returns resize mode of picture
diff --git a/python/core/core.sip b/python/core/core.sip
index 8b37734..f76137e 100644
--- a/python/core/core.sip
+++ b/python/core/core.sip
@@ -21,6 +21,7 @@
 %Include qgsannotation.sip
 %Include qgsapplication.sip
 %Include qgsattributeaction.sip
+%Include qgsbearingutils.sip
 %Include qgsbrowsermodel.sip
 %Include qgsclipper.sip
 %Include qgscolorscheme.sip
diff --git a/python/core/qgsbearingutils.sip b/python/core/qgsbearingutils.sip
new file mode 100644
index 0000000..078907c
--- /dev/null
+++ b/python/core/qgsbearingutils.sip
@@ -0,0 +1,21 @@
+/**
+ * \class QgsBearingUtils
+ * \ingroup core
+ * Utilities for calculating bearings and directions.
+ * \note Added in version 2.18
+*/
+class QgsBearingUtils
+{
+%TypeHeaderCode
+#include <qgsbearingutils.h>
+%End
+  public:
+
+    /**
+     * Returns the direction to true north from a specified point and for a specified
+     * coordinate reference system. The returned value is in degrees clockwise from
+     * vertical. An exception will be thrown if the bearing could not be calculated.
+     */
+    static double bearingTrueNorth( const QgsCoordinateReferenceSystem& crs,
+                                    const QgsPoint& point );
+};
diff --git a/python/core/qgsdataprovider.sip b/python/core/qgsdataprovider.sip
index aab6e1a..0f60888 100644
--- a/python/core/qgsdataprovider.sip
+++ b/python/core/qgsdataprovider.sip
@@ -250,7 +250,7 @@ class QgsDataProvider : QObject
      *
      * This is aimed at providers that can open differently the connection to
      * the datasource, according it to be in update mode or in read-only mode.
-     * This method shall be balanced with a succesful call to enterUpdateMode().
+     * This method shall be balanced with a successful call to enterUpdateMode().
      *
      * Most providers will have an empty implementation for that method.
      *
diff --git a/python/core/qgsgeometryvalidator.sip b/python/core/qgsgeometryvalidator.sip
index 4e8c04a..9496a0e 100644
--- a/python/core/qgsgeometryvalidator.sip
+++ b/python/core/qgsgeometryvalidator.sip
@@ -13,7 +13,7 @@ class QgsGeometryValidator : QThread
     void stop();
 
     /** Validate geometry and produce a list of geometry errors */
-    static void validateGeometry( const QgsGeometry *g, QList<QgsGeometry::Error> &errors );
+    static void validateGeometry( const QgsGeometry *g, QList<QgsGeometry::Error> &errors /Out/ );
 
   signals:
     void errorFound( const QgsGeometry::Error& );
diff --git a/python/core/qgsogcutils.sip b/python/core/qgsogcutils.sip
index 57fa848..b54157d 100644
--- a/python/core/qgsogcutils.sip
+++ b/python/core/qgsogcutils.sip
@@ -59,5 +59,12 @@ class QgsOgcUtils
      */
     static QDomElement expressionToOgcFilter( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage /Out/ );
 
+    /** Creates an OGC expression XML element.
+     * @return valid OGC expression QDomElement on success,
+     * otherwise null QDomElement
+     * @note added in 2.14.8
+     */
+    static QDomElement expressionToOgcExpression( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage = nullptr );
+
 };
 
diff --git a/python/core/qgspoint.sip b/python/core/qgspoint.sip
index 048a8e5..967527b 100644
--- a/python/core/qgspoint.sip
+++ b/python/core/qgspoint.sip
@@ -148,7 +148,7 @@ class QgsPoint
     double sqrDistToSegment( double x1, double y1, double x2, double y2, QgsPoint& minDistPoint /Out/, double epsilon = DEFAULT_SEGMENT_EPSILON ) const;
 
     /** Calculates azimuth between this point and other one (clockwise in degree, starting from north) */
-    double azimuth( const QgsPoint& other );
+    double azimuth( const QgsPoint& other ) const;
 
     /** Compares this point with another point with a fuzzy tolerance
      * @param other point to compare with
diff --git a/python/core/qgsvectorlayer.sip b/python/core/qgsvectorlayer.sip
index ffbdbc3..afc4913 100644
--- a/python/core/qgsvectorlayer.sip
+++ b/python/core/qgsvectorlayer.sip
@@ -452,6 +452,11 @@ class QgsVectorLayer : QgsMapLayer
       @returns true if join was found and successfully removed */
     bool removeJoin( const QString& joinLayerId );
 
+    /**
+     * Acccessor to the join buffer object
+     * @note added 2.14.7
+     */
+    QgsVectorLayerJoinBuffer* joinBuffer();
     const QList<QgsVectorJoinInfo> vectorJoins() const;
 
     /**
@@ -733,7 +738,23 @@ class QgsVectorLayer : QgsMapLayer
      */
     bool writeSymbology( QDomNode& node, QDomDocument& doc, QString& errorMessage ) const;
 
-    bool writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage ) const;
+    /**
+     * Writes the symbology of the layer into the document provided in SLD 1.1 format
+     * @param node the node that will have the style element added to it.
+     * @param doc the document that will have the QDomNode added.
+     * @param errorMessage reference to string that will be updated with any error messages
+     * @param props a open ended set of properties that can drive/inform the SLD encoding
+     * @return true in case of success
+     */
+    bool writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage, const QgsStringMap& props = QgsStringMap() ) const;
+
+    /**
+     * Read the symbology of the layer according to the information contained in
+     * the UserStyle element of a SLD style document
+     * @param node the node that have the style element in it.
+     * @param errorMessage reference to string that will be updated with any error messages
+     * @return true in case of success
+     */
     bool readSld( const QDomNode& node, QString& errorMessage );
 
     /**
@@ -1820,4 +1841,3 @@ class QgsVectorLayer : QgsMapLayer
 
 
 };
-
diff --git a/python/core/raster/qgsrasterprojector.sip b/python/core/raster/qgsrasterprojector.sip
index ba7d54d..3ef4599 100644
--- a/python/core/raster/qgsrasterprojector.sip
+++ b/python/core/raster/qgsrasterprojector.sip
@@ -9,7 +9,7 @@ class QgsRasterProjector : QgsRasterInterface
 %End
 
   public:
-    /** Precison defines if each pixel is reprojected or approximate reprojection based
+    /** Precision defines if each pixel is reprojected or approximate reprojection based
      *  on an approximation matrix of reprojected points is used.
      */
     enum Precision
diff --git a/python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip b/python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip
index 00269f7..4478762 100644
--- a/python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip
+++ b/python/core/symbology-ng/qgscategorizedsymbolrendererv2.sip
@@ -28,7 +28,12 @@ class QgsRendererCategoryV2
     // debugging
     QString dump() const;
 
-    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
+    /** Creates a DOM element representing the category in SLD format.
+     * @param doc DOM document
+     * @param element destination DOM element
+     * @param props graduated renderer properties
+     */
+    void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
   protected:
 
@@ -65,7 +70,10 @@ class QgsCategorizedSymbolRendererV2 : QgsFeatureRendererV2
 
     virtual QgsCategorizedSymbolRendererV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     //! returns bitwise OR-ed capabilities of the renderer
     virtual int capabilities();
diff --git a/python/core/symbology-ng/qgsellipsesymbollayerv2.sip b/python/core/symbology-ng/qgsellipsesymbollayerv2.sip
index a94facd..aa90d02 100644
--- a/python/core/symbology-ng/qgsellipsesymbollayerv2.sip
+++ b/python/core/symbology-ng/qgsellipsesymbollayerv2.sip
@@ -18,6 +18,7 @@ class QgsEllipseSymbolLayerV2 : QgsMarkerSymbolLayerV2
     virtual QgsEllipseSymbolLayerV2* clone() const /Factory/;
     QgsStringMap properties() const;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
     void writeSldMarker( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
diff --git a/python/core/symbology-ng/qgsfillsymbollayerv2.sip b/python/core/symbology-ng/qgsfillsymbollayerv2.sip
index 0f4fbaf..cc1be7b 100644
--- a/python/core/symbology-ng/qgsfillsymbollayerv2.sip
+++ b/python/core/symbology-ng/qgsfillsymbollayerv2.sip
@@ -32,6 +32,7 @@ class QgsSimpleFillSymbolLayerV2 : QgsFillSymbolLayerV2
 
     virtual QgsSimpleFillSymbolLayerV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const;
@@ -661,6 +662,7 @@ class QgsSVGFillSymbolLayer: QgsImageFillSymbolLayer
 
     virtual QgsSVGFillSymbolLayer* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     //getters and setters
@@ -720,6 +722,7 @@ class QgsLinePatternFillSymbolLayer: QgsImageFillSymbolLayer
 
     virtual QgsLinePatternFillSymbolLayer* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     double estimateMaxBleed() const;
@@ -791,6 +794,7 @@ class QgsPointPatternFillSymbolLayer : QgsImageFillSymbolLayer
 
     virtual QgsPointPatternFillSymbolLayer* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     double estimateMaxBleed() const;
@@ -879,6 +883,7 @@ class QgsCentroidFillSymbolLayerV2 : QgsFillSymbolLayerV2
 
     virtual QgsCentroidFillSymbolLayerV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     void setColor( const QColor& color );
diff --git a/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip b/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip
index 3823f5c..961e4ca 100644
--- a/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip
+++ b/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip
@@ -29,7 +29,14 @@ class QgsRendererRangeV2
     // debugging
     QString dump() const;
 
-    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
+    /** Creates a DOM element representing the range in SLD format.
+     * @param doc DOM document
+     * @param element destination DOM element
+     * @param props graduated renderer properties
+     * @param firstRange set to true if the range is the first range, where the lower value uses a <= test
+     * rather than a < test.
+     */
+    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props, bool firstRange = false ) const;
 
   protected:
     // for cpy+swap idiom
@@ -101,7 +108,10 @@ class QgsGraduatedSymbolRendererV2 : QgsFeatureRendererV2
 
     virtual QgsGraduatedSymbolRendererV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     //! returns bitwise OR-ed capabilities of the renderer
     virtual int capabilities();
diff --git a/python/core/symbology-ng/qgslinesymbollayerv2.sip b/python/core/symbology-ng/qgslinesymbollayerv2.sip
index d376e9c..f213518 100644
--- a/python/core/symbology-ng/qgslinesymbollayerv2.sip
+++ b/python/core/symbology-ng/qgslinesymbollayerv2.sip
@@ -31,6 +31,7 @@ class QgsSimpleLineSymbolLayerV2 : QgsLineSymbolLayerV2
 
     virtual QgsSimpleLineSymbolLayerV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const;
@@ -142,6 +143,7 @@ class QgsMarkerLineSymbolLayerV2 : QgsLineSymbolLayerV2
 
     virtual QgsMarkerLineSymbolLayerV2* clone() const;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     void setColor( const QColor& color );
diff --git a/python/core/symbology-ng/qgspointdisplacementrenderer.sip b/python/core/symbology-ng/qgspointdisplacementrenderer.sip
index 6542a02..5e77071 100644
--- a/python/core/symbology-ng/qgspointdisplacementrenderer.sip
+++ b/python/core/symbology-ng/qgspointdisplacementrenderer.sip
@@ -18,7 +18,10 @@ class QgsPointDisplacementRenderer : QgsFeatureRendererV2
 
     virtual QgsPointDisplacementRenderer* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     /** Reimplemented from QgsFeatureRendererV2*/
     bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
diff --git a/python/core/symbology-ng/qgsrendererv2.sip b/python/core/symbology-ng/qgsrendererv2.sip
index 0812774..04ca9ec 100644
--- a/python/core/symbology-ng/qgsrendererv2.sip
+++ b/python/core/symbology-ng/qgsrendererv2.sip
@@ -205,6 +205,9 @@ class QgsFeatureRendererV2
     //! create the SLD UserStyle element following the SLD v1.1 specs with the given name
     //! @note added in 2.8
     virtual QDomElement writeSld( QDomDocument& doc, const QString& styleName ) const;
+    //! create the SLD UserStyle element following the SLD v1.1 specs with the given name
+    //! @note added in 2.14.8
+    virtual QDomElement writeSld( QDomDocument& doc, const QString& styleName, const QgsStringMap& props ) const;
 
     /** Create a new renderer according to the information contained in
      * the UserStyle element of a SLD style document
@@ -220,6 +223,8 @@ class QgsFeatureRendererV2
 
     //! used from subclasses to create SLD Rule elements following SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! used from subclasses to create SLD Rule elements following SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     //! return a list of symbology items for the legend
     virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
diff --git a/python/core/symbology-ng/qgsrulebasedrendererv2.sip b/python/core/symbology-ng/qgsrulebasedrendererv2.sip
index fa9ba90..0b642ed 100644
--- a/python/core/symbology-ng/qgsrulebasedrendererv2.sip
+++ b/python/core/symbology-ng/qgsrulebasedrendererv2.sip
@@ -82,7 +82,7 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
          */
         QSet<QString> usedAttributes();
 
-	//! @note available in python bindings as symbol2
+        //! @note available in python bindings as symbol2
         QgsSymbolV2List symbols( const QgsRenderContext& context = QgsRenderContext() ) /PyName=symbols2/;
 
         //! @note not available in python bindings
@@ -198,7 +198,12 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
         //! clone this rule, return new instance
         QgsRuleBasedRendererV2::Rule* clone() const /Factory/;
 
-        void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props );
+        /** Creates a DOM element representing the rule in SLD format.
+         * @param doc DOM document
+         * @param element destination DOM element
+         * @param props graduated renderer properties
+         */
+        void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props = QgsStringMap() );
         static QgsRuleBasedRendererV2::Rule* createFromSld( QDomElement& element, QGis::GeometryType geomType ) /Factory/;
 
         QDomElement save( QDomDocument& doc, QgsSymbolV2Map& symbolMap );
@@ -359,7 +364,10 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
 
     virtual QgsRuleBasedRendererV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     static QgsFeatureRendererV2* createFromSld( QDomElement& element, QGis::GeometryType geomType ) /Factory/;
 
diff --git a/python/core/symbology-ng/qgssinglesymbolrendererv2.sip b/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
index bb44f0d..d9b4627 100644
--- a/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
+++ b/python/core/symbology-ng/qgssinglesymbolrendererv2.sip
@@ -37,7 +37,10 @@ class QgsSingleSymbolRendererV2 : QgsFeatureRendererV2
 
     virtual QgsSingleSymbolRendererV2* clone() const /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
     static QgsFeatureRendererV2* createFromSld( QDomElement& element, QGis::GeometryType geomType );
 
     //! returns bitwise OR-ed capabilities of the renderer
diff --git a/python/core/symbology-ng/qgssymbollayerv2.sip b/python/core/symbology-ng/qgssymbollayerv2.sip
index fe9dd49..307e977 100644
--- a/python/core/symbology-ng/qgssymbollayerv2.sip
+++ b/python/core/symbology-ng/qgssymbollayerv2.sip
@@ -107,6 +107,7 @@ class QgsSymbolLayerV2
      */
     virtual QgsSymbolLayerV2* clone() const = 0 /Factory/;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     virtual QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const;
@@ -377,6 +378,7 @@ class QgsMarkerSymbolLayerV2 : QgsSymbolLayerV2
     void setOffset( QPointF offset );
     QPointF offset();
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     virtual void writeSldMarker( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
diff --git a/python/core/symbology-ng/qgssymbollayerv2utils.sip b/python/core/symbology-ng/qgssymbollayerv2utils.sip
index e605fdd..6b2d47d 100644
--- a/python/core/symbology-ng/qgssymbollayerv2utils.sip
+++ b/python/core/symbology-ng/qgssymbollayerv2utils.sip
@@ -204,6 +204,7 @@ class QgsSymbolLayerV2Utils
     static void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString& geomFunc );
     static bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
 
+    static bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString& function );
     static bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString& function );
     static bool functionFromSldElement( QDomElement &element, QString &function );
 
@@ -412,4 +413,34 @@ class QgsSymbolLayerV2Utils
      */
     static QList<double> prettyBreaks( double minimum, double maximum, int classes );
 
+    /** Rescales the given size based on the uomScale found in the props, if any is found, otherwise
+     *  returns the value un-modified
+     * @note added in 2.14.8
+     */
+    static double rescaleUom( double size, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props );
+
+    /** Rescales the given point based on the uomScale found in the props, if any is found, otherwise
+     *  returns a copy of the original point
+     * @note added in 2.14.8
+     */
+    static QPointF rescaleUom( const QPointF& point, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props ) /PyName=rescalePointUom/;
+
+    /** Rescales the given array based on the uomScale found in the props, if any is found, otherwise
+     *  returns a copy of the original point
+     * @note added in 2.14.8
+     */
+    static QVector<qreal> rescaleUom( const QVector<qreal>& array, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props ) /PyName=rescaleArrayUom/;
+
+    /**
+     * Checks if the properties contain scaleMinDenom and scaleMaxDenom, if available, they are added into the SE Rule element
+     * @note added in 2.14.8
+     */
+    static void applyScaleDependency( QDomDocument& doc, QDomElement& ruleElem, QgsStringMap& props );
+
+    /**
+      * Merges the local scale limits, if any, with the ones already in the map, if any
+      * @note added in 2.14.8
+      */
+    static void mergeScaleDependencies( int mScaleMinDenom, int mScaleMaxDenom, QgsStringMap& props );
+
 };
diff --git a/python/core/symbology-ng/qgssymbolv2.sip b/python/core/symbology-ng/qgssymbolv2.sip
index c3feb72..cf7040b 100644
--- a/python/core/symbology-ng/qgssymbolv2.sip
+++ b/python/core/symbology-ng/qgssymbolv2.sip
@@ -152,7 +152,8 @@ class QgsSymbolV2
 
     virtual QgsSymbolV2* clone() const = 0 /Factory/;
 
-    void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap&  props ) const;
 
     OutputUnit outputUnit() const;
     void setOutputUnit( OutputUnit u );
diff --git a/python/core/symbology-ng/qgsvectorfieldsymbollayer.sip b/python/core/symbology-ng/qgsvectorfieldsymbollayer.sip
index b524991..345d9ea 100644
--- a/python/core/symbology-ng/qgsvectorfieldsymbollayer.sip
+++ b/python/core/symbology-ng/qgsvectorfieldsymbollayer.sip
@@ -44,6 +44,7 @@ class QgsVectorFieldSymbolLayer : QgsMarkerSymbolLayerV2
     virtual QgsVectorFieldSymbolLayer* clone() const /Factory/;
     QgsStringMap properties() const;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
     void drawPreviewIcon( QgsSymbolV2RenderContext& context, QSize size );
diff --git a/python/ext-libs/owslib/swe/common.py b/python/ext-libs/owslib/swe/common.py
index 6f7df8d..b4f698b 100644
--- a/python/ext-libs/owslib/swe/common.py
+++ b/python/ext-libs/owslib/swe/common.py
@@ -83,7 +83,7 @@ class AbstractSWE(object):
         self.id             = testXMLAttribute(element,"id")   # string, optional
 
         # Elements
-        self.extention      = []                            # anyType, min=0, max=X
+        self.extension      = []                            # anyType, min=0, max=X
 
 class AbstractSWEIdentifiable(AbstractSWE):
     def __init__(self, element):
diff --git a/python/ext-libs/owslib/wmts.py b/python/ext-libs/owslib/wmts.py
index a402334..2e63c19 100644
--- a/python/ext-libs/owslib/wmts.py
+++ b/python/ext-libs/owslib/wmts.py
@@ -582,7 +582,7 @@ class ContentMetadata:
 
     @property
     def tilematrixsets(self):
-        # NB. This attribute has been superseeded by the
+        # NB. This attribute has been superceeded by the
         # `tilematrixsetlinks` attribute defined below, but is included
         # for now to provide continuity.
         warnings.warn("The 'tilematrixsets' attribute has been deprecated"
diff --git a/python/plugins/GdalTools/tools/doBuildVRT.py b/python/plugins/GdalTools/tools/doBuildVRT.py
index 39b5b2d..e0f7a9f 100644
--- a/python/plugins/GdalTools/tools/doBuildVRT.py
+++ b/python/plugins/GdalTools/tools/doBuildVRT.py
@@ -78,6 +78,7 @@ class GdalToolsDialog(QWidget, Ui_Widget, BasePluginWidget):
     def onClosing(self):
         # disconnect from mapCanvas.layerChanged() signal
         self.disconnect(self.iface.mapCanvas(), SIGNAL("layersChanged()"), self.onVisibleLayersChanged)
+        self.disconnect(self.iface.mapCanvas(), SIGNAL("layersChanged()"), self.switchLayerMode)
         BasePluginWidget.onClosing(self)
 
     def onVisibleLayersChanged(self):
diff --git a/python/plugins/db_manager/db_plugins/plugin.py b/python/plugins/db_manager/db_plugins/plugin.py
index 1f558ea..d85d8a7 100644
--- a/python/plugins/db_manager/db_plugins/plugin.py
+++ b/python/plugins/db_manager/db_plugins/plugin.py
@@ -542,6 +542,9 @@ class Database(DbItemObject):
     def spatialIndexClause(self, src_table, src_column, dest_table, dest_table_column):
         return None
 
+    def hasLowercaseFieldNamesOption(self):
+        return False
+
 
 class Schema(DbItemObject):
 
diff --git a/python/plugins/db_manager/db_plugins/postgis/plugin.py b/python/plugins/db_manager/db_plugins/postgis/plugin.py
index 1be0d17..b94f2e1 100644
--- a/python/plugins/db_manager/db_plugins/postgis/plugin.py
+++ b/python/plugins/db_manager/db_plugins/postgis/plugin.py
@@ -152,6 +152,8 @@ class PGDatabase(Database):
 
         item.runVacuumAnalyze()
 
+    def hasLowercaseFieldNamesOption(self):
+        return True
 
 class PGSchema(Schema):
 
diff --git a/python/plugins/db_manager/dlg_import_vector.py b/python/plugins/db_manager/dlg_import_vector.py
index 95a6f6f..e8e8e33 100644
--- a/python/plugins/db_manager/dlg_import_vector.py
+++ b/python/plugins/db_manager/dlg_import_vector.py
@@ -74,6 +74,10 @@ class DlgImportVector(QDialog, Ui_Dialog):
 
             self.editPrimaryKey.setText(self.default_pk)
             self.editGeomColumn.setText(self.default_geom)
+
+            self.chkLowercaseFieldNames.setEnabled(self.db.hasLowercaseFieldNamesOption())
+            if not self.chkLowercaseFieldNames.isEnabled():
+                self.chkLowercaseFieldNames.setChecked(False)
         else:
             # set default values
             self.checkSupports()
@@ -104,6 +108,10 @@ class DlgImportVector(QDialog, Ui_Dialog):
         if not self.chkSpatialIndex.isEnabled():
             self.chkSpatialIndex.setChecked(False)
 
+        self.chkLowercaseFieldNames.setEnabled(self.db.hasLowercaseFieldNamesOption())
+        if not self.chkLowercaseFieldNames.isEnabled():
+            self.chkLowercaseFieldNames.setChecked(False)
+
     def populateLayers(self):
         self.cboInputLayer.clear()
         for index, layer in enumerate(iface.legendInterface().layers()):
@@ -298,13 +306,18 @@ class DlgImportVector(QDialog, Ui_Dialog):
             else:
                 geom = None
 
+            options = {}
+            if self.chkLowercaseFieldNames.isEnabled() and self.chkLowercaseFieldNames.isChecked():
+                pk = pk.lower()
+                if geom:
+                    geom = geom.lower()
+                options['lowercaseFieldNames'] = True
+
             # get output params, update output URI
             self.outUri.setDataSource(schema, table, geom, "", pk)
             uri = self.outUri.uri(False)
 
             providerName = self.db.dbplugin().providerName()
-
-            options = {}
             if self.chkDropTable.isChecked():
                 options['overwrite'] = True
 
diff --git a/python/plugins/db_manager/ui/DlgImportVector.ui b/python/plugins/db_manager/ui/DlgImportVector.ui
index 34f6060..c2ec343 100644
--- a/python/plugins/db_manager/ui/DlgImportVector.ui
+++ b/python/plugins/db_manager/ui/DlgImportVector.ui
@@ -253,7 +253,7 @@
         </property>
        </widget>
       </item>
-      <item row="7" column="0" colspan="2">
+      <item row="8" column="0" colspan="2">
        <widget class="QCheckBox" name="chkSpatialIndex">
         <property name="text">
          <string>Create spatial index</string>
@@ -267,6 +267,13 @@
         </property>
        </widget>
       </item>
+      <item row="7" column="0">
+       <widget class="QCheckBox" name="chkLowercaseFieldNames">
+        <property name="text">
+         <string>Convert field names to lowercase</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
diff --git a/python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py b/python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py
index a565975..6a904ef 100644
--- a/python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py
+++ b/python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py
@@ -150,18 +150,34 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
         self.addParameter(ParameterString(self.OPTIONS,
                                           self.tr('Additional creation options'), '', optional=True))
 
-    def getConsoleCommands(self):
-        inLayer = self.getParameterValue(self.INPUT_LAYER)
-        ogrLayer = ogrConnectionString(inLayer)[1:-1]
-        ssrs = unicode(self.getParameterValue(self.S_SRS))
-        tsrs = unicode(self.getParameterValue(self.T_SRS))
-        asrs = unicode(self.getParameterValue(self.A_SRS))
+    def getConnectionString(self):
         host = unicode(self.getParameterValue(self.HOST))
         port = unicode(self.getParameterValue(self.PORT))
         user = unicode(self.getParameterValue(self.USER))
         dbname = unicode(self.getParameterValue(self.DBNAME))
         password = unicode(self.getParameterValue(self.PASSWORD))
         schema = unicode(self.getParameterValue(self.SCHEMA))
+        arguments = []
+        if host:
+            arguments.append('host=' + host)
+        if port:
+            arguments.append('port=' + port)
+        if dbname:
+            arguments.append('dbname=' + dbname)
+        if password:
+            arguments.append('password=' + password)
+        if schema:
+            arguments.append('active_schema=' + schema)
+        if user:
+            arguments.append('user=' + user)
+        return GdalUtils.escapeAndJoin(arguments)
+
+    def getConsoleCommands(self):
+        inLayer = self.getParameterValue(self.INPUT_LAYER)
+        ogrLayer = ogrConnectionString(inLayer)[1:-1]
+        ssrs = unicode(self.getParameterValue(self.S_SRS))
+        tsrs = unicode(self.getParameterValue(self.T_SRS))
+        asrs = unicode(self.getParameterValue(self.A_SRS))
         table = unicode(self.getParameterValue(self.TABLE))
         pk = unicode(self.getParameterValue(self.PK))
         pkstring = "-lco FID=" + pk
@@ -194,17 +210,9 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
         arguments.append('--config PG_USE_COPY YES')
         arguments.append('-f')
         arguments.append('PostgreSQL')
-        arguments.append('PG:"host=' + host)
-        arguments.append('port=' + port)
-        if len(dbname) > 0:
-            arguments.append('dbname=' + dbname)
-        if len(password) > 0:
-            arguments.append('password=' + password)
-        if len(schema) > 0:
-            arguments.append('active_schema=' + schema)
-        else:
-            arguments.append('active_schema=public')
-        arguments.append('user=' + user + '"')
+        arguments.append('PG:"')
+        arguments.append(self.getConnectionString())
+        arguments.append('"')
         arguments.append(dimstring)
         arguments.append(ogrLayer)
         arguments.append(ogrLayerName(inLayer))
diff --git a/python/plugins/processing/algs/grass7/Grass7Utils.py b/python/plugins/processing/algs/grass7/Grass7Utils.py
index 34b660f..c3366d4 100644
--- a/python/plugins/processing/algs/grass7/Grass7Utils.py
+++ b/python/plugins/processing/algs/grass7/Grass7Utils.py
@@ -246,8 +246,8 @@ class Grass7Utils:
             Grass7Utils.createGrass7BatchJobFileFromGrass7Commands(commands)
             os.chmod(Grass7Utils.grassBatchJobFilename(), stat.S_IEXEC
                      | stat.S_IREAD | stat.S_IWRITE)
-            if isMac() and os.path.exists(Grass7Utils.grassPath() + os.sep + 'grass70.sh'):
-                command = Grass7Utils.grassPath() + os.sep + 'grass70.sh ' \
+            if isMac() and os.path.exists(Grass7Utils.grassPath() + os.sep + 'grass.sh'):
+                command = Grass7Utils.grassPath() + os.sep + 'grass.sh ' \
                     + Grass7Utils.grassMapsetFolder() + '/PERMANENT'
             else:
                 command = 'grass70 ' + Grass7Utils.grassMapsetFolder() \
diff --git a/python/plugins/processing/algs/qgis/Clip.py b/python/plugins/processing/algs/qgis/Clip.py
index 0df9c36..4d0e97d 100644
--- a/python/plugins/processing/algs/qgis/Clip.py
+++ b/python/plugins/processing/algs/qgis/Clip.py
@@ -56,10 +56,9 @@ class Clip(GeoAlgorithm):
         layerB = dataobjects.getObjectFromUri(
             self.getParameterValue(Clip.OVERLAY))
 
-        writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
-            layerA.pendingFields(),
-            layerA.dataProvider().geometryType(),
-            layerA.dataProvider().crs())
+        geomType = QGis.multiType(layerA.wkbType())
+        fields = layerA.pendingFields()
+        writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields, geomType, layerA.crs())
 
         inFeatA = QgsFeature()
         inFeatB = QgsFeature()
diff --git a/python/plugins/processing/algs/qgis/Difference.py b/python/plugins/processing/algs/qgis/Difference.py
index 95930d1..63dd814 100644
--- a/python/plugins/processing/algs/qgis/Difference.py
+++ b/python/plugins/processing/algs/qgis/Difference.py
@@ -64,7 +64,7 @@ class Difference(GeoAlgorithm):
             self.getParameterValue(Difference.OVERLAY))
         ignoreInvalid = self.getParameterValue(Difference.IGNORE_INVALID)
 
-        geomType = layerA.wkbType()
+        geomType = QGis.multiType(layerA.wkbType())
         writer = self.getOutputFromName(
             Difference.OUTPUT).getVectorWriter(layerA.pendingFields(),
                                                geomType,
diff --git a/python/plugins/processing/algs/qgis/Eliminate.py b/python/plugins/processing/algs/qgis/Eliminate.py
index b544085..6bc6352 100644
--- a/python/plugins/processing/algs/qgis/Eliminate.py
+++ b/python/plugins/processing/algs/qgis/Eliminate.py
@@ -25,8 +25,9 @@ __copyright__ = '(C) 2013, Bernhard Ströbl'
 
 __revision__ = '$Format:%H$'
 
-from PyQt4.QtCore import QLocale, QDate
+from PyQt4.QtCore import QLocale, QDate, QVariant
 from qgis.core import QgsFeatureRequest, QgsFeature, QgsGeometry
+
 from processing.core.GeoAlgorithm import GeoAlgorithm
 from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
 from processing.core.ProcessingLog import ProcessingLog
@@ -53,6 +54,9 @@ class Eliminate(GeoAlgorithm):
     MODE_SMALLEST_AREA = 1
     MODE_BOUNDARY = 2
 
+    def getIcon(self):
+        return QIcon(os.path.join(pluginPath, 'images', 'ftools', 'eliminate.png'))
+
     def defineCharacteristics(self):
         self.name, self.i18n_name = self.trAlgorithm('Eliminate sliver polygons')
         self.group, self.i18n_group = self.trAlgorithm('Vector geometry tools')
@@ -91,6 +95,7 @@ class Eliminate(GeoAlgorithm):
         boundary = self.getParameterValue(self.MODE) == self.MODE_BOUNDARY
         smallestArea = self.getParameterValue(self.MODE) == self.MODE_SMALLEST_AREA
         keepSelection = self.getParameterValue(self.KEEPSELECTION)
+        processLayer = vector.duplicateInMemory(inLayer)
 
         if not keepSelection:
             # Make a selection with the values provided
@@ -102,26 +107,26 @@ class Eliminate(GeoAlgorithm):
             selectType = inLayer.fields()[selectindex].type()
             selectionError = False
 
-            if selectType == 2:
+            if selectType in [QVariant.Int, QVariant.LongLong, QVariant.UInt, QVariant.ULongLong]:
                 try:
                     y = int(comparisonvalue)
                 except ValueError:
                     selectionError = True
                     msg = self.tr('Cannot convert "%s" to integer' % unicode(comparisonvalue))
-            elif selectType == 6:
+            elif selectType == QVariant.Double:
                 try:
                     y = float(comparisonvalue)
                 except ValueError:
                     selectionError = True
                     msg = self.tr('Cannot convert "%s" to float' % unicode(comparisonvalue))
-            elif selectType == 10:
-               # 10: string, boolean
+            elif selectType == QVariant.String:
+                # 10: string, boolean
                 try:
                     y = unicode(comparisonvalue)
                 except ValueError:
                     selectionError = True
                     msg = self.tr('Cannot convert "%s" to unicode' % unicode(comparisonvalue))
-            elif selectType == 14:
+            elif selectType == QVariant.Date:
                 # date
                 dateAndFormat = comparisonvalue.split(' ')
 
@@ -146,7 +151,7 @@ class Eliminate(GeoAlgorithm):
                     msg += self.tr('Enter the date and the date format, e.g. "07.26.2011" "MM.dd.yyyy".')
 
             if (comparison == 'begins with' or comparison == 'contains') \
-               and selectType != 10:
+               and selectType != QVariant.String:
                 selectionError = True
                 msg = self.tr('"%s" can only be used with string fields' % comparison)
 
@@ -162,14 +167,14 @@ class Eliminate(GeoAlgorithm):
                     if aValue is None:
                         continue
 
-                    if selectType == 2:
+                    if selectType in [QVariant.Int, QVariant.LongLong, QVariant.UInt, QVariant.ULongLong]:
                         x = int(aValue)
-                    elif selectType == 6:
+                    elif selectType == QVariant.Double:
                         x = float(aValue)
-                    elif selectType == 10:
+                    elif selectType == QVariant.String:
                         # 10: string, boolean
                         x = unicode(aValue)
-                    elif selectType == 14:
+                    elif selectType == QVariant.Date:
                         # date
                         x = aValue  # should be date
 
diff --git a/python/plugins/processing/algs/qgis/Intersection.py b/python/plugins/processing/algs/qgis/Intersection.py
index 6310bca..2977c38 100644
--- a/python/plugins/processing/algs/qgis/Intersection.py
+++ b/python/plugins/processing/algs/qgis/Intersection.py
@@ -65,7 +65,7 @@ class Intersection(GeoAlgorithm):
         vlayerB = dataobjects.getObjectFromUri(
             self.getParameterValue(self.INPUT2))
 
-        geomType = vlayerA.wkbType()
+        geomType = QGis.multiType(vlayerA.wkbType())
         fields = vector.combineVectorFields(vlayerA, vlayerB)
         writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(fields,
                                                                      geomType, vlayerA.crs())
diff --git a/python/plugins/processing/algs/qgis/SymmetricalDifference.py b/python/plugins/processing/algs/qgis/SymmetricalDifference.py
index 2318631..557cd22 100644
--- a/python/plugins/processing/algs/qgis/SymmetricalDifference.py
+++ b/python/plugins/processing/algs/qgis/SymmetricalDifference.py
@@ -56,7 +56,7 @@ class SymmetricalDifference(GeoAlgorithm):
         layerB = dataobjects.getObjectFromUri(
             self.getParameterValue(self.OVERLAY))
 
-        geomType = layerA.wkbType()
+        geomType = QGis.multiType(layerA.wkbType())
         fields = vector.combineVectorFields(layerA, layerB)
         writer = self.getOutputFromName(self.OUTPUT).getVectorWriter(
             fields, geomType, layerA.crs())
diff --git a/python/plugins/processing/algs/r/RUtils.py b/python/plugins/processing/algs/r/RUtils.py
index 60f791c..ddfe701 100644
--- a/python/plugins/processing/algs/r/RUtils.py
+++ b/python/plugins/processing/algs/r/RUtils.py
@@ -43,6 +43,8 @@ class RUtils:
     R_USE64 = 'R_USE64'
     R_LIBS_USER = 'R_LIBS_USER'
 
+    rscriptfilename = userFolder() + os.sep + 'processing_script.r'
+
     @staticmethod
     def RFolder():
         folder = ProcessingConfig.getSetting(RUtils.R_FOLDER)
@@ -85,7 +87,7 @@ class RUtils:
 
     @staticmethod
     def getRScriptFilename():
-        return userFolder() + os.sep + 'processing_script.r'
+        return RUtils.rscriptfilename
 
     @staticmethod
     def getConsoleOutputFilename():
@@ -93,6 +95,9 @@ class RUtils:
 
     @staticmethod
     def executeRAlgorithm(alg, progress):
+        # generate new R script file name in a temp folder
+        RUtils.rscriptfilename = getTempFilenameInTempFolder('processing_script.r')
+        # run commands
         RUtils.verboseCommands = alg.getVerboseCommands()
         RUtils.createRScriptFromRCommands(alg.getFullSetOfRCommands())
         if isWindows():
diff --git a/python/plugins/processing/gui/AlgorithmDialogBase.py b/python/plugins/processing/gui/AlgorithmDialogBase.py
index 4dd1ad5..9f131bf 100644
--- a/python/plugins/processing/gui/AlgorithmDialogBase.py
+++ b/python/plugins/processing/gui/AlgorithmDialogBase.py
@@ -114,7 +114,7 @@ class AlgorithmDialogBase(BASE, WIDGET):
         if reply.error() != QNetworkReply.NoError:
             html = self.tr('<h2>No help available for this algorithm</h2><p>{}</p>'.format(reply.errorString()))
         else:
-            html = unicode(reply.readAll())
+            html = str(reply.readAll()).decode('utf-8')
         reply.deleteLater()
         self.txtHelp.setHtml(html)
 
diff --git a/python/plugins/processing/gui/BatchPanel.py b/python/plugins/processing/gui/BatchPanel.py
index b84f188..b3bafbf 100644
--- a/python/plugins/processing/gui/BatchPanel.py
+++ b/python/plugins/processing/gui/BatchPanel.py
@@ -212,7 +212,7 @@ class BatchPanel(BASE, WIDGET):
             QMessageBox.critical(
                 self,
                 self.tr('Error'),
-                self.tr('An error occured while reading your file.'))
+                self.tr('An error occurred while reading your file.'))
 
     def setValueInWidget(self, widget, value):
         if isinstance(widget, (BatchInputSelectionPanel, QLineEdit, FileSelectionPanel)):
diff --git a/python/plugins/processing/tests/CMakeLists.txt b/python/plugins/processing/tests/CMakeLists.txt
index 8a76fd2..a1bf8db 100644
--- a/python/plugins/processing/tests/CMakeLists.txt
+++ b/python/plugins/processing/tests/CMakeLists.txt
@@ -7,6 +7,7 @@ PLUGIN_INSTALL(processing tests/data ${TEST_DATA_FILES})
 IF(ENABLE_TESTS)
   INCLUDE(UsePythonTest)
   ADD_PYTHON_TEST(ProcessingParametersTest ParametersTest.py)
+  ADD_PYTHON_TEST(ProcessingToolsTest ToolsTest.py)
   ADD_PYTHON_TEST(ProcessingQgisAlgorithmsTest QgisAlgorithmsTest.py)
   ADD_PYTHON_TEST(ProcessingGdalAlgorithmsTest GdalAlgorithmsTest.py)
 ENDIF(ENABLE_TESTS)
diff --git a/python/plugins/processing/tests/GdalAlgorithmsTest.py b/python/plugins/processing/tests/GdalAlgorithmsTest.py
index 3766cdd..57f6f13 100644
--- a/python/plugins/processing/tests/GdalAlgorithmsTest.py
+++ b/python/plugins/processing/tests/GdalAlgorithmsTest.py
@@ -26,6 +26,7 @@ __copyright__ = '(C) 2016, Matthias Kuhn'
 __revision__ = ':%H$'
 
 import AlgorithmsTestBase
+from processing.algs.gdal.ogr2ogrtopostgis import Ogr2OgrToPostGis
 
 import nose2
 import shutil
@@ -54,5 +55,52 @@ class TestGdalAlgorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
         return 'gdal_algorithm_tests.yaml'
 
 
+class TestGdalOgr2OgrToPostgis(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        #start_app()
+        pass
+
+    @classmethod
+    def tearDownClass(cls):
+        pass
+
+    # See http://hub.qgis.org/issues/15706
+    def test_getConnectionString(self):
+
+        obj = Ogr2OgrToPostGis()
+
+        cs = obj.getConnectionString()
+        # NOTE: defaults are debatable, see
+        # https://github.com/qgis/QGIS/pull/3607#issuecomment-253971020
+        self.assertEquals(obj.getConnectionString(),
+                          "host=localhost port=5432 active_schema=public")
+
+        obj.setParameterValue('HOST', 'remote')
+        self.assertEquals(obj.getConnectionString(),
+                          "host=remote port=5432 active_schema=public")
+
+        obj.setParameterValue('HOST', '')
+        self.assertEquals(obj.getConnectionString(),
+                          "port=5432 active_schema=public")
+
+        obj.setParameterValue('PORT', '5555')
+        self.assertEquals(obj.getConnectionString(),
+                          "port=5555 active_schema=public")
+
+        obj.setParameterValue('PORT', '')
+        self.assertEquals(obj.getConnectionString(),
+                          "active_schema=public")
+
+        obj.setParameterValue('USER', 'usr')
+        self.assertEquals(obj.getConnectionString(),
+                          "active_schema=public user=usr")
+
+        obj.setParameterValue('PASSWORD', 'pwd')
+        self.assertEquals(obj.getConnectionString(),
+                          "password=pwd active_schema=public user=usr")
+
+
 if __name__ == '__main__':
     nose2.main()
diff --git a/python/plugins/processing/tests/ToolsTest.py b/python/plugins/processing/tests/ToolsTest.py
new file mode 100644
index 0000000..070f24e
--- /dev/null
+++ b/python/plugins/processing/tests/ToolsTest.py
@@ -0,0 +1,133 @@
+# -*- coding: utf-8 -*-
+
+"""
+***************************************************************************
+    ToolsTest
+    ---------------------
+    Date                 : July 2017
+    Copyright            : (C) 2017 by Nyall Dawson
+    Email                : nyall dot dawson at gmail dot com
+***************************************************************************
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*                                                                         *
+***************************************************************************
+"""
+
+__author__ = 'Nyall Dawson'
+__date__ = 'July 2016'
+__copyright__ = '(C) 2016, Nyall Dawson'
+
+# This will get replaced with a git SHA1 when you do a git archive
+
+__revision__ = '$Format:%H$'
+
+from qgis.testing import start_app, unittest
+from processing.tests.TestData import points2
+from processing.tools import vector
+from qgis.core import (QgsVectorLayer, QgsFeatureRequest)
+from processing.core.ProcessingConfig import ProcessingConfig
+
+import os.path
+import errno
+import shutil
+
+dataFolder = os.path.join(os.path.dirname(__file__), '../../../../tests/testdata/')
+tmpBaseFolder = os.path.join(os.sep, 'tmp', 'qgis_test', str(os.getpid()))
+
+
+def mkDirP(path):
+    try:
+        os.makedirs(path)
+    except OSError as exc:
+        if exc.errno == errno.EEXIST and os.path.isdir(path):
+            pass
+        else:
+            raise
+
+start_app()
+
+
+class VectorTest(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        mkDirP(tmpBaseFolder)
+
+    @classmethod
+    def tearDownClass(cls):
+        shutil.rmtree(tmpBaseFolder)
+        pass
+
+    # See http://hub.qgis.org/issues/15698
+    def test_ogrLayerName(self):
+        tmpdir = os.path.join(tmpBaseFolder, 'ogrLayerName')
+        os.mkdir(tmpdir)
+
+        def linkTestfile(f, t):
+            os.link(os.path.join(dataFolder, f), os.path.join(tmpdir, t))
+
+        # URI from OGR provider
+        linkTestfile('geom_data.csv', 'a.csv')
+        name = vector.ogrLayerName(tmpdir)
+        self.assertEqual(name, 'a')
+
+        # URI from OGR provider
+        linkTestfile('wkt_data.csv', 'b.csv')
+        name = vector.ogrLayerName(tmpdir + '|layerid=0')
+        self.assertEqual(name, 'a')
+        name = vector.ogrLayerName(tmpdir + '|layerid=1')
+        self.assertEqual(name, 'b')
+
+        # URI from OGR provider
+        name = vector.ogrLayerName(tmpdir + '|layerid=2')
+        self.assertEqual(name, 'invalid-layerid')
+
+        # URI from OGR provider
+        name = vector.ogrLayerName(tmpdir + '|layername=f')
+        self.assertEqual(name, 'f') # layername takes precedence
+
+        # URI from OGR provider
+        name = vector.ogrLayerName(tmpdir + '|layerid=0|layername=f2')
+        self.assertEqual(name, 'f2') # layername takes precedence
+
+        # URI from OGR provider
+        name = vector.ogrLayerName(tmpdir + '|layername=f2|layerid=0')
+        self.assertEqual(name, 'f2') # layername takes precedence
+
+        # URI from Sqlite provider
+        name = vector.ogrLayerName('dbname=\'/tmp/x.sqlite\' table="t" (geometry) sql=')
+        self.assertEqual(name, 't')
+
+        # URI from PostgreSQL provider
+        name = vector.ogrLayerName('port=5493 sslmode=disable key=\'edge_id\' srid=0 type=LineString table="city_data"."edge" (geom) sql=')
+        self.assertEqual(name, 'city_data.edge')
+
+    def testFeatures(self):
+        ProcessingConfig.initialize()
+
+        test_data = points2()
+        test_layer = QgsVectorLayer(test_data, 'test', 'ogr')
+
+        # test with all features
+        features = vector.features(test_layer)
+        self.assertEqual(len(features), 8)
+        self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7]))
+
+        previous_value = ProcessingConfig.getSetting(ProcessingConfig.USE_SELECTED)
+
+        # using selected features, but no selection
+        ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, True)
+        test_layer.removeSelection()
+        features = vector.features(test_layer)
+        self.assertEqual(len(features), 8)
+        self.assertEqual(set([f.id() for f in features]), set([0, 1, 2, 3, 4, 5, 6, 7]))
+
+        ProcessingConfig.setSettingValue(ProcessingConfig.USE_SELECTED, previous_value)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/python/plugins/processing/tools/dataobjects.py b/python/plugins/processing/tools/dataobjects.py
index 0c3640e..a23ed78 100644
--- a/python/plugins/processing/tools/dataobjects.py
+++ b/python/plugins/processing/tools/dataobjects.py
@@ -29,7 +29,7 @@ __revision__ = '$Format:%H$'
 import os
 import re
 from qgis.core import QGis, QgsProject, QgsVectorFileWriter, QgsMapLayer, QgsRasterLayer, \
-                        QgsVectorLayer, QgsMapLayerRegistry, QgsCoordinateReferenceSystem
+    QgsVectorLayer, QgsMapLayerRegistry, QgsCoordinateReferenceSystem
 from qgis.gui import QgsSublayersDialog
 from PyQt4.QtCore import QSettings
 from qgis.utils import iface
diff --git a/python/plugins/processing/tools/vector.py b/python/plugins/processing/tools/vector.py
index 84e47d1..22b7255 100644
--- a/python/plugins/processing/tools/vector.py
+++ b/python/plugins/processing/tools/vector.py
@@ -38,6 +38,8 @@ import psycopg2
 
 from PyQt4 import QtSql
 from PyQt4.QtCore import QVariant, QSettings
+from osgeo import ogr
+
 from qgis.core import (QGis, QgsFields, QgsField, QgsGeometry, QgsRectangle,
                        QgsSpatialIndex, QgsMapLayerRegistry, QgsMapLayer, QgsVectorLayer,
                        QgsVectorFileWriter, QgsDistanceArea, QgsDataSourceURI, QgsCredentials)
@@ -510,21 +512,67 @@ def ogrConnectionString(uri):
     return '"' + ogrstr + '"'
 
 
+#
+# The uri parameter is an URI from any QGIS provider,
+# so could have different formats.
+# Example formats:
+#
+# -- PostgreSQL provider
+# port=5493 sslmode=disable key='edge_id' srid=0 type=LineString table="city_data"."edge" (geom) sql=
+#
+# -- Spatialite provider
+# dbname='/tmp/x.sqlite' table="t" (geometry) sql='
+#
+# -- OGR provider (single-layer directory)
+# /tmp/x.gdb
+#
+# -- OGR provider (multi-layer directory)
+# /tmp/x.gdb|layerid=1
+#
+# -- OGR provider (multi-layer directory)
+# /tmp/x.gdb|layername=thelayer
+#
 def ogrLayerName(uri):
-    if 'host' in uri:
-        regex = re.compile('(table=")(.+?)(\.)(.+?)"')
-        r = regex.search(uri)
-        return '"' + r.groups()[1] + '.' + r.groups()[3] + '"'
-    elif 'dbname' in uri:
-        regex = re.compile('(table=")(.+?)"')
-        r = regex.search(uri)
-        return r.groups()[1]
-    elif 'layername' in uri:
-        regex = re.compile('(layername=)(.*)')
+
+    # handle URIs of database providers
+    if ' table=' in uri:
+        # Matches table="schema"."table"
+        re_table_schema = re.compile(' table="([^"]*)"\."([^"]*)"')
+        r = re_table_schema.search(uri)
+        if r:
+            return r.groups()[0] + '.' + r.groups()[1]
+        # Matches table="table"
+        re_table = re.compile(' table="([^"]*)"')
+        r = re_table.search(uri)
+        if r:
+            return r.groups()[0]
+
+    # handle URIs of OGR provider with explicit layername
+    if 'layername' in uri:
+        regex = re.compile('(layername=)([^|]*)')
         r = regex.search(uri)
         return r.groups()[1]
-    else:
-        return os.path.basename(os.path.splitext(uri)[0])
+
+    fields = uri.split('|')
+    ogruri = fields[0]
+    fields = fields[1:]
+    layerid = 0
+    for f in fields:
+        if f.startswith('layername='):
+            # Name encoded in uri, nothing more needed
+            return f.split('=')[1]
+        if f.startswith('layerid='):
+            layerid = int(f.split('=')[1])
+            # Last layerid= takes precedence, to allow of layername to
+            # take precedence
+    ds = ogr.Open(ogruri)
+    if not ds:
+        return "invalid-uri"
+    ly = ds.GetLayer(layerid)
+    if not ly:
+        return "invalid-layerid"
+    name = ly.GetName()
+    return name
 
 
 class VectorWriter:
diff --git a/resources/context_help/HeatmapGui b/resources/context_help/HeatmapGui
index e722f10..612d8d2 100644
--- a/resources/context_help/HeatmapGui
+++ b/resources/context_help/HeatmapGui
@@ -26,7 +26,7 @@ clustering of points.</p>
 
 <h4>Rows and Columns</h4>
 <p>Used to change the dimensions of the output raster file. These values are also linked to the <b>Cell size X</b> and <b>Cell size Y</b> values. 
-Increasing the number of rows or colums will decrease the cell size and increase the file size of the output file. The values in Rows and Columns
+Increasing the number of rows or columns will decrease the cell size and increase the file size of the output file. The values in Rows and Columns
 are also linked, so doubling the number of rows will automatically double the number of columns and the cell sizes will also be halved. The geographical area of the output raster will remain the same!</p>
 
 <h4>Cell size X and Y</h4>
diff --git a/resources/context_help/QgsDelimitedTextSourceSelect b/resources/context_help/QgsDelimitedTextSourceSelect
index b55b8c3..7c3f549 100644
--- a/resources/context_help/QgsDelimitedTextSourceSelect
+++ b/resources/context_help/QgsDelimitedTextSourceSelect
@@ -221,7 +221,7 @@ Each attribute also has a data type, one of string (text), integer, longlong,
 or real number.
 The data type is inferred from the content of the fields - if every non blank value
 is a valid integer then the type is integer, otherwise if it is a valid long long
-nubmer then the type is longlong, otherwise if it is a valid real
+number then the type is longlong, otherwise if it is a valid real
 number then the type is real, otherwise the type is string.  Note that this is
 based on the content of the fields - quoting fields does not change the way they
 are interpreted.
diff --git a/resources/function_help/json/ILIKE b/resources/function_help/json/ILIKE
index 26968df..a17e8bf 100644
--- a/resources/function_help/json/ILIKE
+++ b/resources/function_help/json/ILIKE
@@ -3,16 +3,22 @@
   "type": "operator",
   "description": "Returns 1 if the first parameter matches case-insensitive the supplied pattern. LIKE can be used instead of ILIKE to make the match case-sensitive. Works with numbers also.",
   "arguments": [
-	{"arg":"string/number","description":"string to search"},
-	{"arg":"pattern","description":"pattern to find"}
+    {"arg":"string/number","description":"string to search"},
+    {"arg":"pattern","description":"pattern to find, you can use '%' as a wildcard, '_' as a single char and '\\\\' to escape."}
    ],
   "examples": [
-	{ "expression":"'A' ILIKE 'A'", "returns":"1"},
-	{ "expression":"'A' ILIKE 'a'", "returns":"1"},
-	{ "expression":"'A' ILIKE 'B'", "returns":"0"},
-	{ "expression":"'ABC' ILIKE 'b'", "returns":"0"},
-	{ "expression":"'ABC' ILIKE 'B'", "returns":"0"},
-	{ "expression":"'ABC' ILIKE '%b%'", "returns":"1"},
-	{ "expression":"'ABC' ILIKE '%B%'", "returns":"1"}
+    { "expression":"'A' ILIKE 'A'", "returns":"1"},
+    { "expression":"'A' ILIKE 'a'", "returns":"1"},
+    { "expression":"'A' ILIKE 'B'", "returns":"0"},
+    { "expression":"'ABC' ILIKE 'b'", "returns":"0"},
+    { "expression":"'ABC' ILIKE 'B'", "returns":"0"},
+    { "expression":"'ABC' ILIKE '_b_'", "returns":"1"},
+    { "expression":"'ABC' ILIKE '_B_'", "returns":"1"},
+    { "expression":"'ABCD' ILIKE '_b_'", "returns":"0"},
+    { "expression":"'ABCD' ILIKE '_B_'", "returns":"0"},
+    { "expression":"'ABCD' ILIKE '_b%'", "returns":"1"},
+    { "expression":"'ABCD' ILIKE '_B%'", "returns":"1"},
+    { "expression":"'ABCD' ILIKE '%b%'", "returns":"1"},
+    { "expression":"'ABCD' ILIKE '%B%'", "returns":"1"}
   ]
 }
diff --git a/resources/function_help/json/LIKE b/resources/function_help/json/LIKE
index 2dba3f8..2ff339b 100644
--- a/resources/function_help/json/LIKE
+++ b/resources/function_help/json/LIKE
@@ -3,14 +3,19 @@
   "type": "operator",
   "description": "Returns 1 if the first parameter matches the supplied pattern. Works with numbers also.",
   "arguments": [
-	{"arg":"string/number","description":"value"},
-	{"arg":"pattern","description":"pattern to compare value with"}
+    {"arg":"string/number","description":"value"},
+    {"arg":"pattern","description":"pattern to compare value with, you can use '%' as a wildcard, '_' as a single char and '\\\\' to escape."}
   ],
   "examples": [
-	{ "expression":"'A' LIKE 'A'", "returns":"1"},
-	{ "expression":"'A' LIKE 'a'", "returns":"0"},
-	{ "expression":"'A' LIKE 'B'", "returns":"0"},
-	{ "expression":"'ABC' LIKE 'B'", "returns":"0"},
-	{ "expression":"'ABC' LIKE '%B%'", "returns":"1"}
+    { "expression":"'A' LIKE 'A'", "returns":"1"},
+    { "expression":"'A' LIKE 'a'", "returns":"0"},
+    { "expression":"'A' LIKE 'B'", "returns":"0"},
+    { "expression":"'ABC' LIKE 'B'", "returns":"0"},
+    { "expression":"'ABC' LIKE '_B_'", "returns":"1"},
+    { "expression":"'ABCD' LIKE '_B_'", "returns":"0"},
+    { "expression":"'ABCD' LIKE '_B%'", "returns":"1"},
+    { "expression":"'ABCD' LIKE '%B%'", "returns":"1"},
+    { "expression":"'1%' LIKE '1\\\\%'", "returns":"1"},
+    { "expression":"'1_' LIKE '1\\\\%'", "returns":"0"}
   ]
 }
diff --git a/resources/function_help/json/regexp_match b/resources/function_help/json/regexp_match
index 46422a3..90a193f 100644
--- a/resources/function_help/json/regexp_match
+++ b/resources/function_help/json/regexp_match
@@ -3,7 +3,7 @@
   "type": "function",
   "description": "Returns true if any part of a string matches the supplied regular expression.",
   "arguments": [ {"arg":"input_string","description":"the string to test against the regular expression"},
-  {"arg":"regex","description":"The regular expression to test against. Backslash characters must be double escaped (eg \"\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."}
+  {"arg":"regex","description":"The regular expression to test against. Backslash characters must be double escaped (eg \"\\\\\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."}
   ],
-  "examples": [ { "expression":"regexp_match('QGIS ROCKS','\\\\sROCKS')", "returns":"true"}]
+  "examples": [ { "expression":"regexp_match('QGIS ROCKS','\\\\\\\\sROCKS')", "returns":"true"}]
 }
diff --git a/resources/function_help/json/regexp_replace b/resources/function_help/json/regexp_replace
index 10a0147..aacce80 100644
--- a/resources/function_help/json/regexp_replace
+++ b/resources/function_help/json/regexp_replace
@@ -3,8 +3,8 @@
   "type": "function",
   "description": "Returns a string with the supplied regular expression replaced.",
   "arguments": [ {"arg":"input_string","description":"the string to replace matches in"},
-  {"arg":"regex","description":"The regular expression to replace. Backslash characters must be double escaped (eg \"\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."},
-  {"arg":"replacement","description":"The string that will replace any matching occurrences of the supplied regular expression. Captured groups can be inserted into the replacement string using \\\\1, \\\\2, etc."}
+  {"arg":"regex","description":"The regular expression to replace. Backslash characters must be double escaped (eg \"\\\\\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."},
+  {"arg":"replacement","description":"The string that will replace any matching occurrences of the supplied regular expression. Captured groups can be inserted into the replacement string using \\\\\\\\1, \\\\\\\\2, etc."}
   ],
-  "examples": [ { "expression":"regexp_replace('QGIS SHOULD ROCK','\\\\sSHOULD\\\\s',' DOES ')", "returns":"'QGIS DOES ROCK'"}]
+  "examples": [ { "expression":"regexp_replace('QGIS SHOULD ROCK','\\\\\\\\sSHOULD\\\\\\\\s',' DOES ')", "returns":"'QGIS DOES ROCK'"}]
 }
diff --git a/resources/function_help/json/regexp_substr b/resources/function_help/json/regexp_substr
index 28a6cd4..58fabdb 100644
--- a/resources/function_help/json/regexp_substr
+++ b/resources/function_help/json/regexp_substr
@@ -3,7 +3,7 @@
   "type": "function",
   "description": "Returns the portion of a string which matches a supplied regular expression.",
   "arguments": [ {"arg":"input_string","description":"the string to find matches in"},
-  {"arg":"regex","description":"The regular expression to match against. Backslash characters must be double escaped (eg \"\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."}
+  {"arg":"regex","description":"The regular expression to match against. Backslash characters must be double escaped (eg \"\\\\\\\\s\" to match a white space character). Non-greedy regular expressions are not supported."}
   ],
-  "examples": [ { "expression":"regexp_substr('abc123','(\\\\d+)')", "returns":"'123'"}]
+  "examples": [ { "expression":"regexp_substr('abc123','(\\\\\\\\d+)')", "returns":"'123'"}]
 }
diff --git a/scripts/qgm2cpp.pl b/scripts/qgm2cpp.pl
index 19927e3..c488975 100644
--- a/scripts/qgm2cpp.pl
+++ b/scripts/qgm2cpp.pl
@@ -44,7 +44,7 @@ sub parse {
 						if $label =~ /^\s+/ || $label =~ /\s+$/ || $label !~ /^[A-Z0-9(]/;	
 					$label =~ s/^\s+//;
 					$label =~ s/\s+$//;
-					$label =~ ucfirst $label;
+					$label = ucfirst $label;
 					$labels{$label} = 1;
 				} else {
 					parse($a->{$b});
diff --git a/scripts/spelling.dat b/scripts/spelling.dat
index d1603cc..04b07e0 100644
--- a/scripts/spelling.dat
+++ b/scripts/spelling.dat
@@ -232,7 +232,7 @@ informatiom:information
 informations:information
 infromation:information
 initalize:initialize
-initialisation:initalization
+initialisation:initialization
 initators:initiators
 initializiation:initialization
 inofficial:unofficial
@@ -300,6 +300,7 @@ nescessary:necessary
 nessessary:necessary
 noticable:noticeable
 notications:notifications
+nubmer:number
 o'caml:OCaml
 occured:occurred
 occurence:occurrence
diff --git a/scripts/tsstat.pl b/scripts/tsstat.pl
index e909118..39e03e2 100755
--- a/scripts/tsstat.pl
+++ b/scripts/tsstat.pl
@@ -69,7 +69,7 @@ my $translators= {
 	'mr' => '',
 	'nb' => 'James Stott, Maléne Peterson',
 	'nl' => 'Richard Duivenvoorde, Raymond Nijssen, Carlo van Rijswijk, Diethard Jansen, Willem Hoffmans, Dick Groskamp',
-	'pl' => 'Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach',
+	'pl' => 'Robert Szczepanek, Milena Nowotarska, Borys Jurgiel, Mateusz Łoskot, Tomasz Paul, Andrzej Świąder, Radosław Pasiok, Michał Kułach, Ewelina Krawczak, Michał Smoczyk, Jakub Bobrowski',
 	'pt_BR' => 'Sidney Schaberle Goveia, Arthur Nanni, Marcelo Soares Souza, Narcélio de Sá Pereira Filho, Leônidas Descovi Filho, Felipe Sodré Barros ',
 	'pt_PT' => 'Giovanni Manghi, Joana Simões, Duarte Carreira, Alexandre Neto, Pedro Pereira, Pedro Palheiro, Nelson Silva, Ricardo Sena, Leandro Infantini, João Gaspar',
 	'ro' => 'Sorin Călinică, Tudor Bărăscu, Georgiana Ioanovici, Alex Bădescu, Lonut Losifescu-Enescu, Bogdan Pacurar',
diff --git a/src/app/composer/qgscomposerpicturewidget.cpp b/src/app/composer/qgscomposerpicturewidget.cpp
index 8374636..b29df97 100644
--- a/src/app/composer/qgscomposerpicturewidget.cpp
+++ b/src/app/composer/qgscomposerpicturewidget.cpp
@@ -44,6 +44,13 @@ QgsComposerPictureWidget::QgsComposerPictureWidget( QgsComposerPicture* picture
   mOutlineColorButton->setColorDialogTitle( tr( "Select outline color" ) );
   mOutlineColorButton->setContext( "composer" );
 
+  mNorthTypeComboBox->blockSignals( true );
+  mNorthTypeComboBox->addItem( tr( "Grid north" ), QgsComposerPicture::GridNorth );
+  mNorthTypeComboBox->addItem( tr( "True north" ), QgsComposerPicture::TrueNorth );
+  mNorthTypeComboBox->blockSignals( false );
+  mPictureRotationOffsetSpinBox->setClearValue( 0.0 );
+  mPictureRotationSpinBox->setClearValue( 0.0 );
+
   //add widget for general composer item properties
   QgsComposerItemWidget* itemPropertiesWidget = new QgsComposerItemWidget( this, picture );
   mainLayout->addWidget( itemPropertiesWidget );
@@ -273,6 +280,8 @@ void QgsComposerPictureWidget::on_mRotationFromComposerMapCheckBox_stateChanged(
     mPicture->setRotationMap( -1 );
     mPictureRotationSpinBox->setEnabled( true );
     mComposerMapComboBox->setEnabled( false );
+    mNorthTypeComboBox->setEnabled( false );
+    mPictureRotationOffsetSpinBox->setEnabled( false );
     mPicture->setPictureRotation( mPictureRotationSpinBox->value() );
   }
   else
@@ -286,6 +295,8 @@ void QgsComposerPictureWidget::on_mRotationFromComposerMapCheckBox_stateChanged(
 
     mPicture->setRotationMap( composerId );
     mPictureRotationSpinBox->setEnabled( false );
+    mNorthTypeComboBox->setEnabled( true );
+    mPictureRotationOffsetSpinBox->setEnabled( true );
     mComposerMapComboBox->setEnabled( true );
   }
   mPicture->endCommand();
@@ -388,6 +399,8 @@ void QgsComposerPictureWidget::setGuiElementValues()
     mPictureLineEdit->blockSignals( true );
     mComposerMapComboBox->blockSignals( true );
     mRotationFromComposerMapCheckBox->blockSignals( true );
+    mNorthTypeComboBox->blockSignals( true );
+    mPictureRotationOffsetSpinBox->blockSignals( true );
     mResizeModeComboBox->blockSignals( true );
     mAnchorPointComboBox->blockSignals( true );
     mFillColorButton->blockSignals( true );
@@ -410,13 +423,19 @@ void QgsComposerPictureWidget::setGuiElementValues()
       {
         mComposerMapComboBox->setCurrentIndex( itemId );
       }
+      mNorthTypeComboBox->setEnabled( true );
+      mPictureRotationOffsetSpinBox->setEnabled( true );
     }
     else
     {
       mRotationFromComposerMapCheckBox->setCheckState( Qt::Unchecked );
       mPictureRotationSpinBox->setEnabled( true );
       mComposerMapComboBox->setEnabled( false );
+      mNorthTypeComboBox->setEnabled( false );
+      mPictureRotationOffsetSpinBox->setEnabled( false );
     }
+    mNorthTypeComboBox->setCurrentIndex( mNorthTypeComboBox->findData( mPicture->northMode() ) );
+    mPictureRotationOffsetSpinBox->setValue( mPicture->northOffset() );
 
     mResizeModeComboBox->setCurrentIndex(( int )mPicture->resizeMode() );
     //disable picture rotation for non-zoom modes
@@ -444,6 +463,8 @@ void QgsComposerPictureWidget::setGuiElementValues()
     mPictureRotationSpinBox->blockSignals( false );
     mPictureLineEdit->blockSignals( false );
     mComposerMapComboBox->blockSignals( false );
+    mNorthTypeComboBox->blockSignals( false );
+    mPictureRotationOffsetSpinBox->blockSignals( false );
     mResizeModeComboBox->blockSignals( false );
     mAnchorPointComboBox->blockSignals( false );
     mFillColorButton->blockSignals( false );
@@ -726,6 +747,22 @@ void QgsComposerPictureWidget::showEvent( QShowEvent * event )
   refreshMapComboBox();
 }
 
+void QgsComposerPictureWidget::on_mPictureRotationOffsetSpinBox_valueChanged( double d )
+{
+  mPicture->beginCommand( tr( "Picture North offset changed" ), QgsComposerMergeCommand::ComposerPictureNorthOffset );
+  mPicture->setNorthOffset( d );
+  mPicture->endCommand();
+  mPicture->update();
+}
+
+void QgsComposerPictureWidget::on_mNorthTypeComboBox_currentIndexChanged( int index )
+{
+  mPicture->beginCommand( tr( "Picture North mode changed" ) );
+  mPicture->setNorthMode( static_cast< QgsComposerPicture::NorthMode >( mNorthTypeComboBox->itemData( index ).toInt() ) );
+  mPicture->endCommand();
+  mPicture->update();
+}
+
 void QgsComposerPictureWidget::resizeEvent( QResizeEvent * event )
 {
   Q_UNUSED( event );
diff --git a/src/app/composer/qgscomposerpicturewidget.h b/src/app/composer/qgscomposerpicturewidget.h
index a497f1b..c71208b 100644
--- a/src/app/composer/qgscomposerpicturewidget.h
+++ b/src/app/composer/qgscomposerpicturewidget.h
@@ -73,6 +73,8 @@ class QgsComposerPictureWidget: public QgsComposerItemBaseWidget, private Ui::Qg
     void on_mFillColorButton_colorChanged( const QColor& color );
     void on_mOutlineColorButton_colorChanged( const QColor& color );
     void on_mOutlineWidthSpinBox_valueChanged( double d );
+    void on_mPictureRotationOffsetSpinBox_valueChanged( double d );
+    void on_mNorthTypeComboBox_currentIndexChanged( int index );
 
   private:
     QgsComposerPicture* mPicture;
diff --git a/src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp b/src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp
index 623d6ac..b2af0cc 100644
--- a/src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp
+++ b/src/app/gps/qwtpolar-0.1/qwt_polar_plot.cpp
@@ -186,7 +186,7 @@ const QwtTextLabel *QwtPolarPlot::titleLabel() const
 
   \param legend Legend
   \param pos The legend's position. For top/left position the number
-             of colums will be limited to 1, otherwise it will be set to
+             of columns will be limited to 1, otherwise it will be set to
              unlimited.
 
   \param ratio Ratio between legend and the bounding rect
diff --git a/src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp b/src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp
index aa6c404..add40f7 100644
--- a/src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp
+++ b/src/app/gps/qwtpolar-1.0/qwt_polar_plot.cpp
@@ -167,7 +167,7 @@ const QwtTextLabel *QwtPolarPlot::titleLabel() const
 
   \param legend Legend
   \param pos The legend's position. For top/left position the number
-             of colums will be limited to 1, otherwise it will be set to
+             of columns will be limited to 1, otherwise it will be set to
              unlimited.
 
   \param ratio Ratio between legend and the bounding rect
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
index 09cc540..90b8f46 100644
--- a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.cpp
@@ -171,7 +171,7 @@ const QwtTextLabel *QwtPolarPlot::titleLabel() const
 
   \param legend Legend
   \param pos The legend's position. For top/left position the number
-             of colums will be limited to 1, otherwise it will be set to
+             of columns will be limited to 1, otherwise it will be set to
              unlimited.
 
   \param ratio Ratio between legend and the bounding rect
@@ -635,7 +635,7 @@ double QwtPolarPlot::azimuthOrigin() const
 
    In zoom mode the zoom position is in the center of the
    canvas. The radius of the circle depends on the size of the plot canvas,
-   that is devided by the zoom factor. Thus a factor < 1.0 zoom in.
+   that is divided by the zoom factor. Thus a factor < 1.0 zoom in.
 
    Setting an invalid zoom position disables zooming.
 
diff --git a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h
index 2e65aca..0e8f5f3 100644
--- a/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h
+++ b/src/app/gps/qwtpolar-1.1.1/qwt_polar_plot.h
@@ -34,7 +34,7 @@ class QwtAbstractLegend;
   from QwtPolarItem.
 
   The coordinate system is defined by a radial and a azimuth scale.
-  The scales at the axes can be explicitely set (QwtScaleDiv), or
+  The scales at the axes can be explicitly set (QwtScaleDiv), or
   are calculated from the plot items, using algorithms (QwtScaleEngine) which
   can be configured separately for each axis. Autoscaling is supported
   for the radial scale.
diff --git a/src/app/nodetool/qgsmaptoolnodetool.cpp b/src/app/nodetool/qgsmaptoolnodetool.cpp
index b92df9d..ccb0786 100644
--- a/src/app/nodetool/qgsmaptoolnodetool.cpp
+++ b/src/app/nodetool/qgsmaptoolnodetool.cpp
@@ -201,6 +201,7 @@ QgsFeature QgsMapToolNodeTool::getFeatureAtPoint( QgsMapMouseEvent* e )
 
   QgsFeatureRequest request;
   request.setFilterRect( QgsRectangle( e->mapPoint().x(), e->mapPoint().y(), e->mapPoint().x(), e->mapPoint().y() ) );
+  request.setFlags( QgsFeatureRequest::ExactIntersect );
   QgsFeatureIterator features = vlayer->getFeatures( request );
   features.nextFeature( feature );
 
diff --git a/src/app/qgsmeasuredialog.cpp b/src/app/qgsmeasuredialog.cpp
index d32f2c6..424edef 100644
--- a/src/app/qgsmeasuredialog.cpp
+++ b/src/app/qgsmeasuredialog.cpp
@@ -111,6 +111,13 @@ void QgsMeasureDialog::unitsChanged( int index )
   mTable->clear();
   mTotal = 0.;
   updateUi();
+
+  if ( !mTool->done() )
+  {
+    // re-add temporary mouse cursor position
+    addPoint( mLastMousePoint );
+    mouseMove( mLastMousePoint );
+  }
 }
 
 void QgsMeasureDialog::restart()
@@ -205,16 +212,24 @@ void QgsMeasureDialog::removeLastPoint()
     //remove final row
     delete mTable->takeTopLevelItem( mTable->topLevelItemCount() - 1 );
 
-    QgsPoint p1( mTool->points().last() );
-    double d = mDa.measureLine( p1, mLastMousePoint );
-
     mTotal = mDa.measureLine( mTool->points() );
-    editTotal->setText( formatDistance( mTotal + d ) );
 
-    d = convertLength( d, mDistanceUnits );
+    if ( !mTool->done() )
+    {
+      // need to add the distance for the temporary mouse cursor point
+      QgsPoint p1( mTool->points().last() );
+      double d = mDa.measureLine( p1, mLastMousePoint );
 
-    QTreeWidgetItem *item = mTable->topLevelItem( mTable->topLevelItemCount() - 1 );
-    item->setText( 0, QLocale::system().toString( d, 'f', mDecimalPlaces ) );
+      d = convertLength( d, mDistanceUnits );
+
+      QTreeWidgetItem *item = mTable->topLevelItem( mTable->topLevelItemCount() - 1 );
+      item->setText( 0, QLocale::system().toString( d, 'f', mDecimalPlaces ) );
+      editTotal->setText( formatDistance( mTotal + d ) );
+    }
+    else
+    {
+      editTotal->setText( formatDistance( mTotal ) );
+    }
   }
 }
 
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 468d698..84f7e84 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -76,6 +76,7 @@ SET(QGIS_CORE_SRCS
   qgis.cpp
   qgsapplication.cpp
   qgsattributeaction.cpp
+  qgsbearingutils.cpp
   qgsbrowsermodel.cpp
   qgscachedfeatureiterator.cpp
   qgscacheindex.cpp
@@ -583,6 +584,7 @@ SET(QGIS_CORE_HDRS
   qgis.h
   qgsannotation.h
   qgsattributeaction.h
+  qgsbearingutils.h
   qgscachedfeatureiterator.h
   qgscacheindex.h
   qgscacheindexfeatureid.h
diff --git a/src/core/composer/qgscomposerattributetable.h b/src/core/composer/qgscomposerattributetable.h
index 9fb4847..2fdbe64 100644
--- a/src/core/composer/qgscomposerattributetable.h
+++ b/src/core/composer/qgscomposerattributetable.h
@@ -180,7 +180,7 @@ class CORE_EXPORT QgsComposerAttributeTable: public QgsComposerTable
     void setFeatureFilter( const QString& expression );
 
     /** Returns the attributes fields which are shown by the table.
-     * @returns a QSet of integers refering to the attributes in the vector layer. If
+     * @returns a QSet of integers referring to the attributes in the vector layer. If
      * result is an empty QSet than all feature attributes will be shown.
      * @see setDisplayAttributes
      * @deprecated use QgsComposerTable::columns() instead
@@ -188,7 +188,7 @@ class CORE_EXPORT QgsComposerAttributeTable: public QgsComposerTable
     Q_DECL_DEPRECATED QSet<int> displayAttributes() const;
 
     /** Sets the attributes to display in the table.
-     * @param attr QSet of integer values refering to the attributes from the vector layer to show.
+     * @param attr QSet of integer values referring to the attributes from the vector layer to show.
      * Set to an empty QSet to show all feature attributes.
      * @param refresh set to true to force the table to refetch features from its vector layer
      * and immediately update the display of the table. This may result in the table changing size
diff --git a/src/core/composer/qgscomposerattributetablev2.h b/src/core/composer/qgscomposerattributetablev2.h
index 134ddea..5d4e31b 100644
--- a/src/core/composer/qgscomposerattributetablev2.h
+++ b/src/core/composer/qgscomposerattributetablev2.h
@@ -253,7 +253,7 @@ class CORE_EXPORT QgsComposerAttributeTableV2: public QgsComposerTableV2
     void setFeatureFilter( const QString& expression );
 
     /** Sets the attributes to display in the table.
-     * @param attr QSet of integer values refering to the attributes from the vector layer to show.
+     * @param attr QSet of integer values referring to the attributes from the vector layer to show.
      * Set to an empty QSet to show all feature attributes.
      * @param refresh set to true to force the table to refetch features from its vector layer
      * and immediately update the display of the table. This may result in the table changing size
diff --git a/src/core/composer/qgscomposeritemcommand.h b/src/core/composer/qgscomposeritemcommand.h
index 65b1b81..8988979 100644
--- a/src/core/composer/qgscomposeritemcommand.h
+++ b/src/core/composer/qgscomposeritemcommand.h
@@ -105,6 +105,7 @@ class CORE_EXPORT QgsComposerMergeCommand: public QgsComposerItemCommand
       LegendRasterBorderWidth,
       //composer picture
       ComposerPictureRotation,
+      ComposerPictureNorthOffset,
       // composer scalebar
       ScaleBarLineWidth,
       ScaleBarHeight,
diff --git a/src/core/composer/qgscomposermousehandles.cpp b/src/core/composer/qgscomposermousehandles.cpp
index 4304bee..879ae3b 100644
--- a/src/core/composer/qgscomposermousehandles.cpp
+++ b/src/core/composer/qgscomposermousehandles.cpp
@@ -194,7 +194,12 @@ void QgsComposerMouseHandles::drawSelectedItemBounds( QPainter* painter )
       //not resizing or moving, so just map from scene bounds
       itemBounds = mapRectFromItem(( *itemIter ), ( *itemIter )->rectWithFrame() );
     }
-    painter->drawPolygon( itemBounds );
+
+    // drawPolygon causes issues on windows - corners of path may be missing resulting in triangles being drawn
+    // instead of rectangles! (Same cause as #13343)
+    QPainterPath path;
+    path.addPolygon( itemBounds );
+    painter->drawPath( path );
   }
   painter->restore();
 }
diff --git a/src/core/composer/qgscomposerpicture.cpp b/src/core/composer/qgscomposerpicture.cpp
index 3745ac8..f929c71 100644
--- a/src/core/composer/qgscomposerpicture.cpp
+++ b/src/core/composer/qgscomposerpicture.cpp
@@ -28,6 +28,10 @@
 #include "qgsnetworkcontentfetcher.h"
 #include "qgssymbollayerv2utils.h"
 #include "qgssvgcache.h"
+#include "qgslogger.h"
+#include "qgsbearingutils.h"
+#include "qgsmapsettings.h"
+
 #include <QDomDocument>
 #include <QDomElement>
 #include <QFileInfo>
@@ -44,6 +48,8 @@ QgsComposerPicture::QgsComposerPicture( QgsComposition *composition )
     , mMode( Unknown )
     , mPictureRotation( 0 )
     , mRotationMap( nullptr )
+    , mNorthMode( GridNorth )
+    , mNorthOffset( 0.0 )
     , mResizeMode( QgsComposerPicture::Zoom )
     , mPictureAnchor( UpperLeft )
     , mSvgFillColor( QColor( 255, 255, 255 ) )
@@ -61,6 +67,8 @@ QgsComposerPicture::QgsComposerPicture()
     , mMode( Unknown )
     , mPictureRotation( 0 )
     , mRotationMap( nullptr )
+    , mNorthMode( GridNorth )
+    , mNorthOffset( 0.0 )
     , mResizeMode( QgsComposerPicture::Zoom )
     , mPictureAnchor( UpperLeft )
     , mSvgFillColor( QColor( 255, 255, 255 ) )
@@ -419,6 +427,43 @@ void QgsComposerPicture::remotePictureLoaded()
   mLoaded = true;
 }
 
+void QgsComposerPicture::updateMapRotation()
+{
+  if ( !mRotationMap )
+    return;
+
+  // take map rotation
+  double rotation = mRotationMap->mapRotation();
+
+  // handle true north
+  switch ( mNorthMode )
+  {
+    case GridNorth:
+      break; // nothing to do
+
+    case TrueNorth:
+    {
+      QgsPoint center = mRotationMap->currentMapExtent()->center();
+      QgsCoordinateReferenceSystem crs = mComposition->mapSettings().destinationCrs();
+
+      try
+      {
+        double bearing = QgsBearingUtils::bearingTrueNorth( crs, center );
+        rotation += bearing;
+      }
+      catch ( QgsException& e )
+      {
+        Q_UNUSED( e );
+        QgsDebugMsg( QString( "Caught exception %1" ).arg( e.what() ) );
+      }
+      break;
+    }
+  }
+
+  rotation += mNorthOffset;
+  setPictureRotation( rotation );
+}
+
 void QgsComposerPicture::loadPicture( const QString &path )
 {
   if ( path.startsWith( "http" ) )
@@ -650,7 +695,8 @@ void QgsComposerPicture::setRotationMap( int composerMapId )
 
   if ( composerMapId == -1 ) //disable rotation from map
   {
-    QObject::disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( setPictureRotation( double ) ) );
+    disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( updateMapRotation() ) );
+    disconnect( mRotationMap, SIGNAL( extentChanged() ), this, SLOT( updateMapRotation() ) );
     mRotationMap = nullptr;
   }
 
@@ -661,12 +707,14 @@ void QgsComposerPicture::setRotationMap( int composerMapId )
   }
   if ( mRotationMap )
   {
-    QObject::disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( setPictureRotation( double ) ) );
+    disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( updateMapRotation() ) );
+    disconnect( mRotationMap, SIGNAL( extentChanged() ), this, SLOT( updateMapRotation() ) );
   }
   mPictureRotation = map->mapRotation();
-  QObject::connect( map, SIGNAL( mapRotationChanged( double ) ), this, SLOT( setPictureRotation( double ) ) );
+  connect( map, SIGNAL( mapRotationChanged( double ) ), this, SLOT( updateMapRotation() ) );
+  connect( map, SIGNAL( extentChanged() ), this, SLOT( updateMapRotation() ) );
   mRotationMap = map;
-  update();
+  updateMapRotation();
   emit pictureRotationChanged( mPictureRotation );
 }
 
@@ -761,6 +809,8 @@ bool QgsComposerPicture::writeXML( QDomElement& elem, QDomDocument & doc ) const
   {
     composerPictureElem.setAttribute( "mapId", mRotationMap->id() );
   }
+  composerPictureElem.setAttribute( "northMode", mNorthMode );
+  composerPictureElem.setAttribute( "northOffset", mNorthOffset );
 
   _writeXML( composerPictureElem, doc );
   elem.appendChild( composerPictureElem );
@@ -827,6 +877,9 @@ bool QgsComposerPicture::readXML( const QDomElement& itemElem, const QDomDocumen
   }
 
   //rotation map
+  mNorthMode = static_cast< NorthMode >( itemElem.attribute( "northMode", "0" ).toInt() );
+  mNorthOffset = itemElem.attribute( "northOffset", "0" ).toDouble();
+
   int rotationMapId = itemElem.attribute( "mapId", "-1" ).toInt();
   if ( rotationMapId == -1 )
   {
@@ -837,10 +890,12 @@ bool QgsComposerPicture::readXML( const QDomElement& itemElem, const QDomDocumen
 
     if ( mRotationMap )
     {
-      QObject::disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( setRotation( double ) ) );
+      disconnect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( updateMapRotation() ) );
+      disconnect( mRotationMap, SIGNAL( extentChanged() ), this, SLOT( updateMapRotation() ) );
     }
     mRotationMap = mComposition->getComposerMapById( rotationMapId );
-    QObject::connect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( setRotation( double ) ) );
+    connect( mRotationMap, SIGNAL( mapRotationChanged( double ) ), this, SLOT( updateMapRotation() ) );
+    connect( mRotationMap, SIGNAL( extentChanged() ), this, SLOT( updateMapRotation() ) );
   }
 
   refreshPicture();
@@ -861,6 +916,18 @@ int QgsComposerPicture::rotationMap() const
   }
 }
 
+void QgsComposerPicture::setNorthMode( QgsComposerPicture::NorthMode mode )
+{
+  mNorthMode = mode;
+  updateMapRotation();
+}
+
+void QgsComposerPicture::setNorthOffset( double offset )
+{
+  mNorthOffset = offset;
+  updateMapRotation();
+}
+
 void QgsComposerPicture::setPictureAnchor( QgsComposerItem::ItemPositionMode anchor )
 {
   mPictureAnchor = anchor;
diff --git a/src/core/composer/qgscomposerpicture.h b/src/core/composer/qgscomposerpicture.h
index 1829e4f..40dbb1d 100644
--- a/src/core/composer/qgscomposerpicture.h
+++ b/src/core/composer/qgscomposerpicture.h
@@ -53,6 +53,13 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
       Unknown
     };
 
+    //! Method for syncing rotation to a map's North direction
+    enum NorthMode
+    {
+      GridNorth = 0, /*!< Align to grid north */
+      TrueNorth, /*!< Align to true north */
+    };
+
     QgsComposerPicture( QgsComposition *composition );
     ~QgsComposerPicture();
 
@@ -155,6 +162,38 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
      */
     bool useRotationMap() const { return mRotationMap; }
 
+    /**
+     * Returns the mode used to align the picture to a map's North.
+     * @see setNorthMode()
+     * @see northOffset()
+     * @note added in QGIS 2.18
+     */
+    NorthMode northMode() const { return mNorthMode; }
+
+    /**
+     * Sets the mode used to align the picture to a map's North.
+     * @see northMode()
+     * @see setNorthOffset()
+     * @note added in QGIS 2.18
+     */
+    void setNorthMode( NorthMode mode );
+
+    /**
+     * Returns the offset added to the picture's rotation from a map's North.
+     * @see setNorthOffset()
+     * @see northMode()
+     * @note added in QGIS 2.18
+     */
+    double northOffset() const { return mNorthOffset; }
+
+    /**
+     * Sets the offset added to the picture's rotation from a map's North.
+     * @see northOffset()
+     * @see setNorthMode()
+     * @note added in QGIS 2.18
+     */
+    void setNorthOffset( double offset );
+
     /** Returns the resize mode used for drawing the picture within the composer
      * item's frame.
      * @returns resize mode of picture
@@ -366,6 +405,12 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
     double mPictureRotation;
     /** Map that sets the rotation (or 0 if this picture uses map independent rotation)*/
     const QgsComposerMap* mRotationMap;
+
+    //! Mode used to align to North
+    NorthMode mNorthMode;
+    //! Offset for north arrow
+    double mNorthOffset;
+
     /** Width of the picture (in mm)*/
     double mPictureWidth;
     /** Height of the picture (in mm)*/
@@ -404,6 +449,8 @@ class CORE_EXPORT QgsComposerPicture: public QgsComposerItem
   private slots:
 
     void remotePictureLoaded();
+
+    void updateMapRotation();
 };
 
 #endif
diff --git a/src/core/effects/qgspainteffect.cpp b/src/core/effects/qgspainteffect.cpp
index 71b11be..01192df 100644
--- a/src/core/effects/qgspainteffect.cpp
+++ b/src/core/effects/qgspainteffect.cpp
@@ -162,6 +162,11 @@ void QgsPaintEffect::end( QgsRenderContext &context )
   context.setPainter( mPrevPainter );
   mPrevPainter = nullptr;
 
+  // clear any existing pen/brush - sometimes these are not correctly restored when restoring a painter
+  // with a QPicture destination - see #15696
+  context.painter()->setPen( Qt::NoPen );
+  context.painter()->setBrush( Qt::NoBrush );
+
   //draw using effect
   render( *mTempPicture, context );
 
diff --git a/src/core/qgsbearingutils.cpp b/src/core/qgsbearingutils.cpp
new file mode 100644
index 0000000..0c8cfcd
--- /dev/null
+++ b/src/core/qgsbearingutils.cpp
@@ -0,0 +1,51 @@
+/***************************************************************************
+                             qgsbearingutils.cpp
+                             -------------------
+    begin                : October 2016
+    copyright            : (C) 2016 by Nyall Dawson
+    email                : nyall dot dawson at gmail dot com
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "qgsbearingutils.h"
+#include "qgscoordinatereferencesystem.h"
+#include "qgspoint.h"
+#include "qgscoordinatetransform.h"
+#include "qgsexception.h"
+
+double QgsBearingUtils::bearingTrueNorth( const QgsCoordinateReferenceSystem &crs, const QgsPoint &point )
+{
+  // step 1 - transform point into WGS84 geographic crs
+  QgsCoordinateReferenceSystem destCrs;
+  destCrs.createFromOgcWmsCrs( "EPSG:4326" );
+  QgsCoordinateTransform transform( crs, destCrs );
+
+  if ( !transform.isInitialised() )
+  {
+    //raise
+    throw QgsException( QObject::tr( "Could not create transform to calculate true north" ) );
+  }
+
+  if ( transform.isShortCircuited() )
+    return 0.0;
+
+  QgsPoint p1 = transform.transform( point );
+
+  // shift point a tiny bit north
+  QgsPoint p2 = p1;
+  p2.setY( p2.y() + 0.000001 );
+
+  //transform back
+  QgsPoint p3 = transform.transform( p2, QgsCoordinateTransform::ReverseTransform );
+
+  // find bearing from point to p3
+  return point.azimuth( p3 );
+}
diff --git a/src/core/qgsbearingutils.h b/src/core/qgsbearingutils.h
new file mode 100644
index 0000000..400d107
--- /dev/null
+++ b/src/core/qgsbearingutils.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+                             qgsbearingutils.h
+                             -----------------
+    begin                : October 2016
+    copyright            : (C) 2016 by Nyall Dawson
+    email                : nyall dot dawson at gmail dot com
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef QGSBEARINGUTILS_H
+#define QGSBEARINGUTILS_H
+
+class QgsCoordinateReferenceSystem;
+class QgsPoint;
+
+
+/**
+ * \class QgsBearingUtils
+ * \ingroup core
+ * Utilities for calculating bearings and directions.
+ * \note Added in version 2.18
+*/
+class CORE_EXPORT QgsBearingUtils
+{
+  public:
+
+    /**
+     * Returns the direction to true north from a specified point and for a specified
+     * coordinate reference system. The returned value is in degrees clockwise from
+     * vertical. An exception will be thrown if the bearing could not be calculated.
+     */
+    static double bearingTrueNorth( const QgsCoordinateReferenceSystem& crs,
+                                    const QgsPoint& point );
+
+};
+
+#endif //QGSBEARINGUTILS_H
diff --git a/src/core/qgsdataprovider.h b/src/core/qgsdataprovider.h
index 0c64ec4..cb49fb5 100644
--- a/src/core/qgsdataprovider.h
+++ b/src/core/qgsdataprovider.h
@@ -338,7 +338,7 @@ class CORE_EXPORT QgsDataProvider : public QObject
      *
      * This is aimed at providers that can open differently the connection to
      * the datasource, according it to be in update mode or in read-only mode.
-     * This method shall be balanced with a succesful call to enterUpdateMode().
+     * This method shall be balanced with a successful call to enterUpdateMode().
      *
      * Most providers will have an empty implementation for that method.
      *
diff --git a/src/core/qgsexpression.cpp b/src/core/qgsexpression.cpp
index 6635efc..2b2c98a 100644
--- a/src/core/qgsexpression.cpp
+++ b/src/core/qgsexpression.cpp
@@ -3833,9 +3833,33 @@ QVariant QgsExpression::NodeBinaryOperator::eval( QgsExpression *parent, const Q
         if ( mOp == boLike || mOp == boILike || mOp == boNotLike || mOp == boNotILike ) // change from LIKE syntax to regexp
         {
           QString esc_regexp = QRegExp::escape( regexp );
-          // XXX escape % and _  ???
-          esc_regexp.replace( '%', ".*" );
-          esc_regexp.replace( '_', '.' );
+          // manage escape % and _
+          if ( esc_regexp.startsWith( '%' ) )
+          {
+            esc_regexp.replace( 0, 1, ".*" );
+          }
+          QRegExp rx( "[^\\\\](%)" );
+          int pos = 0;
+          while (( pos = rx.indexIn( esc_regexp, pos ) ) != -1 )
+          {
+            esc_regexp.replace( pos + 1, 1, ".*" );
+            pos += 1;
+          }
+          rx.setPattern( "\\\\%" );
+          esc_regexp.replace( rx, "%" );
+          if ( esc_regexp.startsWith( '_' ) )
+          {
+            esc_regexp.replace( 0, 1, "." );
+          }
+          rx.setPattern( "[^\\\\](_)" );
+          pos = 0;
+          while (( pos = rx.indexIn( esc_regexp, pos ) ) != -1 )
+          {
+            esc_regexp.replace( pos + 1, 1, '.' );
+            pos += 1;
+          }
+          rx.setPattern( "\\\\_" );
+          esc_regexp.replace( rx, "_" );
           matches = QRegExp( esc_regexp, mOp == boLike || mOp == boNotLike ? Qt::CaseSensitive : Qt::CaseInsensitive ).exactMatch( str );
         }
         else
diff --git a/src/core/qgsexpressioncontext.cpp b/src/core/qgsexpressioncontext.cpp
index 1697911..c5512cc 100644
--- a/src/core/qgsexpressioncontext.cpp
+++ b/src/core/qgsexpressioncontext.cpp
@@ -735,8 +735,8 @@ QgsExpressionContextScope* QgsExpressionContextUtils::mapSettingsScope( const Qg
   scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_id", "canvas", true ) );
   scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_rotation", mapSettings.rotation(), true ) );
   scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_scale", mapSettings.scale(), true ) );
-  scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_extent_width", mapSettings.extent().width(), true ) );
-  scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_extent_height", mapSettings.extent().height(), true ) );
+  scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_extent_width", mapSettings.visibleExtent().width(), true ) );
+  scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_extent_height", mapSettings.visibleExtent().height(), true ) );
   QgsGeometry* centerPoint = QgsGeometry::fromPoint( mapSettings.visibleExtent().center() );
   scope->addVariable( QgsExpressionContextScope::StaticVariable( "map_extent_center", QVariant::fromValue( *centerPoint ), true ) );
   delete centerPoint;
diff --git a/src/core/qgsgeometryvalidator.cpp b/src/core/qgsgeometryvalidator.cpp
index fdbad39..163fdc3 100644
--- a/src/core/qgsgeometryvalidator.cpp
+++ b/src/core/qgsgeometryvalidator.cpp
@@ -147,11 +147,31 @@ void QgsGeometryValidator::validatePolyline( int i, QgsPolyline line, bool ring
       if ( !intersectLines( line[j], v, line[k], w, s ) )
         continue;
 
-      double d = -distLine2Point( line[j], v.perpVector(), s );
+      double d = 0.0;
+      try
+      {
+        d = -distLine2Point( line[j], v.perpVector(), s );
+      }
+      catch ( QgsException & e )
+      {
+        Q_UNUSED( e );
+        QgsDebugMsg( "Error validating: " + e.what() );
+        continue;
+      }
       if ( d < 0 || d > vl )
         continue;
 
-      d = -distLine2Point( line[k], w.perpVector(), s );
+      try
+      {
+        d = -distLine2Point( line[k], w.perpVector(), s );
+      }
+      catch ( QgsException & e )
+      {
+        Q_UNUSED( e );
+        QgsDebugMsg( "Error validating: " + e.what() );
+        continue;
+      }
+
       if ( d <= 0 || d >= w.length() )
         continue;
 
diff --git a/src/core/qgsmaplayer.cpp b/src/core/qgsmaplayer.cpp
index 08f9338..3b1a987 100644
--- a/src/core/qgsmaplayer.cpp
+++ b/src/core/qgsmaplayer.cpp
@@ -1452,7 +1452,6 @@ void QgsMapLayer::exportSldStyle( QDomDocument &doc, QString &errorMsg )
   // Create the root element
   QDomElement root = myDocument.createElementNS( "http://www.opengis.net/sld", "StyledLayerDescriptor" );
   root.setAttribute( "version", "1.1.0" );
-  root.setAttribute( "units", "mm" ); // default qgsmaprenderer is Millimeters
   root.setAttribute( "xsi:schemaLocation", "http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" );
   root.setAttribute( "xmlns:ogc", "http://www.opengis.net/ogc" );
   root.setAttribute( "xmlns:se", "http://www.opengis.net/se" );
@@ -1472,7 +1471,13 @@ void QgsMapLayer::exportSldStyle( QDomDocument &doc, QString &errorMsg )
     return;
   }
 
-  if ( !vlayer->writeSld( namedLayerNode, myDocument, errorMsg ) )
+  QgsStringMap props;
+  if ( hasScaleBasedVisibility() )
+  {
+    props[ "scaleMinDenom" ] = QString::number( mMinScale );
+    props[ "scaleMaxDenom" ] = QString::number( mMaxScale );
+  }
+  if ( !vlayer->writeSld( namedLayerNode, myDocument, errorMsg, props ) )
   {
     errorMsg = tr( "Could not save symbology because:\n%1" ).arg( errorMsg );
     return;
diff --git a/src/core/qgsogcutils.cpp b/src/core/qgsogcutils.cpp
index 590d498..05e4852 100644
--- a/src/core/qgsogcutils.cpp
+++ b/src/core/qgsogcutils.cpp
@@ -18,6 +18,7 @@
 #include "qgsexpressionprivate.h"
 #include "qgsgeometry.h"
 #include "qgswkbptr.h"
+#include "qgscoordinatereferencesystem.h"
 
 #include <QColor>
 #include <QStringList>
@@ -31,7 +32,38 @@
 
 
 static const QString GML_NAMESPACE = "http://www.opengis.net/gml";
+static const QString GML32_NAMESPACE = "http://www.opengis.net/gml/3.2";
 static const QString OGC_NAMESPACE = "http://www.opengis.net/ogc";
+static const QString FES_NAMESPACE = "http://www.opengis.net/fes/2.0";
+
+QgsOgcUtilsExprToFilter::QgsOgcUtilsExprToFilter( QDomDocument& doc,
+    QgsOgcUtils::GMLVersion gmlVersion,
+    QgsOgcUtils::FilterVersion filterVersion,
+    const QString& geometryName,
+    const QString& srsName,
+    bool honourAxisOrientation,
+    bool invertAxisOrientation )
+    : mDoc( doc )
+    , mGMLUsed( false )
+    , mGMLVersion( gmlVersion )
+    , mFilterVersion( filterVersion )
+    , mGeometryName( geometryName )
+    , mSrsName( srsName )
+    , mInvertAxisOrientation( invertAxisOrientation )
+    , mFilterPrefix(( filterVersion == QgsOgcUtils::FILTER_FES_2_0 ) ? "fes" : "ogc" )
+    , mPropertyName(( filterVersion == QgsOgcUtils::FILTER_FES_2_0 ) ? "ValueReference" : "PropertyName" )
+    , mGeomId( 1 )
+{
+  QgsCoordinateReferenceSystem crs;
+  if ( !mSrsName.isEmpty() &&
+       crs.createFromOgcWmsCrs( mSrsName ) )
+  {
+    if ( honourAxisOrientation && crs.axisInverted() )
+    {
+      mInvertAxisOrientation = !mInvertAxisOrientation;
+    }
+  }
+}
 
 QgsGeometry* QgsOgcUtils::geometryFromGML( const QDomNode& geometryNode )
 {
@@ -1011,24 +1043,36 @@ QgsRectangle QgsOgcUtils::rectangleFromGMLEnvelope( const QDomNode& envelopeNode
 
 QDomElement QgsOgcUtils::rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc, int precision )
 {
+  return rectangleToGMLBox( box, doc, QString(), false, precision );
+}
+
+QDomElement QgsOgcUtils::rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc,
+    const QString& srsName,
+    bool invertAxisOrientation,
+    int precision )
+{
   if ( !box )
   {
     return QDomElement();
   }
 
   QDomElement boxElem = doc.createElement( "gml:Box" );
+  if ( !srsName.isEmpty() )
+  {
+    boxElem.setAttribute( "srsName", srsName );
+  }
   QDomElement coordElem = doc.createElement( "gml:coordinates" );
   coordElem.setAttribute( "cs", "," );
   coordElem.setAttribute( "ts", " " );
 
   QString coordString;
-  coordString += qgsDoubleToString( box->xMinimum(), precision );
+  coordString += qgsDoubleToString( invertAxisOrientation ? box->yMinimum() : box->xMinimum(), precision );
   coordString += ',';
-  coordString += qgsDoubleToString( box->yMinimum(), precision );
+  coordString += qgsDoubleToString( invertAxisOrientation ? box->xMinimum() : box->yMinimum(), precision );
   coordString += ' ';
-  coordString += qgsDoubleToString( box->xMaximum(), precision );
+  coordString += qgsDoubleToString( invertAxisOrientation ? box->yMaximum() : box->xMaximum(), precision );
   coordString += ',';
-  coordString += qgsDoubleToString( box->yMaximum(), precision );
+  coordString += qgsDoubleToString( invertAxisOrientation ? box->xMaximum() : box->yMaximum(), precision );
 
   QDomText coordText = doc.createTextNode( coordString );
   coordElem.appendChild( coordText );
@@ -1039,26 +1083,38 @@ QDomElement QgsOgcUtils::rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc
 
 QDomElement QgsOgcUtils::rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument& doc, int precision )
 {
+  return rectangleToGMLEnvelope( env, doc, QString(), false, precision );
+}
+
+QDomElement QgsOgcUtils::rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument& doc,
+    const QString& srsName,
+    bool invertAxisOrientation,
+    int precision )
+{
   if ( !env )
   {
     return QDomElement();
   }
 
   QDomElement envElem = doc.createElement( "gml:Envelope" );
+  if ( !srsName.isEmpty() )
+  {
+    envElem.setAttribute( "srsName", srsName );
+  }
   QString posList;
 
   QDomElement lowerCornerElem = doc.createElement( "gml:lowerCorner" );
-  posList = qgsDoubleToString( env->xMinimum(), precision );
+  posList = qgsDoubleToString( invertAxisOrientation ? env->yMinimum() : env->xMinimum(), precision );
   posList += ' ';
-  posList += qgsDoubleToString( env->yMinimum(), precision );
+  posList += qgsDoubleToString( invertAxisOrientation ? env->xMinimum() : env->yMinimum(), precision );
   QDomText lowerCornerText = doc.createTextNode( posList );
   lowerCornerElem.appendChild( lowerCornerText );
   envElem.appendChild( lowerCornerElem );
 
   QDomElement upperCornerElem = doc.createElement( "gml:upperCorner" );
-  posList = qgsDoubleToString( env->xMaximum(), precision );
+  posList = qgsDoubleToString( invertAxisOrientation ? env->yMaximum() : env->xMaximum(), precision );
   posList += ' ';
-  posList += qgsDoubleToString( env->yMaximum(), precision );
+  posList += qgsDoubleToString( invertAxisOrientation ? env->xMaximum() : env->yMaximum(), precision );
   QDomText upperCornerText = doc.createTextNode( posList );
   upperCornerElem.appendChild( upperCornerText );
   envElem.appendChild( upperCornerElem );
@@ -1068,6 +1124,16 @@ QDomElement QgsOgcUtils::rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument
 
 QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocument& doc, const QString& format, int precision )
 {
+  return geometryToGML( geometry, doc, ( format == "GML2" ) ? GML_2_1_2 : GML_3_2_1, QString(), false, QString(), precision );
+}
+
+QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocument& doc,
+                                        GMLVersion gmlVersion,
+                                        const QString& srsName,
+                                        bool invertAxisOrientation,
+                                        const QString& gmlIdBase,
+                                        int precision )
+{
   if ( !geometry || !geometry->asWkb() )
     return QDomElement();
 
@@ -1083,7 +1149,7 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
   QgsConstWkbPtr wkbPtr( geometry->asWkb(), geometry->wkbSize() );
   wkbPtr.readHeader();
 
-  if ( format == "GML3" )
+  if ( gmlVersion != GML_2_1_2 )
   {
     switch ( geometry->wkbType() )
     {
@@ -1113,10 +1179,17 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBPoint:
     {
       QDomElement pointElem = doc.createElement( "gml:Point" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        pointElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        pointElem.setAttribute( "srsName", srsName );
       QDomElement coordElem = baseCoordElem.cloneNode().toElement();
 
       double x, y;
-      wkbPtr >> x >> y;
+      if ( invertAxisOrientation )
+        wkbPtr >> y >> x;
+      else
+        wkbPtr >> x >> y;
       QDomText coordText = doc.createTextNode( qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision ) );
 
       coordElem.appendChild( coordText );
@@ -1130,6 +1203,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBMultiPoint:
     {
       QDomElement multiPointElem = doc.createElement( "gml:MultiPoint" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        multiPointElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        multiPointElem.setAttribute( "srsName", srsName );
 
       int nPoints;
       wkbPtr >> nPoints;
@@ -1138,12 +1215,17 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
       {
         QDomElement pointMemberElem = doc.createElement( "gml:pointMember" );
         QDomElement pointElem = doc.createElement( "gml:Point" );
+        if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+          pointElem.setAttribute( "gml:id", gmlIdBase + QString( ".%1" ).arg( idx + 1 ) );
         QDomElement coordElem = baseCoordElem.cloneNode().toElement();
 
         wkbPtr.readHeader();
 
         double x, y;
-        wkbPtr >> x >> y;
+        if ( invertAxisOrientation )
+          wkbPtr >> y >> x;
+        else
+          wkbPtr >> x >> y;
         QDomText coordText = doc.createTextNode( qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision ) );
 
         coordElem.appendChild( coordText );
@@ -1165,6 +1247,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBLineString:
     {
       QDomElement lineStringElem = doc.createElement( "gml:LineString" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        lineStringElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        lineStringElem.setAttribute( "srsName", srsName );
       // get number of points in the line
 
       int nPoints;
@@ -1180,7 +1266,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
         }
 
         double x, y;
-        wkbPtr >> x >> y;
+        if ( invertAxisOrientation )
+          wkbPtr >> y >> x;
+        else
+          wkbPtr >> x >> y;
         coordString += qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision );
 
         if ( hasZValue )
@@ -1200,6 +1289,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBMultiLineString:
     {
       QDomElement multiLineStringElem = doc.createElement( "gml:MultiLineString" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        multiLineStringElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        multiLineStringElem.setAttribute( "srsName", srsName );
 
       int nLines;
       wkbPtr >> nLines;
@@ -1208,6 +1301,8 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
       {
         QDomElement lineStringMemberElem = doc.createElement( "gml:lineStringMember" );
         QDomElement lineStringElem = doc.createElement( "gml:LineString" );
+        if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+          lineStringElem.setAttribute( "gml:id", gmlIdBase + QString( ".%1" ).arg( jdx + 1 ) );
 
         wkbPtr.readHeader();
 
@@ -1224,7 +1319,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
           }
 
           double x, y;
-          wkbPtr >> x >> y;
+          if ( invertAxisOrientation )
+            wkbPtr >> y >> x;
+          else
+            wkbPtr >> x >> y;
 
           coordString += qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision );
 
@@ -1248,6 +1346,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBPolygon:
     {
       QDomElement polygonElem = doc.createElement( "gml:Polygon" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        polygonElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        polygonElem.setAttribute( "srsName", srsName );
 
       // get number of rings in the polygon
       int numRings;
@@ -1260,10 +1362,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
 
       for ( int idx = 0; idx < numRings; idx++ )
       {
-        QString boundaryName = "gml:outerBoundaryIs";
+        QString boundaryName = ( gmlVersion == GML_2_1_2 ) ? "gml:outerBoundaryIs" : "gml:exterior";
         if ( idx != 0 )
         {
-          boundaryName = "gml:innerBoundaryIs";
+          boundaryName = ( gmlVersion == GML_2_1_2 ) ? "gml:innerBoundaryIs" : "gml:interior";
         }
         QDomElement boundaryElem = doc.createElement( boundaryName );
         QDomElement ringElem = doc.createElement( "gml:LinearRing" );
@@ -1282,7 +1384,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
           }
 
           double x, y;
-          wkbPtr >> x >> y;
+          if ( invertAxisOrientation )
+            wkbPtr >> y >> x;
+          else
+            wkbPtr >> x >> y;
 
           coordString += qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision );
           if ( hasZValue )
@@ -1306,6 +1411,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
     case QGis::WKBMultiPolygon:
     {
       QDomElement multiPolygonElem = doc.createElement( "gml:MultiPolygon" );
+      if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+        multiPolygonElem.setAttribute( "gml:id", gmlIdBase );
+      if ( !srsName.isEmpty() )
+        multiPolygonElem.setAttribute( "srsName", srsName );
 
       int numPolygons;
       wkbPtr >> numPolygons;
@@ -1314,6 +1423,8 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
       {
         QDomElement polygonMemberElem = doc.createElement( "gml:polygonMember" );
         QDomElement polygonElem = doc.createElement( "gml:Polygon" );
+        if ( gmlVersion == GML_3_2_1 && !gmlIdBase.isEmpty() )
+          polygonElem.setAttribute( "gml:id", gmlIdBase + QString( ".%1" ).arg( kdx + 1 ) );
 
         wkbPtr.readHeader();
 
@@ -1322,10 +1433,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
 
         for ( int idx = 0; idx < numRings; idx++ )
         {
-          QString boundaryName = "gml:outerBoundaryIs";
+          QString boundaryName = ( gmlVersion == GML_2_1_2 ) ? "gml:outerBoundaryIs" : "gml:exterior";
           if ( idx != 0 )
           {
-            boundaryName = "gml:innerBoundaryIs";
+            boundaryName = ( gmlVersion == GML_2_1_2 ) ? "gml:innerBoundaryIs" : "gml:interior";
           }
           QDomElement boundaryElem = doc.createElement( boundaryName );
           QDomElement ringElem = doc.createElement( "gml:LinearRing" );
@@ -1343,7 +1454,10 @@ QDomElement QgsOgcUtils::geometryToGML( const QgsGeometry* geometry, QDomDocumen
             }
 
             double x, y;
-            wkbPtr >> x >> y;
+            if ( invertAxisOrientation )
+              wkbPtr >> y >> x;
+            else
+              wkbPtr >> x >> y;
 
             coordString += qgsDoubleToString( x, precision ) + cs + qgsDoubleToString( y, precision );
 
@@ -1537,6 +1651,10 @@ static int binaryOperatorFromTagName( const QString& tagName )
 
 static QString binaryOperatorToTagName( QgsExpression::BinaryOperator op )
 {
+  if ( op == QgsExpression::boILike )
+  {
+    return "PropertyIsLike";
+  }
   return binaryOperatorsTagNamesMap().key( op, QString() );
 }
 
@@ -1623,6 +1741,11 @@ QgsExpression::NodeBinaryOperator* QgsOgcUtils::nodeBinaryOperatorFromOgcFilter(
     return nullptr;
   }
 
+  if ( op == QgsExpression::boLike && element.hasAttribute( "matchCase" ) && element.attribute( "matchCase" ) == "false" )
+  {
+    op = QgsExpression::boILike;
+  }
+
   QDomElement operandElem = element.firstChildElement();
   QgsExpression::Node *expr = nodeFromOgcFilter( operandElem, errorMessage ), *leftOp = expr;
   if ( !expr )
@@ -1643,6 +1766,64 @@ QgsExpression::NodeBinaryOperator* QgsOgcUtils::nodeBinaryOperatorFromOgcFilter(
       return nullptr;
     }
 
+    if ( op == QgsExpression::boLike || op == QgsExpression::boILike )
+    {
+      QString wildCard;
+      if ( element.hasAttribute( "wildCard" ) )
+      {
+        wildCard = element.attribute( "wildCard" );
+      }
+      QString singleChar;
+      if ( element.hasAttribute( "singleChar" ) )
+      {
+        singleChar = element.attribute( "singleChar" );
+      }
+      QString escape = "\\";
+      if ( element.hasAttribute( "escape" ) )
+      {
+        escape = element.attribute( "escape" );
+      }
+      // replace
+      QString oprValue = static_cast<const QgsExpression::NodeLiteral*>( opRight )->value().toString();
+      if ( !wildCard.isEmpty() && wildCard != "%" )
+      {
+        oprValue.replace( '%', "\\%" );
+        if ( oprValue.startsWith( wildCard ) )
+        {
+          oprValue.replace( 0, 1, "%" );
+        }
+        QRegExp rx( "[^" + QRegExp::escape( escape ) + "](" + QRegExp::escape( wildCard ) + ")" );
+        int pos = 0;
+        while (( pos = rx.indexIn( oprValue, pos ) ) != -1 )
+        {
+          oprValue.replace( pos + 1, 1, "%" );
+          pos += 1;
+        }
+        oprValue.replace( escape + wildCard, wildCard );
+      }
+      if ( !singleChar.isEmpty() && singleChar != "_" )
+      {
+        oprValue.replace( '_', "\\_" );
+        if ( oprValue.startsWith( singleChar ) )
+        {
+          oprValue.replace( 0, 1, "_" );
+        }
+        QRegExp rx( "[^" + QRegExp::escape( escape ) + "](" + QRegExp::escape( singleChar ) + ")" );
+        int pos = 0;
+        while (( pos = rx.indexIn( oprValue, pos ) ) != -1 )
+        {
+          oprValue.replace( pos + 1, 1, "_" );
+          pos += 1;
+        }
+        oprValue.replace( escape + singleChar, singleChar );
+      }
+      if ( !escape.isEmpty() && escape != "\\" )
+      {
+        oprValue.replace( escape + escape, escape );
+      }
+      opRight = new QgsExpression::NodeLiteral( oprValue );
+    }
+
     expr = new QgsExpression::NodeBinaryOperator( static_cast< QgsExpression::BinaryOperator >( op ), expr, opRight );
   }
 
@@ -1662,7 +1843,7 @@ QgsExpression::NodeBinaryOperator* QgsOgcUtils::nodeBinaryOperatorFromOgcFilter(
 }
 
 
-QgsExpression::NodeFunction* QgsOgcUtils::nodeSpatialOperatorFromOgcFilter( QDomElement& element, QString& errorMessage )
+QgsExpression::NodeFunction* QgsOgcUtils::nodeSpatialOperatorFromOgcFilter( QDomElement& element, QString &errorMessage )
 {
   // we are exploiting the fact that our function names are the same as the XML tag names
   int opIdx = QgsExpression::functionIndex( element.tagName().toLower() );
@@ -1912,79 +2093,148 @@ QgsExpression::NodeBinaryOperator* QgsOgcUtils::nodePropertyIsNullFromOgcFilter(
 
 QDomElement QgsOgcUtils::expressionToOgcFilter( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage )
 {
+  return expressionToOgcFilter( exp, doc, GML_2_1_2, FILTER_OGC_1_0,
+                                "geometry", QString(), false, false, errorMessage );
+}
+
+QDomElement QgsOgcUtils::expressionToOgcExpression( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage )
+{
+  return expressionToOgcExpression( exp, doc, GML_2_1_2, FILTER_OGC_1_0,
+                                    "geometry", QString(), false, false, errorMessage );
+}
+
+QDomElement QgsOgcUtils::expressionToOgcFilter( const QgsExpression& exp,
+    QDomDocument& doc,
+    GMLVersion gmlVersion,
+    FilterVersion filterVersion,
+    const QString& geometryName,
+    const QString& srsName,
+    bool honourAxisOrientation,
+    bool invertAxisOrientation,
+    QString* errorMessage )
+{
   if ( !exp.rootNode() )
     return QDomElement();
 
-  QString localErrorMessage; // temporary that will be thrown away unused
-  QString& refErrorMessage = ( errorMessage ? *errorMessage : localErrorMessage );
-  refErrorMessage.clear();
-
-  QDomElement exprRootElem = expressionNodeToOgcFilter( exp.rootNode(), doc, refErrorMessage );
+  QgsOgcUtilsExprToFilter utils( doc, gmlVersion, filterVersion, geometryName, srsName, honourAxisOrientation, invertAxisOrientation );
+  QDomElement exprRootElem = utils.expressionNodeToOgcFilter( exp.rootNode() );
+  if ( errorMessage )
+    *errorMessage = utils.errorMessage();
   if ( exprRootElem.isNull() )
     return QDomElement();
 
-  QDomElement filterElem = doc.createElementNS( OGC_NAMESPACE, "ogc:Filter" );
+  QDomElement filterElem =
+    ( filterVersion == FILTER_FES_2_0 ) ?
+    doc.createElementNS( FES_NAMESPACE, "fes:Filter" ) :
+    doc.createElementNS( OGC_NAMESPACE, "ogc:Filter" );
+  if ( utils.GMLNamespaceUsed() )
+  {
+    QDomAttr attr = doc.createAttribute( "xmlns:gml" );
+    if ( gmlVersion == GML_3_2_1 )
+      attr.setValue( GML32_NAMESPACE );
+    else
+      attr.setValue( GML_NAMESPACE );
+    filterElem.setAttributeNode( attr );
+  }
   filterElem.appendChild( exprRootElem );
   return filterElem;
 }
 
+QDomElement QgsOgcUtils::expressionToOgcExpression( const QgsExpression& exp,
+    QDomDocument& doc,
+    GMLVersion gmlVersion,
+    FilterVersion filterVersion,
+    const QString& geometryName,
+    const QString& srsName,
+    bool honourAxisOrientation,
+    bool invertAxisOrientation,
+    QString* errorMessage )
+{
+  const QgsExpression::Node* node = exp.rootNode();
+  if ( !node )
+    return QDomElement();
+
+  switch ( node->nodeType() )
+  {
+    case QgsExpression::ntFunction:
+    case QgsExpression::ntLiteral:
+    case QgsExpression::ntColumnRef:
+    {
+      QgsOgcUtilsExprToFilter utils( doc, gmlVersion, filterVersion, geometryName, srsName, honourAxisOrientation, invertAxisOrientation );
+      QDomElement exprRootElem = utils.expressionNodeToOgcFilter( node );
+
+      if ( errorMessage )
+        *errorMessage = utils.errorMessage();
 
-QDomElement QgsOgcUtils::expressionNodeToOgcFilter( const QgsExpression::Node* node, QDomDocument& doc, QString& errorMessage )
+      if ( !exprRootElem.isNull() )
+      {
+        return exprRootElem;
+      }
+      break;
+    }
+    default:
+      *errorMessage = QObject::tr( "Node type not supported in expression translation: %1" ).arg( node->nodeType() );
+  }
+  // got an error
+  return QDomElement();
+}
+
+QDomElement QgsOgcUtilsExprToFilter::expressionNodeToOgcFilter( const QgsExpression::Node* node )
 {
   switch ( node->nodeType() )
   {
     case QgsExpression::ntUnaryOperator:
-      return expressionUnaryOperatorToOgcFilter( static_cast<const QgsExpression::NodeUnaryOperator*>( node ), doc, errorMessage );
+      return expressionUnaryOperatorToOgcFilter( static_cast<const QgsExpression::NodeUnaryOperator*>( node ) );
     case QgsExpression::ntBinaryOperator:
-      return expressionBinaryOperatorToOgcFilter( static_cast<const QgsExpression::NodeBinaryOperator*>( node ), doc, errorMessage );
+      return expressionBinaryOperatorToOgcFilter( static_cast<const QgsExpression::NodeBinaryOperator*>( node ) );
     case QgsExpression::ntInOperator:
-      return expressionInOperatorToOgcFilter( static_cast<const QgsExpression::NodeInOperator*>( node ), doc, errorMessage );
+      return expressionInOperatorToOgcFilter( static_cast<const QgsExpression::NodeInOperator*>( node ) );
     case QgsExpression::ntFunction:
-      return expressionFunctionToOgcFilter( static_cast<const QgsExpression::NodeFunction*>( node ), doc, errorMessage );
+      return expressionFunctionToOgcFilter( static_cast<const QgsExpression::NodeFunction*>( node ) );
     case QgsExpression::ntLiteral:
-      return expressionLiteralToOgcFilter( static_cast<const QgsExpression::NodeLiteral*>( node ), doc, errorMessage );
+      return expressionLiteralToOgcFilter( static_cast<const QgsExpression::NodeLiteral*>( node ) );
     case QgsExpression::ntColumnRef:
-      return expressionColumnRefToOgcFilter( static_cast<const QgsExpression::NodeColumnRef*>( node ), doc, errorMessage );
+      return expressionColumnRefToOgcFilter( static_cast<const QgsExpression::NodeColumnRef*>( node ) );
 
     default:
-      errorMessage = QString( "Node type not supported: %1" ).arg( node->nodeType() );
+      mErrorMessage = QObject::tr( "Node type not supported: %1" ).arg( node->nodeType() );
       return QDomElement();
   }
 }
 
 
-QDomElement QgsOgcUtils::expressionUnaryOperatorToOgcFilter( const QgsExpression::NodeUnaryOperator* node, QDomDocument& doc, QString& errorMessage )
+QDomElement QgsOgcUtilsExprToFilter::expressionUnaryOperatorToOgcFilter( const QgsExpression::NodeUnaryOperator* node )
 {
 
-  QDomElement operandElem = expressionNodeToOgcFilter( node->operand(), doc, errorMessage );
-  if ( !errorMessage.isEmpty() )
+  QDomElement operandElem = expressionNodeToOgcFilter( node->operand() );
+  if ( !mErrorMessage.isEmpty() )
     return QDomElement();
 
   QDomElement uoElem;
   switch ( node->op() )
   {
     case QgsExpression::uoMinus:
-      uoElem = doc.createElement( "ogc:Literal" );
+      uoElem = mDoc.createElement( mFilterPrefix + ":Literal" );
       if ( node->operand()->nodeType() == QgsExpression::ntLiteral )
       {
         // operand expression already created a Literal node:
         // take the literal value, prepend - and remove old literal node
-        uoElem.appendChild( doc.createTextNode( "-" + operandElem.text() ) );
-        doc.removeChild( operandElem );
+        uoElem.appendChild( mDoc.createTextNode( "-" + operandElem.text() ) );
+        mDoc.removeChild( operandElem );
       }
       else
       {
-        errorMessage = QString( "This use of unary operator not implemented yet" );
+        mErrorMessage = QObject::tr( "This use of unary operator not implemented yet" );
         return QDomElement();
       }
       break;
     case QgsExpression::uoNot:
-      uoElem = doc.createElement( "ogc:Not" );
+      uoElem = mDoc.createElement( mFilterPrefix + ":Not" );
       uoElem.appendChild( operandElem );
       break;
 
     default:
-      errorMessage = QString( "Unary operator %1 not implemented yet" ).arg( QgsExpression::UnaryOperatorText[node->op()] );
+      mErrorMessage = QObject::tr( "Unary operator %1 not implemented yet" ).arg( QgsExpression::UnaryOperatorText[node->op()] );
       return QDomElement();
   }
 
@@ -1992,10 +2242,10 @@ QDomElement QgsOgcUtils::expressionUnaryOperatorToOgcFilter( const QgsExpression
 }
 
 
-QDomElement QgsOgcUtils::expressionBinaryOperatorToOgcFilter( const QgsExpression::NodeBinaryOperator* node, QDomDocument& doc, QString& errorMessage )
+QDomElement QgsOgcUtilsExprToFilter::expressionBinaryOperatorToOgcFilter( const QgsExpression::NodeBinaryOperator* node )
 {
-  QDomElement leftElem = expressionNodeToOgcFilter( node->opLeft(), doc, errorMessage );
-  if ( !errorMessage.isEmpty() )
+  QDomElement leftElem = expressionNodeToOgcFilter( node->opLeft() );
+  if ( !mErrorMessage.isEmpty() )
     return QDomElement();
 
   QgsExpression::BinaryOperator op = node->op();
@@ -2009,12 +2259,12 @@ QDomElement QgsOgcUtils::expressionBinaryOperatorToOgcFilter( const QgsExpressio
       if ( rightLit->value().isNull() )
       {
 
-        QDomElement elem = doc.createElement( "ogc:PropertyIsNull" );
+        QDomElement elem = mDoc.createElement( mFilterPrefix + ":PropertyIsNull" );
         elem.appendChild( leftElem );
 
         if ( op == QgsExpression::boIsNot )
         {
-          QDomElement notElem = doc.createElement( "ogc:Not" );
+          QDomElement notElem = mDoc.createElement( mFilterPrefix + ":Not" );
           notElem.appendChild( elem );
           return notElem;
         }
@@ -2028,8 +2278,8 @@ QDomElement QgsOgcUtils::expressionBinaryOperatorToOgcFilter( const QgsExpressio
 
   }
 
-  QDomElement rightElem = expressionNodeToOgcFilter( node->opRight(), doc, errorMessage );
-  if ( !errorMessage.isEmpty() )
+  QDomElement rightElem = expressionNodeToOgcFilter( node->opRight() );
+  if ( !mErrorMessage.isEmpty() )
     return QDomElement();
 
 
@@ -2038,21 +2288,24 @@ QDomElement QgsOgcUtils::expressionBinaryOperatorToOgcFilter( const QgsExpressio
   {
     // not implemented binary operators
     // TODO: regex, % (mod), ^ (pow) are not supported yet
-    errorMessage = QString( "Binary operator %1 not implemented yet" ).arg( QgsExpression::BinaryOperatorText[op] );
+    mErrorMessage = QObject::tr( "Binary operator %1 not implemented yet" ).arg( QgsExpression::BinaryOperatorText[op] );
     return QDomElement();
   }
 
-  QDomElement boElem = doc.createElement( "ogc:" + opText );
+  QDomElement boElem = mDoc.createElement( mFilterPrefix + ":" + opText );
 
   if ( op == QgsExpression::boLike || op == QgsExpression::boILike )
   {
     if ( op == QgsExpression::boILike )
       boElem.setAttribute( "matchCase", "false" );
 
-    // setup wildcards to <ogc:PropertyIsLike>
+    // setup wildCards to <ogc:PropertyIsLike>
     boElem.setAttribute( "wildCard", "%" );
-    boElem.setAttribute( "singleChar", "?" );
-    boElem.setAttribute( "escapeChar", "!" );
+    boElem.setAttribute( "singleChar", "_" );
+    if ( mFilterVersion == QgsOgcUtils::FILTER_OGC_1_0 )
+      boElem.setAttribute( "escape", "\\" );
+    else
+      boElem.setAttribute( "escapeChar", "\\" );
   }
 
   boElem.appendChild( leftElem );
@@ -2061,7 +2314,7 @@ QDomElement QgsOgcUtils::expressionBinaryOperatorToOgcFilter( const QgsExpressio
 }
 
 
-QDomElement QgsOgcUtils::expressionLiteralToOgcFilter( const QgsExpression::NodeLiteral* node, QDomDocument& doc, QString& errorMessage )
+QDomElement QgsOgcUtilsExprToFilter::expressionLiteralToOgcFilter( const QgsExpression::NodeLiteral* node )
 {
   QString value;
   switch ( node->value().type() )
@@ -2077,40 +2330,40 @@ QDomElement QgsOgcUtils::expressionLiteralToOgcFilter( const QgsExpression::Node
       break;
 
     default:
-      errorMessage = QString( "Literal type not supported: %1" ).arg( node->value().type() );
+      mErrorMessage = QObject::tr( "Literal type not supported: %1" ).arg( node->value().type() );
       return QDomElement();
   }
 
-  QDomElement litElem = doc.createElement( "ogc:Literal" );
-  litElem.appendChild( doc.createTextNode( value ) );
+  QDomElement litElem = mDoc.createElement( mFilterPrefix + ":Literal" );
+  litElem.appendChild( mDoc.createTextNode( value ) );
   return litElem;
 }
 
 
-QDomElement QgsOgcUtils::expressionColumnRefToOgcFilter( const QgsExpression::NodeColumnRef* node, QDomDocument& doc, QString& /*errorMessage*/ )
+QDomElement QgsOgcUtilsExprToFilter::expressionColumnRefToOgcFilter( const QgsExpression::NodeColumnRef* node )
 {
-  QDomElement propElem = doc.createElement( "ogc:PropertyName" );
-  propElem.appendChild( doc.createTextNode( node->name() ) );
+  QDomElement propElem = mDoc.createElement( mFilterPrefix + ":" + mPropertyName );
+  propElem.appendChild( mDoc.createTextNode( node->name() ) );
   return propElem;
 }
 
 
 
-QDomElement QgsOgcUtils::expressionInOperatorToOgcFilter( const QgsExpression::NodeInOperator* node, QDomDocument& doc, QString& errorMessage )
+QDomElement QgsOgcUtilsExprToFilter::expressionInOperatorToOgcFilter( const QgsExpression::NodeInOperator* node )
 {
   if ( node->list()->list().size() == 1 )
-    return expressionNodeToOgcFilter( node->list()->list()[0], doc, errorMessage );
+    return expressionNodeToOgcFilter( node->list()->list()[0] );
 
-  QDomElement orElem = doc.createElement( "ogc:Or" );
-  QDomElement leftNode = expressionNodeToOgcFilter( node->node(), doc, errorMessage );
+  QDomElement orElem = mDoc.createElement( mFilterPrefix + ":Or" );
+  QDomElement leftNode = expressionNodeToOgcFilter( node->node() );
 
   Q_FOREACH ( QgsExpression::Node* n, node->list()->list() )
   {
-    QDomElement listNode = expressionNodeToOgcFilter( n, doc, errorMessage );
-    if ( !errorMessage.isEmpty() )
+    QDomElement listNode = expressionNodeToOgcFilter( n );
+    if ( !mErrorMessage.isEmpty() )
       return QDomElement();
 
-    QDomElement eqElem = doc.createElement( "ogc:PropertyIsEqualTo" );
+    QDomElement eqElem = mDoc.createElement( mFilterPrefix + ":PropertyIsEqualTo" );
     eqElem.appendChild( leftNode.cloneNode() );
     eqElem.appendChild( listNode );
 
@@ -2178,7 +2431,7 @@ static QgsGeometry* geometryFromConstExpr( const QgsExpression::Node* node )
 }
 
 
-QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::NodeFunction* node, QDomDocument& doc, QString& errorMessage )
+QDomElement QgsOgcUtilsExprToFilter::expressionFunctionToOgcFilter( const QgsExpression::NodeFunction* node )
 {
   QgsExpression::Function* fd = QgsExpression::Functions()[node->fnIndex()];
 
@@ -2193,12 +2446,16 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
       QgsRectangle rect = geom->boundingBox();
       delete geom;
 
-      QDomElement elemBox = rectangleToGMLBox( &rect, doc );
+      mGMLUsed = true;
 
-      QDomElement geomProperty = doc.createElement( "ogc:PropertyName" );
-      geomProperty.appendChild( doc.createTextNode( "geometry" ) );
+      QDomElement elemBox = ( mGMLVersion == QgsOgcUtils::GML_2_1_2 ) ?
+                            QgsOgcUtils::rectangleToGMLBox( &rect, mDoc, mSrsName, mInvertAxisOrientation ) :
+                            QgsOgcUtils::rectangleToGMLEnvelope( &rect, mDoc, mSrsName, mInvertAxisOrientation );
 
-      QDomElement funcElem = doc.createElement( "ogr:BBOX" );
+      QDomElement geomProperty = mDoc.createElement( mFilterPrefix + ":" + mPropertyName );
+      geomProperty.appendChild( mDoc.createTextNode( mGeometryName ) );
+
+      QDomElement funcElem = mDoc.createElement( mFilterPrefix + ":BBOX" );
       funcElem.appendChild( geomProperty );
       funcElem.appendChild( elemBox );
       return funcElem;
@@ -2207,7 +2464,7 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
     {
       delete geom;
 
-      errorMessage = QString( "<BBOX> is currently supported only in form: bbox($geometry, geomFromWKT('...'))" );
+      mErrorMessage = QObject::tr( "<BBOX> is currently supported only in form: bbox($geometry, geomFromWKT('...'))" );
       return QDomElement();
     }
   }
@@ -2224,7 +2481,7 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
       otherNode = argNodes[0];
     else
     {
-      errorMessage = QString( "Unable to translate spatial operator: at least one must refer to geometry." );
+      mErrorMessage = QObject::tr( "Unable to translate spatial operator: at least one must refer to geometry." );
       return QDomElement();
     }
 
@@ -2233,7 +2490,7 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
     // the other node must be a geometry constructor
     if ( otherNode->nodeType() != QgsExpression::ntFunction )
     {
-      errorMessage = "spatial operator: the other operator must be a geometry constructor function";
+      mErrorMessage = QObject::tr( "spatial operator: the other operator must be a geometry constructor function" );
       return QDomElement();
     }
 
@@ -2244,12 +2501,14 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
       QgsExpression::Node* firstFnArg = otherFn->args()->list()[0];
       if ( firstFnArg->nodeType() != QgsExpression::ntLiteral )
       {
-        errorMessage = "geom_from_wkt: argument must be string literal";
+        mErrorMessage = QObject::tr( "geom_from_wkt: argument must be string literal" );
         return QDomElement();
       }
       QString wkt = static_cast<const QgsExpression::NodeLiteral*>( firstFnArg )->value().toString();
       QgsGeometry* geom = QgsGeometry::fromWkt( wkt );
-      otherGeomElem = QgsOgcUtils::geometryToGML( geom, doc );
+      otherGeomElem = QgsOgcUtils::geometryToGML( geom, mDoc, mGMLVersion, mSrsName, mInvertAxisOrientation,
+                      QString( "qgis_id_geom_%1" ).arg( mGeomId ) );
+      mGeomId ++;
       delete geom;
     }
     else if ( otherFnDef->name() == "geom_from_gml" )
@@ -2257,7 +2516,7 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
       QgsExpression::Node* firstFnArg = otherFn->args()->list()[0];
       if ( firstFnArg->nodeType() != QgsExpression::ntLiteral )
       {
-        errorMessage = "geom_from_gml: argument must be string literal";
+        mErrorMessage = QObject::tr( "geom_from_gml: argument must be string literal" );
         return QDomElement();
       }
 
@@ -2265,22 +2524,24 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
       QString gml = static_cast<const QgsExpression::NodeLiteral*>( firstFnArg )->value().toString();
       if ( !geomDoc.setContent( gml, true ) )
       {
-        errorMessage = "geom_from_gml: unable to parse XML";
+        mErrorMessage = QObject::tr( "geom_from_gml: unable to parse XML" );
         return QDomElement();
       }
 
-      QDomNode geomNode = doc.importNode( geomDoc.documentElement(), true );
+      QDomNode geomNode = mDoc.importNode( geomDoc.documentElement(), true );
       otherGeomElem = geomNode.toElement();
     }
     else
     {
-      errorMessage = "spatial operator: unknown geometry constructor function";
+      mErrorMessage = QObject::tr( "spatial operator: unknown geometry constructor function" );
       return QDomElement();
     }
 
-    QDomElement funcElem = doc.createElement( "ogc:" + tagNameForSpatialOperator( fd->name() ) );
-    QDomElement geomProperty = doc.createElement( "ogc:PropertyName" );
-    geomProperty.appendChild( doc.createTextNode( "geometry" ) );
+    mGMLUsed = true;
+
+    QDomElement funcElem = mDoc.createElement( mFilterPrefix + ":" + tagNameForSpatialOperator( fd->name() ) );
+    QDomElement geomProperty = mDoc.createElement( mFilterPrefix + ":" + mPropertyName );
+    geomProperty.appendChild( mDoc.createTextNode( mGeometryName ) );
     funcElem.appendChild( geomProperty );
     funcElem.appendChild( otherGeomElem );
     return funcElem;
@@ -2288,17 +2549,17 @@ QDomElement QgsOgcUtils::expressionFunctionToOgcFilter( const QgsExpression::Nod
 
   if ( fd->params() == 0 )
   {
-    errorMessage = QString( "Special columns / constants are not supported." );
+    mErrorMessage = QObject::tr( "Special columns/constants are not supported." );
     return QDomElement();
   }
 
   // this is somehow wrong - we are just hoping that the other side supports the same functions as we do...
-  QDomElement funcElem = doc.createElement( "ogc:Function" );
+  QDomElement funcElem = mDoc.createElement( mFilterPrefix + ":Function" );
   funcElem.setAttribute( "name", fd->name() );
   Q_FOREACH ( QgsExpression::Node* n, node->args()->list() )
   {
-    QDomElement childElem = expressionNodeToOgcFilter( n, doc, errorMessage );
-    if ( !errorMessage.isEmpty() )
+    QDomElement childElem = expressionNodeToOgcFilter( n );
+    if ( !mErrorMessage.isEmpty() )
       return QDomElement();
 
     funcElem.appendChild( childElem );
diff --git a/src/core/qgsogcutils.h b/src/core/qgsogcutils.h
index 4b2409c..c65613c 100644
--- a/src/core/qgsogcutils.h
+++ b/src/core/qgsogcutils.h
@@ -43,6 +43,16 @@ class CORE_EXPORT QgsOgcUtils
 {
   public:
 
+    /** GML version
+     * @note not available in Python bindings
+     */
+    typedef enum
+    {
+      GML_2_1_2,
+      GML_3_1_0,
+      GML_3_2_1,
+    } GMLVersion;
+
     /** Static method that creates geometry from GML
      @param xmlString xml representation of the geometry. GML elements are expected to be
        in default namespace (\verbatim {<Point>...</Point> \endverbatim) or in
@@ -60,6 +70,17 @@ class CORE_EXPORT QgsOgcUtils
     /** Read rectangle from GML3 Envelope */
     static QgsRectangle rectangleFromGMLEnvelope( const QDomNode& envelopeNode );
 
+    /** Exports the geometry to GML
+        @return QDomElement
+        @note Added in QGIS 2.14
+     */
+    static QDomElement geometryToGML( const QgsGeometry* geometry, QDomDocument& doc,
+                                      GMLVersion gmlVersion,
+                                      const QString& srsName,
+                                      bool invertAxisOrientation,
+                                      const QString& gmlIdBase,
+                                      int precision = 17 );
+
     /** Exports the geometry to GML2 or GML3
         @return QDomElement
      */
@@ -75,11 +96,29 @@ class CORE_EXPORT QgsOgcUtils
      */
     static QDomElement rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc, int precision = 17 );
 
-    /** Exports the rectangle to GML2 Envelope
+    /** Exports the rectangle to GML2 Box
+        @return QDomElement
+        @note Added in QGIS 2.14
+     */
+    static QDomElement rectangleToGMLBox( QgsRectangle* box, QDomDocument& doc,
+                                          const QString& srsName,
+                                          bool invertAxisOrientation,
+                                          int precision = 17 );
+
+    /** Exports the rectangle to GML3 Envelope
         @return QDomElement
      */
     static QDomElement rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument& doc, int precision = 17 );
 
+    /** Exports the rectangle to GML3 Envelope
+        @return QDomElement
+        @note Added in QGIS 2.14
+     */
+    static QDomElement rectangleToGMLEnvelope( QgsRectangle* env, QDomDocument& doc,
+        const QString& srsName,
+        bool invertAxisOrientation,
+        int precision = 17 );
+
 
     /** Parse XML with OGC fill into QColor */
     static QColor colorFromOgcFill( const QDomElement& fillElement );
@@ -94,7 +133,54 @@ class CORE_EXPORT QgsOgcUtils
      */
     static QDomElement expressionToOgcFilter( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage = nullptr );
 
+    /** OGC filter version
+     *  @note not available in Python bindings
+     */
+    typedef enum
+    {
+      FILTER_OGC_1_0,
+      FILTER_OGC_1_1,
+      FILTER_FES_2_0
+    } FilterVersion;
+
+    /** Creates OGC filter XML element. Supports minimum standard filter
+     * according to the OGC filter specs (=,!=,<,>,<=,>=,AND,OR,NOT)
+     * @return valid \verbatim <Filter> \endverbatim QDomElement on success,
+     * otherwise null QDomElement
+     * @note Added in QGIS 2.14
+     */
+    static QDomElement expressionToOgcFilter( const QgsExpression& exp,
+        QDomDocument& doc,
+        GMLVersion gmlVersion,
+        FilterVersion filterVersion,
+        const QString& geometryName,
+        const QString& srsName,
+        bool honourAxisOrientation,
+        bool invertAxisOrientation,
+        QString* errorMessage = nullptr );
+
+    /** Creates an OGC expression XML element.
+     * @return valid OGC expression QDomElement on success,
+     * otherwise null QDomElement
+     * @note added in 2.14.8
+     */
+    static QDomElement expressionToOgcExpression( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage = nullptr );
+
+    /** Creates an OGC expression XML element.
+     * @return valid OGC expression QDomElement on success,
+     * otherwise null QDomElement
+     */
+    static QDomElement expressionToOgcExpression( const QgsExpression& exp,
+        QDomDocument& doc,
+        GMLVersion gmlVersion,
+        FilterVersion filterVersion,
+        const QString& geometryName,
+        const QString& srsName,
+        bool honourAxisOrientation,
+        bool invertAxisOrientation,
+        QString* errorMessage = nullptr );
   private:
+
     /** Static method that creates geometry from GML Point */
     static QgsGeometry* geometryFromGMLPoint( const QDomElement& geometryElement );
     /** Static method that creates geometry from GML LineString */
@@ -151,15 +237,51 @@ class CORE_EXPORT QgsOgcUtils
     static QgsExpression::Node* nodeIsBetweenFromOgcFilter( QDomElement& element, QString& errorMessage );
     //! handles \verbatim <PropertyIsNull> \endverbatim tag
     static QgsExpression::NodeBinaryOperator* nodePropertyIsNullFromOgcFilter( QDomElement& element, QString& errorMessage );
+};
 
-    static QDomElement expressionNodeToOgcFilter( const QgsExpression::Node* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionUnaryOperatorToOgcFilter( const QgsExpression::NodeUnaryOperator* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionBinaryOperatorToOgcFilter( const QgsExpression::NodeBinaryOperator* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionLiteralToOgcFilter( const QgsExpression::NodeLiteral* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionColumnRefToOgcFilter( const QgsExpression::NodeColumnRef* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionInOperatorToOgcFilter( const QgsExpression::NodeInOperator* node, QDomDocument& doc, QString& errorMessage );
-    static QDomElement expressionFunctionToOgcFilter( const QgsExpression::NodeFunction* node, QDomDocument& doc, QString& errorMessage );
+/** Internal use by QgsOgcUtils
+ * @note not available in Python bindings
+ */
+class QgsOgcUtilsExprToFilter
+{
+  public:
+    /** Constructor */
+    QgsOgcUtilsExprToFilter( QDomDocument& doc,
+                             QgsOgcUtils::GMLVersion gmlVersion,
+                             QgsOgcUtils::FilterVersion filterVersion,
+                             const QString& geometryName,
+                             const QString& srsName,
+                             bool honourAxisOrientation,
+                             bool invertAxisOrientation );
+
+    /** Convert an expression to a OGC filter */
+    QDomElement expressionNodeToOgcFilter( const QgsExpression::Node* node );
+
+    /** Return whether the gml: namespace is used */
+    bool GMLNamespaceUsed() const { return mGMLUsed; }
+
+    /** Return the error message. */
+    const QString& errorMessage() const { return mErrorMessage; }
+
+  private:
+    QDomDocument& mDoc;
+    bool mGMLUsed;
+    QgsOgcUtils::GMLVersion mGMLVersion;
+    QgsOgcUtils::FilterVersion mFilterVersion;
+    const QString& mGeometryName;
+    const QString& mSrsName;
+    bool mInvertAxisOrientation;
+    QString mErrorMessage;
+    QString mFilterPrefix;
+    QString mPropertyName;
+    int mGeomId;
 
+    QDomElement expressionUnaryOperatorToOgcFilter( const QgsExpression::NodeUnaryOperator* node );
+    QDomElement expressionBinaryOperatorToOgcFilter( const QgsExpression::NodeBinaryOperator* node );
+    QDomElement expressionLiteralToOgcFilter( const QgsExpression::NodeLiteral* node );
+    QDomElement expressionColumnRefToOgcFilter( const QgsExpression::NodeColumnRef* node );
+    QDomElement expressionInOperatorToOgcFilter( const QgsExpression::NodeInOperator* node );
+    QDomElement expressionFunctionToOgcFilter( const QgsExpression::NodeFunction* node );
 };
 
 #endif // QGSOGCUTILS_H
diff --git a/src/core/qgspallabeling.cpp b/src/core/qgspallabeling.cpp
index 2439b47..725026a 100644
--- a/src/core/qgspallabeling.cpp
+++ b/src/core/qgspallabeling.cpp
@@ -2784,35 +2784,14 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
           ydiff = yd;
         }
 
-        //project xPos and yPos from layer to map CRS
-        double z = 0;
-        if ( ct )
+        //project xPos and yPos from layer to map CRS, handle rotation
+        QgsGeometry ddPoint( new QgsPointV2( xPos, yPos ) );
+        if ( QgsPalLabeling::geometryRequiresPreparation( &ddPoint, context, ct ) )
         {
-          try
-          {
-            ct->transformInPlace( xPos, yPos, z );
-          }
-          catch ( QgsCsException &e )
-          {
-            Q_UNUSED( e );
-            QgsDebugMsgLevel( QString( "Ignoring feature %1 due transformation exception on data-defined position" ).arg( f.id() ), 4 );
-            return;
-          }
-        }
-
-        //rotate position with map if data-defined
-        if ( dataDefinedPosition && m2p.mapRotation() )
-        {
-          const QgsPoint& center = context.extent().center();
-          QTransform t = QTransform::fromTranslate( center.x(), center.y() );
-          t.rotate( -m2p.mapRotation() );
-          t.translate( -center.x(), -center.y() );
-          qreal xPosR, yPosR;
-          qreal xPos_qreal = xPos, yPos_qreal = yPos;
-          t.map( xPos_qreal, yPos_qreal, &xPosR, &yPosR );
-          xPos = xPosR;
-          yPos = yPosR;
-
+          QgsGeometry* newPoint = QgsPalLabeling::prepareGeometry( &ddPoint, context, ct );
+          xPos = static_cast< QgsPointV2* >( newPoint->geometry() )->x();
+          yPos = static_cast< QgsPointV2* >( newPoint->geometry() )->y();
+          delete newPoint;
         }
 
         xPos += xdiff;
diff --git a/src/core/qgspoint.cpp b/src/core/qgspoint.cpp
index 4368809..9ad3ec8 100644
--- a/src/core/qgspoint.cpp
+++ b/src/core/qgspoint.cpp
@@ -352,7 +352,7 @@ double QgsPoint::sqrDist( const QgsPoint& other ) const
   return sqrDist( other.x(), other.y() );
 }
 
-double QgsPoint::azimuth( const QgsPoint& other )
+double QgsPoint::azimuth( const QgsPoint& other ) const
 {
   double dx = other.x() - m_x;
   double dy = other.y() - m_y;
diff --git a/src/core/qgspoint.h b/src/core/qgspoint.h
index 0b04ec9..5b946c3 100644
--- a/src/core/qgspoint.h
+++ b/src/core/qgspoint.h
@@ -189,7 +189,7 @@ class CORE_EXPORT QgsPoint
     double sqrDistToSegment( double x1, double y1, double x2, double y2, QgsPoint& minDistPoint, double epsilon = DEFAULT_SEGMENT_EPSILON ) const;
 
     /** Calculates azimuth between this point and other one (clockwise in degree, starting from north) */
-    double azimuth( const QgsPoint& other );
+    double azimuth( const QgsPoint& other ) const;
 
     /** Compares this point with another point with a fuzzy tolerance
      * @param other point to compare with
diff --git a/src/core/qgsprojectproperty.cpp b/src/core/qgsprojectproperty.cpp
index 51b23a7..dd832ca 100644
--- a/src/core/qgsprojectproperty.cpp
+++ b/src/core/qgsprojectproperty.cpp
@@ -21,6 +21,18 @@
 #include <QDomDocument>
 #include <QStringList>
 
+QgsProperty::QgsProperty()
+{
+}
+
+QgsProperty::~QgsProperty()
+{
+}
+
+QgsPropertyValue::~QgsPropertyValue()
+{
+}
+
 void QgsPropertyValue::dump( int tabs ) const
 {
   QString tabString;
diff --git a/src/core/qgsprojectproperty.h b/src/core/qgsprojectproperty.h
index 2f8a1be..bbcc133 100644
--- a/src/core/qgsprojectproperty.h
+++ b/src/core/qgsprojectproperty.h
@@ -47,12 +47,8 @@ class QDomDocument;
 class CORE_EXPORT QgsProperty
 {
   public:
-
-    QgsProperty()
-    {}
-
-    virtual ~ QgsProperty()
-    {}
+    QgsProperty();
+    virtual ~QgsProperty();
 
     /** Dumps out the keys and values
      *
@@ -124,7 +120,7 @@ class CORE_EXPORT QgsPropertyValue : public QgsProperty
         : value_( value )
     {}
 
-    virtual ~QgsPropertyValue() {}
+    virtual ~QgsPropertyValue();
 
     /** Returns true if is a QgsPropertyKey */
     virtual bool isKey() const override { return false; }
@@ -189,7 +185,7 @@ class CORE_EXPORT QgsPropertyKey : public QgsProperty
 {
   public:
     QgsPropertyKey( const QString &name = "" );
-    virtual ~ QgsPropertyKey();
+    virtual ~QgsPropertyKey();
 
     /// every key has a name
     // @{
@@ -207,7 +203,7 @@ class CORE_EXPORT QgsPropertyKey : public QgsProperty
 
 
     /// add the given property key
-    QgsPropertyKey * addKey( const QString & keyName )
+    QgsPropertyKey *addKey( const QString & keyName )
     {
       delete mProperties.take( keyName );
       mProperties.insert( keyName, new QgsPropertyKey( keyName ) );
diff --git a/src/core/qgsvectorlayer.cpp b/src/core/qgsvectorlayer.cpp
index 5535cb9..d073559 100644
--- a/src/core/qgsvectorlayer.cpp
+++ b/src/core/qgsvectorlayer.cpp
@@ -2107,9 +2107,13 @@ bool QgsVectorLayer::readSld( const QDomNode& node, QString& errorMessage )
   return true;
 }
 
-
 bool QgsVectorLayer::writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage ) const
 {
+  return writeSld( node, doc, errorMessage, QgsStringMap() );
+}
+
+bool QgsVectorLayer::writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage, const QgsStringMap& props ) const
+{
   Q_UNUSED( errorMessage );
 
   // store the Name element
@@ -2117,9 +2121,15 @@ bool QgsVectorLayer::writeSld( QDomNode& node, QDomDocument& doc, QString& error
   nameNode.appendChild( doc.createTextNode( name() ) );
   node.appendChild( nameNode );
 
+  QgsStringMap localProps = QgsStringMap( props );
+  if ( hasScaleBasedVisibility() )
+  {
+    QgsSymbolLayerV2Utils::mergeScaleDependencies( minimumScale(), maximumScale(), localProps );
+  }
+
   if ( hasGeometryType() )
   {
-    node.appendChild( mRendererV2->writeSld( doc, name() ) );
+    node.appendChild( mRendererV2->writeSld( doc, name(), localProps ) );
   }
   return true;
 }
diff --git a/src/core/qgsvectorlayer.h b/src/core/qgsvectorlayer.h
index 4f54ddf..b9dfb2e 100644
--- a/src/core/qgsvectorlayer.h
+++ b/src/core/qgsvectorlayer.h
@@ -559,6 +559,11 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
       @returns true if join was found and successfully removed */
     bool removeJoin( const QString& joinLayerId );
 
+    /**
+     * Acccessor to the join buffer object
+     * @note added 2.14.7
+     */
+    QgsVectorLayerJoinBuffer* joinBuffer() { return mJoinBuffer; }
     const QList<QgsVectorJoinInfo> vectorJoins() const;
 
     /**
@@ -840,7 +845,33 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
      */
     bool writeSymbology( QDomNode& node, QDomDocument& doc, QString& errorMessage ) const override;
 
+
+    /**
+     * Writes the symbology of the layer into the document provided in SLD 1.1 format
+     * @param node the node that will have the style element added to it.
+     * @param doc the document that will have the QDomNode added.
+     * @param errorMessage reference to string that will be updated with any error messages
+     * @return true in case of success
+     */
     bool writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage ) const;
+
+    /**
+     * Writes the symbology of the layer into the document provided in SLD 1.1 format
+     * @param node the node that will have the style element added to it.
+     * @param doc the document that will have the QDomNode added.
+     * @param errorMessage reference to string that will be updated with any error messages
+     * @param props a open ended set of properties that can drive/inform the SLD encoding
+     * @return true in case of success
+     */
+    bool writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage, const QgsStringMap& props ) const;
+
+    /**
+     * Read the symbology of the layer according to the information contained in
+     * the UserStyle element of a SLD style document
+     * @param node the node that have the style element in it.
+     * @param errorMessage reference to string that will be updated with any error messages
+     * @return true in case of success
+     */
     bool readSld( const QDomNode& node, QString& errorMessage ) override;
 
     /**
diff --git a/src/core/qgsvectorlayerfeatureiterator.cpp b/src/core/qgsvectorlayerfeatureiterator.cpp
index 1cce059..d6b5468 100644
--- a/src/core/qgsvectorlayerfeatureiterator.cpp
+++ b/src/core/qgsvectorlayerfeatureiterator.cpp
@@ -534,14 +534,14 @@ void QgsVectorLayerFeatureIterator::prepareExpression( int fieldIdx )
 
   Q_FOREACH ( const QString& col, exp->referencedColumns() )
   {
-    int dependantFieldIdx = mSource->mFields.fieldNameIndex( col );
+    int dependentFieldIdx = mSource->mFields.fieldNameIndex( col );
     if ( mRequest.flags() & QgsFeatureRequest::SubsetOfAttributes )
     {
-      mRequest.setSubsetOfAttributes( mRequest.subsetOfAttributes() << dependantFieldIdx );
+      mRequest.setSubsetOfAttributes( mRequest.subsetOfAttributes() << dependentFieldIdx );
     }
-    // also need to fetch this dependant field
-    if ( !mPreparedFields.contains( dependantFieldIdx ) && !mFieldsToPrepare.contains( dependantFieldIdx ) )
-      mFieldsToPrepare << dependantFieldIdx;
+    // also need to fetch this dependent field
+    if ( !mPreparedFields.contains( dependentFieldIdx ) && !mFieldsToPrepare.contains( dependentFieldIdx ) )
+      mFieldsToPrepare << dependentFieldIdx;
   }
 
   if ( exp->needsGeometry() )
diff --git a/src/core/raster/qgsrasterlayer.cpp b/src/core/raster/qgsrasterlayer.cpp
index 0fb031e..108ba77 100644
--- a/src/core/raster/qgsrasterlayer.cpp
+++ b/src/core/raster/qgsrasterlayer.cpp
@@ -1043,7 +1043,7 @@ void QgsRasterLayer::setDrawingStyle( QString const & theDrawingStyleQString )
   {
     QgsDebugMsgLevel( "Setting drawingStyle to SingleBandColorDataStyle " + QString::number( QgsRaster::SingleBandColorDataStyle ), 4 );
     drawingStyle = QgsRaster::SingleBandColorDataStyle;
-    QgsDebugMsgLevel( "Setted drawingStyle to " + QString::number( drawingStyle ), 4 );
+    QgsDebugMsgLevel( "drawingStyle set to " + QString::number( drawingStyle ), 4 );
   }
   else
   {
diff --git a/src/core/raster/qgsrasterprojector.h b/src/core/raster/qgsrasterprojector.h
index 212ac99..e96350f 100644
--- a/src/core/raster/qgsrasterprojector.h
+++ b/src/core/raster/qgsrasterprojector.h
@@ -38,7 +38,7 @@ class QgsPoint;
 class CORE_EXPORT QgsRasterProjector : public QgsRasterInterface
 {
   public:
-    /** Precison defines if each pixel is reprojected or approximate reprojection based
+    /** Precision defines if each pixel is reprojected or approximate reprojection based
      *  on an approximation matrix of reprojected points is used.
      */
     enum Precision
diff --git a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
index 11ca33f..aebef59 100644
--- a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
@@ -114,7 +114,7 @@ QString QgsRendererCategoryV2::dump() const
   return QString( "%1::%2::%3:%4\n" ).arg( mValue.toString(), mLabel, mSymbol->dump() ).arg( mRender );
 }
 
-void QgsRendererCategoryV2::toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const
+void QgsRendererCategoryV2::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const
 {
   if ( !mSymbol.data() || props.value( "attribute", "" ).isEmpty() )
     return;
@@ -141,6 +141,9 @@ void QgsRendererCategoryV2::toSld( QDomDocument &doc, QDomElement &element, QgsS
                              mValue.toString().replace( '\'', "''" ) );
   QgsSymbolLayerV2Utils::createFunctionElement( doc, ruleElem, filterFunc );
 
+  // add the mix/max scale denoms if we got any from the callers
+  QgsSymbolLayerV2Utils::applyScaleDependency( doc, ruleElem, props );
+
   mSymbol->toSld( doc, ruleElem, props );
 }
 
@@ -159,9 +162,9 @@ QgsCategorizedSymbolRendererV2::QgsCategorizedSymbolRendererV2( const QString& a
   //trigger a detachment and copy of mCategories BUT that same method CAN be used to modify a symbol in place
   Q_FOREACH ( const QgsRendererCategoryV2& cat, categories )
   {
-    if ( cat.symbol() )
+    if ( !cat.symbol() )
     {
-      QgsDebugMsg( "invalid symbol in a category! ignoring..." );
+      QgsDebugMsg( QString( "invalid symbol in category %1 (%2)! ignoring..." ).arg( cat.value().toString(), cat.label() ) );
     }
     mCategories << cat;
   }
@@ -442,6 +445,12 @@ void QgsCategorizedSymbolRendererV2::startRender( QgsRenderContext& context, con
       mTempSymbols[ cat.symbol()] = tempSymbol;
     }
   }
+
+  Q_FOREACH ( QgsSymbolV2 *symbol, mSymbolHash.values() )
+  {
+    symbol->startRender( context, &fields );
+  }
+
   return;
 }
 
@@ -452,6 +461,11 @@ void QgsCategorizedSymbolRendererV2::stopRender( QgsRenderContext& context )
     cat.symbol()->stopRender( context );
   }
 
+  Q_FOREACH ( QgsSymbolV2 *symbol, mSymbolHash.values() )
+  {
+    symbol->stopRender( context );
+  }
+
   // cleanup mTempSymbols
   QHash<QgsSymbolV2*, QgsSymbolV2*>::const_iterator it2 = mTempSymbols.constBegin();
   for ( ; it2 != mTempSymbols.constEnd(); ++it2 )
@@ -519,17 +533,22 @@ QgsCategorizedSymbolRendererV2* QgsCategorizedSymbolRendererV2::clone() const
 
 void QgsCategorizedSymbolRendererV2::toSld( QDomDocument &doc, QDomElement &element ) const
 {
-  QgsStringMap props;
-  props[ "attribute" ] = mAttrName;
+  toSld( doc, element, QgsStringMap() );
+}
+
+void QgsCategorizedSymbolRendererV2::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const
+{
+  QgsStringMap locProps( props );
+  locProps[ "attribute" ] = mAttrName;
   if ( mRotation.data() )
-    props[ "angle" ] = mRotation->expression();
+    locProps[ "angle" ] = mRotation->expression();
   if ( mSizeScale.data() )
-    props[ "scale" ] = mSizeScale->expression();
+    locProps[ "scale" ] = mSizeScale->expression();
 
   // create a Rule for each range
   for ( QgsCategoryList::const_iterator it = mCategories.constBegin(); it != mCategories.constEnd(); ++it )
   {
-    QgsStringMap catProps( props );
+    QgsStringMap catProps( locProps );
     it->toSld( doc, element, catProps );
   }
 }
diff --git a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
index 7036170..22b7c0d 100644
--- a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
+++ b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
@@ -56,7 +56,12 @@ class CORE_EXPORT QgsRendererCategoryV2
     // debugging
     QString dump() const;
 
-    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
+    /** Creates a DOM element representing the category in SLD format.
+     * @param doc DOM document
+     * @param element destination DOM element
+     * @param props graduated renderer properties
+     */
+    void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
 
   protected:
     QVariant mValue;
@@ -94,7 +99,10 @@ class CORE_EXPORT QgsCategorizedSymbolRendererV2 : public QgsFeatureRendererV2
 
     virtual QgsCategorizedSymbolRendererV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const override;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     //! returns bitwise OR-ed capabilities of the renderer
     virtual int capabilities() override { return SymbolLevels | RotationField | Filter; }
diff --git a/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp b/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp
index ef7ba6a..c7dd15e 100644
--- a/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp
@@ -394,12 +394,9 @@ void QgsEllipseSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement &el
   QDomElement graphicElem = doc.createElement( "se:Graphic" );
   element.appendChild( graphicElem );
 
-  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, mSymbolName, mColor, mOutlineColor, mOutlineStyle, mOutlineWidth, mSymbolWidth );
-
-  // store w/h factor in a <VendorOption>
-  double widthHeightFactor = mSymbolWidth / mSymbolHeight;
-  QDomElement factorElem = QgsSymbolLayerV2Utils::createVendorOptionElement( doc, "widthHeightFactor", QString::number( widthHeightFactor ) );
-  graphicElem.appendChild( factorElem );
+  double outlineWidth = QgsSymbolLayerV2Utils::rescaleUom( mOutlineWidth, mOutlineWidthUnit, props );
+  double symbolWidth = QgsSymbolLayerV2Utils::rescaleUom( mSymbolWidth, mSymbolWidthUnit, props );
+  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, mSymbolName, mColor, mOutlineColor, mOutlineStyle, outlineWidth, symbolWidth );
 
   // <Rotation>
   QgsDataDefined* ddRotation = getDataDefinedProperty( QgsSymbolLayerV2::EXPR_ROTATION );
@@ -437,6 +434,16 @@ void QgsEllipseSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement &el
     }
   }
   QgsSymbolLayerV2Utils::createRotationElement( doc, graphicElem, angleFunc );
+  QgsSymbolLayerV2Utils::createRotationElement( doc, graphicElem, angleFunc );
+
+  // <Displacement>
+  QPointF offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, offset );
+
+  // store w/h factor in a <VendorOption>
+  double widthHeightFactor = mSymbolWidth / mSymbolHeight;
+  QDomElement factorElem = QgsSymbolLayerV2Utils::createVendorOptionElement( doc, "widthHeightFactor", QString::number( widthHeightFactor ) );
+  graphicElem.appendChild( factorElem );
 }
 
 QgsSymbolLayerV2* QgsEllipseSymbolLayerV2::createFromSld( QDomElement &element )
diff --git a/src/core/symbology-ng/qgsellipsesymbollayerv2.h b/src/core/symbology-ng/qgsellipsesymbollayerv2.h
index 811600a..11d3dd2 100644
--- a/src/core/symbology-ng/qgsellipsesymbollayerv2.h
+++ b/src/core/symbology-ng/qgsellipsesymbollayerv2.h
@@ -37,6 +37,7 @@ class CORE_EXPORT QgsEllipseSymbolLayerV2: public QgsMarkerSymbolLayerV2
     QgsEllipseSymbolLayerV2* clone() const override;
     QgsStringMap properties() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
     void writeSldMarker( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
diff --git a/src/core/symbology-ng/qgsfillsymbollayerv2.cpp b/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
index 445e68a..23225aa 100644
--- a/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
@@ -350,11 +350,13 @@ void QgsSimpleFillSymbolLayerV2::toSld( QDomDocument &doc, QDomElement &element,
     // <Stroke>
     QDomElement strokeElem = doc.createElement( "se:Stroke" );
     symbolizerElem.appendChild( strokeElem );
-    QgsSymbolLayerV2Utils::lineToSld( doc, strokeElem, mBorderStyle, mBorderColor, mBorderWidth, &mPenJoinStyle );
+    double borderWidth = QgsSymbolLayerV2Utils::rescaleUom( mBorderWidth, mBorderWidthUnit, props );
+    QgsSymbolLayerV2Utils::lineToSld( doc, strokeElem, mBorderStyle, borderWidth, borderWidth, &mPenJoinStyle );
   }
 
   // <se:Displacement>
-  QgsSymbolLayerV2Utils::createDisplacementElement( doc, symbolizerElem, mOffset );
+  QPointF offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+  QgsSymbolLayerV2Utils::createDisplacementElement( doc, symbolizerElem, offset );
 }
 
 QString QgsSimpleFillSymbolLayerV2::ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const
@@ -1775,6 +1777,7 @@ void QgsSVGFillSymbolLayer::setOutputUnit( QgsSymbolV2::OutputUnit unit )
   mPatternWidthUnit = unit;
   mSvgOutlineWidthUnit = unit;
   mOutlineWidthUnit = unit;
+  mOutline->setOutputUnit( unit );
 }
 
 QgsSymbolV2::OutputUnit QgsSVGFillSymbolLayer::outputUnit() const
@@ -2085,7 +2088,8 @@ void QgsSVGFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &element, cons
 
   if ( !mSvgFilePath.isEmpty() )
   {
-    QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mSvgFilePath, "image/svg+xml", mColor, mPatternWidth );
+    double partternWidth = QgsSymbolLayerV2Utils::rescaleUom( mPatternWidth, mPatternWidthUnit, props );
+    QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mSvgFilePath, "image/svg+xml", mColor, partternWidth );
   }
   else
   {
@@ -2096,7 +2100,8 @@ void QgsSVGFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &element, cons
 
   if ( mSvgOutlineColor.isValid() || mSvgOutlineWidth >= 0 )
   {
-    QgsSymbolLayerV2Utils::lineToSld( doc, graphicElem, Qt::SolidLine, mSvgOutlineColor, mSvgOutlineWidth );
+    double svgOutlineWidth = QgsSymbolLayerV2Utils::rescaleUom( mSvgOutlineWidth, mSvgOutlineWidthUnit, props );
+    QgsSymbolLayerV2Utils::lineToSld( doc, graphicElem, Qt::SolidLine, mSvgOutlineColor, svgOutlineWidth );
   }
 
   // <Rotation>
@@ -2884,7 +2889,9 @@ void QgsLinePatternFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &eleme
   //line properties must be inside the graphic definition
   QColor lineColor = mFillLineSymbol ? mFillLineSymbol->color() : QColor();
   double lineWidth = mFillLineSymbol ? mFillLineSymbol->width() : 0.0;
-  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, "horline", QColor(), lineColor, Qt::SolidLine, lineWidth, mDistance );
+  lineWidth = QgsSymbolLayerV2Utils::rescaleUom( lineWidth, mLineWidthUnit,  props );
+  double distance = QgsSymbolLayerV2Utils::rescaleUom( mDistance, mDistanceUnit,  props );
+  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, "horline", QColor(), lineColor, Qt::SolidLine, lineWidth, distance );
 
   // <Rotation>
   QString angleFunc;
@@ -2902,6 +2909,7 @@ void QgsLinePatternFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &eleme
 
   // <se:Displacement>
   QPointF lineOffset( sin( mLineAngle ) * mOffset, cos( mLineAngle ) * mOffset );
+  lineOffset = QgsSymbolLayerV2Utils::rescaleUom( lineOffset, mOffsetUnit, props );
   QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, lineOffset );
 }
 
@@ -3053,6 +3061,11 @@ void QgsPointPatternFillSymbolLayer::setOutputUnit( QgsSymbolV2::OutputUnit unit
   mDistanceYUnit = unit;
   mDisplacementXUnit = unit;
   mDisplacementYUnit = unit;
+  if ( mMarkerSymbol )
+  {
+    mMarkerSymbol->setOutputUnit( unit );
+  }
+
 }
 
 QgsSymbolV2::OutputUnit QgsPointPatternFillSymbolLayer::outputUnit() const
@@ -3295,7 +3308,9 @@ void QgsPointPatternFillSymbolLayer::toSld( QDomDocument &doc, QDomElement &elem
     fillElem.appendChild( graphicFillElem );
 
     // store distanceX, distanceY, displacementX, displacementY in a <VendorOption>
-    QString dist =  QgsSymbolLayerV2Utils::encodePoint( QPointF( mDistanceX, mDistanceY ) );
+    double dx  = QgsSymbolLayerV2Utils::rescaleUom( mDistanceX, mDistanceXUnit, props );
+    double dy  = QgsSymbolLayerV2Utils::rescaleUom( mDistanceY, mDistanceYUnit, props );
+    QString dist = QgsSymbolLayerV2Utils::encodePoint( QPointF( dx, dy ) );
     QDomElement distanceElem = QgsSymbolLayerV2Utils::createVendorOptionElement( doc, "distance", dist );
     symbolizerElem.appendChild( distanceElem );
 
diff --git a/src/core/symbology-ng/qgsfillsymbollayerv2.h b/src/core/symbology-ng/qgsfillsymbollayerv2.h
index d5409e4..4f82ef5 100644
--- a/src/core/symbology-ng/qgsfillsymbollayerv2.h
+++ b/src/core/symbology-ng/qgsfillsymbollayerv2.h
@@ -60,6 +60,7 @@ class CORE_EXPORT QgsSimpleFillSymbolLayerV2 : public QgsFillSymbolLayerV2
 
     QgsSimpleFillSymbolLayerV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
@@ -798,6 +799,7 @@ class CORE_EXPORT QgsSVGFillSymbolLayer: public QgsImageFillSymbolLayer
 
     QgsSVGFillSymbolLayer* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     //getters and setters
@@ -885,6 +887,7 @@ class CORE_EXPORT QgsLinePatternFillSymbolLayer: public QgsImageFillSymbolLayer
 
     QgsLinePatternFillSymbolLayer* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     double estimateMaxBleed() const override;
@@ -978,6 +981,7 @@ class CORE_EXPORT QgsPointPatternFillSymbolLayer: public QgsImageFillSymbolLayer
 
     QgsPointPatternFillSymbolLayer* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     double estimateMaxBleed() const override;
@@ -1079,6 +1083,7 @@ class CORE_EXPORT QgsCentroidFillSymbolLayerV2 : public QgsFillSymbolLayerV2
 
     QgsCentroidFillSymbolLayerV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     void setColor( const QColor& color ) override;
diff --git a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
index 9cc3b70..58d8c30 100644
--- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
@@ -141,7 +141,7 @@ QString QgsRendererRangeV2::dump() const
   return QString( "%1 - %2::%3::%4\n" ).arg( mLowerValue ).arg( mUpperValue ).arg( mLabel, mSymbol.data() ? mSymbol->dump() : "(no symbol)" );
 }
 
-void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const
+void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props, bool firstRange ) const
 {
   if ( !mSymbol.data() || props.value( "attribute", "" ).isEmpty() )
     return;
@@ -163,9 +163,11 @@ void QgsRendererRangeV2::toSld( QDomDocument &doc, QDomElement &element, QgsStri
   ruleElem.appendChild( descrElem );
 
   // create the ogc:Filter for the range
-  QString filterFunc = QString( "%1 > %2 AND %1 <= %3" )
-                       .arg( attrName.replace( '\"', "\"\"" ) )
-                       .arg( mLowerValue ).arg( mUpperValue );
+  QString filterFunc = QString( "%1 %2 %3 AND %1 <= %4" )
+                       .arg( attrName.replace( '\"', "\"\"" ),
+                             firstRange ? ">=" : ">",
+                             qgsDoubleToString( mLowerValue ),
+                             qgsDoubleToString( mUpperValue ) );
   QgsSymbolLayerV2Utils::createFunctionElement( doc, ruleElem, filterFunc );
 
   mSymbol->toSld( doc, ruleElem, props );
@@ -559,19 +561,26 @@ QgsGraduatedSymbolRendererV2* QgsGraduatedSymbolRendererV2::clone() const
 
 void QgsGraduatedSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element ) const
 {
-  QgsStringMap props;
-  props[ "attribute" ] = mAttrName;
-  props[ "method" ] = graduatedMethodStr( mGraduatedMethod );
+  toSld( doc, element, QgsStringMap() );
+}
+
+void QgsGraduatedSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
+{
+  QgsStringMap locProps( props );
+  locProps[ "attribute" ] = mAttrName;
+  locProps[ "method" ] = graduatedMethodStr( mGraduatedMethod );
   if ( mRotation.data() )
-    props[ "angle" ] = mRotation->expression();
+    locProps[ "angle" ] = mRotation->expression();
   if ( mSizeScale.data() )
-    props[ "scale" ] = mSizeScale->expression();
+    locProps[ "scale" ] = mSizeScale->expression();
 
   // create a Rule for each range
+  bool first = true;
   for ( QgsRangeList::const_iterator it = mRanges.constBegin(); it != mRanges.constEnd(); ++it )
   {
-    QgsStringMap catProps( props );
-    it->toSld( doc, element, catProps );
+    QgsStringMap catProps( locProps );
+    it->toSld( doc, element, catProps, first );
+    first = false;
   }
 }
 
diff --git a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
index a7ac296..c2eccfd 100644
--- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
+++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
@@ -53,7 +53,14 @@ class CORE_EXPORT QgsRendererRangeV2
     // debugging
     QString dump() const;
 
-    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
+    /** Creates a DOM element representing the range in SLD format.
+     * @param doc DOM document
+     * @param element destination DOM element
+     * @param props graduated renderer properties
+     * @param firstRange set to true if the range is the first range, where the lower value uses a <= test
+     * rather than a < test.
+     */
+    void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props, bool firstRange = false ) const;
 
   protected:
     double mLowerValue, mUpperValue;
@@ -136,7 +143,10 @@ class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
 
     virtual QgsGraduatedSymbolRendererV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const override;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     //! returns bitwise OR-ed capabilities of the renderer
     virtual int capabilities() override { return SymbolLevels | RotationField | Filter; }
diff --git a/src/core/symbology-ng/qgslinesymbollayerv2.cpp b/src/core/symbology-ng/qgslinesymbollayerv2.cpp
index cfd9d48..b31f3f0 100644
--- a/src/core/symbology-ng/qgslinesymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgslinesymbollayerv2.cpp
@@ -410,14 +410,17 @@ void QgsSimpleLineSymbolLayerV2::toSld( QDomDocument &doc, QDomElement &element,
   symbolizerElem.appendChild( strokeElem );
 
   Qt::PenStyle penStyle = mUseCustomDashPattern ? Qt::CustomDashLine : mPenStyle;
-  QgsSymbolLayerV2Utils::lineToSld( doc, strokeElem, penStyle, mColor, mWidth,
-                                    &mPenJoinStyle, &mPenCapStyle, &mCustomDashVector );
+  double width = QgsSymbolLayerV2Utils::rescaleUom( mWidth, mWidthUnit, props );
+  QVector<qreal> customDashVector = QgsSymbolLayerV2Utils::rescaleUom( mCustomDashVector, mCustomDashPatternUnit, props );
+  QgsSymbolLayerV2Utils::lineToSld( doc, strokeElem, penStyle, mColor, width,
+                                    &mPenJoinStyle, &mPenCapStyle, &customDashVector );
 
   // <se:PerpendicularOffset>
   if ( !qgsDoubleNear( mOffset, 0.0 ) )
   {
     QDomElement perpOffsetElem = doc.createElement( "se:PerpendicularOffset" );
-    perpOffsetElem.appendChild( doc.createTextNode( QString::number( mOffset ) ) );
+    double offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+    perpOffsetElem.appendChild( doc.createTextNode( qgsDoubleToString( offset ) ) );
     symbolizerElem.appendChild( perpOffsetElem );
   }
 }
@@ -882,6 +885,9 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
     }
   }
 
+
+  context.renderContext().painter()->save();
+
   if ( qgsDoubleNear( offset, 0.0 ) )
   {
     if ( placement == Interval )
@@ -908,6 +914,8 @@ void QgsMarkerLineSymbolLayerV2::renderPolyline( const QPolygonF& points, QgsSym
         renderPolylineVertex( points2, context, placement );
     }
   }
+
+  context.renderContext().painter()->restore();
 }
 
 void QgsMarkerLineSymbolLayerV2::renderPolygonOutline( const QPolygonF& points, QList<QPolygonF>* rings, QgsSymbolV2RenderContext& context )
@@ -941,7 +949,6 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
 
   QPointF lastPt = points[0];
   double lengthLeft = 0; // how much is left until next marker
-  bool first = mOffsetAlongLine ? false : true; //only draw marker at first vertex when no offset along line is set
 
   QgsRenderContext& rc = context.renderContext();
   double interval = mInterval;
@@ -988,12 +995,6 @@ void QgsMarkerLineSymbolLayerV2::renderPolylineInterval( const QPolygonF& points
       mMarker->setLineAngle( l.angle() * 180 / M_PI );
     }
 
-    // draw first marker
-    if ( first )
-    {
-      mMarker->renderPoint( lastPt, context.feature(), rc, -1, context.selected() );
-      first = false;
-    }
 
     // while we're not at the end of line segment, draw!
     while ( lengthLeft > painterUnitInterval )
@@ -1409,7 +1410,8 @@ void QgsMarkerLineSymbolLayerV2::toSld( QDomDocument &doc, QDomElement &element,
         symbolizerElem.appendChild( QgsSymbolLayerV2Utils::createVendorOptionElement( doc, "placement", "points" ) );
         break;
       default:
-        gap = QString::number( mInterval );
+        double interval = QgsSymbolLayerV2Utils::rescaleUom( mInterval, mIntervalUnit, props );
+        gap = qgsDoubleToString( interval );
         break;
     }
 
@@ -1442,14 +1444,15 @@ void QgsMarkerLineSymbolLayerV2::toSld( QDomDocument &doc, QDomElement &element,
     if ( !gap.isEmpty() )
     {
       QDomElement gapElem = doc.createElement( "se:Gap" );
-      QgsSymbolLayerV2Utils::createFunctionElement( doc, gapElem, gap );
+      QgsSymbolLayerV2Utils::createExpressionElement( doc, gapElem, gap );
       graphicStrokeElem.appendChild( gapElem );
     }
 
     if ( !qgsDoubleNear( mOffset, 0.0 ) )
     {
       QDomElement perpOffsetElem = doc.createElement( "se:PerpendicularOffset" );
-      perpOffsetElem.appendChild( doc.createTextNode( QString::number( mOffset ) ) );
+      double offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+      perpOffsetElem.appendChild( doc.createTextNode( qgsDoubleToString( offset ) ) );
       symbolizerElem.appendChild( perpOffsetElem );
     }
   }
@@ -1550,6 +1553,7 @@ double QgsMarkerLineSymbolLayerV2::width() const
 void QgsMarkerLineSymbolLayerV2::setOutputUnit( QgsSymbolV2::OutputUnit unit )
 {
   QgsLineSymbolLayerV2::setOutputUnit( unit );
+  mMarker->setOutputUnit( unit );
   mIntervalUnit = unit;
   mOffsetUnit = unit;
   mOffsetAlongLineUnit = unit;
diff --git a/src/core/symbology-ng/qgslinesymbollayerv2.h b/src/core/symbology-ng/qgslinesymbollayerv2.h
index 0b0cbda..84c7e7d 100644
--- a/src/core/symbology-ng/qgslinesymbollayerv2.h
+++ b/src/core/symbology-ng/qgslinesymbollayerv2.h
@@ -59,6 +59,7 @@ class CORE_EXPORT QgsSimpleLineSymbolLayerV2 : public QgsLineSymbolLayerV2
 
     QgsSimpleLineSymbolLayerV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
@@ -191,6 +192,7 @@ class CORE_EXPORT QgsMarkerLineSymbolLayerV2 : public QgsLineSymbolLayerV2
 
     QgsMarkerLineSymbolLayerV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     void setColor( const QColor& color ) override;
diff --git a/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp b/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
index ebf4183..d0ef319 100644
--- a/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
@@ -698,7 +698,9 @@ void QgsSimpleMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElemen
   QDomElement graphicElem = doc.createElement( "se:Graphic" );
   element.appendChild( graphicElem );
 
-  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, mName, mColor, mBorderColor, mOutlineStyle, mOutlineWidth, mSize );
+  double outlineWidth = QgsSymbolLayerV2Utils::rescaleUom( mOutlineWidth, mOutlineWidthUnit, props );
+  double size = QgsSymbolLayerV2Utils::rescaleUom( mSize, mSizeUnit, props );
+  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, mName, mColor, mBorderColor, mOutlineStyle, outlineWidth, size );
 
   // <Rotation>
   QString angleFunc;
@@ -715,7 +717,8 @@ void QgsSimpleMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElemen
   QgsSymbolLayerV2Utils::createRotationElement( doc, graphicElem, angleFunc );
 
   // <Displacement>
-  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, mOffset );
+  QPointF offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, offset );
 }
 
 QString QgsSimpleMarkerSymbolLayerV2::ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const
@@ -1594,7 +1597,8 @@ void QgsSvgMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement &
   QDomElement graphicElem = doc.createElement( "se:Graphic" );
   element.appendChild( graphicElem );
 
-  QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mPath, "image/svg+xml", mColor, mSize );
+  double size = QgsSymbolLayerV2Utils::rescaleUom( mSize, mSizeUnit, props );
+  QgsSymbolLayerV2Utils::externalGraphicToSld( doc, graphicElem, mPath, "image/svg+xml", mColor, size );
 
   // <Rotation>
   QString angleFunc;
@@ -1612,7 +1616,8 @@ void QgsSvgMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement &
   QgsSymbolLayerV2Utils::createRotationElement( doc, graphicElem, angleFunc );
 
   // <Displacement>
-  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, mOffset );
+  QPointF offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, offset );
 }
 
 QgsSymbolLayerV2* QgsSvgMarkerSymbolLayerV2::createFromSld( QDomElement &element )
@@ -2139,7 +2144,8 @@ void QgsFontMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement
 
   QString fontPath = QString( "ttf://%1" ).arg( mFontFamily );
   int markIndex = mChr.unicode();
-  QgsSymbolLayerV2Utils::externalMarkerToSld( doc, graphicElem, fontPath, "ttf", &markIndex, mColor, mSize );
+  double size = QgsSymbolLayerV2Utils::rescaleUom( mSize, mSizeUnit, props );
+  QgsSymbolLayerV2Utils::externalMarkerToSld( doc, graphicElem, fontPath, "ttf", &markIndex, mColor, size );
 
   // <Rotation>
   QString angleFunc;
@@ -2156,7 +2162,8 @@ void QgsFontMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElement
   QgsSymbolLayerV2Utils::createRotationElement( doc, graphicElem, angleFunc );
 
   // <Displacement>
-  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, mOffset );
+  QPointF offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+  QgsSymbolLayerV2Utils::createDisplacementElement( doc, graphicElem, offset );
 }
 
 QRectF QgsFontMarkerSymbolLayerV2::bounds( QPointF point, QgsSymbolV2RenderContext& context )
diff --git a/src/core/symbology-ng/qgspointdisplacementrenderer.cpp b/src/core/symbology-ng/qgspointdisplacementrenderer.cpp
index 093f7de..15c79af 100644
--- a/src/core/symbology-ng/qgspointdisplacementrenderer.cpp
+++ b/src/core/symbology-ng/qgspointdisplacementrenderer.cpp
@@ -88,7 +88,12 @@ QgsPointDisplacementRenderer* QgsPointDisplacementRenderer::clone() const
 
 void QgsPointDisplacementRenderer::toSld( QDomDocument& doc, QDomElement &element ) const
 {
-  mRenderer->toSld( doc, element );
+  toSld( doc, element, QgsStringMap() );
+}
+
+void QgsPointDisplacementRenderer::toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
+{
+  mRenderer->toSld( doc, element, props );
 }
 
 
diff --git a/src/core/symbology-ng/qgspointdisplacementrenderer.h b/src/core/symbology-ng/qgspointdisplacementrenderer.h
index e079ede..10dd03e 100644
--- a/src/core/symbology-ng/qgspointdisplacementrenderer.h
+++ b/src/core/symbology-ng/qgspointdisplacementrenderer.h
@@ -45,7 +45,10 @@ class CORE_EXPORT QgsPointDisplacementRenderer: public QgsFeatureRendererV2
 
     QgsPointDisplacementRenderer* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const override;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     /** Reimplemented from QgsFeatureRendererV2*/
     bool renderFeature( QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
diff --git a/src/core/symbology-ng/qgsrendererv2.cpp b/src/core/symbology-ng/qgsrendererv2.cpp
index f178c26..5021c84 100644
--- a/src/core/symbology-ng/qgsrendererv2.cpp
+++ b/src/core/symbology-ng/qgsrendererv2.cpp
@@ -335,10 +335,11 @@ QgsFeatureRendererV2* QgsFeatureRendererV2::loadSld( const QDomNode &node, QGis:
 
 QDomElement QgsFeatureRendererV2::writeSld( QDomDocument& doc, const QgsVectorLayer &layer ) const
 {
-  return writeSld( doc, layer.name() );
+  QgsStringMap props;
+  return writeSld( doc, layer.name(), props );
 }
 
-QDomElement QgsFeatureRendererV2::writeSld( QDomDocument& doc, const QString& styleName ) const
+QDomElement QgsFeatureRendererV2::writeSld( QDomDocument& doc, const QString& styleName, const QgsStringMap& props ) const
 {
   QDomElement userStyleElem = doc.createElement( "UserStyle" );
 
@@ -347,7 +348,7 @@ QDomElement QgsFeatureRendererV2::writeSld( QDomDocument& doc, const QString& st
   userStyleElem.appendChild( nameElem );
 
   QDomElement featureTypeStyleElem = doc.createElement( "se:FeatureTypeStyle" );
-  toSld( doc, featureTypeStyleElem );
+  toSld( doc, featureTypeStyleElem, props );
   userStyleElem.appendChild( featureTypeStyleElem );
 
   return userStyleElem;
diff --git a/src/core/symbology-ng/qgsrendererv2.h b/src/core/symbology-ng/qgsrendererv2.h
index 58716d3..df3bf4c 100644
--- a/src/core/symbology-ng/qgsrendererv2.h
+++ b/src/core/symbology-ng/qgsrendererv2.h
@@ -224,7 +224,13 @@ class CORE_EXPORT QgsFeatureRendererV2
     Q_DECL_DEPRECATED virtual QDomElement writeSld( QDomDocument& doc, const QgsVectorLayer &layer ) const;
     //! create the SLD UserStyle element following the SLD v1.1 specs with the given name
     //! @note added in 2.8
-    virtual QDomElement writeSld( QDomDocument& doc, const QString& styleName ) const;
+    virtual QDomElement writeSld( QDomDocument& doc, const QString& styleName ) const
+    {
+      return writeSld( doc, styleName, QgsStringMap() );
+    }
+    //! create the SLD UserStyle element following the SLD v1.1 specs with the given name
+    //! @note added in 2.14.8
+    virtual QDomElement writeSld( QDomDocument& doc, const QString& styleName, const QgsStringMap& props ) const;
 
     /** Create a new renderer according to the information contained in
      * the UserStyle element of a SLD style document
@@ -240,7 +246,15 @@ class CORE_EXPORT QgsFeatureRendererV2
 
     //! used from subclasses to create SLD Rule elements following SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const
-    { element.appendChild( doc.createComment( QString( "FeatureRendererV2 %1 not implemented yet" ).arg( type() ) ) ); }
+    {
+      toSld( doc, element, QgsStringMap() );
+    }
+    //! used from subclasses to create SLD Rule elements following SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
+    {
+      Q_UNUSED( props );
+      element.appendChild( doc.createComment( QString( "FeatureRendererV2 %1 not implemented yet" ).arg( type() ) ) );
+    }
 
     //! return a list of symbology items for the legend
     virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
diff --git a/src/core/symbology-ng/qgsrulebasedrendererv2.cpp b/src/core/symbology-ng/qgsrulebasedrendererv2.cpp
index 8d26e8e..ae97e19 100644
--- a/src/core/symbology-ng/qgsrulebasedrendererv2.cpp
+++ b/src/core/symbology-ng/qgsrulebasedrendererv2.cpp
@@ -320,39 +320,22 @@ QDomElement QgsRuleBasedRendererV2::Rule::save( QDomDocument& doc, QgsSymbolV2Ma
   return ruleElem;
 }
 
-void QgsRuleBasedRendererV2::Rule::toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const
+void QgsRuleBasedRendererV2::Rule::toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
 {
   // do not convert this rule if there are no symbols
   QgsRenderContext context;
   if ( symbols( context ).isEmpty() )
     return;
 
+  QgsStringMap locProps( props );
   if ( !mFilterExp.isEmpty() )
   {
-    if ( !props.value( "filter", "" ).isEmpty() )
-      props[ "filter" ] += " AND ";
-    props[ "filter" ] += mFilterExp;
+    if ( !locProps.value( "filter", "" ).isEmpty() )
+      locProps[ "filter" ] += " AND ";
+    locProps[ "filter" ] += mFilterExp;
   }
 
-  if ( mScaleMinDenom != 0 )
-  {
-    bool ok;
-    int parentScaleMinDenom = props.value( "scaleMinDenom", "0" ).toInt( &ok );
-    if ( !ok || parentScaleMinDenom <= 0 )
-      props[ "scaleMinDenom" ] = QString::number( mScaleMinDenom );
-    else
-      props[ "scaleMinDenom" ] = QString::number( qMax( parentScaleMinDenom, mScaleMinDenom ) );
-  }
-
-  if ( mScaleMaxDenom != 0 )
-  {
-    bool ok;
-    int parentScaleMaxDenom = props.value( "scaleMaxDenom", "0" ).toInt( &ok );
-    if ( !ok || parentScaleMaxDenom <= 0 )
-      props[ "scaleMaxDenom" ] = QString::number( mScaleMaxDenom );
-    else
-      props[ "scaleMaxDenom" ] = QString::number( qMin( parentScaleMaxDenom, mScaleMaxDenom ) );
-  }
+  QgsSymbolLayerV2Utils::mergeScaleDependencies( mScaleMinDenom, mScaleMaxDenom, locProps );
 
   if ( mSymbol )
   {
@@ -383,32 +366,20 @@ void QgsRuleBasedRendererV2::Rule::toSld( QDomDocument& doc, QDomElement &elemen
       ruleElem.appendChild( descrElem );
     }
 
-    if ( !props.value( "filter", "" ).isEmpty() )
+    if ( !locProps.value( "filter", "" ).isEmpty() )
     {
-      QgsSymbolLayerV2Utils::createFunctionElement( doc, ruleElem, props.value( "filter", "" ) );
+      QgsSymbolLayerV2Utils::createFunctionElement( doc, ruleElem, locProps.value( "filter", "" ) );
     }
 
-    if ( !props.value( "scaleMinDenom", "" ).isEmpty() )
-    {
-      QDomElement scaleMinDenomElem = doc.createElement( "se:MinScaleDenominator" );
-      scaleMinDenomElem.appendChild( doc.createTextNode( props.value( "scaleMinDenom", "" ) ) );
-      ruleElem.appendChild( scaleMinDenomElem );
-    }
-
-    if ( !props.value( "scaleMaxDenom", "" ).isEmpty() )
-    {
-      QDomElement scaleMaxDenomElem = doc.createElement( "se:MaxScaleDenominator" );
-      scaleMaxDenomElem.appendChild( doc.createTextNode( props.value( "scaleMaxDenom", "" ) ) );
-      ruleElem.appendChild( scaleMaxDenomElem );
-    }
+    QgsSymbolLayerV2Utils::applyScaleDependency( doc, ruleElem, locProps );
 
-    mSymbol->toSld( doc, ruleElem, props );
+    mSymbol->toSld( doc, ruleElem, locProps );
   }
 
   // loop into childern rule list
   Q_FOREACH ( Rule* rule, mChildren )
   {
-    rule->toSld( doc, element, props );
+    rule->toSld( doc, element, locProps );
   }
 }
 
@@ -959,7 +930,12 @@ QgsRuleBasedRendererV2* QgsRuleBasedRendererV2::clone() const
 
 void QgsRuleBasedRendererV2::toSld( QDomDocument& doc, QDomElement &element ) const
 {
-  mRootRule->toSld( doc, element, QgsStringMap() );
+  toSld( doc, element, QgsStringMap() );
+}
+
+void QgsRuleBasedRendererV2::toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
+{
+  mRootRule->toSld( doc, element, props );
 }
 
 // TODO: ideally this function should be removed in favor of legendSymbol(ogy)Items
diff --git a/src/core/symbology-ng/qgsrulebasedrendererv2.h b/src/core/symbology-ng/qgsrulebasedrendererv2.h
index f60a40b..bc52531 100644
--- a/src/core/symbology-ng/qgsrulebasedrendererv2.h
+++ b/src/core/symbology-ng/qgsrulebasedrendererv2.h
@@ -246,7 +246,12 @@ class CORE_EXPORT QgsRuleBasedRendererV2 : public QgsFeatureRendererV2
         //! clone this rule, return new instance
         Rule* clone() const;
 
-        void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
+        /** Creates a DOM element representing the rule in SLD format.
+         * @param doc DOM document
+         * @param element destination DOM element
+         * @param props graduated renderer properties
+         */
+        void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const;
         static Rule* createFromSld( QDomElement& element, QGis::GeometryType geomType );
 
         QDomElement save( QDomDocument& doc, QgsSymbolV2Map& symbolMap ) const;
@@ -424,7 +429,10 @@ class CORE_EXPORT QgsRuleBasedRendererV2 : public QgsFeatureRendererV2
 
     virtual QgsRuleBasedRendererV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const override;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     static QgsFeatureRendererV2* createFromSld( QDomElement& element, QGis::GeometryType geomType );
 
diff --git a/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp b/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
index 1d4d089..734b28a 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
@@ -207,12 +207,16 @@ QgsSingleSymbolRendererV2* QgsSingleSymbolRendererV2::clone() const
 
 void QgsSingleSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element ) const
 {
-  QgsStringMap props;
-  QString errorMsg;
+  toSld( doc, element, QgsStringMap() );
+}
+
+void QgsSingleSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const
+{
+  QgsStringMap locProps( props );
   if ( mRotation.data() )
-    props[ "angle" ] = mRotation->expression();
+    locProps[ "angle" ] = mRotation->expression();
   if ( mSizeScale.data() )
-    props[ "scale" ] = mSizeScale->expression();
+    locProps[ "scale" ] = mSizeScale->expression();
 
   QDomElement ruleElem = doc.createElement( "se:Rule" );
   element.appendChild( ruleElem );
@@ -221,7 +225,9 @@ void QgsSingleSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element )
   nameElem.appendChild( doc.createTextNode( "Single symbol" ) );
   ruleElem.appendChild( nameElem );
 
-  if ( mSymbol.data() ) mSymbol->toSld( doc, ruleElem, props );
+  QgsSymbolLayerV2Utils::applyScaleDependency( doc, ruleElem, locProps );
+
+  if ( mSymbol.data() ) mSymbol->toSld( doc, ruleElem, locProps );
 }
 
 QgsSymbolV2List QgsSingleSymbolRendererV2::symbols( QgsRenderContext &context )
diff --git a/src/core/symbology-ng/qgssinglesymbolrendererv2.h b/src/core/symbology-ng/qgssinglesymbolrendererv2.h
index 4edeadc..4e1d4a0 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.h
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.h
@@ -58,7 +58,10 @@ class CORE_EXPORT QgsSingleSymbolRendererV2 : public QgsFeatureRendererV2
 
     virtual QgsSingleSymbolRendererV2* clone() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument& doc, QDomElement &element ) const override;
+    //! Writes the SLD element following the SLD v1.1 specs
+    virtual void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
     static QgsFeatureRendererV2* createFromSld( QDomElement& element, QGis::GeometryType geomType );
 
     //! returns bitwise OR-ed capabilities of the renderer
diff --git a/src/core/symbology-ng/qgssymbollayerv2.h b/src/core/symbology-ng/qgssymbollayerv2.h
index be260d3..2ea804f 100644
--- a/src/core/symbology-ng/qgssymbollayerv2.h
+++ b/src/core/symbology-ng/qgssymbollayerv2.h
@@ -89,6 +89,7 @@ class CORE_EXPORT QgsSymbolLayerV2
      */
     virtual QgsSymbolLayerV2* clone() const = 0;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const
     { Q_UNUSED( props ); element.appendChild( doc.createComment( QString( "SymbolLayerV2 %1 not implemented yet" ).arg( layerType() ) ) ); }
 
@@ -429,6 +430,7 @@ class CORE_EXPORT QgsMarkerSymbolLayerV2 : public QgsSymbolLayerV2
     void setOffset( QPointF offset ) { mOffset = offset; }
     QPointF offset() const { return mOffset; }
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     virtual void writeSldMarker( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const
diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.cpp b/src/core/symbology-ng/qgssymbollayerv2utils.cpp
index 9c70f30..f5da116 100644
--- a/src/core/symbology-ng/qgssymbollayerv2utils.cpp
+++ b/src/core/symbology-ng/qgssymbollayerv2utils.cpp
@@ -454,7 +454,7 @@ QString QgsSymbolLayerV2Utils::encodeSldUom( QgsSymbolV2::OutputUnit unit, doubl
       // pixel is the SLD default uom. The "standardized rendering pixel
       // size" is defined to be 0.28mm × 0.28mm (millimeters).
       if ( scaleFactor )
-        *scaleFactor = 0.28;  // from millimeters to pixels
+        *scaleFactor = 1 / 0.28;  // from millimeters to pixels
 
       // http://www.opengeospatial.org/sld/units/pixel
       return QString();
@@ -2307,7 +2307,7 @@ void QgsSymbolLayerV2Utils::createRotationElement( QDomDocument &doc, QDomElemen
   if ( !rotationFunc.isEmpty() )
   {
     QDomElement rotationElem = doc.createElement( "se:Rotation" );
-    createFunctionElement( doc, rotationElem, rotationFunc );
+    createExpressionElement( doc, rotationElem, rotationFunc );
     element.appendChild( rotationElem );
   }
 }
@@ -2328,7 +2328,7 @@ void QgsSymbolLayerV2Utils::createOpacityElement( QDomDocument &doc, QDomElement
   if ( !alphaFunc.isEmpty() )
   {
     QDomElement opacityElem = doc.createElement( "se:Opacity" );
-    createFunctionElement( doc, opacityElem, alphaFunc );
+    createExpressionElement( doc, opacityElem, alphaFunc );
     element.appendChild( opacityElem );
   }
 }
@@ -2532,7 +2532,7 @@ void QgsSymbolLayerV2Utils::createGeometryElement( QDomDocument &doc, QDomElemen
    * like offset, centroid, ...
    */
 
-  createFunctionElement( doc, geometryElem, geomFunc );
+  createExpressionElement( doc, geometryElem, geomFunc );
 }
 
 bool QgsSymbolLayerV2Utils::geometryFromSldElement( QDomElement &element, QString &geomFunc )
@@ -2544,6 +2544,21 @@ bool QgsSymbolLayerV2Utils::geometryFromSldElement( QDomElement &element, QStrin
   return functionFromSldElement( geometryElem, geomFunc );
 }
 
+bool QgsSymbolLayerV2Utils::createExpressionElement( QDomDocument &doc, QDomElement &element, const QString& function )
+{
+  // let's use QgsExpression to generate the SLD for the function
+  QgsExpression expr( function );
+  if ( expr.hasParserError() )
+  {
+    element.appendChild( doc.createComment( "Parser Error: " + expr.parserErrorString() + " - Expression was: " + function ) );
+    return false;
+  }
+  QDomElement filterElem = QgsOgcUtils::expressionToOgcExpression( expr, doc );
+  if ( !filterElem.isNull() )
+    element.appendChild( filterElem );
+  return true;
+}
+
 bool QgsSymbolLayerV2Utils::createFunctionElement( QDomDocument &doc, QDomElement &element, const QString& function )
 {
   // let's use QgsExpression to generate the SLD for the function
@@ -4028,3 +4043,120 @@ QList<double> QgsSymbolLayerV2Utils::prettyBreaks( double minimum, double maximu
 
   return breaks;
 }
+
+double QgsSymbolLayerV2Utils::rescaleUom( double size, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props )
+{
+  double scale = 1;
+  bool roundToUnit = false;
+  if ( unit == QgsSymbolV2::Mixed )
+  {
+    if ( props.contains( "uomScale" ) )
+    {
+      bool ok;
+      scale = props.value( "uomScale" ).toDouble( &ok );
+      if ( !ok )
+      {
+        return size;
+      }
+    }
+  }
+  else
+  {
+    if ( props.value( "uom" ) == "http://www.opengeospatial.org/se/units/metre" )
+    {
+      switch ( unit )
+      {
+        case QgsSymbolV2::MM:
+          scale = 0.001;
+          break;
+        case QgsSymbolV2::Pixel:
+          scale = 0.00028;
+          roundToUnit = true;
+          break;
+        default:
+          scale = 1;
+      }
+    }
+    else
+    {
+      // target is pixels
+      switch ( unit )
+      {
+        case QgsSymbolV2::MM:
+          scale = 1 / 0.28;
+          roundToUnit = true;
+          break;
+          // we don't have a good case for map units, as pixel values won't change based on zoom
+        default:
+          scale = 1;
+      }
+    }
+
+  }
+  double rescaled = size * scale;
+  // round to unit if the result is pixels to avoid a weird looking SLD (people often think
+  // of pixels as integers, even if SLD allows for float values in there
+  if ( roundToUnit )
+  {
+    rescaled = qRound( rescaled );
+  }
+  return rescaled;
+}
+
+QPointF QgsSymbolLayerV2Utils::rescaleUom( const QPointF& point, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props )
+{
+  double x = rescaleUom( point.x(), unit, props );
+  double y = rescaleUom( point.y(), unit, props );
+  return QPointF( x, y );
+}
+
+QVector<qreal> QgsSymbolLayerV2Utils::rescaleUom( const QVector<qreal>& array, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props )
+{
+  QVector<qreal> result;
+  QVector<qreal>::const_iterator it = array.constBegin();
+  for ( ; it != array.constEnd(); ++it )
+  {
+    result.append( rescaleUom( *it, unit, props ) );
+  }
+  return result;
+}
+
+void QgsSymbolLayerV2Utils::applyScaleDependency( QDomDocument& doc, QDomElement& ruleElem, const QgsStringMap& props )
+{
+  if ( !props.value( "scaleMinDenom", "" ).isEmpty() )
+  {
+    QDomElement scaleMinDenomElem = doc.createElement( "se:MinScaleDenominator" );
+    scaleMinDenomElem.appendChild( doc.createTextNode( props.value( "scaleMinDenom", "" ) ) );
+    ruleElem.appendChild( scaleMinDenomElem );
+  }
+
+  if ( !props.value( "scaleMaxDenom", "" ).isEmpty() )
+  {
+    QDomElement scaleMaxDenomElem = doc.createElement( "se:MaxScaleDenominator" );
+    scaleMaxDenomElem.appendChild( doc.createTextNode( props.value( "scaleMaxDenom", "" ) ) );
+    ruleElem.appendChild( scaleMaxDenomElem );
+  }
+}
+
+void QgsSymbolLayerV2Utils::mergeScaleDependencies( int mScaleMinDenom, int mScaleMaxDenom, QgsStringMap& props )
+{
+  if ( mScaleMinDenom != 0 )
+  {
+    bool ok;
+    int parentScaleMinDenom = props.value( "scaleMinDenom", "0" ).toInt( &ok );
+    if ( !ok || parentScaleMinDenom <= 0 )
+      props[ "scaleMinDenom" ] = QString::number( mScaleMinDenom );
+    else
+      props[ "scaleMinDenom" ] = QString::number( qMax( parentScaleMinDenom, mScaleMinDenom ) );
+  }
+
+  if ( mScaleMaxDenom != 0 )
+  {
+    bool ok;
+    int parentScaleMaxDenom = props.value( "scaleMaxDenom", "0" ).toInt( &ok );
+    if ( !ok || parentScaleMaxDenom <= 0 )
+      props[ "scaleMaxDenom" ] = QString::number( mScaleMaxDenom );
+    else
+      props[ "scaleMaxDenom" ] = QString::number( qMin( parentScaleMaxDenom, mScaleMaxDenom ) );
+  }
+}
diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.h b/src/core/symbology-ng/qgssymbollayerv2utils.h
index 0bde831..0841935 100644
--- a/src/core/symbology-ng/qgssymbollayerv2utils.h
+++ b/src/core/symbology-ng/qgssymbollayerv2utils.h
@@ -256,6 +256,14 @@ class CORE_EXPORT QgsSymbolLayerV2Utils
     static void createGeometryElement( QDomDocument &doc, QDomElement &element, const QString& geomFunc );
     static bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
 
+    /**
+     * Creates a OGC Expression element based on the provided function expression
+     * @param doc The document owning the element
+     * @param element The element parent
+     * @param function The expression to be encoded
+     * @return
+     */
+    static bool createExpressionElement( QDomDocument &doc, QDomElement &element, const QString& function );
     static bool createFunctionElement( QDomDocument &doc, QDomElement &element, const QString& function );
     static bool functionFromSldElement( QDomElement &element, QString &function );
 
@@ -464,6 +472,36 @@ class CORE_EXPORT QgsSymbolLayerV2Utils
      */
     static QList<double> prettyBreaks( double minimum, double maximum, int classes );
 
+    /** Rescales the given size based on the uomScale found in the props, if any is found, otherwise
+     *  returns the value un-modified
+     * @note added in 2.14.8
+     */
+    static double rescaleUom( double size, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props );
+
+    /** Rescales the given point based on the uomScale found in the props, if any is found, otherwise
+     *  returns a copy of the original point
+     * @note added in 2.14.8
+     */
+    static QPointF rescaleUom( const QPointF& point, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props );
+
+    /** Rescales the given array based on the uomScale found in the props, if any is found, otherwise
+     *  returns a copy of the original point
+     * @note added in 2.14.8
+     */
+    static QVector<qreal> rescaleUom( const QVector<qreal>& array, QgsSymbolV2::OutputUnit unit, const QgsStringMap& props );
+
+    /**
+     * Checks if the properties contain scaleMinDenom and scaleMaxDenom, if available, they are added into the SE Rule element
+     * @note added in 2.14.8
+     */
+    static void applyScaleDependency( QDomDocument& doc, QDomElement& ruleElem, const QgsStringMap& props );
+
+    /**
+      * Merges the local scale limits, if any, with the ones already in the map, if any
+      * @note added in 2.14.8
+      */
+    static void mergeScaleDependencies( int mScaleMinDenom, int mScaleMaxDenom, QgsStringMap& props );
+
 };
 
 class QPolygonF;
diff --git a/src/core/symbology-ng/qgssymbolv2.cpp b/src/core/symbology-ng/qgssymbolv2.cpp
index 534fa43..aa3a84b 100644
--- a/src/core/symbology-ng/qgssymbolv2.cpp
+++ b/src/core/symbology-ng/qgssymbolv2.cpp
@@ -633,16 +633,17 @@ QString QgsSymbolV2::dump() const
   return s;
 }
 
-void QgsSymbolV2::toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const
+void QgsSymbolV2::toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap&  props ) const
 {
-  props[ "alpha" ] = QString::number( alpha() );
+  QgsStringMap locProps( props );
+  locProps[ "alpha" ] = QString::number( alpha() );
   double scaleFactor = 1.0;
-  props[ "uom" ] = QgsSymbolLayerV2Utils::encodeSldUom( outputUnit(), &scaleFactor );
-  props[ "uomScale" ] = ( !qgsDoubleNear( scaleFactor, 1.0 ) ? QString::number( scaleFactor ) : "" );
+  locProps[ "uom" ] = QgsSymbolLayerV2Utils::encodeSldUom( outputUnit(), &scaleFactor );
+  locProps[ "uomScale" ] = ( !qgsDoubleNear( scaleFactor, 1.0 ) ? qgsDoubleToString( scaleFactor ) : "" );
 
   for ( QgsSymbolLayerV2List::const_iterator it = mLayers.begin(); it != mLayers.end(); ++it )
   {
-    ( *it )->toSld( doc, element, props );
+    ( *it )->toSld( doc, element, locProps );
   }
 }
 
diff --git a/src/core/symbology-ng/qgssymbolv2.h b/src/core/symbology-ng/qgssymbolv2.h
index 1183290..1141836 100644
--- a/src/core/symbology-ng/qgssymbolv2.h
+++ b/src/core/symbology-ng/qgssymbolv2.h
@@ -188,7 +188,8 @@ class CORE_EXPORT QgsSymbolV2
 
     virtual QgsSymbolV2* clone() const = 0;
 
-    void toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const;
+    //! Writes the SLD element following the SLD v1.1 specs
+    void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap&  props ) const;
 
     QgsSymbolV2::OutputUnit outputUnit() const;
     void setOutputUnit( QgsSymbolV2::OutputUnit u );
diff --git a/src/core/symbology-ng/qgsvectorfieldsymbollayer.h b/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
index fe92f72..2b77f56 100644
--- a/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
+++ b/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
@@ -64,6 +64,7 @@ class CORE_EXPORT QgsVectorFieldSymbolLayer: public QgsMarkerSymbolLayerV2
     QgsVectorFieldSymbolLayer* clone() const override;
     QgsStringMap properties() const override;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     void toSld( QDomDocument& doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     void drawPreviewIcon( QgsSymbolV2RenderContext& context, QSize size ) override;
diff --git a/src/gui/editorwidgets/qgstexteditwrapper.cpp b/src/gui/editorwidgets/qgstexteditwrapper.cpp
index eb00b86..c258677 100644
--- a/src/gui/editorwidgets/qgstexteditwrapper.cpp
+++ b/src/gui/editorwidgets/qgstexteditwrapper.cpp
@@ -66,9 +66,19 @@ QVariant QgsTextEditWrapper::value() const
 
   QVariant res( v );
   if ( field().convertCompatible( res ) )
+  {
     return res;
+  }
+  else if ( field().type() == QVariant::String && field().length() > 0 )
+  {
+    // for string fields convertCompatible may return false due to field length limit - in this case just truncate
+    // input rather then discarding it entirely
+    return QVariant( v.left( field().length() ) );
+  }
   else
+  {
     return QVariant( field().type() );
+  }
 }
 
 QWidget* QgsTextEditWrapper::createWidget( QWidget* parent )
diff --git a/src/gui/effects/qgseffectstackpropertieswidget.cpp b/src/gui/effects/qgseffectstackpropertieswidget.cpp
index 7f6175f..b3f860e 100644
--- a/src/gui/effects/qgseffectstackpropertieswidget.cpp
+++ b/src/gui/effects/qgseffectstackpropertieswidget.cpp
@@ -129,8 +129,18 @@ QgsEffectStackPropertiesWidget::QgsEffectStackPropertiesWidget( QgsEffectStack *
 
   updateUi();
 
-  // set effect as active item in the tree
-  QModelIndex newIndex = mEffectsList->model()->index( 0, 0 );
+  // set first selected effect as active item in the tree
+  int initialRow = 0;
+  for ( int i = 0; i < stack->count(); ++i )
+  {
+    // list shows effects in opposite order to stack
+    if ( stack->effect( stack->count() - i - 1 )->enabled() )
+    {
+      initialRow = i;
+      break;
+    }
+  }
+  QModelIndex newIndex = mEffectsList->model()->index( initialRow, 0 );
   mEffectsList->setCurrentIndex( newIndex );
 }
 
diff --git a/src/gui/qgshtmlannotationitem.cpp b/src/gui/qgshtmlannotationitem.cpp
index 7a8e02c..9600173 100644
--- a/src/gui/qgshtmlannotationitem.cpp
+++ b/src/gui/qgshtmlannotationitem.cpp
@@ -191,42 +191,44 @@ void QgsHtmlAnnotationItem::readXML( const QDomDocument& doc, const QDomElement&
 
 void QgsHtmlAnnotationItem::setFeatureForMapPosition()
 {
-  if ( !mVectorLayer || !mMapCanvas )
+  QString newText;
+  if ( mVectorLayer && mMapCanvas )
   {
-    return;
-  }
+    double halfIdentifyWidth = QgsMapTool::searchRadiusMU( mMapCanvas );
+    QgsRectangle searchRect( mMapPosition.x() - halfIdentifyWidth, mMapPosition.y() - halfIdentifyWidth,
+                             mMapPosition.x() + halfIdentifyWidth, mMapPosition.y() + halfIdentifyWidth );
 
-  QSettings settings;
-  double halfIdentifyWidth = QgsMapTool::searchRadiusMU( mMapCanvas );
-  QgsRectangle searchRect( mMapPosition.x() - halfIdentifyWidth, mMapPosition.y() - halfIdentifyWidth,
-                           mMapPosition.x() + halfIdentifyWidth, mMapPosition.y() + halfIdentifyWidth );
+    QgsFeatureIterator fit = mVectorLayer->getFeatures( QgsFeatureRequest().setFilterRect( searchRect ).setFlags( QgsFeatureRequest::NoGeometry | QgsFeatureRequest::ExactIntersect ) );
 
-  QgsFeatureIterator fit = mVectorLayer->getFeatures( QgsFeatureRequest().setFilterRect( searchRect ).setFlags( QgsFeatureRequest::NoGeometry | QgsFeatureRequest::ExactIntersect ) );
+    QgsFeature currentFeature;
+    QgsFeatureId currentFeatureId = 0;
+    bool featureFound = false;
+
+    while ( fit.nextFeature( currentFeature ) )
+    {
+      currentFeatureId = currentFeature.id();
+      featureFound = true;
+      break;
+    }
 
-  QgsFeature currentFeature;
-  QgsFeatureId currentFeatureId = 0;
-  bool featureFound = false;
+    mHasAssociatedFeature = featureFound;
+    mFeatureId = currentFeatureId;
+    mFeature = currentFeature;
 
-  while ( fit.nextFeature( currentFeature ) )
+    QgsExpressionContext context;
+    context << QgsExpressionContextUtils::globalScope()
+    << QgsExpressionContextUtils::projectScope()
+    << QgsExpressionContextUtils::layerScope( mVectorLayer );
+    if ( mMapCanvas )
+      context.appendScope( QgsExpressionContextUtils::mapSettingsScope( mMapCanvas->mapSettings() ) );
+    context.setFeature( mFeature );
+    newText = QgsExpression::replaceExpressionText( mHtmlSource, &context );
+  }
+  else
   {
-    currentFeatureId = currentFeature.id();
-    featureFound = true;
-    break;
+    newText = mHtmlSource;
   }
-
-  mHasAssociatedFeature = featureFound;
-  mFeatureId = currentFeatureId;
-  mFeature = currentFeature;
-
-  QgsExpressionContext context;
-  context << QgsExpressionContextUtils::globalScope()
-  << QgsExpressionContextUtils::projectScope()
-  << QgsExpressionContextUtils::layerScope( mVectorLayer );
-  if ( mMapCanvas )
-    context.appendScope( QgsExpressionContextUtils::mapSettingsScope( mMapCanvas->mapSettings() ) );
-  context.setFeature( mFeature );
-  QString newtext = QgsExpression::replaceExpressionText( mHtmlSource, &context );
-  mWebView->setHtml( newtext );
+  mWebView->setHtml( newText );
 }
 
 void QgsHtmlAnnotationItem::updateVisibility()
diff --git a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
index 60e1a4b..a7c5b91 100644
--- a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
+++ b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
@@ -504,8 +504,6 @@ void QgsRuleBasedRendererV2Widget::countFeatures()
     countMap[rule].duplicateCount = 0;
   }
 
-  QgsFeatureIterator fit = mLayer->getFeatures( QgsFeatureRequest().setFlags( QgsFeatureRequest::NoGeometry ) );
-
   QgsRenderContext renderContext;
   renderContext.setRendererScale( 0 ); // ignore scale
 
@@ -527,6 +525,11 @@ void QgsRuleBasedRendererV2Widget::countFeatures()
   renderContext.setExpressionContext( context );
 
   mRenderer->startRender( renderContext, mLayer->fields() );
+  // QgsRuleBasedRenderer::filter must be called after startRender
+  QgsFeatureRequest req = QgsFeatureRequest().setFilterExpression( mRenderer->filter( mLayer->fields() ) );
+  req.setExpressionContext( context );
+  req.setSubsetOfAttributes( mRenderer->usedAttributes(), mLayer->fields() );
+  QgsFeatureIterator fit = mLayer->getFeatures( req );
 
   int nFeatures = mLayer->featureCount();
   QProgressDialog p( tr( "Calculating feature count." ), tr( "Abort" ), 0, nFeatures );
@@ -703,19 +706,18 @@ void QgsRendererRulePropsDialog::testFilter()
 
   QApplication::setOverrideCursor( Qt::WaitCursor );
 
-  QgsFeatureIterator fit = mLayer->getFeatures();
+  QgsFeatureRequest req = QgsFeatureRequest().setSubsetOfAttributes( QgsAttributeList() )
+                          .setFlags( QgsFeatureRequest::NoGeometry )
+                          .setFilterExpression( editFilter->text() )
+                          .setExpressionContext( context );
+
+  QgsFeatureIterator fit = mLayer->getFeatures( req );
 
   int count = 0;
   QgsFeature f;
   while ( fit.nextFeature( f ) )
   {
-    context.setFeature( f );
-
-    QVariant value = filter.evaluate( &context );
-    if ( value.toInt() != 0 )
-      count++;
-    if ( filter.hasEvalError() )
-      break;
+    count++;
   }
 
   QApplication::restoreOverrideCursor();
diff --git a/src/gui/symbology-ng/qgsstylev2managerdialog.cpp b/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
index 64b15b0..b520f42 100644
--- a/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
+++ b/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
@@ -1409,7 +1409,7 @@ void QgsStyleV2ManagerDialog::groupSelectedSymbols()
     QgsStyleV2::StyleEntity type = ( currentItemType() < 3 ) ? QgsStyleV2::SymbolEntity : QgsStyleV2::ColorrampEntity;
     if ( currentItemType() > 3 )
     {
-      QgsDebugMsg( "unknow entity type" );
+      QgsDebugMsg( "unknown entity type" );
       return;
     }
     int groupId = selectedItem->data().toInt();
diff --git a/src/plugins/dxf2shp_converter/dxflib/src/dl_entities.h b/src/plugins/dxf2shp_converter/dxflib/src/dl_entities.h
index dd2432d..654195b 100644
--- a/src/plugins/dxf2shp_converter/dxflib/src/dl_entities.h
+++ b/src/plugins/dxf2shp_converter/dxflib/src/dl_entities.h
@@ -697,7 +697,7 @@ struct DXFLIB_EXPORT DL_InsertData {
     double sz;
     /*! Rotation angle in degrees. */
     double angle;
-    /*! Number of colums if we insert an array of the block or 1. */
+    /*! Number of columns if we insert an array of the block or 1. */
     int cols;
     /*! Number of rows if we insert an array of the block or 1. */
     int rows;
diff --git a/src/plugins/evis/README.TXT b/src/plugins/evis/README.TXT
index 1b394de..a7852e1 100644
--- a/src/plugins/evis/README.TXT
+++ b/src/plugins/evis/README.TXT
@@ -7,7 +7,7 @@ This plugin was originally written and distributed by the Center for Biodiversit
 http://biodiversityinformatics.amnh.org/open_source/evis/
 eVis was contributed to the QGIS project on 2009-07-01.
 
-eVis was started in 2007 with QGIS v0.7.0. It was our first experience with QGIS and QT. Since its early beginings, the QGIS API has under gone many changes and advances, and as a result there are still some old ideas in this code and much room for improvement. Were we to start this plugin now, we would have done it quite differently! There is still much room for imporovement. We hope the QGIS community will find eVis useful and extend its capabilities to make it even more robust.
+eVis was started in 2007 with QGIS v0.7.0. It was our first experience with QGIS and QT. Since its early beginnings, the QGIS API has under gone many changes and advances, and as a result there are still some old ideas in this code and much room for improvement. Were we to start this plugin now, we would have done it quite differently! There is still much room for improvement. We hope the QGIS community will find eVis useful and extend its capabilities to make it even more robust.
 
 
 
diff --git a/src/plugins/interpolation/interpolator.qrc b/src/plugins/interpolation/interpolator.qrc
index 00ef6fa..4bbd237 100644
--- a/src/plugins/interpolation/interpolator.qrc
+++ b/src/plugins/interpolation/interpolator.qrc
@@ -1,6 +1,5 @@
 <RCC>
-    <qresource prefix="/" >
-        <file>options.png</file>
+    <qresource prefix="/">
         <file>raster-interpolate.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/interpolation/options.png b/src/plugins/interpolation/options.png
deleted file mode 100644
index 96ba433..0000000
Binary files a/src/plugins/interpolation/options.png and /dev/null differ
diff --git a/src/plugins/interpolation/qgsinterpolationdialogbase.ui b/src/plugins/interpolation/qgsinterpolationdialogbase.ui
index 5890189..1910d50 100644
--- a/src/plugins/interpolation/qgsinterpolationdialogbase.ui
+++ b/src/plugins/interpolation/qgsinterpolationdialogbase.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>772</width>
-    <height>382</height>
+    <width>858</width>
+    <height>389</height>
    </rect>
   </property>
   <property name="sizePolicy">
@@ -147,7 +147,7 @@
         </property>
         <property name="icon">
          <iconset resource="interpolator.qrc">
-          <normaloff>:/options.png</normaloff>:/options.png</iconset>
+          <normaloff>:/mActionOptions.svg</normaloff>:/mActionOptions.svg</iconset>
         </property>
        </widget>
       </item>
diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp
index ca97207..4ef0168 100644
--- a/src/providers/gdal/qgsgdalprovider.cpp
+++ b/src/providers/gdal/qgsgdalprovider.cpp
@@ -601,7 +601,7 @@ void QgsGdalProvider::readBlock( int theBandNo, QgsRectangle  const & theExtent,
   char *tmpBlock = ( char * )qgsMalloc( dataSize * tmpWidth * tmpHeight );
   if ( ! tmpBlock )
   {
-    QgsDebugMsg( QString( "Coudn't allocate temporary buffer of %1 bytes" ).arg( dataSize * tmpWidth * tmpHeight ) );
+    QgsDebugMsg( QString( "Couldn't allocate temporary buffer of %1 bytes" ).arg( dataSize * tmpWidth * tmpHeight ) );
     return;
   }
   GDALRasterBandH gdalBand = GDALGetRasterBand( mGdalDataset, theBandNo );
diff --git a/src/providers/ogr/qgsogrfeatureiterator.cpp b/src/providers/ogr/qgsogrfeatureiterator.cpp
index 70ea6f3..d5c45fd 100644
--- a/src/providers/ogr/qgsogrfeatureiterator.cpp
+++ b/src/providers/ogr/qgsogrfeatureiterator.cpp
@@ -418,8 +418,13 @@ bool QgsOgrFeatureIterator::readFeature( OGRFeatureH fet, QgsFeature& feature )
     else
       feature.setGeometry( nullptr );
 
-    if (( useIntersect && ( !feature.constGeometry() || !feature.constGeometry()->intersects( mRequest.filterRect() ) ) )
-        || ( geometryTypeFilter && ( !feature.constGeometry() || QgsOgrProvider::ogrWkbSingleFlatten(( OGRwkbGeometryType )feature.constGeometry()->wkbType() ) != mSource->mOgrGeometryTypeFilter ) ) )
+    if ( mSource->mOgrGeometryTypeFilter == wkbGeometryCollection &&
+         geom && wkbFlatten( OGR_G_GetGeometryType( geom ) ) == wkbGeometryCollection )
+    {
+      // OK
+    }
+    else if (( useIntersect && ( !feature.constGeometry() || !feature.constGeometry()->intersects( mRequest.filterRect() ) ) )
+             || ( geometryTypeFilter && ( !feature.constGeometry() || QgsOgrProvider::ogrWkbSingleFlatten(( OGRwkbGeometryType )feature.constGeometry()->wkbType() ) != mSource->mOgrGeometryTypeFilter ) ) )
     {
       OGR_F_Destroy( fet );
       return false;
@@ -463,7 +468,7 @@ QgsOgrFeatureSource::QgsOgrFeatureSource( const QgsOgrProvider* p )
   mEncoding = p->mEncoding; // no copying - this is a borrowed pointer from Qt
   mFields = p->mAttributeFields;
   mDriverName = p->ogrDriverName;
-  mOgrGeometryTypeFilter = wkbFlatten( p->mOgrGeometryTypeFilter );
+  mOgrGeometryTypeFilter = QgsOgrProvider::ogrWkbSingleFlatten( p->mOgrGeometryTypeFilter );
   QgsOgrConnPool::instance()->ref( mDataSource );
 }
 
diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp
index 2ecc723..850a5ab 100644
--- a/src/providers/ogr/qgsogrprovider.cpp
+++ b/src/providers/ogr/qgsogrprovider.cpp
@@ -154,7 +154,12 @@ void QgsOgrProvider::repack()
   // run REPACK on shape files
   QByteArray sql = QByteArray( "REPACK " ) + layerName;   // don't quote the layer name as it works with spaces in the name and won't work if the name is quoted
   QgsDebugMsg( QString( "SQL: %1" ).arg( FROM8( sql ) ) );
+  CPLErrorReset();
   OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, nullptr );
+  if ( CPLGetLastErrorType() != CE_None )
+  {
+    pushError( tr( "OGR[%1] error %2: %3" ).arg( CPLGetLastErrorType() ).arg( CPLGetLastErrorNo() ).arg( CPLGetLastErrorMsg() ) );
+  }
 
   if ( mFilePath.endsWith( ".shp", Qt::CaseInsensitive ) || mFilePath.endsWith( ".dbf", Qt::CaseInsensitive ) )
   {
@@ -280,6 +285,7 @@ QgsOgrProvider::QgsOgrProvider( QString const & uri )
     : QgsVectorDataProvider( uri )
     , ogrDataSource( nullptr )
     , mExtent( nullptr )
+    , mForceRecomputeExtent( false )
     , ogrLayer( nullptr )
     , ogrOrigLayer( nullptr )
     , mLayerIndex( 0 )
@@ -477,7 +483,7 @@ bool QgsOgrProvider::setSubsetString( const QString& theSQL, bool updateFeatureC
   loadFields();
   QgsDebugMsg( "Done checking validity" );
 
-  updateExtents();
+  invalidateCachedExtent( false );
 
   emit dataChanged();
 
@@ -877,6 +883,17 @@ QgsRectangle QgsOgrProvider::extent()
     // get the extent_ (envelope) of the layer
     QgsDebugMsg( "Starting get extent" );
 
+#if defined(GDAL_COMPUTE_VERSION) && GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(2,1,2)
+    if ( mForceRecomputeExtent && mValid && ogrDriverName == "GPKG" && ogrDataSource && ogrOrigLayer )
+    {
+      QByteArray layerName = OGR_FD_GetName( OGR_L_GetLayerDefn( ogrOrigLayer ) );
+      // works with unquoted layerName
+      QByteArray sql = QByteArray( "RECOMPUTE EXTENT ON " ) + layerName;
+      QgsDebugMsg( QString( "SQL: %1" ).arg( FROM8( sql ) ) );
+      OGR_DS_ExecuteSQL( ogrDataSource, sql.constData(), nullptr, nullptr );
+    }
+#endif
+
     // TODO: This can be expensive, do we really need it!
     if ( ogrLayer == ogrOrigLayer )
     {
@@ -920,6 +937,12 @@ QgsRectangle QgsOgrProvider::extent()
 
 void QgsOgrProvider::updateExtents()
 {
+  invalidateCachedExtent( true );
+}
+
+void QgsOgrProvider::invalidateCachedExtent( bool bForceRecomputeExtent )
+{
+  mForceRecomputeExtent = bForceRecomputeExtent;
   delete mExtent;
   mExtent = nullptr;
 }
@@ -1399,6 +1422,8 @@ bool QgsOgrProvider::changeGeometryValues( const QgsGeometryMap &geometry_map )
     }
     mShapefileMayBeCorrupted = true;
 
+    invalidateCachedExtent( true );
+
     OGR_F_Destroy( theOGRFeature );
   }
   QgsOgrConnPool::instance()->invalidateConnections( dataSourceUri() );
@@ -1468,7 +1493,7 @@ bool QgsOgrProvider::deleteFeatures( const QgsFeatureIds & id )
 
   clearMinMaxCache();
 
-  updateExtents();
+  invalidateCachedExtent( true );
 
   return returnvalue;
 }
@@ -2900,13 +2925,16 @@ void QgsOgrProvider::recalculateFeatureCount()
     setRelevantFields( ogrLayer, true, QgsAttributeList() );
     OGR_L_ResetReading( ogrLayer );
     OGRFeatureH fet;
+    const OGRwkbGeometryType flattenGeomTypeFilter =
+      QgsOgrProvider::ogrWkbSingleFlatten( mOgrGeometryTypeFilter );
     while (( fet = OGR_L_GetNextFeature( ogrLayer ) ) )
     {
       OGRGeometryH geom = OGR_F_GetGeometryRef( fet );
       if ( geom )
       {
         OGRwkbGeometryType gType = OGR_G_GetGeometryType( geom );
-        if ( gType == mOgrGeometryTypeFilter ) mFeaturesCounted++;
+        gType = QgsOgrProvider::ogrWkbSingleFlatten( gType );
+        if ( gType == flattenGeomTypeFilter ) mFeaturesCounted++;
       }
       OGR_F_Destroy( fet );
     }
@@ -3104,6 +3132,18 @@ void QgsOgrProvider::open( OpenMode mode )
     ogrLayer = ogrOrigLayer = nullptr;
     mValid = false;
 
+#if defined(GDAL_COMPUTE_VERSION)
+    // In the case where we deal with a shapefile, it is possible that it has
+    // pre-existing holes in the DBF (see #15407), so if using a GDAL version
+    // recent enough to have reliable packing, do a packing at the first edit
+    // action.
+    if ( ogrDriverName == "ESRI Shapefile"  &&
+         atoi( GDALVersionInfo( "VERSION_NUM" ) ) >= GDAL_COMPUTE_VERSION( 2, 1, 2 ) )
+    {
+      mShapefileMayBeCorrupted = true;
+    }
+#endif
+
     ogrDataSource = OGROpen( TO8F( mFilePath ), false, &ogrDriver );
 
     mWriteAccess = false;
@@ -3164,7 +3204,7 @@ void QgsOgrProvider::close()
   mValid = false;
   setProperty( "_debug_open_mode", "invalid" );
 
-  updateExtents();
+  invalidateCachedExtent( false );
 }
 
 void QgsOgrProvider::reloadData()
diff --git a/src/providers/ogr/qgsogrprovider.h b/src/providers/ogr/qgsogrprovider.h
index 690ba7a..b042fed 100644
--- a/src/providers/ogr/qgsogrprovider.h
+++ b/src/providers/ogr/qgsogrprovider.h
@@ -296,6 +296,9 @@ class QgsOgrProvider : public QgsVectorDataProvider
     /** Clean shapefile from features which are marked as deleted */
     void repack();
 
+    /** Invalidate extent and optionnaly force its low level recomputation */
+    void invalidateCachedExtent( bool bForceRecomputeExtent );
+
     enum OpenMode
     {
       OpenModeInitial,
@@ -314,6 +317,7 @@ class QgsOgrProvider : public QgsVectorDataProvider
     QgsFields mAttributeFields;
     OGRDataSourceH ogrDataSource;
     OGREnvelope* mExtent;
+    bool mForceRecomputeExtent;
 
     /** This member variable receives the same value as extent_
      in the method QgsOgrProvider::extent(). The purpose is to prevent a memory leak*/
diff --git a/src/providers/postgres/qgspostgresprovider.cpp b/src/providers/postgres/qgspostgresprovider.cpp
index 948275f..274c0b6 100644
--- a/src/providers/postgres/qgspostgresprovider.cpp
+++ b/src/providers/postgres/qgspostgresprovider.cpp
@@ -202,7 +202,7 @@ QgsPostgresProvider::QgsPostgresProvider( QString const & uri )
       QString delim;
       Q_FOREACH ( int idx, mPrimaryKeyAttrs )
       {
-        key += delim + quotedIdentifier( mAttributeFields.at( idx ).name() );
+        key += delim + mAttributeFields.at( idx ).name();
         delim = ',';
       }
     }
@@ -1309,56 +1309,73 @@ bool QgsPostgresProvider::determinePrimaryKey()
   return mValid;
 }
 
-void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
+/* static */
+QStringList QgsPostgresProvider::parseUriKey( const QString& key )
 {
-  QString primaryKey = mUri.keyColumn();
-  mPrimaryKeyType = pktUnknown;
+  if ( key.isEmpty() ) return QStringList();
 
-  if ( !primaryKey.isEmpty() )
-  {
-    QStringList cols;
+  QStringList cols;
 
-    // remove quotes from key list
-    if ( primaryKey.startsWith( '"' ) && primaryKey.endsWith( '"' ) )
+  // remove quotes from key list
+  if ( key.startsWith( '"' ) && key.endsWith( '"' ) )
+  {
+    int i = 1;
+    QString col;
+    while ( i < key.size() )
     {
-      int i = 1;
-      QString col;
-      while ( i < primaryKey.size() )
+      if ( key[i] == '"' )
       {
-        if ( primaryKey[i] == '"' )
+        if ( i + 1 < key.size() && key[i+1] == '"' )
         {
-          if ( i + 1 < primaryKey.size() && primaryKey[i+1] == '"' )
-          {
-            i++;
-          }
-          else
-          {
-            cols << col;
-            col = "";
+          i++;
+        }
+        else
+        {
+          cols << col;
+          col = "";
 
-            if ( ++i == primaryKey.size() )
-              break;
+          if ( ++i == key.size() )
+            break;
 
-            Q_ASSERT( primaryKey[i] == ',' );
-            i++;
-            Q_ASSERT( primaryKey[i] == '"' );
-            i++;
-            col = "";
-            continue;
-          }
+          Q_ASSERT( key[i] == ',' );
+          i++;
+          Q_ASSERT( key[i] == '"' );
+          i++;
+          col = "";
+          continue;
         }
-
-        col += primaryKey[i++];
       }
+
+      col += key[i++];
     }
-    else if ( primaryKey.contains( ',' ) )
-    {
-      cols = primaryKey.split( ',' );
-    }
-    else
+  }
+  else if ( key.contains( ',' ) )
+  {
+    cols = key.split( ',' );
+  }
+  else
+  {
+    cols << key;
+  }
+
+  return cols;
+}
+
+void QgsPostgresProvider::determinePrimaryKeyFromUriKeyColumn()
+{
+  QString primaryKey = mUri.keyColumn();
+  mPrimaryKeyType = pktUnknown;
+
+  if ( !primaryKey.isEmpty() )
+  {
+    QStringList cols = parseUriKey( primaryKey );
+
+    primaryKey = "";
+    QString del = "";
+    Q_FOREACH ( const QString& col, cols )
     {
-      cols << primaryKey;
-      primaryKey = quotedIdentifier( primaryKey );
+      primaryKey += del + quotedIdentifier( col );
+      del = ",";
     }
 
     Q_FOREACH ( const QString& col, cols )
@@ -3313,6 +3330,9 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
   QString primaryKey = dsUri.keyColumn();
   QString primaryKeyType;
 
+  QStringList pkList;
+  QStringList pkType;
+
   QString schemaTableName = "";
   if ( !schemaName.isEmpty() )
   {
@@ -3353,45 +3373,39 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
   }
   else
   {
-    // search for the passed field
-    for ( int fldIdx = 0; fldIdx < fields.count(); ++fldIdx )
+    pkList = parseUriKey( primaryKey );
+    Q_FOREACH ( const QString& col, pkList )
     {
-      if ( fields[fldIdx].name() == primaryKey )
+      // search for the passed field
+      QString type;
+      for ( int fldIdx = 0; fldIdx < fields.count(); ++fldIdx )
       {
-        // found, get the field type
-        QgsField fld = fields[fldIdx];
-        if ( convertField( fld, options ) )
+        if ( fields[fldIdx].name() == col )
         {
-          primaryKeyType = fld.typeName();
+          // found, get the field type
+          QgsField fld = fields[fldIdx];
+          if ( convertField( fld, options ) )
+          {
+            type = fld.typeName();
+            break;
+          }
         }
       }
-    }
-  }
-
-  // if the pk field doesn't exist yet, create a serial pk field
-  // as it's autoincremental
-  if ( primaryKeyType.isEmpty() )
-  {
-    primaryKeyType = "serial";
-#if 0
-    // TODO: check the feature count to choose if create a serial8 pk field
-    if ( layer->featureCount() > 0xffffffff )
-    {
-      primaryKeyType = "serial8";
-    }
-#endif
-  }
-  else
-  {
-    // if the pk field's type is one of the postgres integer types,
-    // use the equivalent autoincremental type (serialN)
-    if ( primaryKeyType == "int2" || primaryKeyType == "int4" )
-    {
-      primaryKeyType = "serial";
-    }
-    else if ( primaryKeyType == "int8" )
-    {
-      primaryKeyType = "serial8";
+      if ( type.isEmpty() ) type = "serial";
+      else
+      {
+        // if the pk field's type is one of the postgres integer types,
+        // use the equivalent autoincremental type (serialN)
+        if ( primaryKeyType == "int2" || primaryKeyType == "int4" )
+        {
+          primaryKeyType = "serial";
+        }
+        else if ( primaryKeyType == "int8" )
+        {
+          primaryKeyType = "serial8";
+        }
+      }
+      pkType << type;
     }
   }
 
@@ -3427,17 +3441,32 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
         throw PGException( result );
     }
 
-    if ( options && options->value( "lowercaseFieldNames", false ).toBool() )
+    sql = QString( "CREATE TABLE %1(" ) .arg( schemaTableName );
+    QString pk;
+    for ( int i = 0; i < pkList.size(); ++i )
     {
-      //convert primary key name to lowercase
-      //this must happen after determining the field type of the primary key
-      primaryKey = primaryKey.toLower();
-    }
+      QString col = pkList[i];
+      const QString& type = pkType[i];
 
-    sql = QString( "CREATE TABLE %1(%2 %3 PRIMARY KEY)" )
-          .arg( schemaTableName,
-                quotedIdentifier( primaryKey ),
-                primaryKeyType );
+      if ( options && options->value( "lowercaseFieldNames", false ).toBool() )
+      {
+        col = col.toLower();
+      }
+      else
+      {
+        col = quotedIdentifier( col ); // no need to quote lowercase field
+      }
+
+      if ( i )
+      {
+        pk  += ",";
+        sql += ",";
+      }
+
+      pk += col;
+      sql += col + " " + type;
+    }
+    sql += QString( ", PRIMARY KEY (%1) )" ) .arg( pk );
 
     result = conn->PQexec( sql );
     if ( result.PQresultStatus() != PGRES_COMMAND_OK )
@@ -3528,9 +3557,25 @@ QgsVectorLayerImport::ImportError QgsPostgresProvider::createEmptyLayer(
         fld.setName( fld.name().toLower() );
       }
 
-      if ( fld.name() == primaryKey )
+      int pkIdx = -1;
+      for ( int i = 0; i < pkList.size(); ++i )
+      {
+        QString col = pkList[i];
+        if ( options && options->value( "lowercaseFieldNames", false ).toBool() )
+        {
+          //convert field name to lowercase (TODO: avoid doing this
+          //over and over)
+          col =  col.toLower();
+        }
+        if ( fld.name() == col )
+        {
+          pkIdx = i;
+          break;
+        }
+      }
+      if ( pkIdx >= 0 )
       {
-        oldToNewAttrIdxMap->insert( fldIdx, 0 );
+        oldToNewAttrIdxMap->insert( fldIdx, pkIdx );
         continue;
       }
 
diff --git a/src/providers/postgres/qgspostgresprovider.h b/src/providers/postgres/qgspostgresprovider.h
index 59f3b63..d3e66a5 100644
--- a/src/providers/postgres/qgspostgresprovider.h
+++ b/src/providers/postgres/qgspostgresprovider.h
@@ -119,6 +119,11 @@ class QgsPostgresProvider : public QgsVectorDataProvider
     static QString endianString();
 
     /**
+     * Returns a list of unquoted column names from an uri key
+     */
+    static QStringList parseUriKey( const QString& key );
+
+    /**
      * Changes the stored extent for this layer to the supplied extent.
      * For example, this is called when the extent worker thread has a result.
      */
@@ -132,11 +137,16 @@ class QgsPostgresProvider : public QgsVectorDataProvider
      */
     virtual void updateExtents() override;
 
-    /** Determine the fields making up the primary key
+    /**
+     * Determine the fields making up the primary key
      */
     bool determinePrimaryKey();
 
-    /** Determine the fields making up the primary key from the uri attribute keyColumn
+    /**
+     * Determine the fields making up the primary key from the uri attribute keyColumn
+     *
+     * Fills mPrimaryKeyType and mPrimaryKeyAttrs
+     * from mUri
      */
     void determinePrimaryKeyFromUriKeyColumn();
 
diff --git a/src/providers/wcs/qgswcsprovider.cpp b/src/providers/wcs/qgswcsprovider.cpp
index 7f79733..3e85ae3 100644
--- a/src/providers/wcs/qgswcsprovider.cpp
+++ b/src/providers/wcs/qgswcsprovider.cpp
@@ -185,7 +185,7 @@ QgsWcsProvider::QgsWcsProvider( QString const &uri )
     return;
   }
 
-  // Get small piece of coverage to find GDAL data type and nubmer of bands
+  // Get small piece of coverage to find GDAL data type and number of bands
   int bandNo = 0; // All bands
   int width;
   int height;
diff --git a/src/providers/wfs/qgswfsprovider.cpp b/src/providers/wfs/qgswfsprovider.cpp
index c1e842c..8adaf46 100644
--- a/src/providers/wfs/qgswfsprovider.cpp
+++ b/src/providers/wfs/qgswfsprovider.cpp
@@ -1355,7 +1355,7 @@ bool QgsWFSProvider::sendTransactionDocument( const QDomDocument& doc, QDomDocum
                                tr( "WFS" ) );
     return false;
   }
-  
+
   QgsDebugMsg( "WFS transaction: " + doc.toByteArray( ) );
 
   connect( reply, SIGNAL( finished() ), this, SLOT( networkRequestFinished() ) );
diff --git a/src/providers/wms/qgswmscapabilities.cpp b/src/providers/wms/qgswmscapabilities.cpp
index 2ae3ab9..0030f56 100644
--- a/src/providers/wms/qgswmscapabilities.cpp
+++ b/src/providers/wms/qgswmscapabilities.cpp
@@ -2010,8 +2010,8 @@ void QgsWmsCapabilitiesDownload::capabilitiesReplyFinished()
 
           QgsDebugMsg( QString( "redirected getcapabilities: %1 forceRefresh=%2" ).arg( redirect.toString() ).arg( mForceRefresh ) );
           mCapabilitiesReply = QgsNetworkAccessManager::instance()->get( request );
-          
-		  if ( !mAuth.setAuthorizationReply( mCapabilitiesReply ) )
+
+          if ( !mAuth.setAuthorizationReply( mCapabilitiesReply ) )
           {
             mHttpCapabilitiesResponse.clear();
             mCapabilitiesReply->deleteLater();
@@ -2021,8 +2021,8 @@ void QgsWmsCapabilitiesDownload::capabilitiesReplyFinished()
             emit downloadFinished();
             return;
           }
-		  
-		  connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ), Qt::DirectConnection );
+
+          connect( mCapabilitiesReply, SIGNAL( finished() ), this, SLOT( capabilitiesReplyFinished() ), Qt::DirectConnection );
           connect( mCapabilitiesReply, SIGNAL( downloadProgress( qint64, qint64 ) ), this, SLOT( capabilitiesReplyProgress( qint64, qint64 ) ), Qt::DirectConnection );
           return;
         }
diff --git a/src/server/qgsconfigparserutils.cpp b/src/server/qgsconfigparserutils.cpp
index be8647e..b73d5b7 100644
--- a/src/server/qgsconfigparserutils.cpp
+++ b/src/server/qgsconfigparserutils.cpp
@@ -193,7 +193,15 @@ void QgsConfigParserUtils::appendLayerBoundingBox( QDomElement& layerElem, QDomD
   if ( !layerExtent.isNull() )
   {
     QgsCoordinateTransform crsTransform( layerCRS, crs );
-    crsExtent = crsTransform.transformBoundingBox( layerExtent );
+    try
+    {
+      crsExtent = crsTransform.transformBoundingBox( layerExtent );
+    }
+    catch ( QgsCsException &cse )
+    {
+      Q_UNUSED( cse );
+      return;
+    }
   }
 
   //BoundingBox element
diff --git a/src/server/qgshostedrdsbuilder.cpp b/src/server/qgshostedrdsbuilder.cpp
index 6a3f181..acba4e6 100644
--- a/src/server/qgshostedrdsbuilder.cpp
+++ b/src/server/qgshostedrdsbuilder.cpp
@@ -59,7 +59,7 @@ QgsMapLayer* QgsHostedRDSBuilder::createMapLayer( const QDomElement& elem,
     QgsRasterLayer* rl = nullptr;
     if ( allowCaching )
     {
-      rl = dynamic_cast<QgsRasterLayer*>( QgsMSLayerCache::instance()->searchLayer( uri, layerName ) );
+      rl = qobject_cast<QgsRasterLayer*>( QgsMSLayerCache::instance()->searchLayer( uri, layerName ) );
     }
     if ( !rl )
     {
diff --git a/src/server/qgsowsserver.cpp b/src/server/qgsowsserver.cpp
index 3532698..5768aa0 100644
--- a/src/server/qgsowsserver.cpp
+++ b/src/server/qgsowsserver.cpp
@@ -25,7 +25,7 @@
 /** Apply filter from AccessControl */
 void QgsOWSServer::applyAccessControlLayerFilters( QgsMapLayer* mapLayer, QHash<QgsMapLayer*, QString>& originalLayerFilters ) const
 {
-  if ( QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( mapLayer ) )
+  if ( QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( mapLayer ) )
   {
     QString sql = mAccessControl->extraSubsetString( layer );
     if ( !sql.isEmpty() )
@@ -54,7 +54,7 @@ void QgsOWSServer::restoreLayerFilters( const QHash<QgsMapLayer*, QString>& filt
   QHash<QgsMapLayer*, QString>::const_iterator filterIt = filterMap.constBegin();
   for ( ; filterIt != filterMap.constEnd(); ++filterIt )
   {
-    QgsVectorLayer* filteredLayer = dynamic_cast<QgsVectorLayer*>( filterIt.key() );
+    QgsVectorLayer* filteredLayer = qobject_cast<QgsVectorLayer*>( filterIt.key() );
     if ( filteredLayer )
     {
       QgsVectorDataProvider* dp = filteredLayer->dataProvider();
diff --git a/src/server/qgsremoteowsbuilder.cpp b/src/server/qgsremoteowsbuilder.cpp
index af34c95..c03676c 100644
--- a/src/server/qgsremoteowsbuilder.cpp
+++ b/src/server/qgsremoteowsbuilder.cpp
@@ -160,7 +160,7 @@ QgsRasterLayer* QgsRemoteOWSBuilder::wmsLayerFromUrl( const QString& url, const
 
   if ( allowCaching )
   {
-    result = dynamic_cast<QgsRasterLayer*>( QgsMSLayerCache::instance()->searchLayer( url, layerName ) );
+    result = qobject_cast<QgsRasterLayer*>( QgsMSLayerCache::instance()->searchLayer( url, layerName ) );
   }
 
   if ( result )
@@ -403,7 +403,7 @@ QgsVectorLayer* QgsRemoteOWSBuilder::sosLayer( const QDomElement& remoteOWSElem,
   QgsVectorLayer* sosLayer = nullptr;
   if ( allowCaching )
   {
-    sosLayer = dynamic_cast<QgsVectorLayer*>( QgsMSLayerCache::instance()->searchLayer( providerUrl, layerName ) );
+    sosLayer = qobject_cast<QgsVectorLayer*>( QgsMSLayerCache::instance()->searchLayer( providerUrl, layerName ) );
     if ( sosLayer )
     {
       return sosLayer;
diff --git a/src/server/qgsserverlogger.cpp b/src/server/qgsserverlogger.cpp
index 3e8fb81..6e7edeb 100644
--- a/src/server/qgsserverlogger.cpp
+++ b/src/server/qgsserverlogger.cpp
@@ -38,6 +38,9 @@ QgsServerLogger::QgsServerLogger(): mLogFile( nullptr )
 {
   //logfile
   QString filePath = getenv( "QGIS_SERVER_LOG_FILE" );
+  if ( filePath.isEmpty() )
+    return;
+
   mLogFile.setFileName( filePath );
   if ( mLogFile.open( QIODevice::Append ) )
   {
diff --git a/src/server/qgsserverprojectparser.cpp b/src/server/qgsserverprojectparser.cpp
index 47559d1..f3807a0 100644
--- a/src/server/qgsserverprojectparser.cpp
+++ b/src/server/qgsserverprojectparser.cpp
@@ -25,6 +25,7 @@
 #include "qgsmaplayerregistry.h"
 #include "qgsmslayercache.h"
 #include "qgsrasterlayer.h"
+#include "qgsvectorlayerjoinbuffer.h"
 #include "qgseditorwidgetregistry.h"
 #include "qgslayertreegroup.h"
 
@@ -234,7 +235,12 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
     if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) )
       QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
     if ( layer->type() == QgsMapLayer::VectorLayer )
-      addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
+    {
+      QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer *>( layer );
+      addValueRelationLayersForLayer( vlayer );
+      QgsVectorLayerJoinBuffer* joinBuffer = vlayer->joinBuffer();
+      joinBuffer->readXml( const_cast<QDomElement&>( elem ) );
+    }
 
     return layer;
   }
@@ -287,7 +293,7 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
 
     if ( layer->type() == QgsMapLayer::VectorLayer )
     {
-      addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
+      addValueRelationLayersForLayer( qobject_cast<QgsVectorLayer *>( layer ) );
     }
   }
   return layer;
@@ -1535,7 +1541,7 @@ void QgsServerProjectParser::addJoinLayersForElement( const QDomElement& layerEl
   {
     QString id = joinNodeList.at( i ).toElement().attribute( "joinLayerId" );
     QgsMapLayer* layer = mapLayerFromLayerId( id );
-    if ( layer )
+    if ( layer && !QgsMapLayerRegistry::instance()->mapLayer( id ) )
     {
       QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
     }
diff --git a/src/server/qgsserverprojectparser.h b/src/server/qgsserverprojectparser.h
index f202726..da8b5d5 100644
--- a/src/server/qgsserverprojectparser.h
+++ b/src/server/qgsserverprojectparser.h
@@ -111,6 +111,7 @@ class SERVER_EXPORT QgsServerProjectParser
     QStringList wfsLayers() const;
     QStringList wcsLayers() const;
 
+    /** Add layers for vector joins */
     void addJoinLayersForElement( const QDomElement& layerElem ) const;
 
     void addValueRelationLayersForLayer( const QgsVectorLayer *vl ) const;
diff --git a/src/server/qgswcsprojectparser.cpp b/src/server/qgswcsprojectparser.cpp
index fe2f583..1fad06a 100644
--- a/src/server/qgswcsprojectparser.cpp
+++ b/src/server/qgswcsprojectparser.cpp
@@ -221,7 +221,7 @@ void QgsWCSProjectParser::describeCoverage( const QString& aCoveName, QDomElemen
     QString type = elem.attribute( "type" );
     if ( type == "raster" )
     {
-      QgsRasterLayer *rLayer = dynamic_cast<QgsRasterLayer *>( mProjectParser->createLayerFromElement( elem ) );
+      QgsRasterLayer *rLayer = qobject_cast<QgsRasterLayer *>( mProjectParser->createLayerFromElement( elem ) );
       if ( !rLayer )
         continue;
 
@@ -436,7 +436,7 @@ QList<QgsMapLayer*> QgsWCSProjectParser::mapLayerFromCoverage( const QString& cN
     if ( type == "raster" )
     {
       QgsMapLayer *mLayer = mProjectParser->createLayerFromElement( elem, useCache );
-      QgsRasterLayer* layer = dynamic_cast<QgsRasterLayer*>( mLayer );
+      QgsRasterLayer* layer = qobject_cast<QgsRasterLayer*>( mLayer );
       if ( !layer || !wcsLayersId.contains( layer->id() ) )
         return layerList;
 
diff --git a/src/server/qgswcsserver.cpp b/src/server/qgswcsserver.cpp
index dd1ff94..5a96924 100644
--- a/src/server/qgswcsserver.cpp
+++ b/src/server/qgswcsserver.cpp
@@ -377,7 +377,7 @@ QByteArray* QgsWCSServer::getCoverage()
   QgsRectangle rect( minx, miny, maxx, maxy );
 
   QgsMapLayer* layer = layerList.at( 0 );
-  QgsRasterLayer* rLayer = dynamic_cast<QgsRasterLayer*>( layer );
+  QgsRasterLayer* rLayer = qobject_cast<QgsRasterLayer*>( layer );
   if ( rLayer && wcsLayersId.contains( rLayer->id() ) )
   {
 #ifdef HAVE_SERVER_PYTHON_PLUGINS
diff --git a/src/server/qgswfsprojectparser.cpp b/src/server/qgswfsprojectparser.cpp
index c09c38b..b72db3a 100644
--- a/src/server/qgswfsprojectparser.cpp
+++ b/src/server/qgswfsprojectparser.cpp
@@ -346,7 +346,7 @@ void QgsWFSProjectParser::describeFeatureType( const QString& aTypeName, QDomEle
     if ( type == "vector" )
     {
       QgsMapLayer *mLayer = mProjectParser->createLayerFromElement( elem );
-      QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( mLayer );
+      QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( mLayer );
       if ( !layer )
         continue;
 
@@ -565,7 +565,7 @@ QList<QgsMapLayer*> QgsWFSProjectParser::mapLayerFromTypeName( const QString& aT
     if ( type == "vector" )
     {
       QgsMapLayer *mLayer = mProjectParser->createLayerFromElement( elem );
-      QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( mLayer );
+      QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( mLayer );
       if ( !layer )
         continue;
 
diff --git a/src/server/qgswfsserver.cpp b/src/server/qgswfsserver.cpp
index c598f53..a7773be 100644
--- a/src/server/qgswfsserver.cpp
+++ b/src/server/qgswfsserver.cpp
@@ -469,7 +469,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
       }
 
       currentLayer = layerList.at( 0 );
-      QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( currentLayer );
+      QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( currentLayer );
       if ( layer && wfsLayersId.contains( layer->id() ) )
       {
 #ifdef HAVE_SERVER_PYTHON_PLUGINS
@@ -864,7 +864,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
 
     currentLayer = layerList.at( 0 );
 
-    QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( currentLayer );
+    QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( currentLayer );
     if ( layer && wfsLayersId.contains( layer->id() ) )
     {
       expressionContext << QgsExpressionContextUtils::layerScope( layer );
diff --git a/src/server/qgswmsprojectparser.cpp b/src/server/qgswmsprojectparser.cpp
index ea47596..7d05d0e 100644
--- a/src/server/qgswmsprojectparser.cpp
+++ b/src/server/qgswmsprojectparser.cpp
@@ -503,19 +503,19 @@ QgsComposition* QgsWMSProjectParser::initComposition( const QString& composerTem
   QList<QgsComposerItem *>::iterator itemIt = itemList.begin();
   for ( ; itemIt != itemList.end(); ++itemIt )
   {
-    QgsComposerLabel* label = dynamic_cast< QgsComposerLabel *>( *itemIt );
+    QgsComposerLabel* label = qobject_cast< QgsComposerLabel *>( *itemIt );
     if ( label )
     {
       labelList.push_back( label );
       continue;
     }
-    QgsComposerMap* map = dynamic_cast< QgsComposerMap *>( *itemIt );
+    QgsComposerMap* map = qobject_cast< QgsComposerMap *>( *itemIt );
     if ( map )
     {
       mapList.push_back( map );
       continue;
     }
-    QgsComposerLegend* legend = dynamic_cast< QgsComposerLegend *>( *itemIt );
+    QgsComposerLegend* legend = qobject_cast< QgsComposerLegend *>( *itemIt );
     if ( legend )
     {
       QgsLegendModelV2* model = legend->modelV2();
@@ -567,7 +567,7 @@ QgsComposition* QgsWMSProjectParser::initComposition( const QString& composerTem
       legendList.push_back( legend );
       continue;
     }
-    QgsComposerPicture* pic = dynamic_cast< QgsComposerPicture *>( *itemIt );
+    QgsComposerPicture* pic = qobject_cast< QgsComposerPicture *>( *itemIt );
     if ( pic )
     {
       pic->setPicturePath( mProjectParser->convertToAbsolutePath(( pic )->picturePath() ) );
@@ -576,11 +576,11 @@ QgsComposition* QgsWMSProjectParser::initComposition( const QString& composerTem
 
     // an html item will be a composer frame and if it is we can try to get
     // its multiframe parent and then try to cast that to a composer html
-    const QgsComposerFrame* frame = dynamic_cast<const QgsComposerFrame *>( *itemIt );
+    const QgsComposerFrame* frame = qobject_cast<const QgsComposerFrame *>( *itemIt );
     if ( frame )
     {
       const QgsComposerMultiFrame * multiFrame = frame->multiFrame();
-      const QgsComposerHtml* composerHtml = dynamic_cast<const QgsComposerHtml *>( multiFrame );
+      const QgsComposerHtml* composerHtml = qobject_cast<const QgsComposerHtml *>( multiFrame );
       if ( composerHtml )
       {
         htmlList.push_back( composerHtml );
@@ -1332,7 +1332,7 @@ void QgsWMSProjectParser::addLayers( QDomDocument &doc,
       bool geometryLayer = true;
       if ( currentLayer->type() == QgsMapLayer::VectorLayer )
       {
-        QgsVectorLayer* vLayer = dynamic_cast<QgsVectorLayer*>( currentLayer );
+        QgsVectorLayer* vLayer = qobject_cast<QgsVectorLayer*>( currentLayer );
         if ( vLayer )
         {
           if ( vLayer->wkbType() == QGis::WKBNoGeometry )
@@ -1821,7 +1821,6 @@ QDomDocument QgsWMSProjectParser::getStyles( QStringList& layerList ) const
   // Create the root element
   QDomElement root = myDocument.createElementNS( "http://www.opengis.net/sld", "StyledLayerDescriptor" );
   root.setAttribute( "version", "1.1.0" );
-  root.setAttribute( "units", "mm" ); // default qgsmaprenderer is Millimeters
   root.setAttribute( "xsi:schemaLocation", "http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" );
   root.setAttribute( "xmlns:ogc", "http://www.opengis.net/ogc" );
   root.setAttribute( "xmlns:se", "http://www.opengis.net/se" );
@@ -1842,7 +1841,7 @@ QDomDocument QgsWMSProjectParser::getStyles( QStringList& layerList ) const
     for ( int j = 0; j < currentLayerList.size(); j++ )
     {
       QgsMapLayer* currentLayer = currentLayerList.at( j );
-      QgsVectorLayer* layer = dynamic_cast<QgsVectorLayer*>( currentLayer );
+      QgsVectorLayer* layer = qobject_cast<QgsVectorLayer*>( currentLayer );
       if ( !layer )
       {
         throw QgsMapServiceException( "Error", QString( "Could not get style because:\n%1" ).arg( "Non-vector layers not supported yet" ) );
diff --git a/src/server/qgswmsserver.cpp b/src/server/qgswmsserver.cpp
index cfcc29f..441fd77 100644
--- a/src/server/qgswmsserver.cpp
+++ b/src/server/qgswmsserver.cpp
@@ -939,6 +939,14 @@ QImage* QgsWMSServer::getLegendGraphics()
           legendNode->setUserLabel( " " ); // empty string = no override, so let's use one space
         }
       }
+      else if ( !mDrawLegendLayerLabel )
+      {
+        Q_FOREACH ( QgsLayerTreeModelLegendNode* legendNode, legendModel.layerLegendNodes( nodeLayer ) )
+        {
+          if ( legendNode->isEmbeddedInParent() )
+            legendNode->setEmbeddedInParent( false );
+        }
+      }
     }
   }
 
@@ -1731,7 +1739,7 @@ int QgsWMSServer::getFeatureInfo( QDomDocument& result, const QString& version )
       }
 
       //switch depending on vector or raster
-      QgsVectorLayer* vectorLayer = dynamic_cast<QgsVectorLayer*>( currentLayer );
+      QgsVectorLayer* vectorLayer = qobject_cast<QgsVectorLayer*>( currentLayer );
 
       QDomElement layerElement;
       if ( infoFormat.startsWith( "application/vnd.ogc.gml" ) )
@@ -1777,7 +1785,7 @@ int QgsWMSServer::getFeatureInfo( QDomDocument& result, const QString& version )
           getFeatureInfoElement.appendChild( layerElement );
         }
 
-        QgsRasterLayer* rasterLayer = dynamic_cast<QgsRasterLayer*>( currentLayer );
+        QgsRasterLayer* rasterLayer = qobject_cast<QgsRasterLayer*>( currentLayer );
         if ( rasterLayer )
         {
           if ( !infoPoint.data() )
@@ -2213,35 +2221,46 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
 #endif
 
   QgsFeatureIterator fit = layer->getFeatures( fReq );
+  QgsFeatureRendererV2* r2 = layer->rendererV2();
+  if ( r2 )
+  {
+    r2->startRender( renderContext, layer->pendingFields() );
+  }
 
   bool featureBBoxInitialized = false;
   while ( fit.nextFeature( feature ) )
   {
+    if ( layer->wkbType() == QGis::WKBNoGeometry && ! searchRect.isEmpty() )
+    {
+      break;
+    }
+
     ++featureCounter;
     if ( featureCounter > nFeatures )
     {
       break;
     }
 
-    QgsFeatureRendererV2* r2 = layer->rendererV2();
-    if ( !r2 )
+    if ( layer->wkbType() != QGis::WKBNoGeometry && ! searchRect.isEmpty() )
     {
-      continue;
-    }
+      if ( !r2 )
+      {
+        continue;
+      }
 
-    renderContext.expressionContext().setFeature( feature );
+      renderContext.expressionContext().setFeature( feature );
 
-    //check if feature is rendered at all
-    r2->startRender( renderContext, layer->pendingFields() );
-    bool renderV2 = r2->willRenderFeature( feature, renderContext );
-    r2->stopRender( renderContext );
-    if ( !renderV2 )
-    {
-      continue;
+
+      //check if feature is rendered at all
+      bool render = r2->willRenderFeature( feature, renderContext );
+      if ( !render )
+      {
+        continue;
+      }
     }
 
     QgsRectangle box;
-    if ( hasGeometry )
+    if ( layer->wkbType() != QGis::WKBNoGeometry && hasGeometry )
     {
       box = mapRender->layerExtentToOutputExtent( layer, feature.constGeometry()->boundingBox() );
       if ( featureBBox ) //extend feature info bounding box if requested
@@ -2335,7 +2354,7 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
       }
 
       //append feature bounding box to feature info xml
-      if ( hasGeometry && mapRender && mConfigParser )
+      if ( layer->wkbType() != QGis::WKBNoGeometry && hasGeometry && mapRender && mConfigParser )
       {
         QDomElement bBoxElem = infoDocument.createElement( "BoundingBox" );
         bBoxElem.setAttribute( version == "1.1.1" ? "SRS" : "CRS", outputCrs.authid() );
@@ -2347,7 +2366,7 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
       }
 
       //also append the wkt geometry as an attribute
-      if ( addWktGeometry && hasGeometry )
+      if ( layer->wkbType() != QGis::WKBNoGeometry && addWktGeometry && hasGeometry )
       {
         QgsGeometry *geom = feature.geometry();
         if ( geom )
@@ -2367,6 +2386,10 @@ int QgsWMSServer::featureInfoFromVectorLayer( QgsVectorLayer* layer,
       }
     }
   }
+  if ( r2 )
+  {
+    r2->stopRender( renderContext );
+  }
 
   return 0;
 }
@@ -2557,7 +2580,7 @@ void QgsWMSServer::applyRequestedLayerFilters( const QStringList& layerList , QH
 
       Q_FOREACH ( QgsMapLayer *filter, layersToFilter )
       {
-        QgsVectorLayer* filteredLayer = dynamic_cast<QgsVectorLayer*>( filter );
+        QgsVectorLayer* filteredLayer = qobject_cast<QgsVectorLayer*>( filter );
         if ( filteredLayer )
         {
           originalFilters.insert( filteredLayer, filteredLayer->subsetString() );
diff --git a/src/ui/composer/qgscomposerpicturewidgetbase.ui b/src/ui/composer/qgscomposerpicturewidgetbase.ui
index 4df6a8f..5133291 100644
--- a/src/ui/composer/qgscomposerpicturewidgetbase.ui
+++ b/src/ui/composer/qgscomposerpicturewidgetbase.ui
@@ -457,6 +457,16 @@
           <bool>false</bool>
          </property>
          <layout class="QGridLayout" name="gridLayout_2" columnstretch="0,1">
+          <item row="2" column="1">
+           <widget class="QComboBox" name="mNorthTypeComboBox"/>
+          </item>
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_7">
+            <property name="text">
+             <string>North alignment</string>
+            </property>
+           </widget>
+          </item>
           <item row="1" column="0">
            <widget class="QCheckBox" name="mRotationFromComposerMapCheckBox">
             <property name="text">
@@ -472,6 +482,29 @@
             <property name="suffix">
              <string> °</string>
             </property>
+            <property name="minimum">
+             <double>-360.000000000000000</double>
+            </property>
+            <property name="maximum">
+             <double>360.000000000000000</double>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QLabel" name="label_8">
+            <property name="text">
+             <string>Offset</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="1">
+           <widget class="QgsDoubleSpinBox" name="mPictureRotationOffsetSpinBox">
+            <property name="suffix">
+             <string> °</string>
+            </property>
+            <property name="minimum">
+             <double>-360.000000000000000</double>
+            </property>
             <property name="maximum">
              <double>360.000000000000000</double>
             </property>
diff --git a/src/ui/qgsunitselectionwidget.ui b/src/ui/qgsunitselectionwidget.ui
index 7545525..0560162 100644
--- a/src/ui/qgsunitselectionwidget.ui
+++ b/src/ui/qgsunitselectionwidget.ui
@@ -60,15 +60,15 @@
       <string notr="true"/>
      </property>
      <property name="icon">
-      <iconset resource="../plugins/interpolation/interpolator.qrc">
-       <normaloff>:/options.png</normaloff>:/options.png</iconset>
+      <iconset resource="../../images/images.qrc">
+       <normaloff>:/images/themes/default/mActionOptions.svg</normaloff>:/images/themes/default/mActionOptions.svg</iconset>
      </property>
     </widget>
    </item>
   </layout>
  </widget>
  <resources>
-  <include location="../plugins/interpolation/interpolator.qrc"/>
+  <include location="../../images/images.qrc"/>
  </resources>
  <connections/>
 </ui>
diff --git a/tests/src/core/testqgsexpression.cpp b/tests/src/core/testqgsexpression.cpp
index 7f54fa7..4d1127c 100644
--- a/tests/src/core/testqgsexpression.cpp
+++ b/tests/src/core/testqgsexpression.cpp
@@ -354,9 +354,13 @@ class TestQgsExpression: public QObject
 
       // regexp, like
       QTest::newRow( "like 1" ) << "'hello' like '%ll_'" << false << QVariant( 1 );
-      QTest::newRow( "like 2" ) << "'hello' like 'lo'" << false << QVariant( 0 );
-      QTest::newRow( "like 3" ) << "'hello' like '%LO'" << false << QVariant( 0 );
+      QTest::newRow( "like 2" ) << "'hello' like '_el%'" << false << QVariant( 1 );
+      QTest::newRow( "like 3" ) << "'hello' like 'lo'" << false << QVariant( 0 );
+      QTest::newRow( "like 4" ) << "'hello' like '%LO'" << false << QVariant( 0 );
       QTest::newRow( "ilike" ) << "'hello' ilike '%LO'" << false << QVariant( 1 );
+      // the \\\\ is like \\ in the interface
+      QTest::newRow( "like escape 1" ) << "'1%' like '1\\\\%'" << false << QVariant( 1 );
+      QTest::newRow( "like escape 2" ) << "'1_' like '1\\\\%'" << false << QVariant( 0 );
       QTest::newRow( "regexp 1" ) << "'hello' ~ 'll'" << false << QVariant( 1 );
       QTest::newRow( "regexp 2" ) << "'hello' ~ '^ll'" << false << QVariant( 0 );
       QTest::newRow( "regexp 3" ) << "'hello' ~ 'llo$'" << false << QVariant( 1 );
diff --git a/tests/src/core/testqgsogcutils.cpp b/tests/src/core/testqgsogcutils.cpp
index 569c70f..6d988e8 100644
--- a/tests/src/core/testqgsogcutils.cpp
+++ b/tests/src/core/testqgsogcutils.cpp
@@ -53,6 +53,14 @@ class TestQgsOgcUtils : public QObject
 
     void testExpressionToOgcFilter();
     void testExpressionToOgcFilter_data();
+
+    void testExpressionToOgcFilterWFS11();
+    void testExpressionToOgcFilterWFS11_data();
+
+#if QT_VERSION < 0x050000
+    void testExpressionToOgcFilterWFS20();
+    void testExpressionToOgcFilterWFS20_data();
+#endif
 };
 
 
@@ -81,12 +89,126 @@ void TestQgsOgcUtils::testGeometryFromGML()
   QVERIFY( geomBox->wkbType() == QGis::WKBPolygon );
 }
 
+static bool compareElements( QDomElement& element1, QDomElement& element2 )
+{
+  QString tag1 = element1.tagName();
+  tag1.replace( QRegExp( ".*:" ), "" );
+  QString tag2 = element2.tagName();
+  tag2.replace( QRegExp( ".*:" ), "" );
+  if ( tag1 != tag2 )
+  {
+    qDebug( "Different tag names: %s, %s", tag1.toAscii().data(), tag2.toAscii().data() );
+    return false ;
+  }
+
+  if ( element1.hasAttributes() != element2.hasAttributes() )
+  {
+    qDebug( "Different hasAttributes: %s, %s", tag1.toAscii().data(), tag2.toAscii().data() );
+    return false;
+  }
+
+  if ( element1.hasAttributes() )
+  {
+    QDomNamedNodeMap attrs1 = element1.attributes();
+    QDomNamedNodeMap attrs2 = element2.attributes();
+
+    if ( attrs1.size() != attrs2.size() )
+    {
+      qDebug( "Different attributes size: %s, %s", tag1.toAscii().data(), tag2.toAscii().data() );
+      return false;
+    }
+
+    for ( int i = 0 ; i < attrs1.size() ; ++i )
+    {
+      QDomNode node1 = attrs1.item( i );
+      QDomAttr attr1 = node1.toAttr();
+
+      if ( !element2.hasAttribute( attr1.name() ) )
+      {
+        qDebug( "Element2 has not attribute: %s, %s, %s", tag1.toAscii().data(), tag2.toAscii().data(), attr1.name().toAscii().data() );
+        return false;
+      }
+
+      if ( element2.attribute( attr1.name() ) != attr1.value() )
+      {
+        qDebug( "Element2 attribute has not the same value: %s, %s, %s", tag1.toAscii().data(), tag2.toAscii().data(), attr1.name().toAscii().data() );
+        return false;
+      }
+    }
+  }
+
+  if ( element1.hasChildNodes() != element2.hasChildNodes() )
+  {
+    qDebug( "Different childNodes: %s, %s", tag1.toAscii().data(), tag2.toAscii().data() );
+    return false;
+  }
+
+  if ( element1.hasChildNodes() )
+  {
+    QDomNodeList nodes1 = element1.childNodes();
+    QDomNodeList nodes2 = element2.childNodes();
+
+    if ( nodes1.size() != nodes2.size() )
+    {
+      qDebug( "Different childNodes size: %s, %s", tag1.toAscii().data(), tag2.toAscii().data() );
+      return false;
+    }
+
+    for ( int i = 0 ; i < nodes1.size() ; ++i )
+    {
+      QDomNode node1 = nodes1.at( i );
+      QDomNode node2 = nodes2.at( i );
+      if ( node1.isElement() && node2.isElement() )
+      {
+        QDomElement elt1 = node1.toElement();
+        QDomElement elt2 = node2.toElement();
+
+        if ( !compareElements( elt1, elt2 ) )
+          return false;
+      }
+      else if ( node1.isText() && node2.isText() )
+      {
+        QDomText txt1 = node1.toText();
+        QDomText txt2 = node2.toText();
+
+        if ( txt1.data() != txt2.data() )
+        {
+          qDebug( "Different text data: %s %s", tag1.toAscii().data(), txt1.data().toAscii().data() );
+          qDebug( "Different text data: %s %s", tag2.toAscii().data(), txt2.data().toAscii().data() );
+          return false;
+        }
+      }
+    }
+  }
+
+  if ( element1.text() != element2.text() )
+  {
+    qDebug( "Different text: %s %s", tag1.toAscii().data(), element1.text().toAscii().data() );
+    qDebug( "Different text: %s %s", tag2.toAscii().data(), element2.text().toAscii().data() );
+    return false;
+  }
+
+  return true;
+}
+static QDomElement comparableElement( const QString& xmlText )
+{
+  QDomDocument doc;
+  if ( !doc.setContent( xmlText ) )
+    return QDomElement();
+  return doc.documentElement();
+}
+
+
 void TestQgsOgcUtils::testGeometryToGML()
 {
   QDomDocument doc;
   QSharedPointer<QgsGeometry> geomPoint( QgsGeometry::fromPoint( QgsPoint( 111, 222 ) ) );
   QSharedPointer<QgsGeometry> geomLine( QgsGeometry::fromWkt( "LINESTRING(111 222, 222 222)" ) );
 
+  // Elements to compare
+  QDomElement xmlElem;
+  QDomElement ogcElem;
+
   // Test GML2
   QDomElement elemInvalid = QgsOgcUtils::geometryToGML( 0, doc );
   QVERIFY( elemInvalid.isNull() );
@@ -95,14 +217,18 @@ void TestQgsOgcUtils::testGeometryToGML()
   QVERIFY( !elemPoint.isNull() );
 
   doc.appendChild( elemPoint );
-  QCOMPARE( doc.toString( -1 ), QString( "<gml:Point><gml:coordinates cs=\",\" ts=\" \">111,222</gml:coordinates></gml:Point>" ) );
+  xmlElem = comparableElement( QString( "<gml:Point><gml:coordinates ts=\" \" cs=\",\">111,222</gml:coordinates></gml:Point>" ) );
+  ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
   doc.removeChild( elemPoint );
 
   QDomElement elemLine = QgsOgcUtils::geometryToGML( geomLine.data(), doc );
   QVERIFY( !elemLine.isNull() );
 
   doc.appendChild( elemLine );
-  QCOMPARE( doc.toString( -1 ), QString( "<gml:LineString><gml:coordinates cs=\",\" ts=\" \">111,222 222,222</gml:coordinates></gml:LineString>" ) );
+  xmlElem = comparableElement( QString( "<gml:LineString><gml:coordinates ts=\" \" cs=\",\">111,222 222,222</gml:coordinates></gml:LineString>" ) );
+  ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
   doc.removeChild( elemLine );
 
   // Test GML3
@@ -113,14 +239,18 @@ void TestQgsOgcUtils::testGeometryToGML()
   QVERIFY( !elemPoint.isNull() );
 
   doc.appendChild( elemPoint );
-  QCOMPARE( doc.toString( -1 ), QString( "<gml:Point><gml:pos srsDimension=\"2\">111 222</gml:pos></gml:Point>" ) );
+  xmlElem = comparableElement( QString( "<gml:Point><gml:pos srsDimension=\"2\">111 222</gml:pos></gml:Point>" ) );
+  ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
   doc.removeChild( elemPoint );
 
   elemLine = QgsOgcUtils::geometryToGML( geomLine.data(), doc, "GML3" );
   QVERIFY( !elemLine.isNull() );
 
   doc.appendChild( elemLine );
-  QCOMPARE( doc.toString( -1 ), QString( "<gml:LineString><gml:posList srsDimension=\"2\">111 222 222 222</gml:posList></gml:LineString>" ) );
+  xmlElem = comparableElement( QString( "<gml:LineString><gml:posList srsDimension=\"2\">111 222 222 222</gml:posList></gml:LineString>" ) );
+  ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
   doc.removeChild( elemLine );
 }
 
@@ -168,13 +298,41 @@ void TestQgsOgcUtils::testExpressionFromOgcFilter_data()
     "</Filter>" )
   << QString( "POPULATION >= 100 AND POPULATION <= 200" );
 
-  // TODO: needs to handle different wildcards, single chars, escape chars
+  // handle different wildcards, single chars, escape chars
   QTest::newRow( "like" ) << QString(
     "<Filter>"
-    "<PropertyIsLike wildcard='*' singleChar='.' escape='!'>"
+    "<PropertyIsLike wildCard=\"%\" singleChar=\"_\" escape=\"\\\">"
     "<PropertyName>NAME</PropertyName><Literal>*QGIS*</Literal></PropertyIsLike>"
     "</Filter>" )
   << QString( "NAME LIKE '*QGIS*'" );
+  QTest::newRow( "ilike" ) << QString(
+    "<Filter>"
+    "<PropertyIsLike matchCase=\"false\" wildCard=\"%\" singleChar=\"_\" escape=\"\\\">"
+    "<PropertyName>NAME</PropertyName><Literal>*QGIS*</Literal></PropertyIsLike>"
+    "</Filter>" )
+  << QString( "NAME ILIKE '*QGIS*'" );
+
+  // different wildCards
+  QTest::newRow( "like wildCard" ) << QString(
+    "<Filter>"
+    "<PropertyIsLike wildCard='*' singleChar='.' escape=\"\\\">"
+    "<PropertyName>NAME</PropertyName><Literal>*%QGIS*\\*</Literal></PropertyIsLike>"
+    "</Filter>" )
+  << QString( "NAME LIKE '%\\\\%QGIS%*'" );
+  // different single chars
+  QTest::newRow( "like single char" ) << QString(
+    "<Filter>"
+    "<PropertyIsLike wildCard='*' singleChar='.' escape=\"\\\">"
+    "<PropertyName>NAME</PropertyName><Literal>._QGIS.\\.</Literal></PropertyIsLike>"
+    "</Filter>" )
+  << QString( "NAME LIKE '_\\\\_QGIS_.'" );
+  // different single chars
+  QTest::newRow( "like escape char" ) << QString(
+    "<Filter>"
+    "<PropertyIsLike wildCard=\"*\" singleChar=\".\" escape=\"!\">"
+    "<PropertyName>NAME</PropertyName><Literal>_QGIS.!.!!%QGIS*!*</Literal></PropertyIsLike>"
+    "</Filter>" )
+  << QString( "NAME LIKE '\\\\_QGIS_.!\\\\%QGIS%*'" );
 
   QTest::newRow( "is null" ) << QString(
     "<Filter>"
@@ -247,7 +405,10 @@ void TestQgsOgcUtils::testExpressionToOgcFilter()
   qDebug( "EXPR: %s", exp.expression().toAscii().data() );
   qDebug( "OGC : %s", doc.toString( -1 ).toAscii().data() );
 
-  QCOMPARE( xmlText, doc.toString( -1 ) );
+
+  QDomElement xmlElem = comparableElement( xmlText );
+  QDomElement ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
 }
 
 void TestQgsOgcUtils::testExpressionToOgcFilter_data()
@@ -289,6 +450,22 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
     "</ogc:And>"
     "</ogc:Filter>" );
 
+  QTest::newRow( "like" ) << QString( "NAME LIKE '*QGIS*'" ) << QString(
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
+    "<ogc:PropertyIsLike singleChar=\"_\" escape=\"\\\" wildCard=\"%\">"
+    "<ogc:PropertyName>NAME</ogc:PropertyName>"
+    "<ogc:Literal>*QGIS*</ogc:Literal>"
+    "</ogc:PropertyIsLike>"
+    "</ogc:Filter>" );
+
+  QTest::newRow( "ilike" ) << QString( "NAME ILIKE '*QGIS*'" ) << QString(
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
+    "<ogc:PropertyIsLike matchCase=\"false\" singleChar=\"_\" escape=\"\\\" wildCard=\"%\">"
+    "<ogc:PropertyName>NAME</ogc:PropertyName>"
+    "<ogc:Literal>*QGIS*</ogc:Literal>"
+    "</ogc:PropertyIsLike>"
+    "</ogc:Filter>" );
+
   QTest::newRow( "is null" ) << QString( "A IS NULL" ) << QString(
     "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
     "<ogc:PropertyIsNull>"
@@ -323,8 +500,16 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
     "</ogc:Or>"
     "</ogc:Filter>" );
 
+  QTest::newRow( "intersects_bbox" ) << QString( "intersects_bbox($geometry, geomFromWKT('POINT (5 6)'))" ) << QString(
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:gml=\"http://www.opengis.net/gml\">"
+    "<ogc:BBOX>"
+    "<ogc:PropertyName>geometry</ogc:PropertyName>"
+    "<gml:Box><gml:coordinates cs=\",\" ts=\" \">5,6 5,6</gml:coordinates></gml:Box>"
+    "</ogc:BBOX>"
+    "</ogc:Filter>" );
+
   QTest::newRow( "intersects + wkt" ) << QString( "intersects($geometry, geomFromWKT('POINT (5 6)'))" ) << QString(
-    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:gml=\"http://www.opengis.net/gml\">"
     "<ogc:Intersects>"
     "<ogc:PropertyName>geometry</ogc:PropertyName>"
     "<gml:Point><gml:coordinates cs=\",\" ts=\" \">5,6</gml:coordinates></gml:Point>"
@@ -332,29 +517,146 @@ void TestQgsOgcUtils::testExpressionToOgcFilter_data()
     "</ogc:Filter>" );
 
   QTest::newRow( "contains + gml" ) << QString( "contains($geometry, geomFromGML('<Point><coordinates cs=\",\" ts=\" \">5,6</coordinates></Point>'))" ) << QString(
-    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\">"
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:gml=\"http://www.opengis.net/gml\">"
     "<ogc:Contains>"
     "<ogc:PropertyName>geometry</ogc:PropertyName>"
     "<Point><coordinates cs=\",\" ts=\" \">5,6</coordinates></Point>"
     "</ogc:Contains>"
     "</ogc:Filter>" );
+}
 
-  /*
-  QTest::newRow( "bbox with GML3 Envelope" )
-  << QString( "intersects_bbox($geometry, geomFromGML('<gml:Envelope><gml:lowerCorner>13.0983 31.5899</gml:lowerCorner><gml:upperCorner>35.5472 42.8143</gml:upperCorner></gml:Envelope>'))" )
+void TestQgsOgcUtils::testExpressionToOgcFilterWFS11()
+{
+  QFETCH( QString, exprText );
+  QFETCH( QString, srsName );
+  QFETCH( QString, xmlText );
+
+  QgsExpression exp( exprText );
+  QVERIFY( !exp.hasParserError() );
+
+  QString errorMsg;
+  QDomDocument doc;
+  QDomElement filterElem = QgsOgcUtils::expressionToOgcFilter( exp, doc,
+                           QgsOgcUtils::GML_3_1_0, QgsOgcUtils::FILTER_OGC_1_1, "my_geometry_name", srsName, true, false, &errorMsg );
+
+  if ( !errorMsg.isEmpty() )
+    qDebug( "ERROR: %s", errorMsg.toAscii().data() );
+
+  QVERIFY( !filterElem.isNull() );
+
+  doc.appendChild( filterElem );
+
+  qDebug( "EXPR: %s", exp.expression().toAscii().data() );
+  qDebug( "SRSNAME: %s", srsName.toAscii().data() );
+  qDebug( "OGC : %s", doc.toString( -1 ).toAscii().data() );
+
+
+  QDomElement xmlElem = comparableElement( xmlText );
+  QDomElement ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
+}
+
+void TestQgsOgcUtils::testExpressionToOgcFilterWFS11_data()
+{
+  QTest::addColumn<QString>( "exprText" );
+  QTest::addColumn<QString>( "srsName" );
+  QTest::addColumn<QString>( "xmlText" );
+
+  QTest::newRow( "bbox" )
+  << QString( "intersects_bbox($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" )
+  << QString( "urn:ogc:def:crs:EPSG::4326" )
   << QString(
-  "<ogc:Filter>"
+    "<ogc:Filter xmlns:ogc=\"http://www.opengis.net/ogc\" xmlns:gml=\"http://www.opengis.net/gml\">"
     "<ogc:BBOX>"
-      "<ogc:PropertyName>Geometry</ogc:PropertyName>"
-        "<gml:Envelope>"
-        "<gml:lowerCorner>13.0983 31.5899</gml:lowerCorner>"
-        "<gml:upperCorner>35.5472 42.8143</gml:upperCorner>"
-      "</gml:Envelope>"
+    "<ogc:PropertyName>my_geometry_name</ogc:PropertyName>"
+    "<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">"
+    "<gml:lowerCorner>49 2</gml:lowerCorner>"
+    "<gml:upperCorner>50 3</gml:upperCorner>"
+    "</gml:Envelope>"
     "</ogc:BBOX>"
-  "</ogc:Filter>" );
-  */
+    "</ogc:Filter>" );
+}
+
+// There's an issue with QT 5 that appears to reverse the order of multiple attributes
+#if QT_VERSION < 0x050000
+
+void TestQgsOgcUtils::testExpressionToOgcFilterWFS20()
+{
+  QFETCH( QString, exprText );
+  QFETCH( QString, srsName );
+  QFETCH( QString, xmlText );
+
+  QgsExpression exp( exprText );
+  QVERIFY( !exp.hasParserError() );
+
+  QString errorMsg;
+  QDomDocument doc;
+  QDomElement filterElem = QgsOgcUtils::expressionToOgcFilter( exp, doc,
+                           QgsOgcUtils::GML_3_2_1, QgsOgcUtils::FILTER_FES_2_0, "my_geometry_name", srsName, true, false, &errorMsg );
+
+  if ( !errorMsg.isEmpty() )
+    qDebug( "ERROR: %s", errorMsg.toAscii().data() );
+
+  QVERIFY( !filterElem.isNull() );
+
+  doc.appendChild( filterElem );
+
+  qDebug( "EXPR: %s", exp.expression().toAscii().data() );
+  qDebug( "SRSNAME: %s", srsName.toAscii().data() );
+  qDebug( "OGC : %s", doc.toString( -1 ).toAscii().data() );
+
+  QDomElement xmlElem = comparableElement( xmlText );
+  QDomElement ogcElem = comparableElement( doc.toString( -1 ) );
+  QVERIFY( compareElements( xmlElem, ogcElem ) );
+}
+
+void TestQgsOgcUtils::testExpressionToOgcFilterWFS20_data()
+{
+  QTest::addColumn<QString>( "exprText" );
+  QTest::addColumn<QString>( "srsName" );
+  QTest::addColumn<QString>( "xmlText" );
+
+  QTest::newRow( "=" ) << QString( "NAME = 'New York'" ) << QString() << QString(
+    "<fes:Filter xmlns:fes=\"http://www.opengis.net/fes/2.0\">"
+    "<fes:PropertyIsEqualTo>"
+    "<fes:ValueReference>NAME</fes:ValueReference>"
+    "<fes:Literal>New York</fes:Literal>"
+    "</fes:PropertyIsEqualTo></fes:Filter>" );
+
+  QTest::newRow( "bbox" )
+  << QString( "intersects_bbox($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" )
+  << QString( "urn:ogc:def:crs:EPSG::4326" )
+  << QString(
+    "<fes:Filter xmlns:fes=\"http://www.opengis.net/fes/2.0\" xmlns:gml=\"http://www.opengis.net/gml/3.2\">"
+    "<fes:BBOX>"
+    "<fes:ValueReference>my_geometry_name</fes:ValueReference>"
+    "<gml:Envelope srsName=\"urn:ogc:def:crs:EPSG::4326\">"
+    "<gml:lowerCorner>49 2</gml:lowerCorner>"
+    "<gml:upperCorner>50 3</gml:upperCorner>"
+    "</gml:Envelope>"
+    "</fes:BBOX>"
+    "</fes:Filter>" );
+
+  QTest::newRow( "intersects" )
+  << QString( "intersects($geometry, geomFromWKT('POLYGON((2 49,2 50,3 50,3 49,2 49))'))" )
+  << QString( "urn:ogc:def:crs:EPSG::4326" )
+  << QString(
+    "<fes:Filter xmlns:fes=\"http://www.opengis.net/fes/2.0\" xmlns:gml=\"http://www.opengis.net/gml/3.2\">"
+    "<fes:Intersects>"
+    "<fes:ValueReference>my_geometry_name</fes:ValueReference>"
+    "<gml:Polygon gml:id=\"qgis_id_geom_1\" srsName=\"urn:ogc:def:crs:EPSG::4326\">"
+    "<gml:exterior>"
+    "<gml:LinearRing>"
+    "<gml:posList srsDimension=\"2\">49 2 50 2 50 3 49 3 49 2</gml:posList>"
+    "</gml:LinearRing>"
+    "</gml:exterior>"
+    "</gml:Polygon>"
+    "</fes:Intersects>"
+    "</fes:Filter>" );
 }
 
+#endif
+
 
 QTEST_MAIN( TestQgsOgcUtils )
 #include "testqgsogcutils.moc"
diff --git a/tests/src/python/CMakeLists.txt b/tests/src/python/CMakeLists.txt
index 3dbd0e1..23fcf0b 100644
--- a/tests/src/python/CMakeLists.txt
+++ b/tests/src/python/CMakeLists.txt
@@ -13,6 +13,7 @@ ADD_PYTHON_TEST(PyQgsApplication test_qgsapplication.py)
 ADD_PYTHON_TEST(PyQgsAtlasComposition test_qgsatlascomposition.py)
 ADD_PYTHON_TEST(PyQgsAttributeTableModel test_qgsattributetablemodel.py)
 #ADD_PYTHON_TEST(PyQgsAuthenticationSystem test_qgsauthsystem.py)
+ADD_PYTHON_TEST(PyQgsBearingUtils test_qgsbearingutils.py)
 ADD_PYTHON_TEST(PyQgsBlendModes test_qgsblendmodes.py)
 ADD_PYTHON_TEST(PyQgsCategorizedSymbolRendererV2 test_qgscategorizedsymbolrendererv2.py)
 ADD_PYTHON_TEST(PyQgsColorButtonV2 test_qgscolorbuttonv2.py)
@@ -42,6 +43,7 @@ ADD_PYTHON_TEST(PyQgsFontUtils test_qgsfontutils.py)
 ADD_PYTHON_TEST(PyQgsGeometryAvoidIntersections test_qgsgeometry_avoid_intersections.py)
 ADD_PYTHON_TEST(PyQgsGeometryGeneratorSymbolLayerV2 test_qgsgeometrygeneratorsymbollayerv2.py)
 ADD_PYTHON_TEST(PyQgsGeometryTest test_qgsgeometry.py)
+ADD_PYTHON_TEST(PyQgsGeometryValidator test_qgsgeometryvalidator.py)
 ADD_PYTHON_TEST(PyQgsGraduatedSymbolRendererV2 test_qgsgraduatedsymbolrendererv2.py)
 ADD_PYTHON_TEST(PyQgsMapUnitScale test_qgsmapunitscale.py)
 ADD_PYTHON_TEST(PyQgsMemoryProvider test_provider_memory.py)
@@ -64,6 +66,7 @@ ADD_PYTHON_TEST(PyQgsOGRProvider test_provider_ogr.py)
 ADD_PYTHON_TEST(PyQgsSpatialIndex test_qgsspatialindex.py)
 ADD_PYTHON_TEST(PyQgsSpatialiteProvider test_provider_spatialite.py)
 ADD_PYTHON_TEST(PyQgsSymbolLayerV2 test_qgssymbollayerv2.py)
+ADD_PYTHON_TEST(PyQgsSymbolLayerV2CreateSld test_qgssymbollayerv2_createsld.py)
 ADD_PYTHON_TEST(PyQgsSymbolExpressionVariables test_qgssymbolexpressionvariables.py)
 ADD_PYTHON_TEST(PyQgsSyntacticSugar test_syntactic_sugar.py)
 ADD_PYTHON_TEST(PyQgsSymbolV2 test_qgssymbolv2.py)
diff --git a/tests/src/python/test_provider_ogr.py b/tests/src/python/test_provider_ogr.py
index 9a0e824..de6deb1 100644
--- a/tests/src/python/test_provider_ogr.py
+++ b/tests/src/python/test_provider_ogr.py
@@ -171,5 +171,24 @@ class PyQgsOGRProvider(unittest.TestCase):
         self.assertEqual(f.constGeometry().geometry().pointN(1).z(), 2)
         self.assertEqual(f.constGeometry().geometry().pointN(2).z(), 3)
 
+    def testGeometryCollection(self):
+        ''' Test that we can at least retrieves attribute of features with geometry collection '''
+
+        datasource = os.path.join(self.basetestpath, 'testGeometryCollection.csv')
+        with open(datasource, 'wt') as f:
+            f.write('id,WKT\n')
+            f.write('1,POINT Z(2 49 0)\n')
+            f.write('2,GEOMETRYCOLLECTION Z (POINT Z (2 49 0))\n')
+
+        vl = QgsVectorLayer('{}|layerid=0|geometrytype=GeometryCollection'.format(datasource), 'test', 'ogr')
+        self.assertTrue(vl.isValid())
+        self.assertTrue(vl.featureCount(), 1)
+        values = [f['id'] for f in vl.getFeatures()]
+        self.assertEqual(values, ['2'])
+        del vl
+
+        os.unlink(datasource)
+        self.assertFalse(os.path.exists(datasource))
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_ogr_gpkg.py b/tests/src/python/test_provider_ogr_gpkg.py
index b746135..d2e0f0c 100644
--- a/tests/src/python/test_provider_ogr_gpkg.py
+++ b/tests/src/python/test_provider_ogr_gpkg.py
@@ -20,7 +20,7 @@ import shutil
 import glob
 from osgeo import gdal, ogr
 
-from qgis.core import QgsVectorLayer, QgsFeature, QgsGeometry, QgsFeatureRequest
+from qgis.core import QgsVectorLayer, QgsFeature, QgsGeometry, QgsFeatureRequest, QgsRectangle
 from qgis.testing import start_app, unittest
 from utilities import unitTestDataPath
 
@@ -160,5 +160,50 @@ class TestPyQgsOGRProviderGpkg(unittest.TestCase):
             return
         self.internalTestBug15351('commit_closeIter_closeProvider')
 
+    @unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 1, 2))
+    def testGeopackageExtentUpdate(self):
+        ''' test http://hub.qgis.org/issues/15273 '''
+        tmpfile = os.path.join(self.basetestpath, 'testGeopackageExtentUpdate.gpkg')
+        ds = ogr.GetDriverByName('GPKG').CreateDataSource(tmpfile)
+        lyr = ds.CreateLayer('test', geom_type=ogr.wkbPoint)
+        f = ogr.Feature(lyr.GetLayerDefn())
+        f.SetGeometry(ogr.CreateGeometryFromWkt('POINT(0 0)'))
+        lyr.CreateFeature(f)
+        f = ogr.Feature(lyr.GetLayerDefn())
+        f.SetGeometry(ogr.CreateGeometryFromWkt('POINT(1 1)'))
+        lyr.CreateFeature(f)
+        f = None
+        f = ogr.Feature(lyr.GetLayerDefn())
+        f.SetGeometry(ogr.CreateGeometryFromWkt('POINT(1 0.5)'))
+        lyr.CreateFeature(f)
+        f = None
+        gdal.ErrorReset()
+        ds.ExecuteSQL('RECOMPUTE EXTENT ON test')
+        has_error = gdal.GetLastErrorMsg() != ''
+        ds = None
+        if has_error:
+            print('Too old GDAL trunk version. Please update')
+            return
+
+        vl = QgsVectorLayer(u'{}'.format(tmpfile), u'test', u'ogr')
+
+        # Test moving a geometry that touches the bbox
+        self.assertTrue(vl.startEditing())
+        self.assertTrue(vl.changeGeometry(1, QgsGeometry.fromWkt('Point (0.5 0)')))
+        self.assertTrue(vl.commitChanges())
+        reference = QgsGeometry.fromRect(QgsRectangle(0.5, 0.0, 1.0, 1.0))
+        provider_extent = QgsGeometry.fromRect(vl.extent())
+        self.assertTrue(QgsGeometry.compare(provider_extent.asPolygon()[0], reference.asPolygon()[0], 0.00001),
+                        provider_extent.asPolygon()[0])
+
+        # Test deleting a geometry that touches the bbox
+        self.assertTrue(vl.startEditing())
+        self.assertTrue(vl.deleteFeature(2))
+        self.assertTrue(vl.commitChanges())
+        reference = QgsGeometry.fromRect(QgsRectangle(0.5, 0.0, 1.0, 0.5))
+        provider_extent = QgsGeometry.fromRect(vl.extent())
+        self.assertTrue(QgsGeometry.compare(provider_extent.asPolygon()[0], reference.asPolygon()[0], 0.00001),
+                        provider_extent.asPolygon()[0])
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_postgres.py b/tests/src/python/test_provider_postgres.py
index 6c549ce..b1b5ea1 100644
--- a/tests/src/python/test_provider_postgres.py
+++ b/tests/src/python/test_provider_postgres.py
@@ -13,10 +13,19 @@ __copyright__ = 'Copyright 2015, The QGIS Project'
 __revision__ = '$Format:%H$'
 
 import qgis
+import psycopg2
+
 import os
 from qgis.core import NULL
 
-from qgis.core import QgsVectorLayer, QgsFeatureRequest, QgsFeature, QgsProviderRegistry
+from qgis.core import (
+    QgsVectorLayer,
+    QgsFeatureRequest,
+    QgsVectorLayerImport,
+    QgsFeature,
+    QgsProviderRegistry,
+    NULL
+)
 from PyQt4.QtCore import QSettings, QDate, QTime, QDateTime, QVariant
 from qgis.testing import (start_app,
                           unittest
@@ -43,11 +52,20 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
         cls.poly_vl = QgsVectorLayer(cls.dbconn + ' sslmode=disable key=\'pk\' srid=4326 type=POLYGON table="qgis_test"."some_poly_data" (geom) sql=', 'test', 'postgres')
         assert(cls.poly_vl.isValid())
         cls.poly_provider = cls.poly_vl.dataProvider()
+        cls.con = psycopg2.connect(cls.dbconn)
 
     @classmethod
     def tearDownClass(cls):
         """Run after all tests"""
 
+    def execSQLCommand(self, sql):
+        self.assertTrue(self.con)
+        cur = self.con.cursor()
+        self.assertTrue(cur)
+        cur.execute(sql)
+        cur.close()
+        self.con.commit()
+
     def enableCompiler(self):
         QSettings().setValue(u'/qgis/compileExpressions', True)
 
@@ -166,6 +184,61 @@ class TestPyQgsPostgresProvider(unittest.TestCase, ProviderTestCase):
         test_query_attribute(self.dbconn, '(SELECT -1::int8 i, NULL::geometry(Point) g)', 'i', -1, 1)
         test_query_attribute(self.dbconn, '(SELECT -65535::int8 i, NULL::geometry(Point) g)', 'i', -65535, 1)
 
+    # See http://hub.qgis.org/issues/15188
+    def testNumericPrecision(self):
+        uri = 'point?field=f1:int'
+        uri += '&field=f2:double(6,4)'
+        uri += '&field=f3:string(20)'
+        lyr = QgsVectorLayer(uri, "x", "memory")
+        self.assertTrue(lyr.isValid())
+        f = QgsFeature(lyr.fields())
+        f['f1'] = 1
+        f['f2'] = 123.456
+        f['f3'] = '12345678.90123456789'
+        lyr.dataProvider().addFeatures([f])
+        uri = '%s table="qgis_test"."b18155" (g) key=\'f1\'' % (self.dbconn)
+        self.execSQLCommand('DROP TABLE IF EXISTS qgis_test.b18155')
+        err = QgsVectorLayerImport.importLayer(lyr, uri, "postgres", lyr.crs())
+        self.assertEqual(err[0], QgsVectorLayerImport.NoError,
+                         'unexpected import error {0}'.format(err))
+        lyr = QgsVectorLayer(uri, "y", "postgres")
+        self.assertTrue(lyr.isValid())
+        f = next(lyr.getFeatures())
+        self.assertEqual(f['f1'], 1)
+        self.assertEqual(f['f2'], 123.456)
+        self.assertEqual(f['f3'], '12345678.90123456789')
+
+    # See http://hub.qgis.org/issues/15226
+    def testImportKey(self):
+        uri = 'point?field=f1:int'
+        uri += '&field=F2:double(6,4)'
+        uri += '&field=f3:string(20)'
+        lyr = QgsVectorLayer(uri, "x", "memory")
+        self.assertTrue(lyr.isValid())
+
+        def testKey(lyr, key, kfnames):
+            self.execSQLCommand('DROP TABLE IF EXISTS qgis_test.import_test')
+            uri = '%s table="qgis_test"."import_test" (g) key=\'%s\'' % (self.dbconn, key)
+            err = QgsVectorLayerImport.importLayer(lyr, uri, "postgres", lyr.crs())
+            self.assertEqual(err[0], QgsVectorLayerImport.NoError,
+                             'unexpected import error {0}'.format(err))
+            olyr = QgsVectorLayer(uri, "y", "postgres")
+            self.assertTrue(olyr.isValid())
+            flds = lyr.fields()
+            oflds = olyr.fields()
+            self.assertEquals(oflds.size(), flds.size())
+            for i in range(0, oflds.size()):
+                self.assertEqual(oflds[i].name(), flds[i].name())
+            pks = olyr.pkAttributeList()
+            self.assertEquals(len(pks), len(kfnames))
+            for i in range(0, len(kfnames)):
+                self.assertEqual(oflds[pks[i]].name(), kfnames[i])
+
+        testKey(lyr, 'f1', ['f1'])
+        testKey(lyr, '"f1"', ['f1'])
+        testKey(lyr, '"f1","F2"', ['f1', 'F2'])
+        testKey(lyr, '"f1","F2","f3"', ['f1', 'F2', 'f3'])
+
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_shapefile.py b/tests/src/python/test_provider_shapefile.py
index 31577de..4ebbcb6 100644
--- a/tests/src/python/test_provider_shapefile.py
+++ b/tests/src/python/test_provider_shapefile.py
@@ -35,6 +35,19 @@ start_app()
 TEST_DATA_DIR = unitTestDataPath()
 
 
+def GDAL_COMPUTE_VERSION(maj, min, rev):
+    return ((maj) * 1000000 + (min) * 10000 + (rev) * 100)
+
+
+class ErrorReceiver():
+
+    def __init__(self):
+        self.msg = None
+
+    def receiveError(self, msg):
+        self.msg = msg
+
+
 class TestPyQgsShapefileProvider(unittest.TestCase, ProviderTestCase):
 
     @classmethod
@@ -262,5 +275,93 @@ class TestPyQgsShapefileProvider(unittest.TestCase, ProviderTestCase):
         fet = next(vl.getFeatures())
         self.assertIsNone(fet.geometry())
 
+    def testRepackUnderFileLocks(self):
+        ''' Test fix for #15570 and #15393 '''
+
+        # This requires a GDAL fix done per https://trac.osgeo.org/gdal/ticket/6672
+        # but on non-Windows version the test would succeed
+        if int(osgeo.gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 1, 2):
+            return
+
+        tmpdir = tempfile.mkdtemp()
+        self.dirs_to_cleanup.append(tmpdir)
+        srcpath = os.path.join(TEST_DATA_DIR, 'provider')
+        for file in glob.glob(os.path.join(srcpath, 'shapefile.*')):
+            shutil.copy(os.path.join(srcpath, file), tmpdir)
+        datasource = os.path.join(tmpdir, 'shapefile.shp')
+
+        vl = QgsVectorLayer('{}|layerid=0'.format(datasource), 'test', 'ogr')
+        feature_count = vl.featureCount()
+
+        # Keep a file descriptor opened on the .dbf, .shp and .shx
+        f_shp = open(os.path.join(tmpdir, 'shapefile.shp'), 'rb')
+        f_shx = open(os.path.join(tmpdir, 'shapefile.shx'), 'rb')
+        f_dbf = open(os.path.join(tmpdir, 'shapefile.dbf'), 'rb')
+
+        # Delete a feature
+        self.assertTrue(vl.startEditing())
+        self.assertTrue(vl.deleteFeature(1))
+
+        # Commit changes and check no error is emitted
+        cbk = ErrorReceiver()
+        vl.dataProvider().raiseError.connect(cbk.receiveError)
+        self.assertTrue(vl.commitChanges())
+        self.assertIsNone(cbk.msg)
+
+        vl = None
+
+        del f_shp
+        del f_shx
+        del f_dbf
+
+        # Test repacking has been done
+        ds = osgeo.ogr.Open(datasource)
+        self.assertTrue(ds.GetLayer(0).GetFeatureCount(), feature_count - 1)
+        ds = None
+
+    def testRepackAtFirstSave(self):
+        ''' Test fix for #15407 '''
+
+        # This requires a GDAL fix done per https://trac.osgeo.org/gdal/ticket/6672
+        # but on non-Windows version the test would succeed
+        if int(osgeo.gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 1, 2):
+            return
+
+        tmpdir = tempfile.mkdtemp()
+        self.dirs_to_cleanup.append(tmpdir)
+        srcpath = os.path.join(TEST_DATA_DIR, 'provider')
+        for file in glob.glob(os.path.join(srcpath, 'shapefile.*')):
+            shutil.copy(os.path.join(srcpath, file), tmpdir)
+        datasource = os.path.join(tmpdir, 'shapefile.shp')
+
+        ds = osgeo.ogr.Open(datasource)
+        lyr = ds.GetLayer(0)
+        original_feature_count = lyr.GetFeatureCount()
+        lyr.DeleteFeature(2)
+        ds = None
+
+        vl = QgsVectorLayer('{}|layerid=0'.format(datasource), 'test', 'ogr')
+
+        self.assertTrue(vl.featureCount(), original_feature_count)
+
+        # Edit a feature (attribute change only)
+        self.assertTrue(vl.startEditing())
+        self.assertTrue(vl.dataProvider().changeAttributeValues({0: {0: 100}}))
+
+        # Commit changes and check no error is emitted
+        cbk = ErrorReceiver()
+        vl.dataProvider().raiseError.connect(cbk.receiveError)
+        self.assertTrue(vl.commitChanges())
+        self.assertIsNone(cbk.msg)
+
+        self.assertTrue(vl.featureCount(), original_feature_count - 1)
+
+        vl = None
+
+        # Test repacking has been done
+        ds = osgeo.ogr.Open(datasource)
+        self.assertTrue(ds.GetLayer(0).GetFeatureCount(), original_feature_count - 1)
+        ds = None
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_qgsbearingutils.py b/tests/src/python/test_qgsbearingutils.py
new file mode 100644
index 0000000..da3ed99
--- /dev/null
+++ b/tests/src/python/test_qgsbearingutils.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+"""QGIS Unit tests for QgsBearingUtils.
+
+.. note:: This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+"""
+__author__ = 'Nyall Dawson'
+__date__ = '18/10/2016'
+__copyright__ = 'Copyright 2016, The QGIS Project'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+import qgis # switch sip api
+
+from qgis.core import (QgsBearingUtils,
+                       QgsCoordinateReferenceSystem,
+                       QgsPoint
+                       )
+
+from qgis.testing import (start_app,
+                          unittest
+                          )
+
+
+start_app()
+
+
+class TestQgsBearingUtils(unittest.TestCase):
+
+    def testTrueNorth(self):
+        """ test calculating bearing to true north"""
+
+        # short circuit - already a geographic crs
+        crs = QgsCoordinateReferenceSystem()
+        crs.createFromOgcWmsCrs('EPSG:4326')
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(0, 0)), 0)
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(44, 0)), 0)
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(44, -43)), 0)
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(44, 43)), 0)
+
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(44, 200)), 0)
+        self.assertEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(44, -200)), 0)
+
+        # no short circuit
+        crs.createFromOgcWmsCrs('EPSG:3111')
+        self.assertAlmostEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(2508807, 2423425)), 0.06, 2)
+
+        # try a south-up crs
+        crs.createFromOgcWmsCrs('EPSG:2053')
+        self.assertAlmostEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(29, -27.55)), -180.0, 1)
+
+        # try a north pole crs
+        crs.createFromOgcWmsCrs('EPSG:3575')
+        self.assertAlmostEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(-780770, 652329)), 129.9, 1)
+        self.assertAlmostEqual(QgsBearingUtils.bearingTrueNorth(crs, QgsPoint(513480, 873173)), -149.5, 1)
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/src/python/test_qgscomposerpicture.py b/tests/src/python/test_qgscomposerpicture.py
index a4246f1..1eb3d77 100644
--- a/tests/src/python/test_qgscomposerpicture.py
+++ b/tests/src/python/test_qgscomposerpicture.py
@@ -23,7 +23,10 @@ from PyQt4.QtCore import QRectF, QCoreApplication
 
 from qgis.core import (QgsComposerPicture,
                        QgsComposition,
-                       QgsMapSettings
+                       QgsMapSettings,
+                       QgsComposerMap,
+                       QgsRectangle,
+                       QgsCoordinateReferenceSystem
                        )
 from qgis.testing import (start_app,
                           unittest
@@ -89,5 +92,63 @@ class TestQgsComposerPicture(unittest.TestCase):
         self.composerPicture.setPicturePath(self.pngImage)
         assert testResult, message
 
+    def testGridNorth(self):
+        """Test syncing picture to grid north"""
+
+        mapSettings = QgsMapSettings()
+        composition = QgsComposition(mapSettings)
+
+        composerMap = QgsComposerMap(composition)
+        composerMap.setNewExtent(QgsRectangle(0, -256, 256, 0))
+        composition.addComposerMap(composerMap)
+
+        composerPicture = QgsComposerPicture(composition)
+        composition.addComposerPicture(composerPicture)
+
+        composerPicture.setRotationMap(composerMap.id())
+        self.assertTrue(composerPicture.rotationMap() >= 0)
+
+        composerPicture.setNorthMode(QgsComposerPicture.GridNorth)
+        composerMap.setMapRotation(45)
+        self.assertEqual(composerPicture.pictureRotation(), 45)
+
+        # add an offset
+        composerPicture.setNorthOffset(-10)
+        self.assertEqual(composerPicture.pictureRotation(), 35)
+
+    def testTrueNorth(self):
+        """Test syncing picture to true north"""
+
+        mapSettings = QgsMapSettings()
+        crs = QgsCoordinateReferenceSystem()
+        crs.createFromOgcWmsCrs('EPSG:3575')
+        mapSettings.setDestinationCrs(crs)
+        composition = QgsComposition(mapSettings)
+
+        composerMap = QgsComposerMap(composition)
+        composerMap.setNewExtent(QgsRectangle(-2126029.962, -2200807.749, -119078.102, -757031.156))
+        composition.addComposerMap(composerMap)
+
+        composerPicture = QgsComposerPicture(composition)
+        composition.addComposerPicture(composerPicture)
+
+        composerPicture.setRotationMap(composerMap.id())
+        self.assertTrue(composerPicture.rotationMap() >= 0)
+
+        composerPicture.setNorthMode(QgsComposerPicture.TrueNorth)
+        self.assertAlmostEqual(composerPicture.pictureRotation(), 37.20, 1)
+
+        # shift map
+        composerMap.setNewExtent(QgsRectangle(2120672.293, -3056394.691, 2481640.226, -2796718.780))
+        self.assertAlmostEqual(composerPicture.pictureRotation(), -38.18, 1)
+
+        # rotate map
+        composerMap.setMapRotation(45)
+        self.assertAlmostEqual(composerPicture.pictureRotation(), -38.18 + 45, 1)
+
+        # add an offset
+        composerPicture.setNorthOffset(-10)
+        self.assertAlmostEqual(composerPicture.pictureRotation(), -38.18 + 35, 1)
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_qgsgeometryvalidator.py b/tests/src/python/test_qgsgeometryvalidator.py
new file mode 100644
index 0000000..661817f
--- /dev/null
+++ b/tests/src/python/test_qgsgeometryvalidator.py
@@ -0,0 +1,71 @@
+# -*- coding: utf-8 -*-
+"""QGIS Unit tests for QgsGeometryValidator.
+
+.. note:: This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+"""
+__author__ = 'Nyall Dawson'
+__date__ = '03/10/2016'
+__copyright__ = 'Copyright 2016, The QGIS Project'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+import os
+import csv
+import math
+
+from qgis.core import (
+    QgsGeometry,
+    QgsGeometryValidator
+)
+
+from qgis.testing import (
+    unittest
+)
+
+
+class TestQgsGeometryValidator(unittest.TestCase):
+
+    def testIssue15660(self):
+        """ Test crash when validating geometry (#15660) """
+        g = QgsGeometry.fromWkt(
+            "Polygon ((0.44256348235389709 -47.87645625696347906, -2.88231630340906797 -47.90003919913998232,"
+            "-2.88589842578005751 -48.91215450743293047, -2.8858984257800584 -48.91215450743293047,"
+            "-2.88589842578005751 -48.91215450743292337, -2.88589842632776516 -48.9121545074024624,"
+            "-3.24858148608664266 -48.89198543875494352, -3.27689849271356159 -49.40119850743292318,"
+            "-4.37689842578006072 -49.40119850743292318, -4.3768984257800625 -49.40119850743293739,"
+            "-6.11689842578005738 -49.40119850743293739, -6.11689842578006093 -49.40119850743292318,"
+            "-7.03689842578006086 -49.40119850743292318, -7.02239489567359776 -48.93302358132471852,"
+            "-7.02177188091450688 -48.91291272055079276, -7.02177188393206286 -48.91291272045731375,"
+            "-7.02141642578006309 -48.9014385074329212, -7.7002102410998674 -48.88041051649613422,"
+            "-7.70077301577442341 -48.89187793078160382, -7.70077301577442341 -48.89187793078160382,"
+            "-7.70233865095334291 -48.92378019651650334, -7.72576842578006051 -49.40119850743292318,"
+            "-9.26576842578005966 -49.40119850743292318, -9.26576842578006321 -49.40119850743293739,"
+            "-13.28076842578006023 -49.40119850743293739, -13.04700849136197149 -44.82717853953759857,"
+            "-12.22739168108193297 -44.85224022031006541, -12.22501286465108805 -44.774446133668377,"
+            "-12.22288921611744783 -44.774511069530881, -12.2155540445085915 -44.53462318893357264,"
+            "-13.0310217329353506 -44.50968822589503304, -12.87640859053235687 -41.29089836691012749,"
+            "-7.83390711693117936 -41.74840291007100745, -7.88211379129075596 -42.99075321817508666,"
+            "-7.43245210877673657 -43.00820115628285123, -7.50410812906098013 -44.67868742523263847,"
+            "-7.52086717830689011 -44.67817497540850979, -7.52820234991574644 -44.91806285600581816,"
+            "-7.51439432253991058 -44.91848507095944854, -7.57421591980290287 -46.3130804785479242,"
+            "-8.32385639731993621 -46.28985691678211367, -8.44985043007881842 -48.85718773355701217,"
+            "-6.26478736265246283 -48.92487774800262912, -6.18500945357052245 -46.35611749220839073,"
+            "-6.94163842159974198 -46.33267751510010157, -6.82382190915497944 -40.77447960826383166,"
+            "-5.48772831582523146 -40.77837853452808758, -5.48973219643841759 -39.92687558952010107,"
+            "-2.75658441771447116 -40.04490036239724304, -3.1241861109063862 -46.6551270968877958,"
+            "-2.78977790434136885 -46.6737244011090695, -2.78977790434136796 -46.6737244011090695,"
+            "-2.71083842578005996 -44.83541850743291945, -2.71083842578005729 -44.83541850743291945,"
+            "-0.86779302740823816 -44.89143693883772812, -0.86745855610774569 -44.87743669555854353,"
+            "0.29843811058281489 -44.90401226269042922, 0.20437651721061911 -46.69301920907949466,"
+            "0.50389019278376956 -46.71008040893148916, 0.44256348235389709 -47.87645625696347906))")
+
+        self.assertTrue(g)
+        # make sure validating this geometry doesn't crash QGIS
+        QgsGeometryValidator.validateGeometry(g)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/src/python/test_qgsserver.py b/tests/src/python/test_qgsserver.py
index a810372..ef25238 100644
--- a/tests/src/python/test_qgsserver.py
+++ b/tests/src/python/test_qgsserver.py
@@ -18,10 +18,13 @@ import urllib
 from mimetools import Message
 from StringIO import StringIO
 from qgis.server import QgsServer
-from qgis.core import QgsMessageLog
+from qgis.core import QgsMessageLog, QgsRenderChecker
 from qgis.testing import unittest
+from qgis.PyQt.QtCore import QSize
 from utilities import unitTestDataPath
 import osgeo.gdal
+import tempfile
+import base64
 
 # Strip path and content length because path may vary
 RE_STRIP_PATH = r'MAP=[^&]+|Content-Length: \d+'
@@ -372,6 +375,82 @@ class TestQgsServer(unittest.TestCase):
         self.assertEquals(-1, h.find('Content-Type: text/xml; charset=utf-8'), "Header: %s\nResponse:\n%s" % (h, r))
         self.assertNotEquals(-1, h.find('Content-Type: image/png'), "Header: %s\nResponse:\n%s" % (h, r))
 
+    def test_getLegendGraphics_layertitle(self):
+        """Test that does not return an exception but an image"""
+        parms = {
+            'MAP': self.testdata_path + "test%2Bproject.qgs",
+            'SERVICE': 'WMS',
+            'VERSION': '1.3.0',
+            'REQUEST': 'GetLegendGraphic',
+            'FORMAT': 'image/png',
+            #'WIDTH': '20', # optional
+            #'HEIGHT': '20', # optional
+            'LAYER': u'testlayer+èé',
+            'LAYERTITLE': 'TRUE',
+        }
+        qs = '&'.join([u"%s=%s" % (k, v) for k, v in parms.iteritems()])
+        r, h = self._result(self.server.handleRequest(qs))
+        self._img_diff_error(r, h, "WMS_GetLegendGraphic_test", 250, QSize(10, 10))
+
+        parms = {
+            'MAP': self.testdata_path + "test%2Bproject.qgs",
+            'SERVICE': 'WMS',
+            'VERSION': '1.3.0',
+            'REQUEST': 'GetLegendGraphic',
+            'FORMAT': 'image/png',
+            #'WIDTH': '20', # optional
+            #'HEIGHT': '20', # optional
+            'LAYER': u'testlayer+èé',
+            'LAYERTITLE': 'FALSE',
+        }
+        qs = '&'.join([u"%s=%s" % (k, v) for k, v in parms.iteritems()])
+        r, h = self._result(self.server.handleRequest(qs))
+        self._img_diff_error(r, h, "WMS_GetLegendGraphic_test_layertitle_false", 250, QSize(10, 10))
+
+    def _result(self, data):
+        headers = {}
+        for line in data[0].decode('UTF-8').split("\n"):
+            if line != "":
+                header = line.split(":")
+                self.assertEqual(len(header), 2, line)
+                headers[str(header[0])] = str(header[1]).strip()
+
+        return data[1], headers
+
+    def _img_diff(self, image, control_image, max_diff, max_size_diff=QSize()):
+        temp_image = os.path.join(tempfile.gettempdir(), "%s_result.png" % control_image)
+
+        with open(temp_image, "wb") as f:
+            f.write(image)
+
+        control = QgsRenderChecker()
+        control.setControlPathPrefix("qgis_server")
+        control.setControlName(control_image)
+        control.setRenderedImage(temp_image)
+        if max_size_diff.isValid():
+            control.setSizeTolerance(max_size_diff.width(), max_size_diff.height())
+        return control.compareImages(control_image), control.report()
+
+    def _img_diff_error(self, response, headers, image, max_diff=10, max_size_diff=QSize()):
+        self.assertEqual(
+            headers.get("Content-Type"), "image/png",
+            "Content type is wrong: %s" % headers.get("Content-Type"))
+        test, report = self._img_diff(response, image, max_diff, max_size_diff)
+
+        with open(os.path.join(tempfile.gettempdir(), image + "_result.png"), "rb") as rendered_file:
+            encoded_rendered_file = base64.b64encode(rendered_file.read())
+            message = "Image is wrong\n%s\nImage:\necho '%s' | base64 -d >%s/%s_result.png" % (
+                report, encoded_rendered_file.strip(), tempfile.gettempdir(), image
+            )
+
+        with open(os.path.join(tempfile.gettempdir(), image + "_result_diff.png"), "rb") as diff_file:
+            encoded_diff_file = base64.b64encode(diff_file.read())
+            message += "\nDiff:\necho '%s' | base64 -d > %s/%s_result_diff.png" % (
+                encoded_diff_file.strip(), tempfile.gettempdir(), image
+            )
+
+        self.assertTrue(test, message)
+
     # The following code was used to test type conversion in python bindings
     # def test_qpair(self):
     #    """Test QPair bindings"""
diff --git a/tests/src/python/test_qgssymbollayerv2_createsld.py b/tests/src/python/test_qgssymbollayerv2_createsld.py
new file mode 100644
index 0000000..869f79d
--- /dev/null
+++ b/tests/src/python/test_qgssymbollayerv2_createsld.py
@@ -0,0 +1,521 @@
+# -*- coding: utf-8 -*-
+
+"""
+***************************************************************************
+    test_qgssymbollayerv2_createsld.py
+    ---------------------
+    Date                 : July 2016
+    Copyright            : (C) 2016 by Andrea Aime
+    Email                : andrea dot aime at geosolutions dot it
+***************************************************************************
+*                                                                         *
+*   This program is free software; you can redistribute it and/or modify  *less
+*   it under the terms of the GNU General Public License as published by  *
+*   the Free Software Foundation; either version 2 of the License, or     *
+*   (at your option) any later version.                                   *
+*                                                                         *
+***************************************************************************
+"""
+
+__author__ = 'Andrea Aime'
+__date__ = 'July 2016'
+__copyright__ = '(C) 2012, Andrea Aime'
+# This will get replaced with a git SHA1 when you do a git archive
+__revision__ = '$Format:%H$'
+
+import qgis  # NOQA
+
+import os
+
+from qgis.PyQt.QtCore import pyqtWrapperType, Qt, QDir, QFile, QIODevice, QPointF
+from qgis.PyQt.QtXml import (
+    QDomDocument, QDomElement, QDomNode, QDomNamedNodeMap)
+from qgis.PyQt.QtGui import QColor
+
+from qgis.core import (
+    QgsSimpleMarkerSymbolLayerV2, QgsSymbolV2, QgsSvgMarkerSymbolLayerV2,
+    QgsFontMarkerSymbolLayerV2, QgsEllipseSymbolLayerV2, QgsSimpleLineSymbolLayerV2,
+    QgsMarkerLineSymbolLayerV2, QgsMarkerSymbolV2, QgsSimpleFillSymbolLayerV2, QgsSVGFillSymbolLayer,
+    QgsLinePatternFillSymbolLayer, QgsPointPatternFillSymbolLayer, QgsVectorLayer)
+from qgis.testing import start_app, unittest
+from utilities import unitTestDataPath
+
+# Convenience instances in case you may need them
+# not used in this test
+start_app()
+
+
+class TestQgsSymbolLayerV2CreateSld(unittest.TestCase):
+
+    """
+     This class tests the creation of SLD from QGis layers
+     """
+
+    def testSimpleMarkerRotation(self):
+        symbol = QgsSimpleMarkerSymbolLayerV2(
+            'star', QColor(255, 0, 0), QColor(0, 255, 0), 10)
+        symbol.setAngle(50)
+        dom, root = self.symbolToSld(symbol)
+        # print( "Simple marker rotation: " + root.ownerDocument().toString())
+
+        self.assertStaticRotation(root, '50')
+
+    def assertStaticRotation(self, root, expectedValue):
+        # Check the rotation element is a literal, not a
+        rotation = root.elementsByTagName('se:Rotation').item(0)
+        literal = rotation.firstChild()
+        self.assertEquals("ogc:Literal", literal.nodeName())
+        self.assertEquals(expectedValue, literal.firstChild().nodeValue())
+
+    def assertStaticDisplacement(self, root, expectedDispX, expectedDispY):
+        displacement = root.elementsByTagName('se:Displacement').item(0)
+        self.assertIsNotNone(displacement)
+        dx = displacement.firstChild()
+        self.assertIsNotNone(dx)
+        self.assertEquals("se:DisplacementX", dx.nodeName())
+        self.assertSldNumber(expectedDispX, dx.firstChild().nodeValue())
+        dy = displacement.lastChild()
+        self.assertIsNotNone(dy)
+        self.assertEquals("se:DisplacementY", dy.nodeName())
+        self.assertSldNumber(expectedDispY, dy.firstChild().nodeValue())
+
+    def assertSldNumber(self, expected, stringValue):
+        value = float(stringValue)
+        self.assertFloatEquals(expected, value, 0.01)
+
+    def assertFloatEquals(self, expected, actual, tol):
+        self.assertLess(abs(expected - actual), tol)
+
+    def testSimpleMarkerUnitDefault(self):
+        symbol = QgsSimpleMarkerSymbolLayerV2(
+            'star', QColor(255, 0, 0), QColor(0, 255, 0), 10)
+        symbol.setOutlineWidth(3)
+        symbol.setOffset(QPointF(5, 10))
+        dom, root = self.symbolToSld(symbol)
+        # print("Simple marker unit mm: " + root.ownerDocument().toString())
+
+        # Check the size has been rescaled to pixels
+        self.assertStaticSize(root, '36')
+
+        # Check the same happened to the outline width
+        self.assertStrokeWidth(root, 2, 11)
+        self.assertStaticDisplacement(root, 18, 36)
+
+    def assertStrokeWidth(self, root, svgParameterIdx, expectedWidth):
+        strokeWidth = root.elementsByTagName(
+            'se:SvgParameter').item(svgParameterIdx)
+        svgParameterName = strokeWidth.attributes().namedItem('name')
+        self.assertEquals("stroke-width", svgParameterName.nodeValue())
+        self.assertSldNumber(
+            expectedWidth, strokeWidth.firstChild().nodeValue())
+
+    def testSimpleMarkerUnitPixels(self):
+        symbol = QgsSimpleMarkerSymbolLayerV2(
+            'star', QColor(255, 0, 0), QColor(0, 255, 0), 10)
+        symbol.setOutlineWidth(3)
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+        # print("Marker unit mm: " + root.ownerDocument().toString())
+
+        # Check the size has not been rescaled
+        self.assertStaticSize(root, '10')
+
+        # Check the same happened to the outline width
+        self.assertStrokeWidth(root, 2, 3)
+        self.assertStaticDisplacement(root, 5, 10)
+
+    def testSvgMarkerUnitDefault(self):
+        symbol = QgsSvgMarkerSymbolLayerV2('symbols/star.svg', 10, 90)
+        symbol.setOffset(QPointF(5, 10))
+
+        dom, root = self.symbolToSld(symbol)
+        # print("Svg marker mm: " + dom.toString())
+
+        # Check the size has been rescaled
+        self.assertStaticSize(root, '36')
+
+        # Check rotation for good measure
+        self.assertStaticRotation(root, '90')
+        self.assertStaticDisplacement(root, 18, 36)
+
+    def testSvgMarkerUnitPixels(self):
+        symbol = QgsSvgMarkerSymbolLayerV2('symbols/star.svg', 10, 0)
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+        # print("Svg marker unit px: " + dom.toString())
+
+        # Check the size has not been rescaled
+        self.assertStaticSize(root, '10')
+        self.assertStaticDisplacement(root, 5, 10)
+
+    def testFontMarkerUnitDefault(self):
+        symbol = QgsFontMarkerSymbolLayerV2('sans', ',', 10, QColor('black'), 45)
+        symbol.setOffset(QPointF(5, 10))
+        dom, root = self.symbolToSld(symbol)
+        # print "Font marker unit mm: " + dom.toString()
+
+        # Check the size has been rescaled
+        self.assertStaticSize(root, '36')
+        self.assertStaticRotation(root, '45')
+        self.assertStaticDisplacement(root, 18, 36)
+
+    def testFontMarkerUnitPixel(self):
+        symbol = QgsFontMarkerSymbolLayerV2('sans', ',', 10, QColor('black'), 45)
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+        # print ("Font marker unit mm: " + dom.toString())
+
+        # Check the size has been rescaled
+        self.assertStaticSize(root, '10')
+        self.assertStaticRotation(root, '45')
+        self.assertStaticDisplacement(root, 5, 10)
+
+    def createEllipseSymbolLayer(self):
+        # No way to build it programmatically...
+        mTestName = 'QgsEllipseSymbolLayerV2'
+        mFilePath = QDir.toNativeSeparators(
+            '%s/symbol_layer/%s.sld' % (unitTestDataPath(), mTestName))
+
+        mDoc = QDomDocument(mTestName)
+        mFile = QFile(mFilePath)
+        mFile.open(QIODevice.ReadOnly)
+        mDoc.setContent(mFile, True)
+        mFile.close()
+        mSymbolLayer = QgsEllipseSymbolLayerV2.createFromSld(
+            mDoc.elementsByTagName('PointSymbolizer').item(0).toElement())
+        return mSymbolLayer
+
+    def testEllipseMarkerUnitDefault(self):
+        symbol = self.createEllipseSymbolLayer()
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.MM)
+        dom, root = self.symbolToSld(symbol)
+        # print ("Ellipse marker unit mm: " + dom.toString())
+
+        # Check the size has been rescaled
+        self.assertStaticSize(root, '25')
+        # Check also the stroke width
+        self.assertStrokeWidth(root, 2, 4)
+        self.assertStaticDisplacement(root, 18, 36)
+
+    def testEllipseMarkerUnitPixel(self):
+        symbol = self.createEllipseSymbolLayer()
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+        # print ("Ellipse marker unit mm: " + dom.toString())
+
+        # Check the size has been rescaled
+        self.assertStaticSize(root, '7')
+        # Check also the stroke width
+        self.assertStrokeWidth(root, 2, 1)
+        self.assertStaticDisplacement(root, 5, 10)
+
+    def testSimpleLineUnitDefault(self):
+        symbol = QgsSimpleLineSymbolLayerV2(QColor("black"), 1)
+        symbol.setCustomDashVector([10, 10])
+        symbol.setUseCustomDashPattern(True)
+        symbol.setOffset(5)
+        dom, root = self.symbolToSld(symbol)
+
+        # print ("Simple line px: \n" + dom.toString())
+
+        self.assertStrokeWidth(root, 1, 4)
+        self.assertDashPattern(root, 4, '36 36')
+        self.assertStaticPerpendicularOffset(root, '18')
+
+    def testSimpleLineUnitPixel(self):
+        symbol = QgsSimpleLineSymbolLayerV2(QColor("black"), 1)
+        symbol.setCustomDashVector([10, 10])
+        symbol.setUseCustomDashPattern(True)
+        symbol.setOffset(5)
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+
+        # print ("Simple line px: \n" + dom.toString())
+
+        self.assertStrokeWidth(root, 1, 1)
+        self.assertDashPattern(root, 4, '10 10')
+        self.assertStaticPerpendicularOffset(root, '5')
+
+    def testMarkLineUnitDefault(self):
+        symbol = QgsMarkerLineSymbolLayerV2()
+        symbol.setSubSymbol(
+            QgsMarkerSymbolV2.createSimple({'color': '#ffffff', 'size': '3'}))
+        symbol.setInterval(5)
+        symbol.setOffset(5)
+        dom, root = self.symbolToSld(symbol)
+
+        # print ("Mark line mm: \n" + dom.toString())
+
+        # size of the mark
+        self.assertStaticSize(root, '11')
+        # gap and offset
+        self.assertStaticGap(root, '18')
+        self.assertStaticPerpendicularOffset(root, '18')
+
+    def testMarkLineUnitPixels(self):
+        symbol = QgsMarkerLineSymbolLayerV2()
+        symbol.setSubSymbol(
+            QgsMarkerSymbolV2.createSimple({'color': '#ffffff', 'size': '3'}))
+        symbol.setInterval(5)
+        symbol.setOffset(5)
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+
+        # print ("Mark line px: \n" + dom.toString())
+
+        # size of the mark
+        self.assertStaticSize(root, '3')
+        # gap and offset
+        self.assertStaticGap(root, '5')
+        self.assertStaticPerpendicularOffset(root, '5')
+
+    def testSimpleFillDefault(self):
+        symbol = QgsSimpleFillSymbolLayerV2(
+            QColor('red'), Qt.SolidPattern, QColor('green'), Qt.SolidLine, 5)
+        symbol.setOffset(QPointF(5, 10))
+
+        dom, root = self.symbolToSld(symbol)
+
+        # print ("Simple fill mm: \n" + dom.toString())
+
+        self.assertStrokeWidth(root, 2, 18)
+        self.assertStaticDisplacement(root, 18, 36)
+
+    def testSimpleFillPixels(self):
+        symbol = QgsSimpleFillSymbolLayerV2(
+            QColor('red'), Qt.SolidPattern, QColor('green'), Qt.SolidLine, 5)
+        symbol.setOffset(QPointF(5, 10))
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+
+        dom, root = self.symbolToSld(symbol)
+        # print ( "Simple fill px: \n" + dom.toString())
+
+        self.assertStrokeWidth(root, 2, 5)
+        self.assertStaticDisplacement(root, 5, 10)
+
+    def testSvgFillDefault(self):
+        symbol = QgsSVGFillSymbolLayer('test/star.svg', 10, 45)
+        symbol.setSvgOutlineWidth(3)
+
+        dom, root = self.symbolToSld(symbol)
+        # print ("Svg fill mm: \n" + dom.toString())
+
+        self.assertStaticRotation(root, '45')
+        self.assertStaticSize(root, '36')
+        # width of the svg outline
+        self.assertStrokeWidth(root, 1, 11)
+        # width of the polygon outline
+        self.assertStrokeWidth(root, 3, 1)
+
+    def testSvgFillPixel(self):
+        symbol = QgsSVGFillSymbolLayer('test/star.svg', 10, 45)
+        symbol.setSvgOutlineWidth(3)
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+
+        dom, root = self.symbolToSld(symbol)
+        # print ("Svg fill px: \n" + dom.toString())
+
+        self.assertStaticRotation(root, '45')
+        self.assertStaticSize(root, '10')
+        # width of the svg outline
+        self.assertStrokeWidth(root, 1, 3)
+        # width of the polygon outline
+        self.assertStrokeWidth(root, 3, 0.26)
+
+    def testLineFillDefault(self):
+        symbol = QgsLinePatternFillSymbolLayer()
+        symbol.setLineAngle(45)
+        symbol.setLineWidth(1)
+        symbol.setOffset(5)
+
+        dom, root = self.symbolToSld(symbol)
+        # print ("Line fill mm: \n" + dom.toString())
+
+        self.assertStaticRotation(root, '45')
+        self.assertStrokeWidth(root, 1, 4)
+        self.assertStaticSize(root, '18')
+        self.assertStaticDisplacement(root, 15, 9)
+
+    def testLineFillPixels(self):
+        symbol = QgsLinePatternFillSymbolLayer()
+        symbol.setLineAngle(45)
+        symbol.setLineWidth(1)
+        symbol.setOffset(5)
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+
+        dom, root = self.symbolToSld(symbol)
+        # print ("Line fill px: \n" + dom.toString())
+
+        self.assertStaticRotation(root, '45')
+        self.assertStrokeWidth(root, 1, 1)
+        self.assertStaticSize(root, '5')
+        self.assertStaticDisplacement(root, 4.25, 2.63)
+
+    def testPointFillDefault(self):
+        symbol = QgsPointPatternFillSymbolLayer()
+        dom, root = self.symbolToSld(symbol)
+        # print ("Point fill mm: \n" + dom.toString())
+
+        self.assertStaticSize(root, '7')
+
+    def testPointFillpixels(self):
+        symbol = QgsPointPatternFillSymbolLayer()
+        symbol.setOutputUnit(QgsSymbolV2.Pixel)
+        dom, root = self.symbolToSld(symbol)
+        # print ("Point fill px: \n" + dom.toString())
+
+        self.assertStaticSize(root, '2')
+
+    def testSingleSymbolNoScaleDependencies(self):
+        layer = QgsVectorLayer("Point", "addfeat", "memory")
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "singleSymbol"))
+        layer.loadNamedStyle(mFilePath)
+
+        dom, root = self.layerToSld(layer)
+        # print("No dep on single symbol:" + dom.toString())
+
+        self.assertScaleDenominator(root, None, None)
+
+    def testSingleSymbolScaleDependencies(self):
+        layer = QgsVectorLayer("Point", "addfeat", "memory")
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "singleSymbol"))
+        layer.loadNamedStyle(mFilePath)
+        layer.setMinimumScale(1000)
+        layer.setMaximumScale(500000)
+        layer.setScaleBasedVisibility(True)
+
+        dom, root = self.layerToSld(layer)
+        # print("Scale dep on single symbol:" + dom.toString())
+
+        self.assertScaleDenominator(root, '1000', '500000')
+
+    def testCategorizedNoScaleDependencies(self):
+        layer = QgsVectorLayer("Polygon", "addfeat", "memory")
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "categorized"))
+        layer.loadNamedStyle(mFilePath)
+
+        dom, root = self.layerToSld(layer)
+        # print("Categorized no scale deps:" + dom.toString())
+
+        ruleCount = root.elementsByTagName('se:Rule').size()
+        for i in range(0, ruleCount):
+            self.assertScaleDenominator(root, None, None, i)
+
+    def testCategorizedWithScaleDependencies(self):
+        layer = QgsVectorLayer("Polygon", "addfeat", "memory")
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "categorized"))
+        layer.loadNamedStyle(mFilePath)
+        layer.setMinimumScale(1000)
+        layer.setMaximumScale(500000)
+        layer.setScaleBasedVisibility(True)
+
+        dom, root = self.layerToSld(layer)
+        # print("Categorized with scale deps:" + dom.toString())
+
+        ruleCount = root.elementsByTagName('se:Rule').size()
+        for i in range(0, ruleCount):
+            self.assertScaleDenominator(root, '1000', '500000', i)
+
+    def testGraduatedNoScaleDependencies(self):
+        layer = QgsVectorLayer("Polygon", "addfeat", "memory")
+
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "graduated"))
+        status = layer.loadNamedStyle(mFilePath)
+
+        dom, root = self.layerToSld(layer)
+        # print("Graduated no scale deps:" + dom.toString())
+
+        ruleCount = root.elementsByTagName('se:Rule').size()
+        for i in range(0, ruleCount):
+            self.assertScaleDenominator(root, None, None, i)
+
+    def testRuleBasedNoRootScaleDependencies(self):
+        layer = QgsVectorLayer("Polygon", "addfeat", "memory")
+
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "ruleBased"))
+        status = layer.loadNamedStyle(mFilePath)
+
+        dom, root = self.layerToSld(layer)
+        print("Rule based, no root scale deps:" + dom.toString())
+
+        ruleCount = root.elementsByTagName('se:Rule').size()
+        self.assertScaleDenominator(root, '1000', '40000000', 0)
+        self.assertScaleDenominator(root, None, None, 1)
+
+    def testRuleBasedNoRootScaleDependencies(self):
+        layer = QgsVectorLayer("Polygon", "addfeat", "memory")
+
+        mFilePath = QDir.toNativeSeparators('%s/symbol_layer/%s.qml' % (unitTestDataPath(), "ruleBased"))
+        status = layer.loadNamedStyle(mFilePath)
+        layer.setMinimumScale(5000)
+        layer.setMaximumScale(50000000)
+        layer.setScaleBasedVisibility(True)
+
+        dom, root = self.layerToSld(layer)
+        # print("Rule based, with root scale deps:" + dom.toString())
+
+        ruleCount = root.elementsByTagName('se:Rule').size()
+        self.assertScaleDenominator(root, '5000', '40000000', 0)
+        self.assertScaleDenominator(root, '5000', '50000000', 1)
+
+    def assertScaleDenominator(self, root, expectedMinScale, expectedMaxScale, index=0):
+        rule = root.elementsByTagName('se:Rule').item(index).toElement()
+
+        if expectedMinScale:
+            minScale = rule.elementsByTagName('se:MinScaleDenominator').item(0)
+            self.assertEquals(expectedMinScale, minScale.firstChild().nodeValue())
+        else:
+            self.assertEquals(0, root.elementsByTagName('se:MinScaleDenominator').size())
+
+        if expectedMaxScale:
+            maxScale = rule.elementsByTagName('se:MaxScaleDenominator').item(0)
+            self.assertEquals(expectedMaxScale, maxScale.firstChild().nodeValue())
+        else:
+            self.assertEquals(0, root.elementsByTagName('se:MaxScaleDenominator').size())
+
+    def assertDashPattern(self, root, svgParameterIdx, expectedPattern):
+        strokeWidth = root.elementsByTagName(
+            'se:SvgParameter').item(svgParameterIdx)
+        svgParameterName = strokeWidth.attributes().namedItem('name')
+        self.assertEquals("stroke-dasharray", svgParameterName.nodeValue())
+        self.assertEquals(
+            expectedPattern, strokeWidth.firstChild().nodeValue())
+
+    def assertStaticGap(self, root, expectedValue):
+        # Check the rotation element is a literal, not a
+        rotation = root.elementsByTagName('se:Gap').item(0)
+        literal = rotation.firstChild()
+        self.assertEquals("ogc:Literal", literal.nodeName())
+        self.assertEquals(expectedValue, literal.firstChild().nodeValue())
+
+    def assertStaticSize(self, root, expectedValue):
+        size = root.elementsByTagName('se:Size').item(0)
+        self.assertEquals(expectedValue, size.firstChild().nodeValue())
+
+    def assertStaticPerpendicularOffset(self, root, expectedValue):
+        offset = root.elementsByTagName('se:PerpendicularOffset').item(0)
+        self.assertEquals(expectedValue, offset.firstChild().nodeValue())
+
+    def symbolToSld(self, symbolLayer):
+        dom = QDomDocument()
+        root = dom.createElement("FakeRoot")
+        dom.appendChild(root)
+        symbolLayer.toSld(dom, root, {})
+        return dom, root
+
+    def layerToSld(self, mapLayer):
+        dom = QDomDocument()
+        root = dom.createElement("FakeRoot")
+        dom.appendChild(root)
+        error = None
+        mapLayer.writeSld(root, dom, error, {})
+        return dom, root
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/tests/testdata/control_images/composer_paper/expected_composerpaper_markerborder/expected_composerpaper_markerborder_mask.png b/tests/testdata/control_images/composer_paper/expected_composerpaper_markerborder/expected_composerpaper_markerborder_mask.png
new file mode 100644
index 0000000..451be5c
Binary files /dev/null and b/tests/testdata/control_images/composer_paper/expected_composerpaper_markerborder/expected_composerpaper_markerborder_mask.png differ
diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test.png
new file mode 100644
index 0000000..163ae4e
Binary files /dev/null and b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test.png differ
diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test_mask.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test_mask.png
new file mode 100644
index 0000000..a02f45b
Binary files /dev/null and b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test/WMS_GetLegendGraphic_test_mask.png differ
diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false.png
new file mode 100644
index 0000000..69cb22e
Binary files /dev/null and b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false.png differ
diff --git a/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false_mask.png b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false_mask.png
new file mode 100644
index 0000000..4b118d9
Binary files /dev/null and b/tests/testdata/control_images/qgis_server/WMS_GetLegendGraphic_test_layertitle_false/WMS_GetLegendGraphic_test_layertitle_false_mask.png differ
diff --git a/tests/testdata/symbol_layer/categorized.qml b/tests/testdata/symbol_layer/categorized.qml
new file mode 100644
index 0000000..4a92181
--- /dev/null
+++ b/tests/testdata/symbol_layer/categorized.qml
@@ -0,0 +1,903 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="2.99.0-Master" simplifyAlgorithm="0" simplifyDrawingHints="1" simplifyDrawingTol="1" readOnly="0" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="1" simplifyLocal="1">
+  <edittypes>
+    <edittype widgetv2type="TextEdit" name="scalerank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="featurecla">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="labelrank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sovereignt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sov_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="level">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="type">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="admin">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geou_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geounit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gu_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subunit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_diff">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_long">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_group">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="postal">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_en">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_fr">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_adm0">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_brk">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_sort">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_alt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor7">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor8">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor9">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor13">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_md_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="lastcensus">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="economy">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="income_grp">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wikipedia">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="fips_10">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_n3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="un_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="woe_id">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_is">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_us">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="continent">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subregion">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="long_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="tiny">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="homepart">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+  </edittypes>
+  <renderer-v2 attr="subregion" forceraster="0" symbollevels="0" type="categorizedSymbol" enableorderby="0">
+    <categories>
+      <category render="true" symbol="0" value="Antarctica" label="Antarctica"/>
+      <category render="true" symbol="1" value="Australia and New Zealand" label="Australia and New Zealand"/>
+      <category render="true" symbol="2" value="Caribbean" label="Caribbean"/>
+      <category render="true" symbol="3" value="Central America" label="Central America"/>
+      <category render="true" symbol="4" value="Central Asia" label="Central Asia"/>
+      <category render="true" symbol="5" value="Eastern Africa" label="Eastern Africa"/>
+      <category render="true" symbol="6" value="Eastern Asia" label="Eastern Asia"/>
+      <category render="true" symbol="7" value="Eastern Europe" label="Eastern Europe"/>
+      <category render="true" symbol="8" value="Melanesia" label="Melanesia"/>
+      <category render="true" symbol="9" value="Micronesia" label="Micronesia"/>
+      <category render="true" symbol="10" value="Middle Africa" label="Middle Africa"/>
+      <category render="true" symbol="11" value="Northern Africa" label="Northern Africa"/>
+      <category render="true" symbol="12" value="Northern America" label="Northern America"/>
+      <category render="true" symbol="13" value="Northern Europe" label="Northern Europe"/>
+      <category render="true" symbol="14" value="Polynesia" label="Polynesia"/>
+      <category render="true" symbol="15" value="Seven seas (open ocean)" label="Seven seas (open ocean)"/>
+      <category render="true" symbol="16" value="South America" label="South America"/>
+      <category render="true" symbol="17" value="South-Eastern Asia" label="South-Eastern Asia"/>
+      <category render="true" symbol="18" value="Southern Africa" label="Southern Africa"/>
+      <category render="true" symbol="19" value="Southern Asia" label="Southern Asia"/>
+      <category render="true" symbol="20" value="Southern Europe" label="Southern Europe"/>
+      <category render="true" symbol="21" value="Western Africa" label="Western Africa"/>
+      <category render="true" symbol="22" value="Western Asia" label="Western Asia"/>
+      <category render="true" symbol="23" value="Western Europe" label="Western Europe"/>
+      <category render="true" symbol="24" value="" label=""/>
+    </categories>
+    <symbols>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="0">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="208,28,139,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="1">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="214,53,152,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="10">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="245,226,238,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="11">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="246,237,243,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="12">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="247,247,247,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="13">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="237,244,229,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="14">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="226,240,210,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="15">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="216,236,191,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="16">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="205,233,172,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="17">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="195,229,153,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="18">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="184,225,134,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="19">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="166,217,118,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="2">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="219,79,165,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="20">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="148,208,102,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="21">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="131,199,86,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="22">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="113,190,70,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="23">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="95,181,54,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="24">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="77,172,38,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="3">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="225,105,179,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="4">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="230,131,192,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="5">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="236,156,205,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="6">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="241,182,218,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="7">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="242,193,223,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="8">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="243,204,228,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="9">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="244,215,233,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+    </symbols>
+    <source-symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="0">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="81,67,176,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+    </source-symbol>
+    <colorramp type="gradient" name="[source]">
+      <prop k="color1" v="208,28,139,255"/>
+      <prop k="color2" v="77,172,38,255"/>
+      <prop k="discrete" v="0"/>
+      <prop k="stops" v="0.25;241,182,218,255:0.5;247,247,247,255:0.75;184,225,134,255"/>
+    </colorramp>
+    <invertedcolorramp value="0"/>
+    <rotation/>
+    <sizescale scalemethod="diameter"/>
+  </renderer-v2>
+  <labeling type="simple"/>
+  <customproperties>
+    <property key="embeddedWidgets/count" value="0"/>
+    <property key="labeling" value="pal"/>
+    <property key="labeling/addDirectionSymbol" value="false"/>
+    <property key="labeling/angleOffset" value="0"/>
+    <property key="labeling/blendMode" value="0"/>
+    <property key="labeling/bufferBlendMode" value="0"/>
+    <property key="labeling/bufferColorA" value="255"/>
+    <property key="labeling/bufferColorB" value="255"/>
+    <property key="labeling/bufferColorG" value="255"/>
+    <property key="labeling/bufferColorR" value="255"/>
+    <property key="labeling/bufferDraw" value="false"/>
+    <property key="labeling/bufferJoinStyle" value="64"/>
+    <property key="labeling/bufferNoFill" value="false"/>
+    <property key="labeling/bufferSize" value="1"/>
+    <property key="labeling/bufferSizeInMapUnits" value="false"/>
+    <property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/bufferTransp" value="0"/>
+    <property key="labeling/centroidInside" value="false"/>
+    <property key="labeling/centroidWhole" value="false"/>
+    <property key="labeling/decimals" value="3"/>
+    <property key="labeling/displayAll" value="false"/>
+    <property key="labeling/dist" value="0"/>
+    <property key="labeling/distInMapUnits" value="false"/>
+    <property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/drawLabels" value="false"/>
+    <property key="labeling/enabled" value="false"/>
+    <property key="labeling/fieldName" value=""/>
+    <property key="labeling/fitInPolygonOnly" value="false"/>
+    <property key="labeling/fontCapitals" value="0"/>
+    <property key="labeling/fontFamily" value="Noto Sans"/>
+    <property key="labeling/fontItalic" value="false"/>
+    <property key="labeling/fontLetterSpacing" value="0"/>
+    <property key="labeling/fontLimitPixelSize" value="false"/>
+    <property key="labeling/fontMaxPixelSize" value="10000"/>
+    <property key="labeling/fontMinPixelSize" value="3"/>
+    <property key="labeling/fontSize" value="9"/>
+    <property key="labeling/fontSizeInMapUnits" value="false"/>
+    <property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/fontStrikeout" value="false"/>
+    <property key="labeling/fontUnderline" value="false"/>
+    <property key="labeling/fontWeight" value="50"/>
+    <property key="labeling/fontWordSpacing" value="0"/>
+    <property key="labeling/formatNumbers" value="false"/>
+    <property key="labeling/isExpression" value="true"/>
+    <property key="labeling/labelOffsetInMapUnits" value="true"/>
+    <property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/labelPerPart" value="false"/>
+    <property key="labeling/leftDirectionSymbol" value="<"/>
+    <property key="labeling/limitNumLabels" value="false"/>
+    <property key="labeling/maxCurvedCharAngleIn" value="25"/>
+    <property key="labeling/maxCurvedCharAngleOut" value="-25"/>
+    <property key="labeling/maxNumLabels" value="2000"/>
+    <property key="labeling/mergeLines" value="false"/>
+    <property key="labeling/minFeatureSize" value="0"/>
+    <property key="labeling/multilineAlign" value="4294967295"/>
+    <property key="labeling/multilineHeight" value="1"/>
+    <property key="labeling/namedStyle" value="Bold Italic"/>
+    <property key="labeling/obstacle" value="true"/>
+    <property key="labeling/obstacleFactor" value="1"/>
+    <property key="labeling/obstacleType" value="0"/>
+    <property key="labeling/offsetType" value="0"/>
+    <property key="labeling/placeDirectionSymbol" value="0"/>
+    <property key="labeling/placement" value="1"/>
+    <property key="labeling/placementFlags" value="10"/>
+    <property key="labeling/plussign" value="false"/>
+    <property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
+    <property key="labeling/preserveRotation" value="true"/>
+    <property key="labeling/previewBkgrdColor" value="#ffffff"/>
+    <property key="labeling/priority" value="5"/>
+    <property key="labeling/quadOffset" value="4"/>
+    <property key="labeling/repeatDistance" value="0"/>
+    <property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/repeatDistanceUnit" value="1"/>
+    <property key="labeling/reverseDirectionSymbol" value="false"/>
+    <property key="labeling/rightDirectionSymbol" value=">"/>
+    <property key="labeling/scaleMax" value="10000000"/>
+    <property key="labeling/scaleMin" value="1"/>
+    <property key="labeling/scaleVisibility" value="false"/>
+    <property key="labeling/shadowBlendMode" value="6"/>
+    <property key="labeling/shadowColorB" value="0"/>
+    <property key="labeling/shadowColorG" value="0"/>
+    <property key="labeling/shadowColorR" value="0"/>
+    <property key="labeling/shadowDraw" value="false"/>
+    <property key="labeling/shadowOffsetAngle" value="135"/>
+    <property key="labeling/shadowOffsetDist" value="1"/>
+    <property key="labeling/shadowOffsetGlobal" value="true"/>
+    <property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowOffsetUnits" value="1"/>
+    <property key="labeling/shadowRadius" value="1.5"/>
+    <property key="labeling/shadowRadiusAlphaOnly" value="false"/>
+    <property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowRadiusUnits" value="1"/>
+    <property key="labeling/shadowScale" value="100"/>
+    <property key="labeling/shadowTransparency" value="30"/>
+    <property key="labeling/shadowUnder" value="0"/>
+    <property key="labeling/shapeBlendMode" value="0"/>
+    <property key="labeling/shapeBorderColorA" value="255"/>
+    <property key="labeling/shapeBorderColorB" value="128"/>
+    <property key="labeling/shapeBorderColorG" value="128"/>
+    <property key="labeling/shapeBorderColorR" value="128"/>
+    <property key="labeling/shapeBorderWidth" value="0"/>
+    <property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeBorderWidthUnits" value="1"/>
+    <property key="labeling/shapeDraw" value="false"/>
+    <property key="labeling/shapeFillColorA" value="255"/>
+    <property key="labeling/shapeFillColorB" value="255"/>
+    <property key="labeling/shapeFillColorG" value="255"/>
+    <property key="labeling/shapeFillColorR" value="255"/>
+    <property key="labeling/shapeJoinStyle" value="64"/>
+    <property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeOffsetUnits" value="1"/>
+    <property key="labeling/shapeOffsetX" value="0"/>
+    <property key="labeling/shapeOffsetY" value="0"/>
+    <property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeRadiiUnits" value="1"/>
+    <property key="labeling/shapeRadiiX" value="0"/>
+    <property key="labeling/shapeRadiiY" value="0"/>
+    <property key="labeling/shapeRotation" value="0"/>
+    <property key="labeling/shapeRotationType" value="0"/>
+    <property key="labeling/shapeSVGFile" value=""/>
+    <property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeSizeType" value="0"/>
+    <property key="labeling/shapeSizeUnits" value="1"/>
+    <property key="labeling/shapeSizeX" value="0"/>
+    <property key="labeling/shapeSizeY" value="0"/>
+    <property key="labeling/shapeTransparency" value="0"/>
+    <property key="labeling/shapeType" value="0"/>
+    <property key="labeling/textColorA" value="255"/>
+    <property key="labeling/textColorB" value="0"/>
+    <property key="labeling/textColorG" value="0"/>
+    <property key="labeling/textColorR" value="0"/>
+    <property key="labeling/textTransp" value="0"/>
+    <property key="labeling/upsidedownLabels" value="0"/>
+    <property key="labeling/wrapChar" value=""/>
+    <property key="labeling/xOffset" value="0"/>
+    <property key="labeling/yOffset" value="0"/>
+    <property key="labeling/zIndex" value="0"/>
+    <property key="variableNames" value="_fields_"/>
+    <property key="variableValues" value=""/>
+  </customproperties>
+  <blendMode>0</blendMode>
+  <featureBlendMode>0</featureBlendMode>
+  <layerTransparency>0</layerTransparency>
+  <SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
+    <DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="100000">
+      <fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
+    </DiagramCategory>
+    <symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
+      <layer pass="0" class="SimpleMarker" locked="0">
+        <prop k="angle" v="0"/>
+        <prop k="color" v="255,0,0,255"/>
+        <prop k="horizontal_anchor_point" v="1"/>
+        <prop k="joinstyle" v="bevel"/>
+        <prop k="name" v="circle"/>
+        <prop k="offset" v="0,0"/>
+        <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="offset_unit" v="MM"/>
+        <prop k="outline_color" v="0,0,0,255"/>
+        <prop k="outline_style" v="solid"/>
+        <prop k="outline_width" v="0"/>
+        <prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="outline_width_unit" v="MM"/>
+        <prop k="scale_method" v="diameter"/>
+        <prop k="size" v="2"/>
+        <prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="size_unit" v="MM"/>
+        <prop k="vertical_anchor_point" v="1"/>
+      </layer>
+    </symbol>
+  </SingleCategoryDiagramRenderer>
+  <DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
+  <annotationform></annotationform>
+  <excludeAttributesWMS/>
+  <excludeAttributesWFS/>
+  <attributeactions default="-1"/>
+  <attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
+    <columns>
+      <column width="-1" hidden="0" type="field" name="scalerank"/>
+      <column width="-1" hidden="0" type="field" name="featurecla"/>
+      <column width="-1" hidden="0" type="field" name="labelrank"/>
+      <column width="-1" hidden="0" type="field" name="sovereignt"/>
+      <column width="-1" hidden="0" type="field" name="sov_a3"/>
+      <column width="-1" hidden="0" type="field" name="adm0_dif"/>
+      <column width="-1" hidden="0" type="field" name="level"/>
+      <column width="-1" hidden="0" type="field" name="type"/>
+      <column width="-1" hidden="0" type="field" name="admin"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3"/>
+      <column width="-1" hidden="0" type="field" name="geou_dif"/>
+      <column width="-1" hidden="0" type="field" name="geounit"/>
+      <column width="-1" hidden="0" type="field" name="gu_a3"/>
+      <column width="-1" hidden="0" type="field" name="su_dif"/>
+      <column width="-1" hidden="0" type="field" name="subunit"/>
+      <column width="-1" hidden="0" type="field" name="su_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_diff"/>
+      <column width="-1" hidden="0" type="field" name="name"/>
+      <column width="-1" hidden="0" type="field" name="name_long"/>
+      <column width="-1" hidden="0" type="field" name="brk_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_name"/>
+      <column width="-1" hidden="0" type="field" name="brk_group"/>
+      <column width="-1" hidden="0" type="field" name="abbrev"/>
+      <column width="-1" hidden="0" type="field" name="postal"/>
+      <column width="-1" hidden="0" type="field" name="formal_en"/>
+      <column width="-1" hidden="0" type="field" name="formal_fr"/>
+      <column width="-1" hidden="0" type="field" name="note_adm0"/>
+      <column width="-1" hidden="0" type="field" name="note_brk"/>
+      <column width="-1" hidden="0" type="field" name="name_sort"/>
+      <column width="-1" hidden="0" type="field" name="name_alt"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor7"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor8"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor9"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor13"/>
+      <column width="-1" hidden="0" type="field" name="pop_est"/>
+      <column width="-1" hidden="0" type="field" name="gdp_md_est"/>
+      <column width="-1" hidden="0" type="field" name="pop_year"/>
+      <column width="-1" hidden="0" type="field" name="lastcensus"/>
+      <column width="-1" hidden="0" type="field" name="gdp_year"/>
+      <column width="-1" hidden="0" type="field" name="economy"/>
+      <column width="-1" hidden="0" type="field" name="income_grp"/>
+      <column width="-1" hidden="0" type="field" name="wikipedia"/>
+      <column width="-1" hidden="0" type="field" name="fips_10"/>
+      <column width="-1" hidden="0" type="field" name="iso_a2"/>
+      <column width="-1" hidden="0" type="field" name="iso_a3"/>
+      <column width="-1" hidden="0" type="field" name="iso_n3"/>
+      <column width="-1" hidden="0" type="field" name="un_a3"/>
+      <column width="-1" hidden="0" type="field" name="wb_a2"/>
+      <column width="-1" hidden="0" type="field" name="wb_a3"/>
+      <column width="-1" hidden="0" type="field" name="woe_id"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_is"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_us"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_un"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_wb"/>
+      <column width="-1" hidden="0" type="field" name="continent"/>
+      <column width="-1" hidden="0" type="field" name="region_un"/>
+      <column width="-1" hidden="0" type="field" name="subregion"/>
+      <column width="-1" hidden="0" type="field" name="region_wb"/>
+      <column width="-1" hidden="0" type="field" name="name_len"/>
+      <column width="-1" hidden="0" type="field" name="long_len"/>
+      <column width="-1" hidden="0" type="field" name="abbrev_len"/>
+      <column width="-1" hidden="0" type="field" name="tiny"/>
+      <column width="-1" hidden="0" type="field" name="homepart"/>
+      <column width="-1" hidden="1" type="actions"/>
+    </columns>
+  </attributetableconfig>
+  <editform></editform>
+  <editforminit/>
+  <editforminitcodesource>0</editforminitcodesource>
+  <editforminitfilepath></editforminitfilepath>
+  <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+  <featformsuppress>0</featformsuppress>
+  <editorlayout>generatedlayout</editorlayout>
+  <widgets/>
+  <conditionalstyles>
+    <rowstyles/>
+    <fieldstyles/>
+  </conditionalstyles>
+  <expressionfields/>
+  <previewExpression>name</previewExpression>
+  <mapTip></mapTip>
+  <layerGeometryType>2</layerGeometryType>
+</qgis>
diff --git a/tests/testdata/symbol_layer/graduated.qml b/tests/testdata/symbol_layer/graduated.qml
new file mode 100644
index 0000000..979a75b
--- /dev/null
+++ b/tests/testdata/symbol_layer/graduated.qml
@@ -0,0 +1,585 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="2.99.0-Master" simplifyAlgorithm="0" minimumScale="100000" maximumScale="1e+08" simplifyDrawingHints="1" simplifyDrawingTol="1" readOnly="0" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1">
+  <edittypes>
+    <edittype widgetv2type="TextEdit" name="scalerank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="featurecla">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="labelrank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sovereignt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sov_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="level">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="type">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="admin">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geou_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geounit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gu_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subunit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_diff">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_long">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_group">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="postal">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_en">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_fr">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_adm0">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_brk">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_sort">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_alt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor7">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor8">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor9">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor13">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_md_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="lastcensus">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="economy">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="income_grp">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wikipedia">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="fips_10">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_n3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="un_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="woe_id">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_is">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_us">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="continent">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subregion">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="long_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="tiny">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="homepart">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+  </edittypes>
+  <renderer-v2 attr="pop_est" forceraster="0" symbollevels="0" type="graduatedSymbol" graduatedMethod="GraduatedColor" enableorderby="0">
+    <ranges>
+      <range render="true" symbol="0" lower="-99.000000000000000" upper="36661.000000000000000" label=" -99 - 36661 "/>
+      <range render="true" symbol="1" lower="36661.000000000000000" upper="672180.000000000000000" label=" 36661 - 672180 "/>
+      <range render="true" symbol="2" lower="672180.000000000000000" upper="4798491.000000000000000" label=" 672180 - 4798491 "/>
+      <range render="true" symbol="3" lower="4798491.000000000000000" upper="16694866.000000000000000" label=" 4798491 - 16694866 "/>
+      <range render="true" symbol="4" lower="16694866.000000000000000" upper="1338612970.000000000000000" label=" 16694866 - 1338612970 "/>
+    </ranges>
+    <symbols>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="0">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="247,251,255,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="1">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="200,221,240,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="2">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="115,179,216,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="3">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="40,121,185,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="4">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="8,48,107,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+    </symbols>
+    <source-symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="0">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="199,112,183,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+    </source-symbol>
+    <colorramp type="gradient" name="[source]">
+      <prop k="color1" v="247,251,255,255"/>
+      <prop k="color2" v="8,48,107,255"/>
+      <prop k="discrete" v="0"/>
+      <prop k="stops" v="0.13;222,235,247,255:0.26;198,219,239,255:0.39;158,202,225,255:0.52;107,174,214,255:0.65;66,146,198,255:0.78;33,113,181,255:0.9;8,81,156,255"/>
+    </colorramp>
+    <invertedcolorramp value="0"/>
+    <mode name="quantile"/>
+    <rotation/>
+    <sizescale scalemethod="diameter"/>
+    <labelformat format=" %1 - %2 " trimtrailingzeroes="false" decimalplaces="0"/>
+  </renderer-v2>
+  <labeling type="simple"/>
+  <customproperties>
+    <property key="embeddedWidgets/count" value="0"/>
+    <property key="labeling" value="pal"/>
+    <property key="labeling/addDirectionSymbol" value="false"/>
+    <property key="labeling/angleOffset" value="0"/>
+    <property key="labeling/blendMode" value="0"/>
+    <property key="labeling/bufferBlendMode" value="0"/>
+    <property key="labeling/bufferColorA" value="255"/>
+    <property key="labeling/bufferColorB" value="255"/>
+    <property key="labeling/bufferColorG" value="255"/>
+    <property key="labeling/bufferColorR" value="255"/>
+    <property key="labeling/bufferDraw" value="false"/>
+    <property key="labeling/bufferJoinStyle" value="64"/>
+    <property key="labeling/bufferNoFill" value="false"/>
+    <property key="labeling/bufferSize" value="1"/>
+    <property key="labeling/bufferSizeInMapUnits" value="false"/>
+    <property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/bufferTransp" value="0"/>
+    <property key="labeling/centroidInside" value="false"/>
+    <property key="labeling/centroidWhole" value="false"/>
+    <property key="labeling/decimals" value="3"/>
+    <property key="labeling/displayAll" value="false"/>
+    <property key="labeling/dist" value="0"/>
+    <property key="labeling/distInMapUnits" value="false"/>
+    <property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/drawLabels" value="false"/>
+    <property key="labeling/enabled" value="false"/>
+    <property key="labeling/fieldName" value=""/>
+    <property key="labeling/fitInPolygonOnly" value="false"/>
+    <property key="labeling/fontCapitals" value="0"/>
+    <property key="labeling/fontFamily" value="Noto Sans"/>
+    <property key="labeling/fontItalic" value="true"/>
+    <property key="labeling/fontLetterSpacing" value="0"/>
+    <property key="labeling/fontLimitPixelSize" value="false"/>
+    <property key="labeling/fontMaxPixelSize" value="10000"/>
+    <property key="labeling/fontMinPixelSize" value="3"/>
+    <property key="labeling/fontSize" value="9"/>
+    <property key="labeling/fontSizeInMapUnits" value="false"/>
+    <property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/fontStrikeout" value="false"/>
+    <property key="labeling/fontUnderline" value="false"/>
+    <property key="labeling/fontWeight" value="75"/>
+    <property key="labeling/fontWordSpacing" value="0"/>
+    <property key="labeling/formatNumbers" value="false"/>
+    <property key="labeling/isExpression" value="true"/>
+    <property key="labeling/labelOffsetInMapUnits" value="true"/>
+    <property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/labelPerPart" value="false"/>
+    <property key="labeling/leftDirectionSymbol" value="<"/>
+    <property key="labeling/limitNumLabels" value="false"/>
+    <property key="labeling/maxCurvedCharAngleIn" value="25"/>
+    <property key="labeling/maxCurvedCharAngleOut" value="-25"/>
+    <property key="labeling/maxNumLabels" value="2000"/>
+    <property key="labeling/mergeLines" value="false"/>
+    <property key="labeling/minFeatureSize" value="0"/>
+    <property key="labeling/multilineAlign" value="4294967295"/>
+    <property key="labeling/multilineHeight" value="1"/>
+    <property key="labeling/namedStyle" value="Bold Italic"/>
+    <property key="labeling/obstacle" value="true"/>
+    <property key="labeling/obstacleFactor" value="1"/>
+    <property key="labeling/obstacleType" value="0"/>
+    <property key="labeling/offsetType" value="0"/>
+    <property key="labeling/placeDirectionSymbol" value="0"/>
+    <property key="labeling/placement" value="1"/>
+    <property key="labeling/placementFlags" value="10"/>
+    <property key="labeling/plussign" value="false"/>
+    <property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
+    <property key="labeling/preserveRotation" value="true"/>
+    <property key="labeling/previewBkgrdColor" value="#ffffff"/>
+    <property key="labeling/priority" value="5"/>
+    <property key="labeling/quadOffset" value="4"/>
+    <property key="labeling/repeatDistance" value="0"/>
+    <property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/repeatDistanceUnit" value="1"/>
+    <property key="labeling/reverseDirectionSymbol" value="false"/>
+    <property key="labeling/rightDirectionSymbol" value=">"/>
+    <property key="labeling/scaleMax" value="10000000"/>
+    <property key="labeling/scaleMin" value="1"/>
+    <property key="labeling/scaleVisibility" value="false"/>
+    <property key="labeling/shadowBlendMode" value="6"/>
+    <property key="labeling/shadowColorB" value="0"/>
+    <property key="labeling/shadowColorG" value="0"/>
+    <property key="labeling/shadowColorR" value="0"/>
+    <property key="labeling/shadowDraw" value="false"/>
+    <property key="labeling/shadowOffsetAngle" value="135"/>
+    <property key="labeling/shadowOffsetDist" value="1"/>
+    <property key="labeling/shadowOffsetGlobal" value="true"/>
+    <property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowOffsetUnits" value="1"/>
+    <property key="labeling/shadowRadius" value="1.5"/>
+    <property key="labeling/shadowRadiusAlphaOnly" value="false"/>
+    <property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowRadiusUnits" value="1"/>
+    <property key="labeling/shadowScale" value="100"/>
+    <property key="labeling/shadowTransparency" value="30"/>
+    <property key="labeling/shadowUnder" value="0"/>
+    <property key="labeling/shapeBlendMode" value="0"/>
+    <property key="labeling/shapeBorderColorA" value="255"/>
+    <property key="labeling/shapeBorderColorB" value="128"/>
+    <property key="labeling/shapeBorderColorG" value="128"/>
+    <property key="labeling/shapeBorderColorR" value="128"/>
+    <property key="labeling/shapeBorderWidth" value="0"/>
+    <property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeBorderWidthUnits" value="1"/>
+    <property key="labeling/shapeDraw" value="false"/>
+    <property key="labeling/shapeFillColorA" value="255"/>
+    <property key="labeling/shapeFillColorB" value="255"/>
+    <property key="labeling/shapeFillColorG" value="255"/>
+    <property key="labeling/shapeFillColorR" value="255"/>
+    <property key="labeling/shapeJoinStyle" value="64"/>
+    <property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeOffsetUnits" value="1"/>
+    <property key="labeling/shapeOffsetX" value="0"/>
+    <property key="labeling/shapeOffsetY" value="0"/>
+    <property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeRadiiUnits" value="1"/>
+    <property key="labeling/shapeRadiiX" value="0"/>
+    <property key="labeling/shapeRadiiY" value="0"/>
+    <property key="labeling/shapeRotation" value="0"/>
+    <property key="labeling/shapeRotationType" value="0"/>
+    <property key="labeling/shapeSVGFile" value=""/>
+    <property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeSizeType" value="0"/>
+    <property key="labeling/shapeSizeUnits" value="1"/>
+    <property key="labeling/shapeSizeX" value="0"/>
+    <property key="labeling/shapeSizeY" value="0"/>
+    <property key="labeling/shapeTransparency" value="0"/>
+    <property key="labeling/shapeType" value="0"/>
+    <property key="labeling/textColorA" value="255"/>
+    <property key="labeling/textColorB" value="0"/>
+    <property key="labeling/textColorG" value="0"/>
+    <property key="labeling/textColorR" value="0"/>
+    <property key="labeling/textTransp" value="0"/>
+    <property key="labeling/upsidedownLabels" value="0"/>
+    <property key="labeling/wrapChar" value=""/>
+    <property key="labeling/xOffset" value="0"/>
+    <property key="labeling/yOffset" value="0"/>
+    <property key="labeling/zIndex" value="0"/>
+    <property key="variableNames" value="_fields_"/>
+    <property key="variableValues" value=""/>
+  </customproperties>
+  <blendMode>0</blendMode>
+  <featureBlendMode>0</featureBlendMode>
+  <layerTransparency>0</layerTransparency>
+  <SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
+    <DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="100000">
+      <fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
+    </DiagramCategory>
+    <symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
+      <layer pass="0" class="SimpleMarker" locked="0">
+        <prop k="angle" v="0"/>
+        <prop k="color" v="255,0,0,255"/>
+        <prop k="horizontal_anchor_point" v="1"/>
+        <prop k="joinstyle" v="bevel"/>
+        <prop k="name" v="circle"/>
+        <prop k="offset" v="0,0"/>
+        <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="offset_unit" v="MM"/>
+        <prop k="outline_color" v="0,0,0,255"/>
+        <prop k="outline_style" v="solid"/>
+        <prop k="outline_width" v="0"/>
+        <prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="outline_width_unit" v="MM"/>
+        <prop k="scale_method" v="diameter"/>
+        <prop k="size" v="2"/>
+        <prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="size_unit" v="MM"/>
+        <prop k="vertical_anchor_point" v="1"/>
+      </layer>
+    </symbol>
+  </SingleCategoryDiagramRenderer>
+  <DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
+  <annotationform></annotationform>
+  <excludeAttributesWMS/>
+  <excludeAttributesWFS/>
+  <attributeactions default="-1"/>
+  <attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
+    <columns>
+      <column width="-1" hidden="0" type="field" name="scalerank"/>
+      <column width="-1" hidden="0" type="field" name="featurecla"/>
+      <column width="-1" hidden="0" type="field" name="labelrank"/>
+      <column width="-1" hidden="0" type="field" name="sovereignt"/>
+      <column width="-1" hidden="0" type="field" name="sov_a3"/>
+      <column width="-1" hidden="0" type="field" name="adm0_dif"/>
+      <column width="-1" hidden="0" type="field" name="level"/>
+      <column width="-1" hidden="0" type="field" name="type"/>
+      <column width="-1" hidden="0" type="field" name="admin"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3"/>
+      <column width="-1" hidden="0" type="field" name="geou_dif"/>
+      <column width="-1" hidden="0" type="field" name="geounit"/>
+      <column width="-1" hidden="0" type="field" name="gu_a3"/>
+      <column width="-1" hidden="0" type="field" name="su_dif"/>
+      <column width="-1" hidden="0" type="field" name="subunit"/>
+      <column width="-1" hidden="0" type="field" name="su_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_diff"/>
+      <column width="-1" hidden="0" type="field" name="name"/>
+      <column width="-1" hidden="0" type="field" name="name_long"/>
+      <column width="-1" hidden="0" type="field" name="brk_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_name"/>
+      <column width="-1" hidden="0" type="field" name="brk_group"/>
+      <column width="-1" hidden="0" type="field" name="abbrev"/>
+      <column width="-1" hidden="0" type="field" name="postal"/>
+      <column width="-1" hidden="0" type="field" name="formal_en"/>
+      <column width="-1" hidden="0" type="field" name="formal_fr"/>
+      <column width="-1" hidden="0" type="field" name="note_adm0"/>
+      <column width="-1" hidden="0" type="field" name="note_brk"/>
+      <column width="-1" hidden="0" type="field" name="name_sort"/>
+      <column width="-1" hidden="0" type="field" name="name_alt"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor7"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor8"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor9"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor13"/>
+      <column width="-1" hidden="0" type="field" name="pop_est"/>
+      <column width="-1" hidden="0" type="field" name="gdp_md_est"/>
+      <column width="-1" hidden="0" type="field" name="pop_year"/>
+      <column width="-1" hidden="0" type="field" name="lastcensus"/>
+      <column width="-1" hidden="0" type="field" name="gdp_year"/>
+      <column width="-1" hidden="0" type="field" name="economy"/>
+      <column width="-1" hidden="0" type="field" name="income_grp"/>
+      <column width="-1" hidden="0" type="field" name="wikipedia"/>
+      <column width="-1" hidden="0" type="field" name="fips_10"/>
+      <column width="-1" hidden="0" type="field" name="iso_a2"/>
+      <column width="-1" hidden="0" type="field" name="iso_a3"/>
+      <column width="-1" hidden="0" type="field" name="iso_n3"/>
+      <column width="-1" hidden="0" type="field" name="un_a3"/>
+      <column width="-1" hidden="0" type="field" name="wb_a2"/>
+      <column width="-1" hidden="0" type="field" name="wb_a3"/>
+      <column width="-1" hidden="0" type="field" name="woe_id"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_is"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_us"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_un"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_wb"/>
+      <column width="-1" hidden="0" type="field" name="continent"/>
+      <column width="-1" hidden="0" type="field" name="region_un"/>
+      <column width="-1" hidden="0" type="field" name="subregion"/>
+      <column width="-1" hidden="0" type="field" name="region_wb"/>
+      <column width="-1" hidden="0" type="field" name="name_len"/>
+      <column width="-1" hidden="0" type="field" name="long_len"/>
+      <column width="-1" hidden="0" type="field" name="abbrev_len"/>
+      <column width="-1" hidden="0" type="field" name="tiny"/>
+      <column width="-1" hidden="0" type="field" name="homepart"/>
+      <column width="-1" hidden="1" type="actions"/>
+    </columns>
+  </attributetableconfig>
+  <editform></editform>
+  <editforminit/>
+  <editforminitcodesource>0</editforminitcodesource>
+  <editforminitfilepath></editforminitfilepath>
+  <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+  <featformsuppress>0</featformsuppress>
+  <editorlayout>generatedlayout</editorlayout>
+  <widgets/>
+  <conditionalstyles>
+    <rowstyles/>
+    <fieldstyles/>
+  </conditionalstyles>
+  <expressionfields/>
+  <previewExpression>name</previewExpression>
+  <mapTip></mapTip>
+  <layerGeometryType>2</layerGeometryType>
+</qgis>
diff --git a/tests/testdata/symbol_layer/ruleBased.qml b/tests/testdata/symbol_layer/ruleBased.qml
new file mode 100644
index 0000000..6be8744
--- /dev/null
+++ b/tests/testdata/symbol_layer/ruleBased.qml
@@ -0,0 +1,509 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="2.99.0-Master" simplifyAlgorithm="0" simplifyDrawingHints="1" simplifyDrawingTol="1" readOnly="0" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" simplifyLocal="1">
+  <edittypes>
+    <edittype widgetv2type="TextEdit" name="scalerank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="featurecla">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="labelrank">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sovereignt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="sov_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="level">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="type">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="admin">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geou_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="geounit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gu_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_dif">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subunit">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="su_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_diff">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_long">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_name">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="brk_group">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="postal">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_en">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="formal_fr">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_adm0">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="note_brk">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_sort">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_alt">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor7">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor8">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor9">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="mapcolor13">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_md_est">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="pop_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="lastcensus">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="gdp_year">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="economy">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="income_grp">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wikipedia">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="fips_10">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="iso_n3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="un_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="wb_a3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="woe_id">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_is">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_us">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="adm0_a3_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="continent">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_un">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="subregion">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="region_wb">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="name_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="long_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="abbrev_len">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="tiny">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="homepart">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+  </edittypes>
+  <renderer-v2 forceraster="0" symbollevels="0" type="RuleRenderer" enableorderby="0">
+    <rules key="{318c2945-dfa9-44b8-a8d3-1b167642830a}">
+      <rule scalemaxdenom="40000000" filter="POP_EST > 100000" key="{2302b573-a5b0-4118-9df3-bb01e802d96b}" symbol="0" scalemindenom="1000" label="pophigh"/>
+      <rule filter="POP_EST <= 100000" key="{961eba0d-523d-42c9-bc88-9d4a9704ddee}" symbol="1" label="popLow"/>
+    </rules>
+    <symbols>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="0">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="125,172,126,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+      <symbol alpha="1" clip_to_extent="1" type="fill" name="1">
+        <layer pass="0" class="SimpleFill" locked="0">
+          <prop k="border_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="color" v="102,251,107,255"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0.26"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="style" v="solid"/>
+        </layer>
+      </symbol>
+    </symbols>
+  </renderer-v2>
+  <labeling type="simple"/>
+  <customproperties>
+    <property key="embeddedWidgets/count" value="0"/>
+    <property key="labeling" value="pal"/>
+    <property key="labeling/addDirectionSymbol" value="false"/>
+    <property key="labeling/angleOffset" value="0"/>
+    <property key="labeling/blendMode" value="0"/>
+    <property key="labeling/bufferBlendMode" value="0"/>
+    <property key="labeling/bufferColorA" value="255"/>
+    <property key="labeling/bufferColorB" value="255"/>
+    <property key="labeling/bufferColorG" value="255"/>
+    <property key="labeling/bufferColorR" value="255"/>
+    <property key="labeling/bufferDraw" value="false"/>
+    <property key="labeling/bufferJoinStyle" value="64"/>
+    <property key="labeling/bufferNoFill" value="false"/>
+    <property key="labeling/bufferSize" value="1"/>
+    <property key="labeling/bufferSizeInMapUnits" value="false"/>
+    <property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/bufferTransp" value="0"/>
+    <property key="labeling/centroidInside" value="false"/>
+    <property key="labeling/centroidWhole" value="false"/>
+    <property key="labeling/decimals" value="3"/>
+    <property key="labeling/displayAll" value="false"/>
+    <property key="labeling/dist" value="0"/>
+    <property key="labeling/distInMapUnits" value="false"/>
+    <property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/drawLabels" value="false"/>
+    <property key="labeling/enabled" value="false"/>
+    <property key="labeling/fieldName" value=""/>
+    <property key="labeling/fitInPolygonOnly" value="false"/>
+    <property key="labeling/fontCapitals" value="0"/>
+    <property key="labeling/fontFamily" value="Noto Sans"/>
+    <property key="labeling/fontItalic" value="true"/>
+    <property key="labeling/fontLetterSpacing" value="0"/>
+    <property key="labeling/fontLimitPixelSize" value="false"/>
+    <property key="labeling/fontMaxPixelSize" value="10000"/>
+    <property key="labeling/fontMinPixelSize" value="3"/>
+    <property key="labeling/fontSize" value="9"/>
+    <property key="labeling/fontSizeInMapUnits" value="false"/>
+    <property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/fontStrikeout" value="false"/>
+    <property key="labeling/fontUnderline" value="false"/>
+    <property key="labeling/fontWeight" value="75"/>
+    <property key="labeling/fontWordSpacing" value="0"/>
+    <property key="labeling/formatNumbers" value="false"/>
+    <property key="labeling/isExpression" value="true"/>
+    <property key="labeling/labelOffsetInMapUnits" value="true"/>
+    <property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/labelPerPart" value="false"/>
+    <property key="labeling/leftDirectionSymbol" value="<"/>
+    <property key="labeling/limitNumLabels" value="false"/>
+    <property key="labeling/maxCurvedCharAngleIn" value="25"/>
+    <property key="labeling/maxCurvedCharAngleOut" value="-25"/>
+    <property key="labeling/maxNumLabels" value="2000"/>
+    <property key="labeling/mergeLines" value="false"/>
+    <property key="labeling/minFeatureSize" value="0"/>
+    <property key="labeling/multilineAlign" value="4294967295"/>
+    <property key="labeling/multilineHeight" value="1"/>
+    <property key="labeling/namedStyle" value="Bold Italic"/>
+    <property key="labeling/obstacle" value="true"/>
+    <property key="labeling/obstacleFactor" value="1"/>
+    <property key="labeling/obstacleType" value="0"/>
+    <property key="labeling/offsetType" value="0"/>
+    <property key="labeling/placeDirectionSymbol" value="0"/>
+    <property key="labeling/placement" value="1"/>
+    <property key="labeling/placementFlags" value="10"/>
+    <property key="labeling/plussign" value="false"/>
+    <property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
+    <property key="labeling/preserveRotation" value="true"/>
+    <property key="labeling/previewBkgrdColor" value="#ffffff"/>
+    <property key="labeling/priority" value="5"/>
+    <property key="labeling/quadOffset" value="4"/>
+    <property key="labeling/repeatDistance" value="0"/>
+    <property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/repeatDistanceUnit" value="1"/>
+    <property key="labeling/reverseDirectionSymbol" value="false"/>
+    <property key="labeling/rightDirectionSymbol" value=">"/>
+    <property key="labeling/scaleMax" value="10000000"/>
+    <property key="labeling/scaleMin" value="1"/>
+    <property key="labeling/scaleVisibility" value="false"/>
+    <property key="labeling/shadowBlendMode" value="6"/>
+    <property key="labeling/shadowColorB" value="0"/>
+    <property key="labeling/shadowColorG" value="0"/>
+    <property key="labeling/shadowColorR" value="0"/>
+    <property key="labeling/shadowDraw" value="false"/>
+    <property key="labeling/shadowOffsetAngle" value="135"/>
+    <property key="labeling/shadowOffsetDist" value="1"/>
+    <property key="labeling/shadowOffsetGlobal" value="true"/>
+    <property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowOffsetUnits" value="1"/>
+    <property key="labeling/shadowRadius" value="1.5"/>
+    <property key="labeling/shadowRadiusAlphaOnly" value="false"/>
+    <property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowRadiusUnits" value="1"/>
+    <property key="labeling/shadowScale" value="100"/>
+    <property key="labeling/shadowTransparency" value="30"/>
+    <property key="labeling/shadowUnder" value="0"/>
+    <property key="labeling/shapeBlendMode" value="0"/>
+    <property key="labeling/shapeBorderColorA" value="255"/>
+    <property key="labeling/shapeBorderColorB" value="128"/>
+    <property key="labeling/shapeBorderColorG" value="128"/>
+    <property key="labeling/shapeBorderColorR" value="128"/>
+    <property key="labeling/shapeBorderWidth" value="0"/>
+    <property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeBorderWidthUnits" value="1"/>
+    <property key="labeling/shapeDraw" value="false"/>
+    <property key="labeling/shapeFillColorA" value="255"/>
+    <property key="labeling/shapeFillColorB" value="255"/>
+    <property key="labeling/shapeFillColorG" value="255"/>
+    <property key="labeling/shapeFillColorR" value="255"/>
+    <property key="labeling/shapeJoinStyle" value="64"/>
+    <property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeOffsetUnits" value="1"/>
+    <property key="labeling/shapeOffsetX" value="0"/>
+    <property key="labeling/shapeOffsetY" value="0"/>
+    <property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeRadiiUnits" value="1"/>
+    <property key="labeling/shapeRadiiX" value="0"/>
+    <property key="labeling/shapeRadiiY" value="0"/>
+    <property key="labeling/shapeRotation" value="0"/>
+    <property key="labeling/shapeRotationType" value="0"/>
+    <property key="labeling/shapeSVGFile" value=""/>
+    <property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeSizeType" value="0"/>
+    <property key="labeling/shapeSizeUnits" value="1"/>
+    <property key="labeling/shapeSizeX" value="0"/>
+    <property key="labeling/shapeSizeY" value="0"/>
+    <property key="labeling/shapeTransparency" value="0"/>
+    <property key="labeling/shapeType" value="0"/>
+    <property key="labeling/textColorA" value="255"/>
+    <property key="labeling/textColorB" value="0"/>
+    <property key="labeling/textColorG" value="0"/>
+    <property key="labeling/textColorR" value="0"/>
+    <property key="labeling/textTransp" value="0"/>
+    <property key="labeling/upsidedownLabels" value="0"/>
+    <property key="labeling/wrapChar" value=""/>
+    <property key="labeling/xOffset" value="0"/>
+    <property key="labeling/yOffset" value="0"/>
+    <property key="labeling/zIndex" value="0"/>
+    <property key="variableNames" value="_fields_"/>
+    <property key="variableValues" value=""/>
+  </customproperties>
+  <blendMode>0</blendMode>
+  <featureBlendMode>0</featureBlendMode>
+  <layerTransparency>0</layerTransparency>
+  <SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
+    <DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="100000">
+      <fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
+    </DiagramCategory>
+    <symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
+      <layer pass="0" class="SimpleMarker" locked="0">
+        <prop k="angle" v="0"/>
+        <prop k="color" v="255,0,0,255"/>
+        <prop k="horizontal_anchor_point" v="1"/>
+        <prop k="joinstyle" v="bevel"/>
+        <prop k="name" v="circle"/>
+        <prop k="offset" v="0,0"/>
+        <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="offset_unit" v="MM"/>
+        <prop k="outline_color" v="0,0,0,255"/>
+        <prop k="outline_style" v="solid"/>
+        <prop k="outline_width" v="0"/>
+        <prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="outline_width_unit" v="MM"/>
+        <prop k="scale_method" v="diameter"/>
+        <prop k="size" v="2"/>
+        <prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="size_unit" v="MM"/>
+        <prop k="vertical_anchor_point" v="1"/>
+      </layer>
+    </symbol>
+  </SingleCategoryDiagramRenderer>
+  <DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
+  <annotationform></annotationform>
+  <excludeAttributesWMS/>
+  <excludeAttributesWFS/>
+  <attributeactions default="-1"/>
+  <attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
+    <columns>
+      <column width="-1" hidden="0" type="field" name="scalerank"/>
+      <column width="-1" hidden="0" type="field" name="featurecla"/>
+      <column width="-1" hidden="0" type="field" name="labelrank"/>
+      <column width="-1" hidden="0" type="field" name="sovereignt"/>
+      <column width="-1" hidden="0" type="field" name="sov_a3"/>
+      <column width="-1" hidden="0" type="field" name="adm0_dif"/>
+      <column width="-1" hidden="0" type="field" name="level"/>
+      <column width="-1" hidden="0" type="field" name="type"/>
+      <column width="-1" hidden="0" type="field" name="admin"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3"/>
+      <column width="-1" hidden="0" type="field" name="geou_dif"/>
+      <column width="-1" hidden="0" type="field" name="geounit"/>
+      <column width="-1" hidden="0" type="field" name="gu_a3"/>
+      <column width="-1" hidden="0" type="field" name="su_dif"/>
+      <column width="-1" hidden="0" type="field" name="subunit"/>
+      <column width="-1" hidden="0" type="field" name="su_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_diff"/>
+      <column width="-1" hidden="0" type="field" name="name"/>
+      <column width="-1" hidden="0" type="field" name="name_long"/>
+      <column width="-1" hidden="0" type="field" name="brk_a3"/>
+      <column width="-1" hidden="0" type="field" name="brk_name"/>
+      <column width="-1" hidden="0" type="field" name="brk_group"/>
+      <column width="-1" hidden="0" type="field" name="abbrev"/>
+      <column width="-1" hidden="0" type="field" name="postal"/>
+      <column width="-1" hidden="0" type="field" name="formal_en"/>
+      <column width="-1" hidden="0" type="field" name="formal_fr"/>
+      <column width="-1" hidden="0" type="field" name="note_adm0"/>
+      <column width="-1" hidden="0" type="field" name="note_brk"/>
+      <column width="-1" hidden="0" type="field" name="name_sort"/>
+      <column width="-1" hidden="0" type="field" name="name_alt"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor7"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor8"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor9"/>
+      <column width="-1" hidden="0" type="field" name="mapcolor13"/>
+      <column width="-1" hidden="0" type="field" name="pop_est"/>
+      <column width="-1" hidden="0" type="field" name="gdp_md_est"/>
+      <column width="-1" hidden="0" type="field" name="pop_year"/>
+      <column width="-1" hidden="0" type="field" name="lastcensus"/>
+      <column width="-1" hidden="0" type="field" name="gdp_year"/>
+      <column width="-1" hidden="0" type="field" name="economy"/>
+      <column width="-1" hidden="0" type="field" name="income_grp"/>
+      <column width="-1" hidden="0" type="field" name="wikipedia"/>
+      <column width="-1" hidden="0" type="field" name="fips_10"/>
+      <column width="-1" hidden="0" type="field" name="iso_a2"/>
+      <column width="-1" hidden="0" type="field" name="iso_a3"/>
+      <column width="-1" hidden="0" type="field" name="iso_n3"/>
+      <column width="-1" hidden="0" type="field" name="un_a3"/>
+      <column width="-1" hidden="0" type="field" name="wb_a2"/>
+      <column width="-1" hidden="0" type="field" name="wb_a3"/>
+      <column width="-1" hidden="0" type="field" name="woe_id"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_is"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_us"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_un"/>
+      <column width="-1" hidden="0" type="field" name="adm0_a3_wb"/>
+      <column width="-1" hidden="0" type="field" name="continent"/>
+      <column width="-1" hidden="0" type="field" name="region_un"/>
+      <column width="-1" hidden="0" type="field" name="subregion"/>
+      <column width="-1" hidden="0" type="field" name="region_wb"/>
+      <column width="-1" hidden="0" type="field" name="name_len"/>
+      <column width="-1" hidden="0" type="field" name="long_len"/>
+      <column width="-1" hidden="0" type="field" name="abbrev_len"/>
+      <column width="-1" hidden="0" type="field" name="tiny"/>
+      <column width="-1" hidden="0" type="field" name="homepart"/>
+      <column width="-1" hidden="1" type="actions"/>
+    </columns>
+  </attributetableconfig>
+  <editform></editform>
+  <editforminit/>
+  <editforminitcodesource>0</editforminitcodesource>
+  <editforminitfilepath></editforminitfilepath>
+  <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+  <featformsuppress>0</featformsuppress>
+  <editorlayout>generatedlayout</editorlayout>
+  <widgets/>
+  <conditionalstyles>
+    <rowstyles/>
+    <fieldstyles/>
+  </conditionalstyles>
+  <expressionfields/>
+  <previewExpression>name</previewExpression>
+  <mapTip></mapTip>
+  <layerGeometryType>2</layerGeometryType>
+</qgis>
diff --git a/tests/testdata/symbol_layer/singleSymbol.qml b/tests/testdata/symbol_layer/singleSymbol.qml
new file mode 100644
index 0000000..d85299a
--- /dev/null
+++ b/tests/testdata/symbol_layer/singleSymbol.qml
@@ -0,0 +1,615 @@
+<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
+<qgis version="2.99.0-Master" simplifyAlgorithm="0" simplifyDrawingHints="0" simplifyDrawingTol="1" readOnly="0" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="1" simplifyLocal="1">
+  <edittypes>
+    <edittype widgetv2type="TextEdit" name="SCALERANK">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NATSCALE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="LABELRANK">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="FEATURECLA">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NAMEPAR">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NAMEALT">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="DIFFASCII">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NAMEASCII">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ADM0CAP">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="CAPALT">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="CAPIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="WORLDCITY">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MEGACITY">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="SOV0NAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="SOV_A3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ADM0NAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ADM0_A3">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ADM1NAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ISO_A2">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NOTE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="LATITUDE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="LONGITUDE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="CHANGED">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="NAMEDIFF">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="DIFFNOTE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP_MAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP_MIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP_OTHER">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="RANK_MAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="RANK_MIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="GEONAMEID">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MEGANAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="LS_NAME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="LS_MATCH">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="CHECKME">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_POP10">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_POP20">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_POP50">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_POP300">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_POP310">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_NATSCA">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_AREAKM">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_AREAKM">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_AREAMI">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_AREAMI">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_PERKM">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_PERKM">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_PERMI">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_PERMI">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_BBXMIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_BBXMIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_BBXMAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_BBXMAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_BBYMIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_BBYMIN">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MIN_BBYMAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MAX_BBYMAX">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MEAN_BBXC">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="MEAN_BBYC">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="COMPARE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="GN_ASCII">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="FEATURE_CL">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="FEATURE_CO">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ADMIN1_COD">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="GN_POP">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="ELEVATION">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="GTOPO30">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="TIMEZONE">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="GEONAMESNO">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="UN_FID">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="UN_ADM0">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="UN_LAT">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="UN_LONG">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1950">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1955">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1960">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1965">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1970">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1975">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1980">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1985">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1990">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP1995">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2000">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2005">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2010">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2015">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2020">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2025">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="POP2050">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+    <edittype widgetv2type="TextEdit" name="CITYALT">
+      <widgetv2config IsMultiline="0" fieldEditable="1" constraint="" UseHtml="0" labelOnTop="0" constraintDescription="" notNull="0"/>
+    </edittype>
+  </edittypes>
+  <renderer-v2 forceraster="0" symbollevels="0" type="singleSymbol" enableorderby="0">
+    <symbols>
+      <symbol alpha="1" clip_to_extent="1" type="marker" name="0">
+        <layer pass="0" class="SimpleMarker" locked="0">
+          <prop k="angle" v="0"/>
+          <prop k="color" v="71,241,136,255"/>
+          <prop k="horizontal_anchor_point" v="1"/>
+          <prop k="joinstyle" v="bevel"/>
+          <prop k="name" v="circle"/>
+          <prop k="offset" v="0,0"/>
+          <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="offset_unit" v="MM"/>
+          <prop k="outline_color" v="0,0,0,255"/>
+          <prop k="outline_style" v="solid"/>
+          <prop k="outline_width" v="0"/>
+          <prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="outline_width_unit" v="MM"/>
+          <prop k="scale_method" v="diameter"/>
+          <prop k="size" v="2"/>
+          <prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
+          <prop k="size_unit" v="MM"/>
+          <prop k="vertical_anchor_point" v="1"/>
+        </layer>
+      </symbol>
+    </symbols>
+    <rotation/>
+    <sizescale scalemethod="diameter"/>
+  </renderer-v2>
+  <labeling type="simple"/>
+  <customproperties>
+    <property key="embeddedWidgets/count" value="0"/>
+    <property key="labeling" value="pal"/>
+    <property key="labeling/addDirectionSymbol" value="false"/>
+    <property key="labeling/angleOffset" value="0"/>
+    <property key="labeling/blendMode" value="0"/>
+    <property key="labeling/bufferBlendMode" value="0"/>
+    <property key="labeling/bufferColorA" value="255"/>
+    <property key="labeling/bufferColorB" value="255"/>
+    <property key="labeling/bufferColorG" value="255"/>
+    <property key="labeling/bufferColorR" value="255"/>
+    <property key="labeling/bufferDraw" value="false"/>
+    <property key="labeling/bufferJoinStyle" value="64"/>
+    <property key="labeling/bufferNoFill" value="false"/>
+    <property key="labeling/bufferSize" value="1"/>
+    <property key="labeling/bufferSizeInMapUnits" value="false"/>
+    <property key="labeling/bufferSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/bufferTransp" value="0"/>
+    <property key="labeling/centroidInside" value="false"/>
+    <property key="labeling/centroidWhole" value="false"/>
+    <property key="labeling/decimals" value="3"/>
+    <property key="labeling/displayAll" value="false"/>
+    <property key="labeling/dist" value="0"/>
+    <property key="labeling/distInMapUnits" value="false"/>
+    <property key="labeling/distMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/drawLabels" value="false"/>
+    <property key="labeling/enabled" value="false"/>
+    <property key="labeling/fieldName" value=""/>
+    <property key="labeling/fitInPolygonOnly" value="false"/>
+    <property key="labeling/fontCapitals" value="0"/>
+    <property key="labeling/fontFamily" value="Noto Sans"/>
+    <property key="labeling/fontItalic" value="true"/>
+    <property key="labeling/fontLetterSpacing" value="0"/>
+    <property key="labeling/fontLimitPixelSize" value="false"/>
+    <property key="labeling/fontMaxPixelSize" value="10000"/>
+    <property key="labeling/fontMinPixelSize" value="3"/>
+    <property key="labeling/fontSize" value="9"/>
+    <property key="labeling/fontSizeInMapUnits" value="false"/>
+    <property key="labeling/fontSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/fontStrikeout" value="false"/>
+    <property key="labeling/fontUnderline" value="false"/>
+    <property key="labeling/fontWeight" value="75"/>
+    <property key="labeling/fontWordSpacing" value="0"/>
+    <property key="labeling/formatNumbers" value="false"/>
+    <property key="labeling/isExpression" value="true"/>
+    <property key="labeling/labelOffsetInMapUnits" value="true"/>
+    <property key="labeling/labelOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/labelPerPart" value="false"/>
+    <property key="labeling/leftDirectionSymbol" value="<"/>
+    <property key="labeling/limitNumLabels" value="false"/>
+    <property key="labeling/maxCurvedCharAngleIn" value="25"/>
+    <property key="labeling/maxCurvedCharAngleOut" value="-25"/>
+    <property key="labeling/maxNumLabels" value="2000"/>
+    <property key="labeling/mergeLines" value="false"/>
+    <property key="labeling/minFeatureSize" value="0"/>
+    <property key="labeling/multilineAlign" value="3"/>
+    <property key="labeling/multilineHeight" value="1"/>
+    <property key="labeling/namedStyle" value="Bold Italic"/>
+    <property key="labeling/obstacle" value="true"/>
+    <property key="labeling/obstacleFactor" value="1"/>
+    <property key="labeling/obstacleType" value="0"/>
+    <property key="labeling/offsetType" value="0"/>
+    <property key="labeling/placeDirectionSymbol" value="0"/>
+    <property key="labeling/placement" value="6"/>
+    <property key="labeling/placementFlags" value="10"/>
+    <property key="labeling/plussign" value="false"/>
+    <property key="labeling/predefinedPositionOrder" value="TR,TL,BR,BL,R,L,TSR,BSR"/>
+    <property key="labeling/preserveRotation" value="true"/>
+    <property key="labeling/previewBkgrdColor" value="#ffffff"/>
+    <property key="labeling/priority" value="5"/>
+    <property key="labeling/quadOffset" value="4"/>
+    <property key="labeling/repeatDistance" value="0"/>
+    <property key="labeling/repeatDistanceMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/repeatDistanceUnit" value="1"/>
+    <property key="labeling/reverseDirectionSymbol" value="false"/>
+    <property key="labeling/rightDirectionSymbol" value=">"/>
+    <property key="labeling/scaleMax" value="10000000"/>
+    <property key="labeling/scaleMin" value="1"/>
+    <property key="labeling/scaleVisibility" value="false"/>
+    <property key="labeling/shadowBlendMode" value="6"/>
+    <property key="labeling/shadowColorB" value="0"/>
+    <property key="labeling/shadowColorG" value="0"/>
+    <property key="labeling/shadowColorR" value="0"/>
+    <property key="labeling/shadowDraw" value="false"/>
+    <property key="labeling/shadowOffsetAngle" value="135"/>
+    <property key="labeling/shadowOffsetDist" value="1"/>
+    <property key="labeling/shadowOffsetGlobal" value="true"/>
+    <property key="labeling/shadowOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowOffsetUnits" value="1"/>
+    <property key="labeling/shadowRadius" value="1.5"/>
+    <property key="labeling/shadowRadiusAlphaOnly" value="false"/>
+    <property key="labeling/shadowRadiusMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shadowRadiusUnits" value="1"/>
+    <property key="labeling/shadowScale" value="100"/>
+    <property key="labeling/shadowTransparency" value="30"/>
+    <property key="labeling/shadowUnder" value="0"/>
+    <property key="labeling/shapeBlendMode" value="0"/>
+    <property key="labeling/shapeBorderColorA" value="255"/>
+    <property key="labeling/shapeBorderColorB" value="128"/>
+    <property key="labeling/shapeBorderColorG" value="128"/>
+    <property key="labeling/shapeBorderColorR" value="128"/>
+    <property key="labeling/shapeBorderWidth" value="0"/>
+    <property key="labeling/shapeBorderWidthMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeBorderWidthUnits" value="1"/>
+    <property key="labeling/shapeDraw" value="false"/>
+    <property key="labeling/shapeFillColorA" value="255"/>
+    <property key="labeling/shapeFillColorB" value="255"/>
+    <property key="labeling/shapeFillColorG" value="255"/>
+    <property key="labeling/shapeFillColorR" value="255"/>
+    <property key="labeling/shapeJoinStyle" value="64"/>
+    <property key="labeling/shapeOffsetMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeOffsetUnits" value="1"/>
+    <property key="labeling/shapeOffsetX" value="0"/>
+    <property key="labeling/shapeOffsetY" value="0"/>
+    <property key="labeling/shapeRadiiMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeRadiiUnits" value="1"/>
+    <property key="labeling/shapeRadiiX" value="0"/>
+    <property key="labeling/shapeRadiiY" value="0"/>
+    <property key="labeling/shapeRotation" value="0"/>
+    <property key="labeling/shapeRotationType" value="0"/>
+    <property key="labeling/shapeSVGFile" value=""/>
+    <property key="labeling/shapeSizeMapUnitScale" value="0,0,0,0,0,0"/>
+    <property key="labeling/shapeSizeType" value="0"/>
+    <property key="labeling/shapeSizeUnits" value="1"/>
+    <property key="labeling/shapeSizeX" value="0"/>
+    <property key="labeling/shapeSizeY" value="0"/>
+    <property key="labeling/shapeTransparency" value="0"/>
+    <property key="labeling/shapeType" value="0"/>
+    <property key="labeling/textColorA" value="255"/>
+    <property key="labeling/textColorB" value="0"/>
+    <property key="labeling/textColorG" value="0"/>
+    <property key="labeling/textColorR" value="0"/>
+    <property key="labeling/textTransp" value="0"/>
+    <property key="labeling/upsidedownLabels" value="0"/>
+    <property key="labeling/wrapChar" value=""/>
+    <property key="labeling/xOffset" value="0"/>
+    <property key="labeling/yOffset" value="0"/>
+    <property key="labeling/zIndex" value="0"/>
+    <property key="variableNames" value="_fields_"/>
+    <property key="variableValues" value=""/>
+  </customproperties>
+  <blendMode>0</blendMode>
+  <featureBlendMode>0</featureBlendMode>
+  <layerTransparency>0</layerTransparency>
+  <SingleCategoryDiagramRenderer diagramType="Histogram" sizeLegend="0" attributeLegend="1">
+    <DiagramCategory penColor="#000000" labelPlacementMethod="XHeight" penWidth="0" diagramOrientation="Up" sizeScale="0,0,0,0,0,0" minimumSize="0" barWidth="5" penAlpha="255" maxScaleDenominator="1e+08" backgroundColor="#ffffff" transparency="0" width="15" scaleDependency="Area" backgroundAlpha="255" angleOffset="1440" scaleBasedVisibility="0" enabled="0" height="15" lineSizeScale="0,0,0,0,0,0" sizeType="MM" lineSizeType="MM" minScaleDenominator="100000">
+      <fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
+    </DiagramCategory>
+    <symbol alpha="1" clip_to_extent="1" type="marker" name="sizeSymbol">
+      <layer pass="0" class="SimpleMarker" locked="0">
+        <prop k="angle" v="0"/>
+        <prop k="color" v="255,0,0,255"/>
+        <prop k="horizontal_anchor_point" v="1"/>
+        <prop k="joinstyle" v="bevel"/>
+        <prop k="name" v="circle"/>
+        <prop k="offset" v="0,0"/>
+        <prop k="offset_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="offset_unit" v="MM"/>
+        <prop k="outline_color" v="0,0,0,255"/>
+        <prop k="outline_style" v="solid"/>
+        <prop k="outline_width" v="0"/>
+        <prop k="outline_width_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="outline_width_unit" v="MM"/>
+        <prop k="scale_method" v="diameter"/>
+        <prop k="size" v="2"/>
+        <prop k="size_map_unit_scale" v="0,0,0,0,0,0"/>
+        <prop k="size_unit" v="MM"/>
+        <prop k="vertical_anchor_point" v="1"/>
+      </layer>
+    </symbol>
+  </SingleCategoryDiagramRenderer>
+  <DiagramLayerSettings yPosColumn="-1" showColumn="-1" linePlacementFlags="10" placement="0" dist="0" xPosColumn="-1" priority="0" obstacle="0" zIndex="0" showAll="1"/>
+  <annotationform>.</annotationform>
+  <excludeAttributesWMS/>
+  <excludeAttributesWFS/>
+  <attributeactions default="-1"/>
+  <attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
+    <columns>
+      <column width="-1" hidden="0" type="field" name="SCALERANK"/>
+      <column width="-1" hidden="0" type="field" name="NATSCALE"/>
+      <column width="-1" hidden="0" type="field" name="LABELRANK"/>
+      <column width="-1" hidden="0" type="field" name="FEATURECLA"/>
+      <column width="-1" hidden="0" type="field" name="NAME"/>
+      <column width="-1" hidden="0" type="field" name="NAMEPAR"/>
+      <column width="-1" hidden="0" type="field" name="NAMEALT"/>
+      <column width="-1" hidden="0" type="field" name="DIFFASCII"/>
+      <column width="-1" hidden="0" type="field" name="NAMEASCII"/>
+      <column width="-1" hidden="0" type="field" name="ADM0CAP"/>
+      <column width="-1" hidden="0" type="field" name="CAPALT"/>
+      <column width="-1" hidden="0" type="field" name="CAPIN"/>
+      <column width="-1" hidden="0" type="field" name="WORLDCITY"/>
+      <column width="-1" hidden="0" type="field" name="MEGACITY"/>
+      <column width="-1" hidden="0" type="field" name="SOV0NAME"/>
+      <column width="-1" hidden="0" type="field" name="SOV_A3"/>
+      <column width="-1" hidden="0" type="field" name="ADM0NAME"/>
+      <column width="-1" hidden="0" type="field" name="ADM0_A3"/>
+      <column width="-1" hidden="0" type="field" name="ADM1NAME"/>
+      <column width="-1" hidden="0" type="field" name="ISO_A2"/>
+      <column width="-1" hidden="0" type="field" name="NOTE"/>
+      <column width="-1" hidden="0" type="field" name="LATITUDE"/>
+      <column width="-1" hidden="0" type="field" name="LONGITUDE"/>
+      <column width="-1" hidden="0" type="field" name="CHANGED"/>
+      <column width="-1" hidden="0" type="field" name="NAMEDIFF"/>
+      <column width="-1" hidden="0" type="field" name="DIFFNOTE"/>
+      <column width="-1" hidden="0" type="field" name="POP_MAX"/>
+      <column width="-1" hidden="0" type="field" name="POP_MIN"/>
+      <column width="-1" hidden="0" type="field" name="POP_OTHER"/>
+      <column width="-1" hidden="0" type="field" name="RANK_MAX"/>
+      <column width="-1" hidden="0" type="field" name="RANK_MIN"/>
+      <column width="-1" hidden="0" type="field" name="GEONAMEID"/>
+      <column width="-1" hidden="0" type="field" name="MEGANAME"/>
+      <column width="-1" hidden="0" type="field" name="LS_NAME"/>
+      <column width="-1" hidden="0" type="field" name="LS_MATCH"/>
+      <column width="-1" hidden="0" type="field" name="CHECKME"/>
+      <column width="-1" hidden="0" type="field" name="MAX_POP10"/>
+      <column width="-1" hidden="0" type="field" name="MAX_POP20"/>
+      <column width="-1" hidden="0" type="field" name="MAX_POP50"/>
+      <column width="-1" hidden="0" type="field" name="MAX_POP300"/>
+      <column width="-1" hidden="0" type="field" name="MAX_POP310"/>
+      <column width="-1" hidden="0" type="field" name="MAX_NATSCA"/>
+      <column width="-1" hidden="0" type="field" name="MIN_AREAKM"/>
+      <column width="-1" hidden="0" type="field" name="MAX_AREAKM"/>
+      <column width="-1" hidden="0" type="field" name="MIN_AREAMI"/>
+      <column width="-1" hidden="0" type="field" name="MAX_AREAMI"/>
+      <column width="-1" hidden="0" type="field" name="MIN_PERKM"/>
+      <column width="-1" hidden="0" type="field" name="MAX_PERKM"/>
+      <column width="-1" hidden="0" type="field" name="MIN_PERMI"/>
+      <column width="-1" hidden="0" type="field" name="MAX_PERMI"/>
+      <column width="-1" hidden="0" type="field" name="MIN_BBXMIN"/>
+      <column width="-1" hidden="0" type="field" name="MAX_BBXMIN"/>
+      <column width="-1" hidden="0" type="field" name="MIN_BBXMAX"/>
+      <column width="-1" hidden="0" type="field" name="MAX_BBXMAX"/>
+      <column width="-1" hidden="0" type="field" name="MIN_BBYMIN"/>
+      <column width="-1" hidden="0" type="field" name="MAX_BBYMIN"/>
+      <column width="-1" hidden="0" type="field" name="MIN_BBYMAX"/>
+      <column width="-1" hidden="0" type="field" name="MAX_BBYMAX"/>
+      <column width="-1" hidden="0" type="field" name="MEAN_BBXC"/>
+      <column width="-1" hidden="0" type="field" name="MEAN_BBYC"/>
+      <column width="-1" hidden="0" type="field" name="COMPARE"/>
+      <column width="-1" hidden="0" type="field" name="GN_ASCII"/>
+      <column width="-1" hidden="0" type="field" name="FEATURE_CL"/>
+      <column width="-1" hidden="0" type="field" name="FEATURE_CO"/>
+      <column width="-1" hidden="0" type="field" name="ADMIN1_COD"/>
+      <column width="-1" hidden="0" type="field" name="GN_POP"/>
+      <column width="-1" hidden="0" type="field" name="ELEVATION"/>
+      <column width="-1" hidden="0" type="field" name="GTOPO30"/>
+      <column width="-1" hidden="0" type="field" name="TIMEZONE"/>
+      <column width="-1" hidden="0" type="field" name="GEONAMESNO"/>
+      <column width="-1" hidden="0" type="field" name="UN_FID"/>
+      <column width="-1" hidden="0" type="field" name="UN_ADM0"/>
+      <column width="-1" hidden="0" type="field" name="UN_LAT"/>
+      <column width="-1" hidden="0" type="field" name="UN_LONG"/>
+      <column width="-1" hidden="0" type="field" name="POP1950"/>
+      <column width="-1" hidden="0" type="field" name="POP1955"/>
+      <column width="-1" hidden="0" type="field" name="POP1960"/>
+      <column width="-1" hidden="0" type="field" name="POP1965"/>
+      <column width="-1" hidden="0" type="field" name="POP1970"/>
+      <column width="-1" hidden="0" type="field" name="POP1975"/>
+      <column width="-1" hidden="0" type="field" name="POP1980"/>
+      <column width="-1" hidden="0" type="field" name="POP1985"/>
+      <column width="-1" hidden="0" type="field" name="POP1990"/>
+      <column width="-1" hidden="0" type="field" name="POP1995"/>
+      <column width="-1" hidden="0" type="field" name="POP2000"/>
+      <column width="-1" hidden="0" type="field" name="POP2005"/>
+      <column width="-1" hidden="0" type="field" name="POP2010"/>
+      <column width="-1" hidden="0" type="field" name="POP2015"/>
+      <column width="-1" hidden="0" type="field" name="POP2020"/>
+      <column width="-1" hidden="0" type="field" name="POP2025"/>
+      <column width="-1" hidden="0" type="field" name="POP2050"/>
+      <column width="-1" hidden="0" type="field" name="CITYALT"/>
+      <column width="-1" hidden="1" type="actions"/>
+    </columns>
+  </attributetableconfig>
+  <editform>.</editform>
+  <editforminit/>
+  <editforminitcodesource>0</editforminitcodesource>
+  <editforminitfilepath>.</editforminitfilepath>
+  <editforminitcode><![CDATA[# -*- coding: utf-8 -*-
+"""
+QGIS forms can have a Python function that is called when the form is
+opened.
+
+Use this function to add extra logic to your forms.
+
+Enter the name of the function in the "Python Init function"
+field.
+An example follows:
+"""
+from qgis.PyQt.QtWidgets import QWidget
+
+def my_form_open(dialog, layer, feature):
+	geom = feature.geometry()
+	control = dialog.findChild(QWidget, "MyLineEdit")
+]]></editforminitcode>
+  <featformsuppress>0</featformsuppress>
+  <editorlayout>generatedlayout</editorlayout>
+  <widgets/>
+  <conditionalstyles>
+    <rowstyles/>
+    <fieldstyles/>
+  </conditionalstyles>
+  <expressionfields/>
+  <previewExpression>NAME</previewExpression>
+  <mapTip></mapTip>
+  <layerGeometryType>0</layerGeometryType>
+</qgis>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qgis.git



More information about the Pkg-grass-devel mailing list