[qgis] 01/01: Imported Upstream version 2.16.3+dfsg

Bas Couwenberg sebastic at debian.org
Sat Sep 24 08:00:27 UTC 2016


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

sebastic pushed a commit to branch upstream
in repository qgis.

commit 5b7bdd92298596720368f8cbf557e38b62b26039
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Sat Sep 24 09:56:00 2016 +0200

    Imported Upstream version 2.16.3+dfsg
---
 CMakeLists.txt                                     |    2 +-
 ChangeLog                                          |  896 +-
 cmake/SIPMacros.cmake                              |    3 -
 debian/changelog                                   |   10 +-
 debian/control.in                                  |    2 +-
 debian/python-qgis.install.in                      |    1 +
 debian/rules                                       |    4 +-
 doc/TRANSLATORS                                    |   76 +-
 i18n/qgis_de.ts                                    | 9207 ++++++++++----------
 python/CMakeLists.txt                              |   14 +
 python/QtWebKit/QtWebKitmod.sip                    |   63 +
 python/QtWebKit/__init__.py                        |    0
 python/QtWebKit/qgraphicswebview.sip               |  150 +
 python/QtWebKit/qwebdatabase.sip                   |   46 +
 python/QtWebKit/qwebelement.sip                    |  144 +
 python/QtWebKit/qwebframe.sip                      |  244 +
 python/QtWebKit/qwebhistory.sip                    |  104 +
 python/QtWebKit/qwebhistoryinterface.sip           |   40 +
 python/QtWebKit/qwebinspector.sip                  |   48 +
 python/QtWebKit/qwebkitglobal.sip                  |   37 +
 python/QtWebKit/qwebkitversion.sip                 |   37 +
 python/QtWebKit/qwebpage.sip                       |  522 ++
 python/QtWebKit/qwebpluginfactory.sip              |   88 +
 python/QtWebKit/qwebsecurityorigin.sip             |   56 +
 python/QtWebKit/qwebsettings.sip                   |  237 +
 python/QtWebKit/qwebview.sip                       |  167 +
 python/core/qgsogcutils.sip                        |    7 +
 python/core/qgsstringutils.sip                     |   19 +
 python/core/qgsvectorlayer.sip                     |   19 +-
 .../qgscategorizedsymbolrendererv2.sip             |   10 +-
 .../core/symbology-ng/qgsellipsesymbollayerv2.sip  |    1 +
 python/core/symbology-ng/qgsfillsymbollayerv2.sip  |    5 +
 .../symbology-ng/qgsgraduatedsymbolrendererv2.sip  |    3 +
 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      |   54 +-
 python/core/symbology-ng/qgssymbollayerv2utils.sip |   31 +
 python/core/symbology-ng/qgssymbolv2.sip           |    3 +-
 .../symbology-ng/qgsvectorfieldsymbollayer.sip     |    1 +
 python/gui/qgsmessagebar.sip                       |    4 +-
 python/plugins/GdalTools/tools/widgetBatchBase.py  |    2 +-
 .../db_manager/db_plugins/spatialite/plugin.py     |    2 +-
 .../plugins/processing/algs/gdal/GdalAlgorithm.py  |    5 +-
 .../processing/algs/gdal/ogr2ogronesidebuffer.py   |   76 +-
 python/plugins/processing/algs/qgis/ConcaveHull.py |    4 +-
 python/plugins/processing/algs/qgis/Dissolve.py    |   35 +-
 .../plugins/processing/algs/qgis/Intersection.py   |    6 +-
 python/plugins/processing/algs/qgis/MeanCoords.py  |   11 +-
 .../algs/qgis/SinglePartsToMultiparts.py           |    4 +-
 python/plugins/processing/core/Processing.py       |    4 -
 python/plugins/processing/core/alglist.py          |    5 -
 python/plugins/processing/core/parameters.py       |    2 +-
 .../plugins/processing/gui/AlgorithmDialogBase.py  |    3 -
 python/plugins/processing/gui/CommanderWindow.py   |    9 +-
 python/plugins/processing/gui/menus.py             |    4 +-
 python/plugins/processing/tools/system.py          |    8 +-
 src/app/main.cpp                                   |   94 +-
 src/app/qgsidentifyresultsdialog.cpp               |    2 +
 src/app/qgssnappingdialog.cpp                      |    2 +-
 src/core/auth/qgsauthmanager.cpp                   |    8 +-
 src/core/dxf/qgsdxfexport.cpp                      |   22 +-
 src/core/qgsaggregatecalculator.cpp                |   37 +-
 src/core/qgsaggregatecalculator.h                  |    2 +
 src/core/qgsexpression.cpp                         |   14 +-
 src/core/qgslegendrenderer.cpp                     |   46 +-
 src/core/qgsmaplayer.cpp                           |    9 +-
 src/core/qgsogcutils.cpp                           |   45 +
 src/core/qgsogcutils.h                             |   21 +
 src/core/qgspallabeling.cpp                        |   71 +-
 src/core/qgspointlocator.cpp                       |    1 +
 src/core/qgspointlocator.h                         |    2 +-
 src/core/qgsstringutils.cpp                        |   50 +
 src/core/qgsstringutils.h                          |   18 +
 src/core/qgsvectordataprovider.cpp                 |    5 +-
 src/core/qgsvectorlayer.cpp                        |   21 +-
 src/core/qgsvectorlayer.h                          |   26 +
 src/core/qgsvectorlayerlabelprovider.h             |    2 +
 .../qgscategorizedsymbolrendererv2.cpp             |   20 +-
 .../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  |   17 +-
 .../symbology-ng/qgsgraduatedsymbolrendererv2.h    |    3 +
 src/core/symbology-ng/qgslinesymbollayerv2.cpp     |   18 +-
 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     |   15 +-
 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/qgsvectorcolorrampv2.cpp     |    5 +-
 src/core/symbology-ng/qgsvectorfieldsymbollayer.h  |    1 +
 src/gui/editorwidgets/qgsdatetimeeditwrapper.cpp   |    2 +-
 .../qgsdatetimesearchwidgetwrapper.cpp             |    2 +-
 src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp  |    1 +
 .../symbology-ng/qgsrulebasedrendererv2widget.cpp  |    6 +-
 .../qgsdelimitedtextfeatureiterator.cpp            |   10 +-
 .../delimitedtext/qgsdelimitedtextfile.cpp         |   10 +-
 src/providers/ogr/qgsogrconnpool.h                 |    3 +-
 src/providers/ogr/qgsogrfeatureiterator.cpp        |    7 +
 src/providers/ogr/qgsogrprovider.cpp               |  148 +-
 src/providers/ogr/qgsogrprovider.h                 |    6 +
 src/providers/postgres/qgspostgresdataitems.cpp    |    8 +-
 .../spatialite/qgsspatialitesourceselect.cpp       |    4 +
 .../virtual/qgsvirtuallayerqueryparser.cpp         |    6 +-
 .../virtual/qgsvirtuallayersqlitemodule.cpp        |   19 +-
 src/server/qgswmsprojectparser.cpp                 |    1 -
 tests/src/core/testqgsexpression.cpp               |    1 +
 tests/src/core/testqgslabelingenginev2.cpp         |   60 +
 tests/src/core/testqgslegendrenderer.cpp           |   62 +
 tests/src/python/CMakeLists.txt                    |    1 +
 tests/src/python/test_provider_ogr_gpkg.py         |   76 +
 tests/src/python/test_provider_virtual.py          |   15 +
 tests/src/python/test_qgsaggregatecalculator.py    |   30 +
 .../src/python/test_qgssymbollayerv2_createsld.py  |  521 ++
 .../expected_legend_2_by_2.png                     |  Bin 0 -> 4515 bytes
 .../expected_legend_2_by_2_mask.png                |  Bin 0 -> 1198 bytes
 .../expected_legend_3_by_2.png                     |  Bin 0 -> 5364 bytes
 .../expected_legend_3_by_2_mask.png                |  Bin 0 -> 1491 bytes
 .../expected_legend_3_by_3.png                     |  Bin 0 -> 5800 bytes
 .../expected_legend_3_by_3_mask.png                |  Bin 0 -> 1526 bytes
 .../expected_legend_4_by_2.png                     |  Bin 0 -> 5472 bytes
 .../expected_legend_4_by_2_mask.png                |  Bin 0 -> 1676 bytes
 .../expected_legend_4_by_3.png                     |  Bin 0 -> 6529 bytes
 .../expected_legend_4_by_3_mask.png                |  Bin 0 -> 1855 bytes
 .../expected_legend_5_by_2.png                     |  Bin 0 -> 6661 bytes
 .../expected_legend_5_by_2_mask.png                |  Bin 0 -> 1964 bytes
 .../expected_legend_5_by_3.png                     |  Bin 0 -> 6870 bytes
 .../expected_legend_5_by_3_mask.png                |  Bin 0 -> 2045 bytes
 .../expected_legend_6_by_3.png                     |  Bin 0 -> 7470 bytes
 .../expected_legend_6_by_3_mask.png                |  Bin 0 -> 2226 bytes
 .../expected_legend_7_by_3.png                     |  Bin 0 -> 8244 bytes
 .../expected_legend_7_by_3_mask.png                |  Bin 0 -> 2539 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 ++
 151 files changed, 11892 insertions(+), 5239 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f703bd..e8d88c3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
 SET(CPACK_PACKAGE_VERSION_MAJOR "2")
 SET(CPACK_PACKAGE_VERSION_MINOR "16")
-SET(CPACK_PACKAGE_VERSION_PATCH "2")
+SET(CPACK_PACKAGE_VERSION_PATCH "3")
 SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
 SET(RELEASE_NAME "Nødebo")
 IF (POLICY CMP0048) # in CMake 3.0.0+
diff --git a/ChangeLog b/ChangeLog
index d73e733..b10f78c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,369 @@
+Even Rouault <even.rouault at spatialys.com>	2016-09-22
+
+    Fix database locking when editing GeoPackage
+
+    Concurrent read and write can lock a GeoPackage database given
+    the default journaling mode of SQLite (delete). Use WAL when
+    possible to avoid that.
+
+    Fixes #15351
+
+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: 8190e4c cac25d3
+rldhont <rldhont at gmail.com>	2016-09-22
+
+    Merge branch 'release-2_16-aaime_sld' into release-2_16
+
+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
+
+Martin Dobias <wonder.sk at gmail.com>	2016-09-21
+
+    [snapping] fix default advanced mode values for added layers
+
+    Backported from PR #3513
+
+    (cherry picked from commit be636c178cd527f4533f467292acd05bde4238c9)
+
+rldhont <rldhont at gmail.com>	2016-09-16
+
+    [Processing] bugfix: intersection QGIS algorithm
+
+    fixing this by testing int_com.
+    ```
+    Traceback (most recent call last):
+    File "C:/PROGRA~1/QGIS2~1.17/apps/qgis/./python/plugins\processing\core\GeoAlgorithm.py", line 203, in execute
+    self.processAlgorithm(progress)
+    File "C:/PROGRA~1/QGIS2~1.17/apps/qgis/./python/plugins\processing\algs\qgis\Intersection.py", line 100, in processAlgorithm
+    int_geom = QgsGeometry(int_com.difference(int_sym))
+    ```
+
+    AttributeError: 'NoneType' object has no attribute 'difference'
+    (cherry picked from commit 3661bc39dbee312b3a0887ca80287cbc7b2260ec)
+    (cherry picked from commit 5b573179f3d2fb94542714a4bd3fcdb28f4e3307)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-17
+
+    show command line help as message box on windows
+
+    (cherry picked from commit bd23bf1a2368fa68fe692d451f61bfe3095619bd)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-16
+
+    [processing] allow all field types as unique ID field in Mean coords alg
+
+    (cherry picked from commit 75269d66b9d79c3b4a2b18bd9626c22840aa6713)
+
+arnaud.morvan at camptocamp.com <arnaud.morvan at camptocamp.com>	2016-09-08
+
+    Fix ParameterGeometryPredicate.getValueAsCommandLineParameter
+
+    (cherry picked from commit d85de7ccd8946ab3ded83abae674554d482dbcf5)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-15
+
+    [processing] fix search by alg name (fix #15562)
+
+    (cherry picked from commit 11f8aa23198b01952660e2c1e7e20c4548c8b224)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-15
+
+    [processing] remove obsolete methods
+
+    (cherry picked from commit 6f6979ab0b9b6abfb13c3eb85f680b928fc8b97b)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-15
+
+    Catch exceptions in transform() expression function
+
+    (cherry-picked from 2a8333ef6be003b8c391a72dbed033a33373d677)
+
+rldhont <rldhont at gmail.com>	2016-09-15
+
+    GdalTools: In widgetBatchBase runItem method, refreshArgs is not a SIGNAL
+
+    The commit 9db908ccbc2257d466c0593738944a08cea8a8bc GdalTools: new style signals generates a regression
+    In the widgetBatchBase runItem method, refreshArgs is not a SIGNAL
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-15
+
+    [processing] correct error message (fix #15511)
+
+    (cherry picked from commit d393734bd3d368f52271838414a3edbf1d4eb1a5)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-14
+
+    fix indentation
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-14
+
+    [processing] refactor offset curve GDAL algorithm (fix #15478)
+
+    (cherry picked from commit cac3b2ddfa7c43239f1c9abc84c965340a5b74b5)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-14
+
+    [processing] fix substitution of the original layers in GDAL commands
+
+    (cherry picked from commit 89774abed3740426d8aee4a8413c3a05ec705cad)
+
+    Conflicts:
+            python/plugins/processing/algs/gdal/GdalAlgorithm.py
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-14
+
+    [processing] use hex representation of uuid
+
+    (cherry picked from commit 2466083790255c2387fcd84bd6f5c330d272a5c4)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-14
+
+    fix a54bfc2
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-14
+
+    Enable plugins (eg. to show PDFs) in webview widgets used on feature info in identify or in forms
+
+Marco Bernasocchi <marco at bernawebdesign.ch>	2016-09-11
+
+    qgsmessagebar timeout is not respected in python
+
+    the default timeout is not respected in python
+
+    gui/qgsmessagebar.sip:51:    void pushMessage( const QString &text, MessageLevel level = INFO, int duration = 0 );
+
+    https://qgis.org/api/qgsmessagebar_8h_source.html#l00090
+    void pushMessage( const QString &text, MessageLevel level = INFO, int duration = 5 ) { return pushMessage( QString::null, text, level, duration ); }
+
+    (cherry-picked from bb4e6b8fb800b69d28407102a4f17494a4cd5ad9)
+
+nirvn <nirvn.asia at gmail.com>	2016-09-13
+
+    [delimitertext] fix watcher check ignored and harmful watcher created for iterator
+    (fixes #15558)
+
+    (cherry-picked from b3e31087181732f7511d047b98352e97f08b0d04)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-10
+
+    Test masks
+
+    (cherry-picked from e3313fac95ea143988ea32bf162b01b4df8e6fa1)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-10
+
+    Make sure items in legend always occupy the set number of columns
+
+    In some cases (eg a legend with 4 items and 3 columns) less
+    columns were being created
+
+    (cherry-picked from 52eef9006183a66d53926f33e73afa1dcd534e59)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-10
+
+    Fix multi column legends with odd number of items would place
+    more items in rightmost columns instead of leftmost columns
+
+    Eg a 2 column legend with 3 items would put 1 item in
+    the first column and 2 in the second. This was ugly, and now
+    it places 2 in the first column and 1 in the second.
+
+    The legend column assigner was incorrectly adding padding above
+    the first item in a column during column size calculation
+    (padding which is not present when actually rendering the column)
+
+    (cherry-picked from a673fa8393146d9a8cd1a3bf6f0444bfa23352d7)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-10
+
+    Add a bunch of tests for legend grouping into columns
+
+    (cherry-picked from 570e6936b655aef2877d2d63c9892f1df05df312)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-06
+
+    Fix crash when 'use popup' is selected for time based datetime widgets
+
+    (cherry-picked from 63cc76213979b26e59c17a603dda5e6bfe4463fb)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-14
+
+    Avoid excessive margins on rule based rule props widget
+
+    (cherry-picked from 9b762023e438d7e44e4fe23fceb7e29c0046e29b)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-09-14
+
+    Don't continually refresh map while editing rule label/desc
+
+    (cherry-picked from 2c3548df1111c4709a38d7bacce717711b2a2da7)
+
+Alexander Bruy <alexander.bruy at gmail.com>	2016-09-13
+
+    [processing] fix progress reporting (fix #15521)
+
+    (cherry picked from commit b14dfa65fe8c5db852bac0899f8aac64b91faada)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-06
+
+    debian packaging update: add internal QtWebKit bindings
+
+    (cherry picked from commit c2f0fff and d6b485)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-03
+
+    german translation update
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-03
+
+    fix ProcessingQgisAlgorithmsTest (followup 491c52c)
+
+Juergen E. Fischer <jef at norbit.de>	2016-09-03
+
+    processing: use main vector menu translation (fixes #14535)
+
+    (cherry picked from commit 11289a0d973e6e4a3f7f81972dd08f2e6d82941e)
+
+volaya <volayaf at gmail.com>	2016-09-02
+
+    [processing] fixed error in dissolve when there are features with null geometries
+
+Even Rouault <even.rouault at spatialys.com>	2016-09-01
+
+    [DBManager] Fix exception raised when adding a new Spatialite connection
+
+    This was accidentaly broken since 1f0fce7852e9f6a27af967d7ac7ee3989dce7b45
+
+    Fixes #15274
+
+Larry Shaffer <lshaffer at boundlessgeo.com>	2016-09-01
+
+    [auth] Fix return value for plugins that do not support an expansion
+
+    Bug not evident until there were providers with multiple credential
+    expansions (now supported in OWS providers). Lack of support for an
+    expansion should only trigger a debug message, not a failure.
+
+    (cherry-picked from 194b5adb1ed81bcfe7edd78477dfea81cae77aed)
+
+Hugo Mercier <hugo.mercier at oslandia.com>	2016-09-01
+
+    Fix virtual layer queries with accents in layer name
+
+    (cherry-picked from af0d6b93a6)
+
+Matthias Kuhn <matthias at opengis.ch>	2016-09-01
+
+    Export main() when building for android
+
+Hugo Mercier <hugo.mercier at oslandia.com>	2016-07-21
+
+    Snapping: destroy index on dataChanged signal
+
+    Snapping caches on layers that have been changed by the provider or
+    by external sources are now invalidated.
+
+    (Cherry-picked from e6fd2e25)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-30
+
+    Fix Capitalize First Letter fails with curved labels (fix #14875)
+
+    Instead of using QFont's inbuilt capitalization support, which
+    applies only on rendering and accordingly fails for curved
+    labels which are drawn one character at a time, we now manually
+    capitalize label text while registering features.
+
+    The capitalize first method from Qt was reimplemented in QgsStringUtils
+    (together with what I expect is better handling of unicode characters
+    over the Qt method).
+
+    This change also makes it possible to implement other capitalization
+    methods not directly supported by Qt
+
+    (cherry-picked from 15dd295)
+
+Tim Sutton <tim at kartoza.com>	2016-08-22
+
+    Spatialite error message fix (#3416)
+
+    * Fixed issue where opening an invalid spatialite db fails and gives and poor warning message
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-29
+
+    Fix calculation of certain aggregates from expressions when no
+    matching features exist
+
+    Eg count should return 0 in this case rather than null
+
+    (cherry-picked from 9ba41e9f275f42a5dfe5c1cdbc0a4d091a0e833f)
+
+Juergen E. Fischer <jef at norbit.de>	2016-08-28
+
+    processing: fix population of commander combobox (fixes #15283)
+
+    (cherry picked from commit d3882d5)
+
+Juergen E. Fischer <jef at norbit.de>	2016-08-28
+
+    dxf export: link vertices to polyline (fixes #15484)
+
+    (cherry picked from commit 052d3ef851beef7cbbfa3c699c1c95b0d84dc3e2)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-26
+
+    [browser] Correctly refresh postgres schemas when dropping tables
+
+    (cherry-picked from 5a41748b867505784a091a882a0eb1ca187c4ba8)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-26
+
+    Make QgsVectorDataProvider defaults methods more efficient
+
+    (cherry-picked from a10b8fc3e5658290dd7e18df1001e543c3a75caa)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-26
+
+    Fix limited random color ramp always returns 1 less color than set
+
+    (cherry-picked from 1d98b10904884d8223372fc9248c2825c85591e9)
+
+Nyall Dawson <nyall.dawson at gmail.com>	2016-08-25
+
+    Fix potential crash
+
+Juergen E. Fischer <jef at norbit.de>	2016-08-26
+
+    Release of 2.16.2
+
 Alexander Bruy <alexander.bruy at gmail.com>	2016-08-23
 
     fix typo
@@ -222,8 +588,8 @@ Alexander Bruy <alexander.bruy at gmail.com>	2016-07-25
     (cherry picked from commit 48cca3bc12e874d681669b47ce2ee24b96baa4de)
 
     Conflicts:
-python/plugins/processing/modeler/AddModelFromFileAction.py
-python/plugins/processing/script/AddScriptFromFileAction.py
+            python/plugins/processing/modeler/AddModelFromFileAction.py
+            python/plugins/processing/script/AddScriptFromFileAction.py
 
 Matthias Kuhn <matthias at opengis.ch>	2016-08-03
 
@@ -6889,8 +7255,8 @@ Alexander Bruy <alexander.bruy at gmail.com>	2016-05-13
     Merge branch 'processing_exps' of https://github.com/volaya/QGIS into processing_exps
 
     Conflicts:
-python/plugins/processing/gui/NumberInputPanel.py
-python/plugins/processing/gui/OutputSelectionPanel.py
+            python/plugins/processing/gui/NumberInputPanel.py
+            python/plugins/processing/gui/OutputSelectionPanel.py
 
 Nyall Dawson <nyall.dawson at gmail.com>	2016-05-13
 
@@ -18674,7 +19040,7 @@ Michael Kirk <michael.john.kirk at gmail.com>	2015-11-29
     - Test BooleanParameter
 
     Conflicts:
-python/plugins/processing/core/parameters.py
+            python/plugins/processing/core/parameters.py
 
 rldhont <rldhont at gmail.com>	2015-12-23
 
@@ -20795,7 +21161,7 @@ Giuseppe Sucameli <brush.tyler at gmail.com>	2015-11-30
         Merge branch 'gdaltools_buildvrt_asrs' of https://github.com/giohappy/QGIS into giohappy-gdaltools_buildvrt_asrs
 
         Conflicts:
-python/plugins/GdalTools/tools/doBuildVRT.py
+            python/plugins/GdalTools/tools/doBuildVRT.py
 
     commit 6d3df91f0226fa71356da45b9b5ef1c9f9796ebd
     Author: giohappy <giohappy at gmail.com>
@@ -23413,7 +23779,7 @@ Giuseppe Sucameli <brush.tyler at gmail.com>	2015-10-25
     Merge branch 'clipper' of https://github.com/PedroVenancio/Quantum-GIS into PedroVenancio-clipper
 
     Conflicts:
-python/plugins/processing/algs/gdal/ClipByMask.py
+            python/plugins/processing/algs/gdal/ClipByMask.py
 
 mdouchin <mdouchin at 3liz.com>	2015-10-25
 
@@ -23446,7 +23812,7 @@ volaya <volayaf at gmail.com>	2015-10-22
     [processing] fixed SAGA version handling
 
     Conflicts:
-python/plugins/processing/algs/saga/SagaAlgorithmProvider.py
+            python/plugins/processing/algs/saga/SagaAlgorithmProvider.py
 
 volaya <volayaf at gmail.com>	2015-10-22
 
@@ -28449,7 +28815,7 @@ Nathan Woodrow <madmanwoo at gmail.com>	2015-08-25
     Merge branch 'master' of https://github.com/qgis/QGIS
 
     Conflicts:
-src/gui/attributetable/qgsfieldconditionalformatwidget.cpp
+            src/gui/attributetable/qgsfieldconditionalformatwidget.cpp
 
 Nyall Dawson <nyall.dawson at gmail.com>	2015-08-25
 
@@ -28641,13 +29007,13 @@ Nathan Woodrow <madmanwoo at gmail.com>	2015-08-23
     Merge row style support for attribute table
 
     Conflicts:
-python/core/qgsconditionalstyle.sip
-python/core/qgsfielduiproperties.sip
-src/core/qgsfielduiproperties.cpp
-src/core/qgsfielduiproperties.h
-src/gui/attributetable/qgsattributetablemodel.cpp
-src/ui/qgsfieldconditionalformatwidget.ui
-tests/src/python/test_qgsconditionalstyle.py
+            python/core/qgsconditionalstyle.sip
+            python/core/qgsfielduiproperties.sip
+            src/core/qgsfielduiproperties.cpp
+            src/core/qgsfielduiproperties.h
+            src/gui/attributetable/qgsattributetablemodel.cpp
+            src/ui/qgsfieldconditionalformatwidget.ui
+            tests/src/python/test_qgsconditionalstyle.py
 
 Nathan Woodrow <madmanwoo at gmail.com>	2015-08-23
 
@@ -34141,7 +34507,7 @@ Alexander Bruy <alexander.bruy at gmail.com>	2015-05-27
     Merge branch 'master' of https://github.com/scubbx/QGIS into processing-r.stat
 
     Conflicts:
-python/plugins/processing/algs/grass7/Grass7Algorithm.py
+            python/plugins/processing/algs/grass7/Grass7Algorithm.py
 
 Nyall Dawson <nyall.dawson at gmail.com>	2015-05-27
 
@@ -36898,7 +37264,7 @@ Alexander Bruy <alexander.bruy at gmail.com>	2015-04-02
     Merge branch 'master' of https://github.com/gbd-consult/QGIS into ftools-enhancements
 
     Conflicts:
-python/plugins/fTools/tools/doPointsInPolygon.py
+            python/plugins/fTools/tools/doPointsInPolygon.py
 
 Anatoliy Golubev <darth.naihil at gmail.com>	2015-04-01
 
@@ -37932,7 +38298,7 @@ Alexander Bruy <alexander.bruy at gmail.com>	2015-02-24
     Merge branch 'processing_import_geomless_tables_in_postgresql_2' of https://github.com/gioman/QGIS into geometry-less-import
 
     Conflicts:
-python/plugins/processing/algs/gdal/GdalOgrAlgorithmProvider.py
+            python/plugins/processing/algs/gdal/GdalOgrAlgorithmProvider.py
 
 Merge: 8ab014d b4f2568
 Alexander Bruy <alexander.bruy at gmail.com>	2015-02-24
@@ -37963,7 +38329,7 @@ Alexander Bruy <alexander.bruy at gmail.com>	2015-02-24
     Merge branch 'processing_add_gdal_raster_calc' of https://github.com/gioman/QGIS into gdal_calc
 
     Conflicts:
-python/plugins/processing/algs/gdal/GdalOgrAlgorithmProvider.py
+            python/plugins/processing/algs/gdal/GdalOgrAlgorithmProvider.py
 
 Merge: 33c6051 bf08b7b
 alexbruy <alexander.bruy at gmail.com>	2015-02-24
@@ -39721,7 +40087,7 @@ Michael Kirk <michael.john.kirk at gmail.com>	2015-01-26
     Merge remote-tracking branch 'upstream/master' into feature/export-png-first-8493
 
     Conflicts:
-src/gui/qgisgui.h
+            src/gui/qgisgui.h
 
 Juergen E. Fischer <jef at norbit.de>	2015-01-27
 
@@ -43548,7 +43914,7 @@ Martin Dobias <wonder.sk at gmail.com>	2014-11-15
     Merge remote-tracking branch 'rldhont/filter_legend_displacement_point2'
 
     Conflicts:
-src/core/qgsmaphittest.cpp
+            src/core/qgsmaphittest.cpp
 
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2014-11-14
 
@@ -44057,7 +44423,7 @@ elpaso <apasotti at gmail.com>	2014-10-09
       response headers and body
 
     Conflicts:
-src/mapserver/qgswmsserver.cpp
+            src/mapserver/qgswmsserver.cpp
 
     Funded by ItOpen - http://www.itopen.it
 
@@ -47688,9 +48054,9 @@ Martin Dobias <wonder.sk at gmail.com>	2014-09-13
     Merge remote-tracking branch 'rouault/use_geos_reentrant_api'
 
     Conflicts:
-src/core/pal/layer.cpp
-src/core/qgsgeometry.cpp
-src/core/qgspallabeling.cpp
+            src/core/pal/layer.cpp
+            src/core/qgsgeometry.cpp
+            src/core/qgspallabeling.cpp
 
 Martin Dobias <wonder.sk at gmail.com>	2014-09-13
 
@@ -48319,8 +48685,8 @@ Denis Rouzaud <denis.rouzaud at gmail.com>	2014-08-27
     [map layer actions] action for group of features, rename availability to target (flags), only emit signal for defined target"
 
     Conflicts:
-src/gui/qgsmaplayeractionregistry.cpp
-src/gui/qgsmaplayeractionregistry.h
+            src/gui/qgsmaplayeractionregistry.cpp
+            src/gui/qgsmaplayeractionregistry.h
 
 Nyall Dawson <nyall.dawson at gmail.com>	2014-09-01
 
@@ -51913,7 +52279,7 @@ Martin Dobias <wonder.sk at gmail.com>	2014-06-15
     Merge remote-tracking branch 'edigonzales/master'
 
     Conflicts:
-src/core/symbology-ng/qgslinesymbollayerv2.cpp
+            src/core/symbology-ng/qgslinesymbollayerv2.cpp
 
 Merge: 6c21262 7bec7c2
 Werner Macho <werner.macho at gmail.com>	2014-06-15
@@ -52555,11 +52921,11 @@ Martin Dobias <wonder.sk at gmail.com>	2014-06-10
     Fix #10355 (crash) and #10338 (overlapping polygons) in inverted polygon renderer
 
     Conflicts:
-python/core/symbology-ng/qgsinvertedpolygonrenderer.sip
-src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp
-src/core/symbology-ng/qgsinvertedpolygonrenderer.h
-src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp
-src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h
+            python/core/symbology-ng/qgsinvertedpolygonrenderer.sip
+            src/core/symbology-ng/qgsinvertedpolygonrenderer.cpp
+            src/core/symbology-ng/qgsinvertedpolygonrenderer.h
+            src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.cpp
+            src/gui/symbology-ng/qgsinvertedpolygonrendererwidget.h
 
 Martin Dobias <wonder.sk at gmail.com>	2014-06-10
 
@@ -53446,7 +53812,7 @@ Martin Dobias <wonder.sk at gmail.com>	2014-05-30
     Merge remote-tracking branch 'alvaro/Simplification_MTR'
 
     Conflicts:
-python/core/qgsmapsettings.sip
+            python/core/qgsmapsettings.sip
 
 Martin Dobias <wonder.sk at gmail.com>	2014-05-30
 
@@ -54374,7 +54740,7 @@ Martin Dobias <wonder.sk at gmail.com>	2014-05-21
     - controlling of map canvas: QgsLayerTreeCanvasBridge
 
     Conflicts:
-src/ui/qgisapp.ui
+            src/ui/qgisapp.ui
 
 Martin Dobias <wonder.sk at gmail.com>	2014-05-21
 
@@ -56936,7 +57302,7 @@ Marcel Dancak <marcel.dancak at gista.sk>	2014-04-07
     Merge remote-tracking branch 'origin/master'
 
     Conflicts:
-src/mapserver/qgswmsserver.cpp
+            src/mapserver/qgswmsserver.cpp
 
 Merge: 3e4b568 1399c6e
 mhugent <marco.hugentobler at sourcepole.ch>	2014-04-07
@@ -59019,13 +59385,13 @@ Martin Dobias <wonder.sk at gmail.com>	2014-02-23
     Merge remote-tracking branch 'origin/master' into threading-revival
 
     Conflicts:
-src/core/qgspallabeling.cpp
-src/core/qgsrenderchecker.h
-src/core/qgsvectorlayer.cpp
-src/core/symbology-ng/qgslinesymbollayerv2.cpp
-src/core/symbology-ng/qgssymbollayerv2.cpp
-src/providers/wms/qgswmsdataitems.cpp
-tests/src/core/testqgsblendmodes.cpp
+            src/core/qgspallabeling.cpp
+            src/core/qgsrenderchecker.h
+            src/core/qgsvectorlayer.cpp
+            src/core/symbology-ng/qgslinesymbollayerv2.cpp
+            src/core/symbology-ng/qgssymbollayerv2.cpp
+            src/providers/wms/qgswmsdataitems.cpp
+            tests/src/core/testqgsblendmodes.cpp
 
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2014-02-23
 
@@ -59751,75 +60117,75 @@ Martin Dobias <wonder.sk at gmail.com>	2014-02-18
     Some features are still disabled - will be fixed later
 
     Conflicts:
-python/core/composer/qgscomposition.sip
-python/core/diagram/qgsdiagram.sip
-python/core/diagram/qgshistogramdiagram.sip
-python/core/diagram/qgspiediagram.sip
-python/core/diagram/qgstextdiagram.sip
-python/core/qgsdiagramrendererv2.sip
-python/core/qgsfield.sip
-python/core/qgslabelsearchtree.sip
-python/core/qgsmaprenderer.sip
-python/core/qgsrenderchecker.sip
-python/core/symbology-ng/qgssymbollayerv2.sip
-python/gui/qgsmapcanvas.sip
-src/app/composer/qgscomposerlegendwidget.cpp
-src/app/qgisapp.cpp
-src/core/composer/qgsatlascomposition.cpp
-src/core/composer/qgscomposerattributetable.cpp
-src/core/composer/qgscomposermap.cpp
-src/core/composer/qgscomposition.cpp
-src/core/composer/qgscomposition.h
-src/core/diagram/qgsdiagram.h
-src/core/diagram/qgshistogramdiagram.cpp
-src/core/diagram/qgshistogramdiagram.h
-src/core/diagram/qgspiediagram.cpp
-src/core/diagram/qgspiediagram.h
-src/core/diagram/qgstextdiagram.cpp
-src/core/diagram/qgstextdiagram.h
-src/core/qgsdiagramrendererv2.cpp
-src/core/qgsdiagramrendererv2.h
-src/core/qgsmaprenderer.cpp
-src/core/qgsmaprenderer.h
-src/core/qgsnetworkaccessmanager.h
-src/core/qgspallabeling.cpp
-src/core/qgsrenderchecker.h
-src/core/qgsvectorlayer.cpp
-src/core/qgsvectorlayer.h
-src/core/qgsvectorlayerfeatureiterator.cpp
-src/core/qgsvectorlayerfeatureiterator.h
-src/core/raster/qgsrasterlayer.cpp
-src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
-src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
-src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
-src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
-src/core/symbology-ng/qgssymbollayerv2.cpp
-src/core/symbology-ng/qgssymbollayerv2.h
-src/core/symbology-ng/qgssymbolv2.cpp
-src/gui/qgshighlight.cpp
-src/gui/qgsmapcanvas.cpp
-src/gui/qgsmapcanvas.h
-src/gui/qgsmapcanvasitem.cpp
-src/gui/qgsmaptoolidentify.cpp
-src/plugins/georeferencer/qgsgeorefplugingui.cpp
-src/providers/memory/qgsmemoryfeatureiterator.cpp
-src/providers/ogr/qgsogrfeatureiterator.cpp
-src/providers/ogr/qgsogrfeatureiterator.h
-src/providers/ogr/qgsogrprovider.cpp
-src/providers/oracle/qgsoraclefeatureiterator.cpp
-src/providers/oracle/qgsoracleprovider.cpp
-src/providers/postgres/qgspostgresconn.cpp
-src/providers/postgres/qgspostgresfeatureiterator.cpp
-src/providers/postgres/qgspostgresfeatureiterator.h
-src/providers/wfs/qgswfsfeatureiterator.cpp
-src/providers/wms/qgswmsprovider.cpp
-src/providers/wms/qgswmsprovider.h
-src/ui/qgsoptionsbase.ui
-tests/src/core/CMakeLists.txt
-tests/src/core/testqgscomposereffects.cpp
-tests/src/core/testqgscomposerhtml.cpp
-tests/src/core/testqgscomposerscalebar.cpp
-tests/src/core/testqgscomposershapes.cpp
+            python/core/composer/qgscomposition.sip
+            python/core/diagram/qgsdiagram.sip
+            python/core/diagram/qgshistogramdiagram.sip
+            python/core/diagram/qgspiediagram.sip
+            python/core/diagram/qgstextdiagram.sip
+            python/core/qgsdiagramrendererv2.sip
+            python/core/qgsfield.sip
+            python/core/qgslabelsearchtree.sip
+            python/core/qgsmaprenderer.sip
+            python/core/qgsrenderchecker.sip
+            python/core/symbology-ng/qgssymbollayerv2.sip
+            python/gui/qgsmapcanvas.sip
+            src/app/composer/qgscomposerlegendwidget.cpp
+            src/app/qgisapp.cpp
+            src/core/composer/qgsatlascomposition.cpp
+            src/core/composer/qgscomposerattributetable.cpp
+            src/core/composer/qgscomposermap.cpp
+            src/core/composer/qgscomposition.cpp
+            src/core/composer/qgscomposition.h
+            src/core/diagram/qgsdiagram.h
+            src/core/diagram/qgshistogramdiagram.cpp
+            src/core/diagram/qgshistogramdiagram.h
+            src/core/diagram/qgspiediagram.cpp
+            src/core/diagram/qgspiediagram.h
+            src/core/diagram/qgstextdiagram.cpp
+            src/core/diagram/qgstextdiagram.h
+            src/core/qgsdiagramrendererv2.cpp
+            src/core/qgsdiagramrendererv2.h
+            src/core/qgsmaprenderer.cpp
+            src/core/qgsmaprenderer.h
+            src/core/qgsnetworkaccessmanager.h
+            src/core/qgspallabeling.cpp
+            src/core/qgsrenderchecker.h
+            src/core/qgsvectorlayer.cpp
+            src/core/qgsvectorlayer.h
+            src/core/qgsvectorlayerfeatureiterator.cpp
+            src/core/qgsvectorlayerfeatureiterator.h
+            src/core/raster/qgsrasterlayer.cpp
+            src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
+            src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
+            src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
+            src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
+            src/core/symbology-ng/qgssymbollayerv2.cpp
+            src/core/symbology-ng/qgssymbollayerv2.h
+            src/core/symbology-ng/qgssymbolv2.cpp
+            src/gui/qgshighlight.cpp
+            src/gui/qgsmapcanvas.cpp
+            src/gui/qgsmapcanvas.h
+            src/gui/qgsmapcanvasitem.cpp
+            src/gui/qgsmaptoolidentify.cpp
+            src/plugins/georeferencer/qgsgeorefplugingui.cpp
+            src/providers/memory/qgsmemoryfeatureiterator.cpp
+            src/providers/ogr/qgsogrfeatureiterator.cpp
+            src/providers/ogr/qgsogrfeatureiterator.h
+            src/providers/ogr/qgsogrprovider.cpp
+            src/providers/oracle/qgsoraclefeatureiterator.cpp
+            src/providers/oracle/qgsoracleprovider.cpp
+            src/providers/postgres/qgspostgresconn.cpp
+            src/providers/postgres/qgspostgresfeatureiterator.cpp
+            src/providers/postgres/qgspostgresfeatureiterator.h
+            src/providers/wfs/qgswfsfeatureiterator.cpp
+            src/providers/wms/qgswmsprovider.cpp
+            src/providers/wms/qgswmsprovider.h
+            src/ui/qgsoptionsbase.ui
+            tests/src/core/CMakeLists.txt
+            tests/src/core/testqgscomposereffects.cpp
+            tests/src/core/testqgscomposerhtml.cpp
+            tests/src/core/testqgscomposerscalebar.cpp
+            tests/src/core/testqgscomposershapes.cpp
 
 Merge: 49fbfba f4f450f
 Martin Dobias <wonder.sk at gmail.com>	2014-02-18
@@ -63219,10 +63585,10 @@ Nathan Woodrow <nathan.woodrow at mapsolutions.com.au>	2014-01-03
 
     Update to new style side bar style for dialogs.
 
-- New blue-grey with white text style dialog
-- Side panel runs top to bottom
-- Icon size is read from settings
-- Option to disable in options dialog
+            - New blue-grey with white text style dialog
+            - Side panel runs top to bottom
+            - Icon size is read from settings
+            - Option to disable in options dialog
 
 elpaso <apasotti at gmail.com>	2014-01-06
 
@@ -63925,9 +64291,9 @@ Alvaro Huarte <ahuarte47 at yahoo.es>	2013-12-17
     Merge branch 'Issue_8725-OGR' of https://github.com/ahuarte47/QGIS into Issue_8725-OGR
 
     Conflicts:
-src/app/qgsoptions.cpp
-src/app/qgsoptions.h
-src/core/symbology-ng/qgssymbollayerv2.cpp
+            src/app/qgsoptions.cpp
+            src/app/qgsoptions.h
+            src/core/symbology-ng/qgssymbollayerv2.cpp
 
 ahuarte47 <ahuarte47 at yahoo.es>	2013-12-12
 
@@ -68302,7 +68668,7 @@ Marco Bernasocchi <marco at opengis.ch>	2013-05-18
 
 Marco Bernasocchi <marco at opengis.ch>	2013-05-03
 
-#7752 for android        sip generation issue fix
+    sip generation issue fix        #7752 for android
 
 Larry Shaffer <larrys at dakotacarto.com>	2013-09-09
 
@@ -71177,7 +71543,7 @@ Victor Olaya <volayaf at gmail.com>	2013-07-15
     This reverts commit 1c2e49ed249a89480c1195f50c96614dc72700d3.
 
     Conflicts:
-python/plugins/sextante/saga/SagaAlgorithm.py
+            python/plugins/sextante/saga/SagaAlgorithm.py
 
 pcav <cavallini at faunalia.it>	2013-07-18
 
@@ -72511,7 +72877,7 @@ yoichigmf <yoichi.kayama at gmail.com>	2013-07-02
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into make_pull_req_from_ja
 
     Conflicts:
-i18n/qgis_ja.ts
+            i18n/qgis_ja.ts
 
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2013-07-02
 
@@ -74481,8 +74847,8 @@ Ivan Mincik <ivan.mincik at gmail.com>	2013-06-03
 Ivan Mincik <ivan.mincik at gmail.com>	2013-06-03
 
     First batch of Slovak translation for version 2.0.
-- translation
-- merge with 4b76600 (adding function_help, context_help)
+            - translation
+            - merge with 4b76600 (adding function_help, context_help)
 
 Merge: 21a884b d4945db
 Ivan Mincik <ivan.mincik at gmail.com>	2013-06-03
@@ -76658,7 +77024,7 @@ Emilio Loi <loi at faunalia.it>	2013-04-30
     Merge branch 'styles_to_db' of https://github.com/el1073/Quantum-GIS into styles_to_db
 
     Conflicts:
-src/core/qgsvectordataprovider.h
+            src/core/qgsvectordataprovider.h
 
 Emilio Loi <loi at faunalia.it>	2013-04-30
 
@@ -76670,9 +77036,9 @@ Emilio Loi <loi at faunalia.it>	2013-04-30
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into styles_to_db
 
     Conflicts:
-python/console/console_editor.py
-src/core/qgsvectordataprovider.h
-src/core/qgsvectorfilewriter.cpp
+            python/console/console_editor.py
+            src/core/qgsvectordataprovider.h
+            src/core/qgsvectorfilewriter.cpp
 
 Merge: c499df7 009ba1b
 Emilio Loi <loi at faunalia.it>	2013-04-30
@@ -76680,9 +77046,9 @@ Emilio Loi <loi at faunalia.it>	2013-04-30
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into styles_to_db
 
     Conflicts:
-python/console/console_editor.py
-src/core/qgsvectordataprovider.h
-src/core/qgsvectorfilewriter.cpp
+            python/console/console_editor.py
+            src/core/qgsvectordataprovider.h
+            src/core/qgsvectorfilewriter.cpp
 
 Merge: 7dc0e51 2f9cb93
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2013-04-30
@@ -76748,42 +77114,42 @@ olivierdalang <olivier.dalang at gmail.com>	2013-04-24
     SVG : clean arrows
 
     Conflicts:
-images/svg/north_arrows/NorthArrow1.svg
-images/svg/north_arrows/NorthArrow10.svg
-images/svg/north_arrows/NorthArrow11.svg
-images/svg/north_arrows/NorthArrow12.svg
-images/svg/north_arrows/NorthArrow13.svg
-images/svg/north_arrows/NorthArrow14.svg
-images/svg/north_arrows/NorthArrow15.svg
-images/svg/north_arrows/NorthArrow16.svg
-images/svg/north_arrows/NorthArrow2.svg
-images/svg/north_arrows/NorthArrow4.svg
-images/svg/north_arrows/NorthArrow5.svg
-images/svg/north_arrows/NorthArrow6.svg
-images/svg/north_arrows/NorthArrow_blackgreenblack.svg
-images/svg/north_arrows/NorthArrow_blackwhiteblack.svg
-images/svg/north_arrows/NorthArrow_blackyellowblack.svg
-images/svg/north_arrows/NorthArrow_bluegreenblue.svg
-images/svg/north_arrows/NorthArrow_source.svg
-images/svg/north_arrows/default.svg
-images/svg/north_arrows/north-arrow_0_qgis_decoration.svg
-images/svg/north_arrows/north-arrow_10_with_map_layers.svg
-images/svg/north_arrows/north-arrow_11_simple_corner.svg
-images/svg/north_arrows/north-arrow_12_triangular_arrows_with_worldmap.svg
-images/svg/north_arrows/north-arrow_13_checkerboard_earth.svg
-images/svg/north_arrows/north-arrow_14_steering_wheel.svg
-images/svg/north_arrows/north-arrow_15_checkerboard_corner_arrows.svg
-images/svg/north_arrows/north-arrow_16_corner_arrows_unfilled_with_circle.svg
-images/svg/north_arrows/north-arrow_17_corner_n_e.svg
-images/svg/north_arrows/north-arrow_1_simple_half_arrow.svg
-images/svg/north_arrows/north-arrow_2_simple_half_arrow.svg
-images/svg/north_arrows/north-arrow_3_simple_symmetric_triangular.svg
-images/svg/north_arrows/north-arrow_4_double_arrow.svg
-images/svg/north_arrows/north-arrow_5_arrow_in_circle_small_n.svg
-images/svg/north_arrows/north-arrow_6_unfilled_big_arrow_symmetric.svg
-images/svg/north_arrows/north-arrow_7_big_circle_with_small_arrow_unfilled_n.svg
-images/svg/north_arrows/north-arrow_8_checkered.svg
-images/svg/north_arrows/north-arrow_9_half_arrow_unfilled.svg
+            images/svg/north_arrows/NorthArrow1.svg
+            images/svg/north_arrows/NorthArrow10.svg
+            images/svg/north_arrows/NorthArrow11.svg
+            images/svg/north_arrows/NorthArrow12.svg
+            images/svg/north_arrows/NorthArrow13.svg
+            images/svg/north_arrows/NorthArrow14.svg
+            images/svg/north_arrows/NorthArrow15.svg
+            images/svg/north_arrows/NorthArrow16.svg
+            images/svg/north_arrows/NorthArrow2.svg
+            images/svg/north_arrows/NorthArrow4.svg
+            images/svg/north_arrows/NorthArrow5.svg
+            images/svg/north_arrows/NorthArrow6.svg
+            images/svg/north_arrows/NorthArrow_blackgreenblack.svg
+            images/svg/north_arrows/NorthArrow_blackwhiteblack.svg
+            images/svg/north_arrows/NorthArrow_blackyellowblack.svg
+            images/svg/north_arrows/NorthArrow_bluegreenblue.svg
+            images/svg/north_arrows/NorthArrow_source.svg
+            images/svg/north_arrows/default.svg
+            images/svg/north_arrows/north-arrow_0_qgis_decoration.svg
+            images/svg/north_arrows/north-arrow_10_with_map_layers.svg
+            images/svg/north_arrows/north-arrow_11_simple_corner.svg
+            images/svg/north_arrows/north-arrow_12_triangular_arrows_with_worldmap.svg
+            images/svg/north_arrows/north-arrow_13_checkerboard_earth.svg
+            images/svg/north_arrows/north-arrow_14_steering_wheel.svg
+            images/svg/north_arrows/north-arrow_15_checkerboard_corner_arrows.svg
+            images/svg/north_arrows/north-arrow_16_corner_arrows_unfilled_with_circle.svg
+            images/svg/north_arrows/north-arrow_17_corner_n_e.svg
+            images/svg/north_arrows/north-arrow_1_simple_half_arrow.svg
+            images/svg/north_arrows/north-arrow_2_simple_half_arrow.svg
+            images/svg/north_arrows/north-arrow_3_simple_symmetric_triangular.svg
+            images/svg/north_arrows/north-arrow_4_double_arrow.svg
+            images/svg/north_arrows/north-arrow_5_arrow_in_circle_small_n.svg
+            images/svg/north_arrows/north-arrow_6_unfilled_big_arrow_symmetric.svg
+            images/svg/north_arrows/north-arrow_7_big_circle_with_small_arrow_unfilled_n.svg
+            images/svg/north_arrows/north-arrow_8_checkered.svg
+            images/svg/north_arrows/north-arrow_9_half_arrow_unfilled.svg
 
 olivierdalang <olivier.dalang at gmail.com>	2013-04-23
 
@@ -76863,7 +77229,7 @@ Emilio Loi <loi at faunalia.it>	2013-04-29
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into styles_to_db
 
     Conflicts:
-python/console/console_editor.py
+            python/console/console_editor.py
 
 Merge: 2232c3d 1959182
 Chris Crook <ccrook at linz.govt.nz>	2013-04-29
@@ -77017,9 +77383,9 @@ Emilio Loi <loi at faunalia.it>	2013-04-26
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into styles_to_db
 
     Conflicts:
-python/console/console_editor.py
-src/core/qgsvectordataprovider.h
-src/core/qgsvectorfilewriter.cpp
+            python/console/console_editor.py
+            src/core/qgsvectordataprovider.h
+            src/core/qgsvectorfilewriter.cpp
 
 Merge: 02fa729 f7cce9c
 Borys Jurgiel <info at borysjurgiel.pl>	2013-04-26
@@ -77152,7 +77518,7 @@ Nathan Woodrow <nathan.woodrow at mapsolutions.com.au>	2013-04-26
 
     Add workaround for loading forms with custom widgets from PyQt4
 
-More information: qt-project.org/forums/viewthread/27098/
+            More information: qt-project.org/forums/viewthread/27098/
 
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2013-04-14
 
@@ -77340,7 +77706,7 @@ Emilio Loi <loi at faunalia.it>	2013-04-22
     Merge branch 'master' of git://github.com/qgis/Quantum-GIS into styles_to_db
 
     Conflicts:
-src/ui/qgsvectorlayerpropertiesbase.ui
+            src/ui/qgsvectorlayerpropertiesbase.ui
 
 Minoru Akagi <akaginch at gmail.com>	2013-04-22
 
@@ -79342,9 +79708,9 @@ Nathan Woodrow <woodrow.nathan at gmail.com>	2013-04-01
 
     Data defined symbol UI clean up
 
-- Reduce margins
-- Remove cell selection
-- Adjust first column width
+            - Reduce margins
+            - Remove cell selection
+            - Adjust first column width
 
 Merge: 6c3f418 7b6e322
 Tim Sutton <tim at linfiniti.com>	2013-04-01
@@ -79905,7 +80271,7 @@ vinayan <vinayan at vinayan-MS-7623.(none)>	2012-12-12
 
     Conflicts:
 
-src/plugins/CMakeLists.txt
+            src/plugins/CMakeLists.txt
 
     fixed issues in duplicate rule where zooming was not possible..renamed 'Test' to 'Rule'
 
@@ -82814,14 +83180,14 @@ Martin Dobias <wonder.sk at gmail.com>	2013-01-24
     Merge remote-tracking branch 'jef/oraclespatial-nva' into new_vector_api
 
     Conflicts:
-doc/TRANSLATORS
-i18n/qgis_de.ts
-src/app/qgisapp.cpp
-src/core/qgis.cpp
-src/core/qgsvectorlayerimport.cpp
-src/providers/oracle/CMakeLists.txt
-src/providers/oracle/qgsoracleprovider.cpp
-src/providers/oracle/qgsoracleprovider.h
+            doc/TRANSLATORS
+            i18n/qgis_de.ts
+            src/app/qgisapp.cpp
+            src/core/qgis.cpp
+            src/core/qgsvectorlayerimport.cpp
+            src/providers/oracle/CMakeLists.txt
+            src/providers/oracle/qgsoracleprovider.cpp
+            src/providers/oracle/qgsoracleprovider.h
 
 Merge: dda51c6 5f70a68
 Martin Dobias <wonder.sk at gmail.com>	2013-01-23
@@ -82829,16 +83195,16 @@ Martin Dobias <wonder.sk at gmail.com>	2013-01-23
     Merge remote-tracking branch 'origin/master' into new_vector_api
 
     Conflicts:
-python/core/qgsvectordataprovider.sip
-src/app/legend/qgslegendlayer.cpp
-src/app/qgisapp.cpp
-src/app/qgsmergeattributesdialog.cpp
-src/core/qgsvectordataprovider.cpp
-src/core/qgsvectordataprovider.h
-src/core/qgsvectorlayer.cpp
-src/gui/qgssearchquerybuilder.cpp
-src/providers/postgres/qgspostgresprovider.cpp
-src/providers/wfs/CMakeLists.txt
+            python/core/qgsvectordataprovider.sip
+            src/app/legend/qgslegendlayer.cpp
+            src/app/qgisapp.cpp
+            src/app/qgsmergeattributesdialog.cpp
+            src/core/qgsvectordataprovider.cpp
+            src/core/qgsvectordataprovider.h
+            src/core/qgsvectorlayer.cpp
+            src/gui/qgssearchquerybuilder.cpp
+            src/providers/postgres/qgspostgresprovider.cpp
+            src/providers/wfs/CMakeLists.txt
 
 Tim Sutton <tim at linfiniti.com>	2013-01-24
 
@@ -82989,9 +83355,9 @@ Victor Olaya <volayaf at gmail.com>	2013-01-21
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS
 
     Conflicts:
-python/plugins/sextante/algs/ftools/Difference.py
-python/plugins/sextante/algs/ftools/Intersection.py
-python/plugins/sextante/outputs/OutputTable.py
+            python/plugins/sextante/algs/ftools/Difference.py
+            python/plugins/sextante/algs/ftools/Intersection.py
+            python/plugins/sextante/outputs/OutputTable.py
 
 Victor Olaya <volayaf at gmail.com>	2013-01-21
 
@@ -83688,27 +84054,27 @@ Martin Dobias <wonder.sk at gmail.com>	2012-12-18
     Fixed tests.
 
     Conflicts:
-src/app/legend/qgslegendlayer.cpp
-src/app/qgsattributedialog.cpp
-src/app/qgsattributedialog.h
-src/app/qgslabelpropertydialog.cpp
-src/app/qgsmaptoollabel.cpp
-src/app/qgsvectorlayerproperties.cpp
-src/core/CMakeLists.txt
-src/core/composer/qgsatlascomposition.cpp
-src/core/qgsexpression.cpp
-src/core/qgspallabeling.cpp
-src/core/qgsvectorlayer.cpp
-src/core/qgsvectorlayer.h
-src/core/qgsvectorlayerimport.cpp
-src/mapserver/qgsprojectparser.cpp
-src/mapserver/qgswfsserver.cpp
-src/mapserver/qgswfsserver.h
-src/mapserver/qgswmsserver.cpp
-src/providers/postgres/qgspostgresprovider.cpp
-src/providers/spatialite/qgsspatialiteprovider.h
-tests/src/core/testqgsexpression.cpp
-tests/src/python/test_qgsmemoryprovider.py
+            src/app/legend/qgslegendlayer.cpp
+            src/app/qgsattributedialog.cpp
+            src/app/qgsattributedialog.h
+            src/app/qgslabelpropertydialog.cpp
+            src/app/qgsmaptoollabel.cpp
+            src/app/qgsvectorlayerproperties.cpp
+            src/core/CMakeLists.txt
+            src/core/composer/qgsatlascomposition.cpp
+            src/core/qgsexpression.cpp
+            src/core/qgspallabeling.cpp
+            src/core/qgsvectorlayer.cpp
+            src/core/qgsvectorlayer.h
+            src/core/qgsvectorlayerimport.cpp
+            src/mapserver/qgsprojectparser.cpp
+            src/mapserver/qgswfsserver.cpp
+            src/mapserver/qgswfsserver.h
+            src/mapserver/qgswmsserver.cpp
+            src/providers/postgres/qgspostgresprovider.cpp
+            src/providers/spatialite/qgsspatialiteprovider.h
+            tests/src/core/testqgsexpression.cpp
+            tests/src/python/test_qgsmemoryprovider.py
 
 Martin Dobias <wonder.sk at gmail.com>	2012-12-17
 
@@ -84504,7 +84870,7 @@ Victor Olaya <volayaf at gmail.com>	2012-12-15
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS
 
     Conflicts:
-python/plugins/sextante/grass/ext/CMakeLists.txt
+            python/plugins/sextante/grass/ext/CMakeLists.txt
 
 Victor Olaya <volayaf at gmail.com>	2012-12-15
 
@@ -84683,7 +85049,7 @@ Victor Olaya <volayaf at gmail.com>	2012-12-12
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS
 
     Conflicts:
-python/plugins/sextante/grass/GrassAlgorithm.py
+            python/plugins/sextante/grass/GrassAlgorithm.py
 
 Victor Olaya <volayaf at gmail.com>	2012-12-12
 
@@ -84714,7 +85080,7 @@ Hugo Mercier <hugo.mercier at oslandia.com>	2012-12-11
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS
 
     Conflicts:
-src/core/composer/qgsatlascomposition.cpp
+            src/core/composer/qgsatlascomposition.cpp
 
 Hugo Mercier <hugo.mercier at oslandia.com>	2012-12-11
 
@@ -88545,8 +88911,8 @@ Hugo Mercier <hugo.mercier at oslandia.com>	2012-10-04
     Merge branch 'atlas' into atlas2
 
     Conflicts:
-python/core/composer/qgscomposition.sip
-tests/src/python/CMakeLists.txt
+            python/core/composer/qgscomposition.sip
+            tests/src/python/CMakeLists.txt
 
 Hugo Mercier <hugo.mercier at oslandia.com>	2012-10-04
 
@@ -88956,7 +89322,7 @@ Hugo Mercier <hugo.mercier at oslandia.com>	2012-09-28
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into atlas
 
     Conflicts:
-src/core/composer/qgscomposition.cpp
+            src/core/composer/qgscomposition.cpp
 
 Hugo Mercier <hugo.mercier at oslandia.com>	2012-09-28
 
@@ -89140,7 +89506,7 @@ Hugo Mercier <hugo.mercier at oslandia.com>	2012-09-26
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into atlas
 
     Conflicts:
-python/core/qgsexpression.sip
+            python/core/qgsexpression.sip
 
     Add a missing function to QgsExpression
 
@@ -91133,7 +91499,7 @@ Matthias Kuhn <matthias.kuhn at gmx.ch>	2012-08-29
     Merge branch 'master' of https://github.com/matthias-kuhn/Quantum-GIS
 
     Conflicts:
-src/app/qgsdiagramproperties.cpp
+            src/app/qgsdiagramproperties.cpp
 
 Merge: c8a3321 b97f2fc
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2012-08-29
@@ -91884,7 +92250,7 @@ Matthias Kuhn <matthias.kuhn at gmx.ch>	2012-08-16
     Merge diagram icons
 
     Conflicts:
-src/app/qgsdiagramproperties.cpp
+            src/app/qgsdiagramproperties.cpp
 
 Matthias Kuhn <matthias.kuhn at gmx.ch>	2012-08-16
 
@@ -91996,7 +92362,7 @@ Martin Dobias <wonder.sk at gmail.com>	2012-08-14
     Merge remote-tracking branch 'arun/gsoc'
 
     Conflicts:
-src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
+            src/gui/symbology-ng/qgssymbolv2selectordialog.cpp
 
 Radim Blazek <radim.blazek at gmail.com>	2012-08-14
 
@@ -93393,7 +93759,7 @@ Hugo Mercier <hugo.mercier at oslandia.com>	2012-07-25
     Merge branch 'master' of git://github.com/qgis/Quantum-GIS
 
     Conflicts:
-src/core/symbology-ng/qgsrulebasedrendererv2.cpp
+            src/core/symbology-ng/qgsrulebasedrendererv2.cpp
 
 Merge: d039c3f 1bcd947
 Marco Hugentobler <marco.hugentobler at sourcepole.ch>	2012-07-25
@@ -101647,7 +102013,7 @@ Martin Dobias <wonder.sk at gmail.com>	2012-01-24
     [FEATURE] Merge branch 'rules' - new rule-based rendering
 
     Conflicts:
-src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp
+            src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp
 
 Martin Dobias <wonder.sk at gmail.com>	2012-01-24
 
@@ -102460,7 +102826,7 @@ Marco Bernasocchi <marco at bernawebdesign.ch>	2012-01-05
     Merge branch 'master' of https://github.com/qgis/Quantum-GIS into android
 
     Conflicts:
-src/ui/qgsnewspatialitelayerdialogbase.ui
+            src/ui/qgsnewspatialitelayerdialogbase.ui
 
 Marco Hugentobler <marco.hugentobler at sourcepole.ch>	2012-01-05
 
@@ -104681,8 +105047,8 @@ Nathan Woodrow <madmanwoo at gmail.com>	2011-10-18
     Merge remote-tracking branch 'upstream/master' into expression-labels
 
     Conflicts:
-src/core/qgsexpression.cpp
-src/gui/CMakeLists.txt
+            src/core/qgsexpression.cpp
+            src/gui/CMakeLists.txt
 
 Nathan Woodrow <madmanwoo at gmail.com>	2011-10-18
 
@@ -104913,7 +105279,7 @@ Giuseppe Sucameli <brush.tyler at gmail.com>	2011-10-07
     Merge remote-tracking branch 'brushtyler/master'
 
     Conflicts:
-src/providers/postgres/qgspostgresprovider.cpp
+            src/providers/postgres/qgspostgresprovider.cpp
 
 Giuseppe Sucameli <brush.tyler at gmail.com>	2011-10-07
 
@@ -104950,7 +105316,7 @@ Sergey Yakushevs <yakushevs at list.ru>	2011-10-04
     Merge remote branch 'pb/master'
 
     Conflicts:
-src/plugins/roadgraph/linevectorlayerdirector.cpp
+            src/plugins/roadgraph/linevectorlayerdirector.cpp
 
 Martin Dobias <wonder.sk at gmail.com>	2011-10-03
 
@@ -105091,13 +105457,13 @@ Sergey Yakushevs <yakushevs at list.ru>	2011-09-27
     Merge remote branch 'pb/master' into network-analysis
 
     Conflicts:
-python/CMakeLists.txt
-src/analysis/network/qgsgraphbuilder.h
-src/plugins/roadgraph/graphbuilder.h
-src/plugins/roadgraph/linevectorlayerdirector.cpp
-src/plugins/roadgraph/simplegraphbuilder.cpp
-src/plugins/roadgraph/utils.cpp
-src/plugins/roadgraph/utils.h
+            python/CMakeLists.txt
+            src/analysis/network/qgsgraphbuilder.h
+            src/plugins/roadgraph/graphbuilder.h
+            src/plugins/roadgraph/linevectorlayerdirector.cpp
+            src/plugins/roadgraph/simplegraphbuilder.cpp
+            src/plugins/roadgraph/utils.cpp
+            src/plugins/roadgraph/utils.h
 
 Nathan Woodrow <madmanwoo at gmail.com>	2011-09-26
 
@@ -105435,7 +105801,7 @@ Martin Dobias <wonder.sk at gmail.com>	2011-08-30
     Merge remote-tracking branch 'remotes/giuseppe/dataitems' into dataitems
 
     Conflicts:
-src/app/CMakeLists.txt
+            src/app/CMakeLists.txt
 
 Martin Dobias <wonder.sk at gmail.com>	2011-08-30
 
@@ -105902,9 +106268,9 @@ NathanW <woodrow.nathan at gmail.com>	2011-08-08
     Merge remote branch 'upstream/master' into expression-labels
 
     Conflicts:
-src/core/qgspallabeling.cpp
-src/gui/CMakeLists.txt
-src/ui/qgslabelingguibase.ui
+            src/core/qgspallabeling.cpp
+            src/gui/CMakeLists.txt
+            src/ui/qgslabelingguibase.ui
 
 marco <marco at marco-laptop.(none)>	2011-08-08
 
@@ -107109,7 +107475,7 @@ NathanW <woodrow.nathan at gmail.com>	2011-07-03
     Fixed merge conflict in pallabeling
 
     Conflicts:
-src/core/qgspallabeling.cpp
+            src/core/qgspallabeling.cpp
 
 Marco Hugentobler <marco.hugentobler at sourcepole.ch>	2011-07-02
 
@@ -107969,13 +108335,13 @@ Sergey Yakushevs <yakushevs at list.ru>	2011-05-31
     Merge remote branch 'pb/master' into network-analysis
 
     Conflicts:
-src/analysis/network/qgsdistanceedgeproperter.cpp
-src/analysis/network/qgsgraphbuilder.h
-src/plugins/roadgraph/graphbuilder.h
-src/plugins/roadgraph/linevectorlayerdirector.cpp
-src/plugins/roadgraph/roadgraphplugin.cpp
-src/plugins/roadgraph/shortestpathwidget.cpp
-src/plugins/roadgraph/simplegraphbuilder.cpp
+            src/analysis/network/qgsdistanceedgeproperter.cpp
+            src/analysis/network/qgsgraphbuilder.h
+            src/plugins/roadgraph/graphbuilder.h
+            src/plugins/roadgraph/linevectorlayerdirector.cpp
+            src/plugins/roadgraph/roadgraphplugin.cpp
+            src/plugins/roadgraph/shortestpathwidget.cpp
+            src/plugins/roadgraph/simplegraphbuilder.cpp
 
 Merge: 8bbdde6 c8dd587
 Sergey Yakushevs <yakushevs at list.ru>	2011-05-31
@@ -107983,7 +108349,7 @@ Sergey Yakushevs <yakushevs at list.ru>	2011-05-31
     Merge remote branch 'pb/master'
 
     Conflicts:
-src/plugins/roadgraph/linevectorlayerdirector.cpp
+            src/plugins/roadgraph/linevectorlayerdirector.cpp
 
 Marco Hugentobler <marco.hugentobler at sourcepole.ch>	2011-05-31
 
@@ -108434,12 +108800,12 @@ Martin Dobias <wonder.sk at gmail.com>	2011-05-13
     Merge branch 'master' into dbl
 
     Conflicts:
-images/splash/splash.png
-src/CMakeLists.txt
-src/app/main.cpp
-src/app/qgsvectorlayerproperties.cpp
-src/core/qgsvectorlayer.cpp
-src/providers/wms/qgswmssourceselect.cpp
+            images/splash/splash.png
+            src/CMakeLists.txt
+            src/app/main.cpp
+            src/app/qgsvectorlayerproperties.cpp
+            src/core/qgsvectorlayer.cpp
+            src/providers/wms/qgswmssourceselect.cpp
 
 Martin Dobias <wonder.sk at gmail.com>	2011-05-13
 
@@ -114220,7 +114586,7 @@ gsherman <gsherman at c8812cc2-4d05-0410-92ff-de0c093fc19c>	2010-12-11
     Merge branch 'master' of github.com:qgis/qgis
 
     Conflicts:
-README
+            README
 
     git-svn-id: http://svn.osgeo.org/qgis/trunk@14888 c8812cc2-4d05-0410-92ff-de0c093fc19c
 
@@ -183255,7 +183621,7 @@ gsherman <gsherman at c8812cc2-4d05-0410-92ff-de0c093fc19c>	2004-03-01
 
     1. Added bounds checking for selecting features.
     2. Created wkbPoint structure for building WKB (well known binary) representation
- of the point.
+             of the point.
     3. Implementation is not complete.
 
 
diff --git a/cmake/SIPMacros.cmake b/cmake/SIPMacros.cmake
index a4b471b..e684bd3 100644
--- a/cmake/SIPMacros.cmake
+++ b/cmake/SIPMacros.cmake
@@ -141,9 +141,6 @@ MACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS)
 
   IF (WIN32)
     SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd")
-  ENDIF (WIN32)
-
-  IF(WIN32)
     GET_TARGET_PROPERTY(_runtime_output ${_logical_name} RUNTIME_OUTPUT_DIRECTORY)
     ADD_CUSTOM_COMMAND(TARGET ${_logical_name} POST_BUILD
       COMMAND ${CMAKE_COMMAND} -E echo "Copying extension ${_child_module_name}"
diff --git a/debian/changelog b/debian/changelog
index c5e60a7..c48bf17 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
-qgis (2.16.2) UNRELEASED; urgency=medium
+qgis (2.16.3) UNRELEASED; urgency=medium
+
+  * Release of 2.16.3
+
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 23 Sep 2016 20:24:14 +0200
+
+qgis (2.16.2) unstable; urgency=medium
 
   * Release of 2.16.2
 
- -- Jürgen E. Fischer <jef at norbit.de>  Fri, 26 Aug 2016 13:58:37 +0200
+ -- Jürgen E. Fischer <jef at norbit.de>  Fri, 23 Sep 2016 20:24:14 +0200
 
 qgis (2.16.1) unstable; urgency=medium
 
diff --git a/debian/control.in b/debian/control.in
index 789102d..b41399c 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -26,7 +26,7 @@ Build-Depends:
  libqt4-opengl-dev,
  libqca2-dev,
  libqca2-plugin-ossl,
-#jessie precise trusty xenial# libqtwebkit-dev,
+ libqtwebkit-dev,
 #stretch jessie# libqwt-dev,
 #precise trusty xenial sid# libqwt5-qt4-dev,
 #sid stretch jessie trusty xenial# libqjson-dev,
diff --git a/debian/python-qgis.install.in b/debian/python-qgis.install.in
index f01f61c..c10e07e 100644
--- a/debian/python-qgis.install.in
+++ b/debian/python-qgis.install.in
@@ -9,3 +9,4 @@ usr/lib/python*/*-packages/qgis/server/*
 usr/lib/python*/*-packages/qgis/testing/*
 #precise#usr/lib/python*/*-packages/pyspatialite/*.py
 #precise#usr/lib/python*/*-packages/pyspatialite/*.so
+#sid stretch#usr/lib/python*/*-packages/PyQt4/*.so
diff --git a/debian/rules b/debian/rules
index 9a2d786..464e350 100755
--- a/debian/rules
+++ b/debian/rules
@@ -125,8 +125,8 @@ ifneq (,$(findstring $(DISTRIBUTION),"sid stretch"))
 	CMAKE_OPTS += -DPOSTGRES_LIBRARY=/usr/lib/$(DEB_BUILD_MULTIARCH)/libpq.so
 endif
 
-ifneq (,$(findstring $(DISTRIBUTION),"sid stretch xenial"))
-	CMAKE_OPTS += -DWITH_QTWEBKIT=FALSE
+ifneq (,$(findstring $(DISTRIBUTION),"sid stretch"))
+	CMAKE_OPTS += -DWITH_INTERNAL_WEBKIT_BINDINGS=TRUE
 endif
 
 ifneq (,$(findstring $(DISTRIBUTION),"sid"))
diff --git a/doc/TRANSLATORS b/doc/TRANSLATORS
index 74c28a6..6ebec0b 100644
--- a/doc/TRANSLATORS
+++ b/doc/TRANSLATORS
@@ -1,40 +1,40 @@
 <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:18238 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/eu.png"></td><td>Basque</td><td><div title="finished:18238 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_BR.png"></td><td>Portuguese (Brazil)</td><td><div title="finished:18238 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</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/ro.png"></td><td>Romanian</td><td><div title="finished:18238 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.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/sv.png"></td><td>Swedish</td><td><div title="finished:18238 unfinished:0 untranslated:0" class="bartodo"><div class="bardone" style="width:100px">100.0</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/gl.png"></td><td>Galician</td><td><div title="finished:18237 unfinished:0 untranslated:1" class="bartodo"><div class="bardone" style="width:99px">100.0</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:18233 unfinished:0 untranslated:5" class="bartodo"><div class="bardone" style="width:99px">100.0</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/fr.png"></td><td>French</td><td><div title="finished:18212 unfinished:0 untranslated:26" class="bartodo"><div class="bardone" style="width:99px">99.9</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 Boi [...]
-<tr><td><img src="qrc:/images/flags/bs.png"></td><td>Bosnian</td><td><div title="finished:18091 unfinished:2 untranslated:145" class="bartodo"><div class="bardone" style="width:99px">99.2</div></div></td><td>Almir Karabegovic</td></tr>
-<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:17889 unfinished:2 untranslated:347" class="bartodo"><div class="bardone" style="width:98px">98.1</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
-<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:17783 unfinished:12 untranslated:443" class="bartodo"><div class="bardone" style="width:97px">97.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:17374 unfinished:1 untranslated:863" class="bartodo"><div class="bardone" style="width:95px">95.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/hu.png"></td><td>Hungarian</td><td><div title="finished:16648 unfinished:4 untranslated:1586" class="bartodo"><div class="bardone" style="width:91px">91.3</div></div></td><td>Zoltan Siki</td></tr>
-<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16621 unfinished:12 untranslated:1605" class="bartodo"><div class="bardone" style="width:91px">91.2</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/zh.png"></td><td>Chinese simplified</td><td><div title="finished:16161 unfinished:16 untranslated:2061" class="bartodo"><div class="bardone" style="width:88px">88.7</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
-<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15623 unfinished:18 untranslated:2597" class="bartodo"><div class="bardone" style="width:85px">85.7</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:15558 unfinished:39 untranslated:2641" class="bartodo"><div class="bardone" style="width:85px">85.4</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
-<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14806 unfinished:10 untranslated:3422" class="bartodo"><div class="bardone" style="width:81px">81.2</div></div></td><td>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</td></tr>
-<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14735 unfinished:36 untranslated:3467" class="bartodo"><div class="bardone" style="width:80px">80.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/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14612 unfinished:30 untranslated:3596" class="bartodo"><div class="bardone" style="width:80px">80.2</div></div></td><td>James Stott, Maléne Peterson</td></tr>
-<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14062 unfinished:283 untranslated:3893" class="bartodo"><div class="bardone" style="width:77px">77.9</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
-<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14090 unfinished:77 untranslated:4071" class="bartodo"><div class="bardone" style="width:77px">77.5</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
-<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14025 unfinished:80 untranslated:4133" class="bartodo"><div class="bardone" style="width:77px">77.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/et.png"></td><td>Estonian</td><td><div title="finished:13224 unfinished:91 untranslated:4923" class="bartodo"><div class="bardone" style="width:72px">72.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:12981 unfinished:55 untranslated:5202" class="bartodo"><div class="bardone" style="width:71px">71.3</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
-<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12472 unfinished:119 untranslated:5647" class="bartodo"><div class="bardone" style="width:68px">68.7</div></div></td><td>Harish Kumar Solanki</td></tr>
-<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12384 unfinished:86 untranslated:5768" class="bartodo"><div class="bardone" style="width:68px">68.1</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
-<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11769 unfinished:122 untranslated:6347" class="bartodo"><div class="bardone" style="width:64px">64.9</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:11339 unfinished:125 untranslated:6774" class="bartodo"><div class="bardone" style="width:62px">62.5</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
-<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10871 unfinished:87 untranslated:7280" class="bartodo"><div class="bardone" style="width:59px">59.8</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
-<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10726 unfinished:266 untranslated:7246" class="bartodo"><div class="bardone" style="width:59px">59.5</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/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10749 unfinished:48 untranslated:7441" class="bartodo"><div class="bardone" style="width:59px">59.1</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
-<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:9520 unfinished:121 untranslated:8597" class="bartodo"><div class="bardone" style="width:52px">52.5</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
-<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9347 unfinished:131 untranslated:8760" class="bartodo"><div class="bardone" style="width:51px">51.6</div></div></td><td>Khoem Sokhem</td></tr>
-<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9301 unfinished:130 untranslated:8807" class="bartodo"><div class="bardone" style="width:51px">51.4</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
-<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9178 unfinished:200 untranslated:8860" class="bartodo"><div class="bardone" style="width:50px">50.9</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
-<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7770 unfinished:806 untranslated:9662" class="bartodo"><div class="bardone" style="width:44px">44.8</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:7298 unfinished:133 untranslated:10807" class="bartodo"><div class="bardone" style="width:40px">40.4</div></div></td><td>Zoran Jankovic</td></tr></table>
+<tr><td><img src="qrc:/images/flags/de.png"></td><td>German</td><td><div title="finished:18129 unfinished:135 untranslated:14" class="bartodo"><div class="bardone" style="width:99px">99.6</div></div></td><td>Jürgen E. Fischer, Stephan Holl, Otto Dassau, Werner Macho</td></tr>
+<tr><td><img src="qrc:/images/flags/eu.png"></td><td>Basque</td><td><div title="finished:18128 unfinished:134 untranslated:16" class="bartodo"><div class="bardone" style="width:99px">99.5</div></div></td><td>Asier Sarasua Garmendia, Irantzu Alvarez</td></tr>
+<tr><td><img src="qrc:/images/flags/sv.png"></td><td>Swedish</td><td><div title="finished:18128 unfinished:134 untranslated:16" class="bartodo"><div class="bardone" style="width:99px">99.5</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:18128 unfinished:132 untranslated:18" class="bartodo"><div class="bardone" style="width:99px">99.5</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/ro.png"></td><td>Romanian</td><td><div title="finished:18128 unfinished:132 untranslated:18" class="bartodo"><div class="bardone" style="width:99px">99.5</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/gl.png"></td><td>Galician</td><td><div title="finished:18127 unfinished:133 untranslated:18" class="bartodo"><div class="bardone" style="width:99px">99.5</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:18123 unfinished:134 untranslated:21" class="bartodo"><div class="bardone" style="width:99px">99.5</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/fr.png"></td><td>French</td><td><div title="finished:18102 unfinished:133 untranslated:43" class="bartodo"><div class="bardone" style="width:99px">99.4</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/bs.png"></td><td>Bosnian</td><td><div title="finished:17981 unfinished:134 untranslated:163" class="bartodo"><div class="bardone" style="width:98px">98.7</div></div></td><td>Almir Karabegovic</td></tr>
+<tr><td><img src="qrc:/images/flags/da.png"></td><td>Danish</td><td><div title="finished:17780 unfinished:89 untranslated:409" class="bartodo"><div class="bardone" style="width:97px">97.5</div></div></td><td>Jacob Overgaard Madsen, Bo Victor Thomsen</td></tr>
+<tr><td><img src="qrc:/images/flags/es.png"></td><td>Spanish</td><td><div title="finished:17674 unfinished:57 untranslated:547" class="bartodo"><div class="bardone" style="width:96px">96.9</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:17264 unfinished:135 untranslated:879" class="bartodo"><div class="bardone" style="width:94px">94.8</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/hu.png"></td><td>Hungarian</td><td><div title="finished:16553 unfinished:71 untranslated:1654" class="bartodo"><div class="bardone" style="width:90px">90.8</div></div></td><td>Zoltan Siki</td></tr>
+<tr><td><img src="qrc:/images/flags/vi.png"></td><td>Vietnamese</td><td><div title="finished:16519 unfinished:22 untranslated:1737" class="bartodo"><div class="bardone" style="width:90px">90.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/zh.png"></td><td>Chinese simplified</td><td><div title="finished:16116 unfinished:27 untranslated:2135" class="bartodo"><div class="bardone" style="width:88px">88.2</div></div></td><td>Calvin Ngei, Lisashen</td></tr>
+<tr><td><img src="qrc:/images/flags/pt_PT.png"></td><td>Portuguese (Portugal)</td><td><div title="finished:15530 unfinished:27 untranslated:2721" class="bartodo"><div class="bardone" style="width:85px">85.0</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:15459 unfinished:93 untranslated:2726" class="bartodo"><div class="bardone" style="width:84px">84.8</div></div></td><td>Alexander Bruy, Artem Popov</td></tr>
+<tr><td><img src="qrc:/images/flags/pl.png"></td><td>Polish</td><td><div title="finished:14738 unfinished:26 untranslated:3514" class="bartodo"><div class="bardone" style="width:80px">80.7</div></div></td><td>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</td></tr>
+<tr><td><img src="qrc:/images/flags/cs.png"></td><td>Czech</td><td><div title="finished:14659 unfinished:57 untranslated:3562" class="bartodo"><div class="bardone" style="width:80px">80.4</div></div></td><td>Jan Helebrant, Martin Landa, Peter Antolik, Martin Dzurov, Stanislav Horáček</td></tr>
+<tr><td><img src="qrc:/images/flags/nb.png"></td><td>Norwegian Bokmal</td><td><div title="finished:14570 unfinished:61 untranslated:3647" class="bartodo"><div class="bardone" style="width:79px">79.9</div></div></td><td>James Stott, Maléne Peterson</td></tr>
+<tr><td><img src="qrc:/images/flags/fi.png"></td><td>Finnish</td><td><div title="finished:14046 unfinished:290 untranslated:3942" class="bartodo"><div class="bardone" style="width:77px">77.6</div></div></td><td>Kari Mikkonen, Matti Mäntynen</td></tr>
+<tr><td><img src="qrc:/images/flags/zh.png"></td><td>Chinese traditional</td><td><div title="finished:14070 unfinished:86 untranslated:4122" class="bartodo"><div class="bardone" style="width:77px">77.2</div></div></td><td>Calvin Ngei, Zhang Jun, Richard Xie</td></tr>
+<tr><td><img src="qrc:/images/flags/it.png"></td><td>Italian</td><td><div title="finished:14011 unfinished:87 untranslated:4180" class="bartodo"><div class="bardone" style="width:76px">76.9</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/et.png"></td><td>Estonian</td><td><div title="finished:13165 unfinished:101 untranslated:5012" class="bartodo"><div class="bardone" style="width:72px">72.3</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:12896 unfinished:77 untranslated:5305" class="bartodo"><div class="bardone" style="width:70px">70.8</div></div></td><td>Albert F, Pau Reguant Ridó, Xavier Roijals</td></tr>
+<tr><td><img src="qrc:/images/flags/hi.png"></td><td>Hindi</td><td><div title="finished:12461 unfinished:129 untranslated:5688" class="bartodo"><div class="bardone" style="width:68px">68.5</div></div></td><td>Harish Kumar Solanki</td></tr>
+<tr><td><img src="qrc:/images/flags/bg.png"></td><td>Bulgarian</td><td><div title="finished:12373 unfinished:94 untranslated:5811" class="bartodo"><div class="bardone" style="width:67px">68.0</div></div></td><td>Захари Савов, Jordan Tzvetkov</td></tr>
+<tr><td><img src="qrc:/images/flags/ko.png"></td><td>Korean</td><td><div title="finished:11755 unfinished:130 untranslated:6393" class="bartodo"><div class="bardone" style="width:64px">64.7</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:11327 unfinished:131 untranslated:6820" class="bartodo"><div class="bardone" style="width:62px">62.3</div></div></td><td>Paulius Litvinas, Tomas Straupis, Kestas M</td></tr>
+<tr><td><img src="qrc:/images/flags/tr.png"></td><td>Turkish</td><td><div title="finished:10861 unfinished:95 untranslated:7322" class="bartodo"><div class="bardone" style="width:59px">59.7</div></div></td><td>Osman Yalçın YILMAZ, Omur Saygin</td></tr>
+<tr><td><img src="qrc:/images/flags/id.png"></td><td>Indonesian</td><td><div title="finished:10717 unfinished:271 untranslated:7290" class="bartodo"><div class="bardone" style="width:59px">59.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/el.png"></td><td>Modern Greek (1453-)</td><td><div title="finished:10734 unfinished:59 untranslated:7485" class="bartodo"><div class="bardone" style="width:58px">58.9</div></div></td><td>Theodoros Vakkas, Ioannis Tsimpiris, Evripidis Argyropoulos, Mike Pegnigiannis, Nikos Ves</td></tr>
+<tr><td><img src="qrc:/images/flags/sl.png"></td><td>Slovenian</td><td><div title="finished:9512 unfinished:130 untranslated:8636" class="bartodo"><div class="bardone" style="width:52px">52.4</div></div></td><td>Jože Detečnik, Dejan Gregor, Jaka Kranjc</td></tr>
+<tr><td><img src="qrc:/images/flags/km.png"></td><td>Central Khmer</td><td><div title="finished:9338 unfinished:138 untranslated:8802" class="bartodo"><div class="bardone" style="width:51px">51.5</div></div></td><td>Khoem Sokhem</td></tr>
+<tr><td><img src="qrc:/images/flags/ar.png"></td><td>Arabic</td><td><div title="finished:9294 unfinished:138 untranslated:8846" class="bartodo"><div class="bardone" style="width:51px">51.2</div></div></td><td>Ichaouia Amine, Hosham Munier</td></tr>
+<tr><td><img src="qrc:/images/flags/lv.png"></td><td>Latvian</td><td><div title="finished:9168 unfinished:206 untranslated:8904" class="bartodo"><div class="bardone" style="width:50px">50.7</div></div></td><td>Maris Nartiss, Pēteris Brūns</td></tr>
+<tr><td><img src="qrc:/images/flags/sk.png"></td><td>Slovak</td><td><div title="finished:7764 unfinished:813 untranslated:9701" class="bartodo"><div class="bardone" style="width:44px">44.7</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:7292 unfinished:139 untranslated:10847" class="bartodo"><div class="bardone" style="width:40px">40.3</div></div></td><td>Zoran Jankovic</td></tr></table>
diff --git a/i18n/qgis_de.ts b/i18n/qgis_de.ts
index 8ec2a1c..44e9bd6 100644
--- a/i18n/qgis_de.ts
+++ b/i18n/qgis_de.ts
@@ -215,172 +215,172 @@
 <context>
     <name>AlgorithmClassification</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="660"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="664"/>
         <source>Polygon intersection</source>
         <translation>Polygonverschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="685"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="674"/>
         <source>Vectorize raster layer</source>
         <translation>Rasterlayer vektorisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="684"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="681"/>
         <source>Interpolate (Inverse distance weighting)</source>
         <translation>Interpolation (Inverse Abstandsgewichtung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="674"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="663"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="670"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="692"/>
         <source>Rasterize vector layer</source>
         <translation>Vektorlayer rastern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="692"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="673"/>
         <source>Polygon identity</source>
         <translation>Polygonidentität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="683"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="691"/>
         <source>Polygon dissolve (all polygons)</source>
         <translation>Polygon auflösen (alle Polygone)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="664"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="689"/>
         <source>Polygon union</source>
         <translation>Polygonvereinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="662"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="667"/>
         <source>Interpolate (Natural neighbor)</source>
         <translation>Interpolation (Natürlicher Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="666"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="662"/>
         <source>Merge raster layers</source>
         <translation>Rasterlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="667"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="677"/>
         <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="665"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="682"/>
         <source>Interpolate (Nearest Neighbor)</source>
         <translation>Interpolation (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="675"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="676"/>
         <source>Interpolate (Cubic spline)</source>
         <translation>Interpolieren (Kubisches Spline)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="688"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="675"/>
         <source>Interpolate (Data metrics)</source>
         <translation>Interpolation (Datenmetrik)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="668"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="685"/>
         <source>Reproject raster layer</source>
         <translation>Rasterlayer reprojizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="672"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="690"/>
         <source>Export raster layer</source>
         <translation>Rasterlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="681"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="669"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="673"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="679"/>
         <source>Export vector layer</source>
         <translation>Vektorlayer exportieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="680"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="672"/>
         <source>Polygon dissolve (by attribute)</source>
         <translation>Polygon auflösen (nach Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="687"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="678"/>
         <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="682"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="671"/>
         <source>Interpolate (Modified quadratic shepard)</source>
         <translation>Interpolieren (Modifizierte quadratische Shepard-Methode)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="689"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="665"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="690"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="661"/>
         <source>Reclassify (simple)</source>
         <translation>Neuklassifizieren (einfach)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="677"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="680"/>
         <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="661"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="670"/>
         <source>Raster layer information</source>
         <translation>Rasterlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="678"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="668"/>
         <source>Contour lines</source>
         <translation>Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="671"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="686"/>
         <source>Create graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="669"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="687"/>
         <source>Fire spreading simulation</source>
         <translation>Feuerausbreitungssimulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="693"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="683"/>
         <source>Polygon difference</source>
         <translation>Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="663"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="693"/>
         <source>Create graticule from extent</source>
         <translation>Gradnetz aus Grenzen erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="686"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="666"/>
         <source>Polygon symmetrical difference</source>
         <translation>Symmetrische Polygondifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="679"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="688"/>
         <source>Vector layer information</source>
         <translation>Vektorlayerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="691"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="660"/>
         <source>Polygon update</source>
         <translation>Polygonaktualisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="676"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="684"/>
         <source>Interpolate (Average)</source>
         <translation>Interpolation (Durchschnitt)</translation>
     </message>
@@ -4550,7 +4550,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Dissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="684"/>
         <source>Geometry exception while dissolving</source>
         <translation>Geometrieausnahme während Zerlegung</translation>
     </message>
@@ -4571,11 +4571,21 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     </message>
     <message>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="681"/>
+        <source>Skipped feature %i, which has a null geometry</source>
+        <translation>Objekt %i mit Null-Geometrie übersprungen</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="682"/>
         <source>ValidateGeometry()error:One or more inputfeatures have invalid geometry: </source>
         <translation>GEOS-Validierungsfehler: Ein oder mehrere Eingabeobjekte haben ungültige Geometrien:</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/python-i18n.cpp" line="683"/>
+        <source>Skipped feature %i. Dissolve resulted in null geometry</source>
+        <translation>Objekt %i übersprungen. Auflösung lieferte Null-Geometrie</translation>
+    </message>
+    <message>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="685"/>
         <source>ValidateGeometry() error: One or more inputfeatures have invalid geometry: </source>
         <translation>Geometriefehler: Ein oder mehrere Eingabeobjekt haben ungültige Geometrie:</translation>
     </message>
@@ -4607,37 +4617,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="687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="689"/>
         <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="688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="690"/>
         <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="689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="691"/>
         <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="690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="692"/>
         <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="691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="693"/>
         <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="692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="694"/>
         <source>Parameter to use</source>
         <translation>Zu benutzender Parameter</translation>
     </message>
@@ -4646,13 +4656,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="696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="698"/>
         <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="697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="699"/>
         <source>Enter setting name to filter list</source>
         <translation>Einstellungsname eingeben, um Liste zu filtern</translation>
     </message>
@@ -4795,7 +4805,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="701"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="703"/>
         <source>Fixed table</source>
         <translation>Feste Tabelle</translation>
     </message>
@@ -4804,7 +4814,7 @@ 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="705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="707"/>
         <source>Get scripts and models</source>
         <translation>Skripte und Modelle laden</translation>
     </message>
@@ -4813,19 +4823,19 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgHelpEdition</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="709"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="711"/>
         <source>Help editor</source>
         <translation>Hilfeeditor</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="43"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="712"/>
         <source>Select element to edit</source>
         <translation>Element zur Bearbeitung wählen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHelpEdition.ui" line="78"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="711"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="713"/>
         <source>Element description</source>
         <translation>Elementbeschreibung</translation>
     </message>
@@ -4834,7 +4844,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgHistory</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgHistory.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="717"/>
         <source>History</source>
         <translation>Historie</translation>
     </message>
@@ -4888,13 +4898,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgModeler</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="719"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="721"/>
         <source>Processing modeler</source>
         <translation>Verarbeitungsmodellierung</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="34"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="722"/>
         <source>Open model</source>
         <translation>Modell öffnen</translation>
     </message>
@@ -4906,97 +4916,97 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="105"/>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="125"/>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="145"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="723"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="50"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="725"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="66"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="727"/>
         <source>Save as...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="89"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="729"/>
         <source>Export as image</source>
         <translation>Speichern als Rasterbild</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="102"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="730"/>
         <source>Export as Python script</source>
         <translation>Exportiere als Python-Skript</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="122"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="731"/>
         <source>Edit model help</source>
         <translation>Modellhilfe bearbeiten</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="142"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="732"/>
         <source>Run model</source>
         <translation>Modell ausführen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="190"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
         <source>Inputs</source>
         <translation>Eingaben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="218"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
         <source>Algorithms</source>
         <translation>Algorithmen</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="230"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
         <source>Enter algorithm name to filter list</source>
         <translation>Algorithmenname eingeben, um Liste zu filtern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="260"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="737"/>
         <source>Enter model name here</source>
         <translation>Modellname hier eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="267"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="738"/>
         <source>Enter group name here</source>
         <translation>Gruppenname eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="40"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="724"/>
         <source>Ctrl+O</source>
         <translation>Strg+O</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="56"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="726"/>
         <source>Ctrl+S</source>
         <translation>Strg+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="72"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="728"/>
         <source>Ctrl+Shift+S</source>
         <translation>Strg+Umschalt+S</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgModeler.ui" line="148"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="733"/>
         <source>F5</source>
         <translation>F5</translation>
     </message>
@@ -5005,7 +5015,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgMultipleSelection</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgMultipleSelection.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="742"/>
         <source>Multiple selection</source>
         <translation>Mehrfachauswahl</translation>
     </message>
@@ -5014,19 +5024,19 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgNumberInput</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
         <source>Enter number or expression</source>
         <translation>Zahl oder Ausdruck eingeben</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="26"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="747"/>
         <source><html><head/><body><p>Enter expression in the text field. Double click on elements in the tree to add their values to the expression.</p></body></html></source>
         <translation><html><head/><body><p>Einen Ausdruck in das Textfeld eingeben. Auf Baumelemente doppelklicken, um deren Wert dem Ausdruck hinzuzufügen.</p></body></html></translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgNumberInput.ui" line="36"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="748"/>
         <source><html><head/><body><p><span style=" font-weight:600;">Warning</span>: if expression result is float value, but integer required, result will be rounded to integer.</p></body></html></source>
         <translation><html><head/><body><p><span style=" font-weight:600;">Warnung</span>: wenn der Ausdruck eine Fließkommazahl ist, aber eine ganze Zahl gefordert ist, wird das Ergebnis auf eine ganze Zahl gerundet.</p></body></html></translation>
     </message>
@@ -5035,19 +5045,19 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgRenderingStyles</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
         <source>Dialog</source>
         <translation>Dialog</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="30"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="753"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/DlgRenderingStyles.ui" line="35"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="754"/>
         <source>Style</source>
         <translation>Stil</translation>
     </message>
@@ -5056,7 +5066,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgResults</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgResults.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="758"/>
         <source>Results</source>
         <translation>Ergebnisse</translation>
     </message>
@@ -5065,13 +5075,13 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
     <name>DlgScriptEditor</name>
     <message>
         <location filename="../python/plugins/processing/ui/DlgScriptEditor.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="762"/>
         <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="764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="766"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
@@ -5087,127 +5097,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="762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="764"/>
         <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="766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="768"/>
         <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="768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="770"/>
         <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="769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="771"/>
         <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="771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="773"/>
         <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="773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="775"/>
         <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="775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="777"/>
         <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="777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="779"/>
         <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="779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="781"/>
         <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="761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="763"/>
         <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="763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="765"/>
         <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="765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="767"/>
         <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="767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="769"/>
         <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="770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="772"/>
         <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="772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="774"/>
         <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="774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="776"/>
         <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="776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="778"/>
         <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="778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="780"/>
         <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="780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="782"/>
         <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="781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="783"/>
         <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="782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="784"/>
         <source>A-</source>
         <translation>A-</translation>
     </message>
@@ -5367,67 +5377,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="788"/>
         <source>Stream Drop Analysis</source>
         <translation>Gewässergefälleanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="789"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="790"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="791"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="792"/>
         <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="791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="793"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="794"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="795"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="796"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="797"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="798"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="799"/>
         <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="798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="800"/>
         <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>
@@ -5435,67 +5445,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>DropAnalysisMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
         <source>Stream Drop Analysis (multifile)</source>
         <translation>Gewässergefälleanalyse (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="803"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
         <source>D8 Contributing Area Grid</source>
         <translation>D8 beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="805"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="807"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
         <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="807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
         <source>Accumulated Stream Source Grid</source>
         <translation>Kumuliertes Fluss Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
         <source>Minimum Threshold</source>
         <translation>Minimum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
         <source>Maximum Threshold</source>
         <translation>Maximum Schwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
         <source>Number of Threshold Values</source>
         <translation>Anzahl der Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="814"/>
         <source>Spacing for Threshold Values</source>
         <translation>Abstand für Schwellenwerte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="813"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="815"/>
         <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="814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="816"/>
         <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>
@@ -5503,7 +5513,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditModelAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="820"/>
         <source>Edit model</source>
         <translation>Editiere Modell</translation>
     </message>
@@ -5511,7 +5521,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EditScriptAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="824"/>
         <source>Edit script</source>
         <translation>Editiere Skript</translation>
     </message>
@@ -5537,112 +5547,112 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Eliminate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="829"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="830"/>
         <source>Largest area</source>
         <translation>Größte Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="831"/>
         <source>Smallest Area</source>
         <translation>Kleinste Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="832"/>
         <source>Largest common boundary</source>
         <translation>Größte gemeinsame Grenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="831"/>
+        <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="832"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="834"/>
         <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="833"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="835"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="836"/>
         <source>Comparison</source>
         <translation>Vergleich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="837"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="838"/>
         <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="837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="839"/>
         <source>Cleaned</source>
         <translation>Bereinigt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="840"/>
         <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="839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="841"/>
         <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="840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="842"/>
         <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="841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="843"/>
         <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="842"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="844"/>
         <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="843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="845"/>
         <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="844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="846"/>
         <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="845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="847"/>
         <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="846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="848"/>
         <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="847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="849"/>
         <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="826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="828"/>
         <source>Eliminate sliver polygons</source>
         <translation>Splitterpolygone beseitigen</translation>
     </message>
@@ -5650,27 +5660,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>EquivalentNumField</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="851"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="853"/>
         <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="852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="854"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="853"/>
+        <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="854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="856"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="857"/>
         <source>Layer with index field</source>
         <translation>Layer mit eindeutigem Klassenindex</translation>
     </message>
@@ -5678,22 +5688,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExampleAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
         <source>Create copy of layer</source>
         <translation>Layerkopie erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
         <source>Algorithms for vector layers</source>
         <translation>Algorithmen für Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="863"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="864"/>
         <source>Output layer with selected features</source>
         <translation>Eingabelayer mit gewählten Objekten</translation>
     </message>
@@ -5701,62 +5711,62 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="868"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="869"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="870"/>
         <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="869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="871"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
         <source>Unique identifier field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
         <source>Geometry field</source>
         <translation>Geometriefeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
         <source>Autodetect</source>
         <translation>Automatisch feststellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="875"/>
         <source>No geometry</source>
         <translation>Keine Geometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="876"/>
         <source>Geometry type</source>
         <translation>Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="877"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="878"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="879"/>
         <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>
@@ -5764,22 +5774,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Explode</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="885"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="886"/>
         <source>Exploded</source>
         <translation>Explodiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="883"/>
         <source>Explode lines</source>
         <translation>Linien sprengen</translation>
     </message>
@@ -5787,42 +5797,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExportGeometryInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
         <source>Layer CRS</source>
         <translation>Layer-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
         <source>Project CRS</source>
         <translation>Projekt-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
         <source>Ellipsoidal</source>
         <translation>Ellipsenförmig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="896"/>
         <source>Calculate using</source>
         <translation>Berechnen mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="897"/>
         <source>Added geom info</source>
         <translation>Geometrieinfo ergänzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="890"/>
         <source>Export/Add geometry columns</source>
         <translation>Geometriespalte exportieren/hinzufügen</translation>
     </message>
@@ -5830,27 +5840,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentFromLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="902"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="903"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="902"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="904"/>
         <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="903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="905"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="901"/>
         <source>Polygon from layer extent</source>
         <translation>Polygon aus Layergrenzen</translation>
     </message>
@@ -5858,42 +5868,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtentSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
         <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="908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="910"/>
         <source>Use layer/canvas extent</source>
         <translation>Benutze Layer/Leinwand Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="911"/>
         <source>Select extent on canvas</source>
         <translation>Wähle Ausdehnung auf Leinwand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="912"/>
         <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="911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="913"/>
         <source>Select extent</source>
         <translation>Ausdehnung wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="912"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="914"/>
         <source>Use extent from</source>
         <translation>Ausdehnung verwenden aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="915"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="916"/>
         <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>
@@ -5901,57 +5911,57 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="921"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
         <source>begins with</source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="924"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="925"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="926"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="927"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="926"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="928"/>
         <source>Extracted (attribute)</source>
         <translation>Extrahiert (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="929"/>
         <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="928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="930"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="920"/>
         <source>Extract by attribute</source>
         <translation>Nach Attribut extrahieren</translation>
     </message>
@@ -5959,37 +5969,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
         <source>Layer to select from</source>
         <translation>Auswählen von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="939"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="940"/>
         <source>Extracted (location)</source>
         <translation>Extrahiert (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="934"/>
         <source>Extract by location</source>
         <translation>Nach Position extrahieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="935"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="938"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
@@ -5997,22 +6007,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractNodes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="946"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="947"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="944"/>
         <source>Extract nodes</source>
         <translation>Knoten extrahieren</translation>
     </message>
@@ -6020,22 +6030,22 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ExtractProjection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="953"/>
         <source>Input file</source>
         <translation>Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="954"/>
         <source>Create also .prj file</source>
         <translation>Auch .prj-Datei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="951"/>
         <source>Extract projection</source>
         <translation>Projektion extrahieren</translation>
     </message>
@@ -6044,144 +6054,144 @@ 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="956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="958"/>
         <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="957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="959"/>
         <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="958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="960"/>
         <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="959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="961"/>
         <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="960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="962"/>
         <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="961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="963"/>
         <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="962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="146"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="963"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="965"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/algs/qgis/ui/DlgFieldsCalculator.ui" line="165"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="966"/>
         <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="965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
         <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="966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="970"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="971"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="972"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="973"/>
         <source>Date</source>
         <translation>Datum</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="974"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
         <source>Create new field</source>
         <translation>Neues Feld erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="981"/>
         <source>Evaluation error: %s</source>
         <translation>Auswertungsfehler: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="982"/>
         <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="981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="983"/>
         <source>Field name is not set. Please enter a field name</source>
         <translation>Feldname ist nicht gesetzt. Bitte Feldname eingeben</translation>
     </message>
@@ -6189,17 +6199,17 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsCalculatorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
         <source>[Save to temporary file]</source>
         <translation>[In Temporärdatei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="988"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="989"/>
         <source>Unable to execute algorithm</source>
         <translation>Konnte Anweisung nicht ausführen</translation>
     </message>
@@ -6207,44 +6217,44 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsMapper</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="996"/>
         <source>Fields mapping</source>
         <translation>Feldabbildung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="997"/>
         <source>Refactored</source>
         <translation>Faktoriert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="998"/>
         <source>Parser error in expression "{}": {}</source>
         <translation>Fehler in Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="999"/>
         <source>Evaluation error in expression "{}": {}</source>
         <translation>Auswertungsfehler bei Ausdruck "{}": {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1000"/>
         <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="991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="993"/>
         <source>Refactor fields</source>
         <translation>Felder überarbeiten</translation>
     </message>
@@ -6252,67 +6262,67 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>FieldsPyculator</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1003"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1005"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1004"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
         <source>Integer</source>
         <translation>Ganze Zahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
         <source>Float</source>
         <translation>Fließkommazahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1010"/>
         <source>Result field name</source>
         <translation>Ergebnisfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1011"/>
         <source>Field type</source>
         <translation>Feldtyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1012"/>
         <source>Field length</source>
         <translation>Feldlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1011"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1013"/>
         <source>Field precision</source>
         <translation>Feldgenauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1012"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1014"/>
         <source>Global expression</source>
         <translation>Globaler Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1013"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
         <source>Formula</source>
         <translation>Formel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
         <source>FieldPyculator code execute error.Global code block can't be executed!
 %s
 %s</source>
@@ -6321,7 +6331,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1018"/>
         <source>FieldPyculator code execute error.Field code block can't be executed!
 %s
 %s</source>
@@ -6330,14 +6340,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1019"/>
         <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="1002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1004"/>
         <source>Advanced Python field calculator</source>
         <translation>Erweiterter Python-Feldrechner</translation>
     </message>
@@ -6345,22 +6355,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="1021"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
         <source>...</source>
         <translation>...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1022"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1025"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1026"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
@@ -6368,12 +6378,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="1028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1030"/>
         <source>Select folder</source>
         <translation>Wähle Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1031"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
@@ -6381,32 +6391,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="1033"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1035"/>
         <source>Filter Data outliers</source>
         <translation>Datenausreißer filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1036"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1037"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1038"/>
         <source>Standard Deviation multiplier</source>
         <translation>Standardabweichungsfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1039"/>
         <source>Window size</source>
         <translation>Fenstergröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1040"/>
         <source>Output filtered LAS file</source>
         <translation>Gefilterte LAS-Ausgabedatei</translation>
     </message>
@@ -6414,27 +6424,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="1042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
         <source>First&Last Return</source>
         <translation>Erste&letzte Rückgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1047"/>
         <source>Use LAS info</source>
         <translation>LAS-Info verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1048"/>
         <source>Output layers</source>
         <translation>Ausgabelayer</translation>
     </message>
@@ -6442,37 +6452,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="1051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1057"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1058"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1052"/>
         <source>Fixed distance buffer</source>
         <translation>Puffer festen Abstands</translation>
     </message>
@@ -6480,17 +6490,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="1060"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
         <source>Add row</source>
         <translation>Zeile hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1061"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1063"/>
         <source>Remove row(s)</source>
         <translation>Zeile(n) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1064"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
@@ -6498,7 +6508,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="1066"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1068"/>
         <source>Fixed table %dx%d</source>
         <translation>Fixe Tabelle %dx%d</translation>
     </message>
@@ -6513,7 +6523,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="1084"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1086"/>
         <source>Form</source>
         <translation>Formular</translation>
     </message>
@@ -6527,199 +6537,199 @@ Feldcodeblock gibt nicht die '%s1' Variable zurück! Bitte deklarieren
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="42"/>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="58"/>
         <location filename="../python/plugins/processing/ui/widgetNumberSelector.ui" line="42"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1086"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1088"/>
         <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="1098"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1100"/>
         <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="1097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1099"/>
         <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="1099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1101"/>
         <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="1100"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1102"/>
         <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="1101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
         <location filename="../python/plugins/processing/ui/widgetLayerSelector.ui" line="55"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1105"/>
         <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="1085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1087"/>
         <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="1102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1104"/>
         <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="1095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1097"/>
         <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="1096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1098"/>
         <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="1070"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1072"/>
         <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="1071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1073"/>
         <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="1072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1074"/>
         <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="1073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1075"/>
         <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="1074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1076"/>
         <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="1075"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1077"/>
         <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="1076"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1078"/>
         <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="1077"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1079"/>
         <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="1078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1080"/>
         <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="1079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1081"/>
         <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="1080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1082"/>
         <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="1081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1083"/>
         <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="1082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1084"/>
         <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="1083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1085"/>
         <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="1087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1089"/>
         <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="1088"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1090"/>
         <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="1089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1091"/>
         <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="1090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1092"/>
         <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="1091"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1093"/>
         <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="1092"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1094"/>
         <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="1093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1095"/>
         <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="1094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1096"/>
         <source>disjoint</source>
         <translation>getrennt</translation>
     </message>
@@ -6727,14 +6737,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="1107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1109"/>
         <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="1108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1110"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -6742,7 +6752,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>FusionUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1114"/>
         <source>Fusion execution console output</source>
         <translation>Konsolenausgabe der Fusion-Ausführung</translation>
     </message>
@@ -6750,7 +6760,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalAlgorithmDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1118"/>
         <source>Run as batch process...</source>
         <translation>Als Batchprozeß starten...</translation>
     </message>
@@ -6758,7 +6768,7 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalOgrAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1120"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1122"/>
         <source>GDAL/OGR</source>
         <translation>GDAL/OGR</translation>
     </message>
@@ -6766,17 +6776,17 @@ Bitte konfigurieren bevor Algorithmen daraus verwendet werden.</translation>
 <context>
     <name>GdalParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1126"/>
         <source>GDAL/OGR console call</source>
         <translation>GDAL/OGR Aufruf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1127"/>
         <source>[temporary file]</source>
         <translation>[temporäre Datei]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1128"/>
         <source>Invalid value for parameter '%s'</source>
         <translation>Ungültiger Wert für Parameter '%s'</translation>
     </message>
@@ -8861,18 +8871,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="1130"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1132"/>
         <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="1131"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1133"/>
         <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="1132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1134"/>
         <source>Converting outputs</source>
         <translation>Konvertierung der Ausgabe</translation>
     </message>
@@ -8880,57 +8890,57 @@ See log for more details</source>
 <context>
     <name>GeometryConvert</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
         <source>Centroids</source>
         <translation>Zentroide</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
         <source>Nodes</source>
         <translation>Knoten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1140"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
         <source>Linestrings</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1141"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
         <source>Multilinestrings</source>
         <translation>Multilinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
         <source>New geometry type</source>
         <translation>Neuer Geometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1147"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1148"/>
         <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="1136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1138"/>
         <source>Convert geometry type</source>
         <translation>Geometrietyp umwandeln</translation>
     </message>
@@ -8951,62 +8961,62 @@ See log for more details</source>
 <context>
     <name>GetScriptsAndModelsDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
         <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="1153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
         <source>Network error code: {} on URL: {}</source>
         <translation>Netzwerkfehlercode {} bei URL: {}</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1156"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1157"/>
         <source>Installed</source>
         <translation>Installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1158"/>
         <source>Updatable</source>
         <translation>Aktualisierbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1159"/>
         <source>Not installed</source>
         <translation>Nicht installiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1159"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1161"/>
         <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="1160"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1162"/>
         <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="1161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1163"/>
         <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="1158"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1160"/>
         <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="1151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1153"/>
         <source>Connection problem</source>
         <translation>Verbindungsproblem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1152"/>
         <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>
@@ -9028,29 +9038,29 @@ See log for more details</source>
 <context>
     <name>Grass7Algorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1167"/>
         <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="1166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1168"/>
         <source>GRASS GIS 7 region extent</source>
         <translation>GRASS GIS 7-Regionsgrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1169"/>
         <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="1168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1170"/>
         <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="1169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1171"/>
         <source>GRASS GIS 7 execution commands</source>
         <translation>GRASS GIS 7-Befehlsausführung</translation>
     </message>
@@ -9058,34 +9068,34 @@ See log for more details</source>
 <context>
     <name>Grass7AlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1175"/>
         <source>GRASS7 folder</source>
         <translation>GRASS7-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1176"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1177"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1178"/>
         <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="1177"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1179"/>
         <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="1178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1180"/>
         <source>GRASS GIS 7 commands</source>
         <translation>GRASS GIS 7-Befehle</translation>
     </message>
@@ -9093,17 +9103,17 @@ See log for more details</source>
 <context>
     <name>Grass7Utils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1184"/>
         <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="1183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1185"/>
         <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="1184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1186"/>
         <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>
@@ -9112,14 +9122,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="1185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1187"/>
         <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="1186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1188"/>
         <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.
@@ -9129,1771 +9139,1771 @@ 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="1190"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1192"/>
         <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="1191"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1193"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1192"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1194"/>
         <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="1193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1195"/>
         <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="1194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1196"/>
         <source>GRASS execution commands</source>
         <translation>GRASS-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
         <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="589"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
         <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="590"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
         <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="637"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
         <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="462"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
         <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="376"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
         <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="444"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
         <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="338"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
         <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="598"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
         <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="562"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="135"/>
         <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="466"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
         <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="534"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
         <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="494"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
         <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="563"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
         <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="422"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
         <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="505"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
         <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="496"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
         <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="552"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
         <source>r.in.lidar.info - Extract information from LAS file</source>
         <translation>r.in.lidar.info - Information aus LAS-Datei extrahieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
         <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="479"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="235"/>
         <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="592"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
         <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="654"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
         <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="447"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
         <source>Performs bilinear or bicubic spline interpolation with Tykhonov regularization.</source>
         <translation>Führt bi-lineare oder bi-kubische oder Spline-Interpolation mit Tichonow-Regularisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="630"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="352"/>
         <source>Outputs raster map layer values lying along user defined transect line(s).</source>
         <translation>Gibt Rasterkartenlayerwerte entlang einer oder mehreren benutzerdefinierten Transektlinien aus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
         <source>Calculates solar elevation, solar azimuth, and sun hours.</source>
         <translation>Berechnet Sonnenhöhe, -winkel und -stunden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
         <source>r.li.shape.ascii - Calculates shape index on a raster map </source>
         <translation>r.li.shape.ascii - Berechnet Shapeindex auf einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
         <source>Calculates patch number index on a raster map, using a 4 neighbour algorithm.</source>
         <translation>Berechnet Patch-Anzahl-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
         <source>r.li.renyi.ascii - Calculates Renyi's diversity index on a raster map</source>
         <translation>r.li.renyi.ascii - Berechnet Renyi-Diversitäts-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="311"/>
         <source>r.blend.combine - Blends color components of two raster maps by a given ratio and export into a unique raster.</source>
         <translation>r.blend.combine - Farbkomponenten zweier Raster einem Verhältnis anpassen und in eine einziges Raster exportieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="344"/>
         <source>Performs contextual image classification using sequential maximum a posteriori (SMAP) estimation.</source>
         <translation>Führt eine kontextbezogene Bildklassifizierung mittels sequentieller Maximum-Aposterori-Schätzung (SMAP) durch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="618"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
         <source>Generates spectral signatures for land cover types in an image using a clustering algorithm.</source>
         <translation>Generiert Spektralsignaturen für Bodenbedeckungstypen in eimem Bild mittels Häufungsalgorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="610"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
         <source>i.eb.hsebal01.coords - Computes sensible heat flux iteration SEBAL 01. Inline coordinates</source>
         <translation>i.eb.hsebal01.coords - Berechnet Sensible-Heat-Flux-Iteration. Inline-Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="614"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
         <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="343"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="303"/>
         <source>Computes biomass growth, precursor of crop yield calculation.</source>
         <translation>Berechnet Biomassenzuwachs, Vorläufer von Feldfruchtberechnungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="586"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="155"/>
         <source>Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points. </source>
         <translation>Berichtigt ein Bild durch die Berecnung der Koordinatentransformation für jedes Pixel des Bildes nach Kontrollpunkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
         <source>Calculates Optimum-Index-Factor table for spectral bands</source>
         <translation>Optimale Indexfaktortabelle für Spektralkanäle berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
         <source>Computes potential evapotranspiration calculation with hourly Penman-Monteith.</source>
         <translation>Berechnet potentielle Evapotranspiration mit stündlichem Penman-Monteith.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="642"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
         <source>Identifies segments (objects) from imagery data.</source>
         <translation>Identifiziert Segmente (Objekte) aus Bilddaten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
         <source>Computes topographic correction of reflectance.</source>
         <translation>Berechnet topographische Korrektur der Reflektion.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="647"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
         <source>Computes evapotranspiration calculation Priestley and Taylor formulation, 1972.</source>
         <translation>Berechnet Evapotranspiration mit Priestley und Taylor Formulierung, 1972.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="639"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
         <source>Calculates different types of vegetation indices.</source>
         <translation>Berechnet verschiedene Typen von Vegetationsindizes.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="337"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
         <source>Generates statistics for i.smap from raster map.</source>
         <translation>Generiert Statistik für i.smap aus Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
         <source>Computes evaporative fraction (Bastiaanssen, 1995) and root zone soil moisture (Makin, Molden and Bastiaanssen, 2001).</source>
         <translation>Berechnet evaporative Bruchteil (Bastiaanssen, 1995) und Bodenfeuchtigkeit der Wurzelzone (Makin, Molden und Bastiaanssen, 2001).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
         <source>Actual evapotranspiration for diurnal period (Bastiaanssen, 1995). </source>
         <translation>Tatsächliche Evapotranspiration für Tagperiode (Bastiaanssen, 1995).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
         <source>r.mask.rast - Creates a MASK for limiting raster operation.</source>
         <translation>r.mask.rast - Maske (MASK) erzeugen, um Rasteroperationen zu begrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
         <source>i.topo.coor.ill - Creates illumination model for topographic correction of reflectance.</source>
         <translation>i.topo.coor.ill - Erzeugt Beleuchtungsmodel für topographische Reflektionskorrektur.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
         <source>Calculates dominance's diversity index on a raster map</source>
         <translation>Berechnet Dominanzdiversitätsindex einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="634"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="133"/>
         <source>r.walk.points - Creates a raster map showing the anisotropic cumulative cost of moving between different geographic locations on an input raster map whose cell category values represent cost from point vector layers.</source>
         <translation>r.walk.points - Rasterkarte aus der kommulierten Kosten für die Bewegung zwischen zwei verschiedenen geographischen Orten auf einer Eingaberasterkarte deren Zellen Kategoriewerte Kosten von Punktvektorlayern repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="51"/>
         <source>Computes broad band albedo from surface reflectance. </source>
         <translation>Berechnet Breitbandalbedo aus Oberflächenreflektion.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="17"/>
         <source>Imports SPOT VGT NDVI data into a raster map.</source>
         <translation>Importiert SPOT VGT NDVI Daten in Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
         <source>Computes sensible heat flux iteration SEBAL 01.</source>
         <translation>Berechnet Sensible-Heat-Flux-Iteration SEBAL 01.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
         <source>Performs Landsat TM/ETM+ Automatic Cloud Cover Assessment (ACCA).</source>
         <translation>Fürhrt TM/ETM+ automatische Wolkendeckenbewertung (ACCA) durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
         <source>Performs auto-balancing of colors for RGB images.</source>
         <translation>Führt automatische Angleichung der Farben von RGB-Bildern durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
         <source>Computes evapotranspiration calculation modified or original Hargreaves formulation, 2001.</source>
         <translation>Berechnet Evapotranspiration mit modifizierter oder originaler Hargreaves-Formulierung, 2001.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="621"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="346"/>
         <source>Principal components analysis (PCA) for image processing.</source>
         <translation>Hauptbestandteilsanalyes (PCA) zur Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="657"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
         <source>Calculates top-of-atmosphere radiance or reflectance and temperature for Landsat MSS/TM/ETM+/OLI</source>
         <translation>Berechnet Abstrahlung der obersten Atmosphäre oder Reflektionen für Landsat MSS/TM/ETM+/OLI</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
         <source>Classifies the cell spectral reflectances in imagery data.</source>
         <translation>Klassifiziert die Zellenspektralreflektionen in Bilddaten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
         <source>Performs Tasseled Cap (Kauth Thomas) transformation.</source>
         <translation>Führt Tasseled Cap (Kauth Thomas)-Transformation durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="143"/>
         <source>Computes temporal integration of satellite ET actual (ETa) following the daily ET reference (ETo) from meteorological station(s).</source>
         <translation>Ermittelt zeitliche Integration der Satelliten-ET tatsächlichen (ETa) folgend der tägliche ET-Referenz (ETo) von meteorologische(r/en) Station(en).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
         <source>Net radiation approximation (Bastiaanssen, 1995).</source>
         <translation>Nettostrahlungsnährung (Bastiaanssen, 1995).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
         <source>Regroup multiple mono-band rasters into a single multiband raster.</source>
         <translation>Mehrere einkanalige Raster in ein einzelnes Multibandraster regruppieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="256"/>
         <source>Image fusion algorithms to sharpen multispectral with high-res panchromatic channels</source>
         <translation>Bildvereinigungsalgorithmus um multispektrale mit hochauflösenden-panchromatischen Kanälen zu schärfen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="570"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
         <source>Soil heat flux approximation (Bastiaanssen, 1995).</source>
         <translation>Bodenwärmestromnährung (Bastiaanssen, 1995).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
         <source>Mosaics several images and extends colormap.</source>
         <translation>Fügt mehrere Bilder zusammen und erweitert die Farbabbildung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="576"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="318"/>
         <source>Calculates Top of Atmosphere Radiance/Reflectance/Brightness Temperature from ASTER DN.</source>
         <translation>Berechnet Abstrahlung der obersten Atmosphäre/Reflektionen/Helligkeitstemperatur aus ASTER DN.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="649"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
         <source>r.li.simpson.ascii - Calculates Simpson's diversity index on a raster map</source>
         <translation>Berechnet Simpsons-Diversitäts-Index einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
         <source>r.stats.quantile.out - Compute category quantiles using two passes and output statistics</source>
         <translation>r.stats.quantile.out - Berechne Kategoriequantile in zwei Durchgängen und Ausgabestatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
         <source>r.li.pielou.ascii - Calculates Pielou's diversity index on a raster map </source>
         <translation>r.li.pielou.ascii - Berechnet Pielou-Diversitäts-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="345"/>
         <source>Calculates mean pixel attribute index on a raster map</source>
         <translation>Berechnet den Mittelwert der Attribute (Rasterwerte) -Index einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
         <source>Calculates multiple linear regression from raster maps.</source>
         <translation>Berechnet eine lineare Regression von zwei Rasterkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
         <source>r.topmodel.topidxstats - Builds a TOPMODEL topographic index statistics file.</source>
         <translation>r.topmodel.topidxstats - TOPMODEL topografische Indexstatistikdatei erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="283"/>
         <source>Allows creation and/or modification of raster map layer support files (metadata).</source>
         <translation>Erlaubt die Erzeugung und/oder Modifikation von Rasterkartenlayerunterstützungsdateien (Metadaten).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="653"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
         <source>r.category.out - Exports category values and labels associated with user-specified raster map layers.</source>
         <translation>r.category.out - Mit benutzerdefinierten Rasterkartenlayern verbundene Kategoriewerte und Beschriftungen exportieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="603"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="7"/>
         <source>Calculates Shannon's diversity index on a raster map</source>
         <translation>Berechnet Shannons-Diversitäts-Index einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
         <source>r.li.edgedensity.ascii - Calculates edge density index on a raster map, using a 4 neighbour algorithm</source>
         <translation>r.li.edgedensity.ascii - Berechnet Kantendichteindex auf einer Rasterkarte mit einem 4-Nachbarn-Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="612"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="139"/>
         <source>Raster map calculator. </source>
         <translation>Rasterkartenrechner.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
         <source>r.walk.coords - Creates a raster map showing the anisotropic cumulative cost of moving between different geographic locations on an input raster map whose cell category values represent cost from a list of coordinates.</source>
         <translation>r.walk.coords - Rasterkarte aus der kommulierten Kosten für die Bewegung zwischen zwei verschiedenen geographischen Orten auf einer Eingaberasterkarte deren Zellen Kategoriewerte Kosten aus einer Koordinatenliste repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
         <source>r.li.shannon.ascii - Calculates Shannon's diversity index on a raster map</source>
         <translation>Berechnet Shannons-Diversitäts-Index einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
         <source>Calculates patch density index on a raster map, using a 4 neighbour algorithm</source>
         <translation>Berechnet Patch-Anzahl-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="281"/>
         <source>Calculates mean patch size index on a raster map, using a 4 neighbour algorithm</source>
         <translation>Berechnet mitteleren Patch-Größen-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
         <source>Calculates standard deviation of patch area a raster map</source>
         <translation>Berechnet den Standardabweichen eines Patchbereiches einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
         <source>r.what.coords - Queries raster maps on their category values and category labels on a point.</source>
         <translation>r.what.coords - Rasterkarten nach Kategoriewerten und Kategoriebeschriftungen eines Punkt abfragen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
         <source>Calculates shape index on a raster map </source>
         <translation>Berechnet Shapeindex auf einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="625"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
         <source>Calculates edge density index on a raster map, using a 4 neighbour algorithm</source>
         <translation>Berechnet Kantendichteindex auf einer Rasterkarte mit einem 4-Nachbarn-Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="597"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
         <source>Creates/modifies the color table associated with a raster map.</source>
         <translation>Erzeugt/Ändert die einer Rasterkarte zugeordnete Farbtabelle </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
         <source>r.li.padcv.ascii - Calculates coefficient of variation of patch area on a raster map</source>
         <translation>r.li.padcv.ascii - Berechnet Variationskoeffizientien eines Patchbereiches einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
         <source>Splits a raster map into tiles</source>
         <translation>Rasterkarte in Kacheln aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
         <source>Creates a fractal surface of a given fractal dimension.</source>
         <translation>Fraktale Oberfläche einer gegeben Fraktaldimension erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
         <source>r.li.mps.ascii - Calculates mean patch size index on a raster map, using a 4 neighbour algorithm</source>
         <translation>r.li.mps.ascii - Berechnet mitteleren Patch-Größen-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="651"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
         <source>Generates random surface(s) with spatial dependence.</source>
         <translation>Erzeugt zufälltige Oberfläche(n) mit räumlicher Abhängigkeit.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
         <source>r.what.points - Queries raster maps on their category values and category labels on a layer of points.</source>
         <translation>r.what.points - Rasterkarten nach Kategoriewerten und Kategoriebeschriftungen eines Punktlayers abfragen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
         <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="629"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
         <source>Creates a raster map layer showing buffer zones surrounding cells that contain non-NULL category values (low-memory alternative).</source>
         <translation>Erzeugt eine Rasterkarte mit Pufferzonen um Zellen, die Nicht-NULL-Wert-Kategoriewerte haben (Alternative für wenig Speicher).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
         <source>Calculates contrast weighted edge density index on a raster map</source>
         <translation>Berechnet den kontrastgewichteten Kantendichteindex einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="340"/>
         <source>Manages category values and labels associated with user-specified raster map layers.</source>
         <translation>Verwaltet mit benutzerdefinierten Rasterkartenlayern verbundene Katagoriewerte und -beschriftungen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
         <source>Calculates range of patch area size on a raster map</source>
         <translation>Berechnet Reichweite einer Patchbereichsgröße auf einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
         <source>Calculates richness index on a raster map</source>
         <translation>Berechnet den Richness-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
         <source>r.stats.quantile.rast - Compute category quantiles using two passes and output rasters.</source>
         <translation>r.stats.quantile.rast - Berechne Kategoriequantile in zwei Durchgängen und Ausgaberaster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
         <source>Calculates Pielou's diversity index on a raster map </source>
         <translation>Berechnet Pielou-Diversitäts-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="623"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
         <source>r.blend.rgb - Blends color components of two raster maps by a given ratio and exports into three rasters.</source>
         <translation>r.blend.rgb - Paßt Farbkomponeten zwei Rasterkarten nach einem gegebenen Verhältnis an und exportiert sie in drei Raster.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="316"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
         <source>Calculates coefficient of variation of patch area on a raster map</source>
         <translation>Variationskoeffizienten eines Patchbereiches einer Rasterkarte berechnen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
         <source>Generates rate of spread raster maps.</source>
         <translation>Erzeugt Rasterkarten mit Grad der Streung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="208"/>
         <source>Calculates Simpson's diversity index on a raster map</source>
         <translation>Berechnet Simpsons-Diversitäts-Index einer Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
         <source>Makes each output cell value an accumulation function of the values assigned to the corresponding cells in the input raster map layers.</source>
         <translation>Jede Ausgabezelle zur Akkumulationsfunktion der den korrespondierenden Zellen zugeordneten Werten des Eingaberasterkartenlayers machen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="336"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="199"/>
         <source>Computes USLE R factor, Rainfall erosivity index.</source>
         <translation>USLE-R-Faktor berechnen.  Niederschlagserosionsindex.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="11"/>
         <source>Interpolates raster maps located (temporal or spatial) in between input raster maps at specific sampling positions.</source>
         <translation>Interpoliert Rasterkarten die (zeitlich oder räumlich) zwischen zwei Eingaberasterkarten an bestimmten Abtastpositionen liegen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="581"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="291"/>
         <source>Imagery (i.*)</source>
         <translation>Bildbearbeitung (i.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="147"/>
         <source>r.li.cwed.ascii - Calculates contrast weighted edge density index on a raster map</source>
         <translation>r.li.cwed.ascii - Berechnet den kontrastgewichteten Kantendichteindex einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="313"/>
         <source>r.mask.vect - Creates a MASK for limiting raster operation with a vector layer.</source>
         <translation>r.mask.vect - MASKe zur Begrenzung der Rasteroperation mit einem Vektorlayer erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="636"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
         <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="320"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
         <source>Calculates Renyi's diversity index on a raster map</source>
         <translation>Berechnet Renyi-Diversitäts-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
         <source>Resamples raster map layers using an analytic kernel.</source>
         <translation>Erzeugt eine neue Rasterkarte mit einem analytischen Kern.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="606"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
         <source>Exports the color table associated with a raster map.</source>
         <translation>Exportiert die einer Rasterkarte zugeordnete Farbtabelle.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="633"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="339"/>
         <source>Queries colors for a raster map layer. </source>
         <translation>Fragt Farben einer Rasterkarte ab.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
         <source>Splits a raster map into red, green and blue maps.</source>
         <translation>Teilt einer Rasterkarte in rote grüne und blaue Karten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="338"/>
         <source>Computes USLE Soil Erodibility Factor (K).</source>
         <translation>Berechnet USLE-Bodenerosionsfaktor (K).</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
         <source>r.li.dominance.ascii - Calculates dominance's diversity index on a raster map</source>
         <translation>r.li.dominance.ascii - Berechnet Dominanzdiversitätsindex einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="658"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
         <source>Locates the closest points between objects in two raster maps.</source>
         <translation>Nächste Punkte zwischen Objekten in zwei Rasterkasten bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
         <source>r.li.padsd.ascii - Calculates standard deviation of patch area a raster map</source>
         <translation>r.li.padsd.ascii - Berechnet den Standardabweichen eines Patchbereiches einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
         <source>r.walk.rast - Creates a raster map showing the anisotropic cumulative cost of moving between different geographic locations on an input raster map whose cell category values represent cost from a raster.</source>
         <translation>r.walk.rast - Rasterkarte aus der kommulierten Kosten für die Bewegung zwischen zwei verschiedenen geographischen Orten auf einer Eingaberasterkarte deren Zellen Kategoriewerte Kosten aus einer Rasterkarte repräsentieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="632"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="284"/>
         <source>r.li.patchnum.ascii - Calculates patch number index on a raster map, using a 4 neighbour algorithm.</source>
         <translation>r.li.patchnum.ascii - Berechnet Patch-Anzahl-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
         <source>r.li.patchdensity.ascii - Calculates patch density index on a raster map, using a 4 neighbour algorithm</source>
         <translation>r.li.patchdensity.ascii - Berechnet Patch-Anzahl-Index einer Rasterkarte, unter Verwendung eines 4-Nachbarn-Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
         <source>Numerical calculation program for transient, confined and unconfined solute transport 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="432"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
         <source>Creates a latitude/longitude raster map.</source>
         <translation>Erzeugt eine Breiten-/Längengrad-Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
         <source>Simulates TOPMODEL which is a physically based hydrologic model.</source>
         <translation>Simuliert TOPMODEL (physikbasiertes hydrologisches Modell)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="354"/>
         <source>Simulates elliptically anisotropic spread.</source>
         <translation>Simuliert elliptische antisotropische Streung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
         <source>Drapes a color raster over an shaded relief or aspect map. </source>
         <translation>Drapiert eine Rasterkarte mit Farbwerten über Schummerungs- oder Expositionskarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
         <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="564"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
         <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="353"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="40"/>
         <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="387"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
         <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="616"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
         <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="378"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
         <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="520"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
         <source>Stream network extraction</source>
         <translation>Stromnetzwerkextraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
         <source>Miscellaneous (m.*)</source>
         <translation>Verschiedenes (m.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
         <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="391"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
         <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="476"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
         <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="599"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
         <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="474"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
         <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="503"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
         <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="411"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="312"/>
         <source>Recodes categorical raster maps.</source>
         <translation>Kodiert kategorische Rasterkarten um.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="174"/>
         <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="620"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
         <source>r.cost.points - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.rast.points - 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="435"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
         <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="584"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
         <source>r.cost.raster - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.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="420"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
         <source>r.cost.coordinates - Creates a raster layer of cumulative cost of moving across a raster layer whose cell values represent cost.</source>
         <translation>r.cost.coordinates - 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="640"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="327"/>
         <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="619"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
         <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="327"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
         <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="314"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
         <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="550"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="67"/>
         <source>Import GetFeature from WFS</source>
         <translation>Importiert GetFeature eines WFS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="648"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
         <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="544"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
         <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="645"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
         <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="407"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
         <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="580"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
         <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="357"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
         <source>Raster (r.*)</source>
         <translation>Raster (r.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="255"/>
         <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="535"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="350"/>
         <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="429"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="113"/>
         <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="321"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="334"/>
         <source>Generates watershed subbasins raster map.</source>
         <translation>Erzeugt Rasterkarte mit Wassereinzugsgebieten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
         <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="438"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
         <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="495"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
         <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="587"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="297"/>
         <source>Vector (v.*)</source>
         <translation>Vektor (v.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
         <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="622"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="269"/>
         <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="417"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
         <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="566"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
         <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="350"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
         <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="394"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="314"/>
         <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="650"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
         <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="493"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
         <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="354"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
         <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="585"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
         <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="489"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
         <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="635"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="317"/>
         <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="421"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
         <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="594"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
         <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="340"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
         <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="500"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
         <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="507"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
         <source>Performs visibility graph construction.</source>
         <translation>Erstellt Sichtbarkeitsgraphen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
         <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="522"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="14"/>
         <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="386"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
         <source>r.aspect - Generates raster maps of aspect from an 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="393"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
         <source>Computes emissivity from NDVI, generic method for sparse land. </source>
         <translation>Ermittelt Emissivität aus NDVI, generische Methode für karges Land.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="602"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
         <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="541"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
         <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="532"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="319"/>
         <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="443"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
         <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="484"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
         <source>Surface generation.</source>
         <translation>Oberflächenerzeugung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="611"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
         <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="559"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
         <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="615"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
         <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="518"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
         <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="656"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
         <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="528"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
         <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="449"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
         <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="471"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
         <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="554"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
         <source>Watershed basin creation program.</source>
         <translation>Wassereinzugsgebietserzeugungsprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
         <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="548"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="341"/>
         <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="571"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
         <source>Produces tilings of the source projection for use in the destination region and projection.</source>
         <translation>Erzeugt Kacheln der Quellprojektion zur Verwendung in der Zielregion und Projektion.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
         <source>r.li.richness.ascii - Calculates richness index on a raster map</source>
         <translation>r.li.richness.ascii - Berechet Richness-Index einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
         <source>r.li.mpa.ascii - Calculates mean pixel attribute index on a raster map</source>
         <translation>r.li.mpa.ascii - Ermittelt mittleren Pixelattributindex einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
         <source>Sets color rules based on stddev from a raster map's mean value.</source>
         <translation>Setzt Farbregeln basierend auf Standardabweichung des Mittelwerts eines Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
         <source>Generate images with textural features from a raster map.</source>
         <translation>Bilder mit Texteigenschaften einer Rasterkarte erzeugen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
         <source>r.li.padrange.ascii - Calculates range of patch area size on a raster map</source>
         <translation>r.li.padrange.ascii - Berechnet Reichweite einer Patchbereichsgröße auf einer Rasterkarte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
         <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="519"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
         <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="478"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
         <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="524"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
         <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="453"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="270"/>
         <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="545"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="150"/>
         <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="601"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="315"/>
         <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="381"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
         <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="572"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
         <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="346"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
         <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="442"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
         <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="477"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="84"/>
         <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="365"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
         <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="521"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="351"/>
         <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="352"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
         <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="542"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
         <source>Prints vector map attributes</source>
         <translation>Gebe Vektorattribute aus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
         <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="344"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
         <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="410"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
         <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="318"/>
+        <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="487"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="56"/>
         <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="319"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
         <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="516"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
         <source>Overlays two vector maps.</source>
         <translation>Überlagert zwei Vektorkarten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
         <source>Builds polylines from lines or boundaries.</source>
         <translation>Polygone aus Linien oder Umgrenzungen bilden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
         <source>Creates Linear Reference System</source>
         <translation>Erzeugt ein lineares Bezugssystem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="608"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
         <source>Imports geonames.org country files into a GRASS vector points map.</source>
         <translation>geonames.org-Länderdatei in eine GRASS-Vektorpunktkarte importieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="588"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
         <source>Converts vector polygons or points to lines.</source>
         <translation>Vektorpolygone oder -pnkte in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="579"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="309"/>
         <source>Converts LAS LiDAR point clouds to a GRASS vector map with libLAS.</source>
         <translation>LAS-LiDAR-Punktwolken in eine GRASS-Vektorkarte mit libLAS umwandeln.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
         <source>Import ASCII x,y[,z] coordinates as a series of lines.</source>
         <translation>ASCII-x,y[,z]-Koordinaten als Linienreihe importieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="320"/>
         <source>Creates points/segments from input lines, linear reference system and positions read from stdin or a file.</source>
         <translation>Erzeugt Punkte/Segmente aus Eingabevektorlinien, linearem Bezugssystem und Eingabepositionen aus Standardeingabe oder Datei.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="275"/>
         <source>v.kernel.vector - Generates a vector density map from vector points on a vector network.</source>
         <translation>v.kernel.vector - Erzeugt eine Vektordichtekarte aus Vektorpunkten in einem Vektornetzwerk.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="329"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
         <source>Rectifies a vector by computing a coordinate transformation for each object in the vector based on the control points.</source>
         <translation>Berichtigt ein Bild durch die Berechnung der Koordinatentransformation für jedes Objekt im Vektor mittels Kontrollpunkten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
         <source>v.kernel.rast - Generates a raster density map from vector points map.</source>
         <translation>v.kernel.rast - Erzeugt eine Rasterdichtekarte aus einer Vektorpunktkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="330"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
         <source>Change the type of geometry elements.</source>
         <translation>Typ der Geometrieelemente ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="583"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="45"/>
         <source>Finds line id and real km+offset for given points in vector map using linear reference system. </source>
         <translation>Findet Linienkennung und echten km+Versatz für gegebene Punkte in Vektorkarten mit linearem Referenzsystem.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="604"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
         <source>v.in.ascii.points - Creates a vector map from an ASCII points file.</source>
         <translation>v.in.ascii.points - Erzeugt eine Vektorkarte aus ASCII-Punktdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="575"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
         <source>Imports Mapgen or Matlab-ASCII vector maps into GRASS.</source>
         <translation>MapGen- oder MatLab-Vektor in GRASS importieren.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
         <source>Exports a vector map as GRASS GIS specific archive file.</source>
         <translation>Exportiert eine Vektorkarte als GRASS GIS spezifische Archivdatei.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="326"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
         <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="644"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="324"/>
         <source>Edits a vector map, allows adding, deleting and modifying selected vector features.</source>
         <translation>Bearbeitet eine Vektorkarte, erlaubt hinzufügen, löschen und Änderunge von gewählten Vektorobjekten.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="74"/>
         <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="646"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
         <source>Converts a vector map to VTK ASCII output.</source>
         <translation>Wandelt eine Vektorkarte in VTK ASCII um.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="92"/>
         <source>Extrudes flat vector object to 3D with defined height.</source>
         <translation>Flaches Vektorobjekt mit definierter Höhe in 3D extrudieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
         <source>v.in.ascii.standard - Creates a vector map from an ASCII vector file. </source>
         <translation>v.in.ascii.standard - Erzeugt eine Vektorkarte aus einer ASCII Vektordatei. </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="626"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="353"/>
         <source>Performs transformation of 2D vector features to 3D.</source>
         <translation>Führt Transformation von 2D-Vektorobjekten zu 3D durch.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
         <source>v.build.check - Checks for topological errors.</source>
         <translation>v.build.check - Überprüft auf topologische Fehler.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
         <source>Creates a raster map from LAS LiDAR points using univariate statistics.</source>
         <translation>Erzeugt Rasterkarte aus LAS-LiDAR-Punkten über univariante Statistik.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
         <source>Calculates univariate statistics from a raster map based on vector polygons and uploads statistics to new attribute columns.</source>
         <translation>Univariante Statistik aus Rasterkarte über Vektorpolygone berechnen und Statistik in neuen Attributspalten ablegen.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="348"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
         <source>Count points in areas and calculate statistics.</source>
         <translation>Ermittle Anzahl der Punkte in Bereichen und berechne Statistik.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
         <source>Line-of-sight raster analysis program.</source>
         <translation>Sichtachsen-Rasteranalysemodul.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="347"/>
         <source>Uploads vector values at positions of vector points to the table.</source>
         <translation>Lade Vektorwerte an den Positionen von Vektorpunkten in die Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="609"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
         <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="488"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
         <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="418"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
         <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="341"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
         <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="638"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
         <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="643"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
         <source>v.generalize.displacement - Vector based displacement generalization.</source>
         <translation>v.generalize.displacement - Vektorbasierte Versatzgeneralisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="596"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="60"/>
         <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="556"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
         <source>r.slope - Generates raster maps of slope from an 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="455"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
         <source>Fills no-data areas in raster maps using spline interpolation.</source>
         <translation>Füllt Bereiche mit Leerdaten in Rasterkarten mit Spline-Interpolation.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="323"/>
         <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="439"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="52"/>
         <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="555"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
         <source>v.generalize.simplify - Vector based simplification generalization.</source>
         <translation>v.generalize.simplify - Vektorbasierte Versatzgeneralisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
         <source>v.generalize.smooth - Vector based smooth generalization.</source>
         <translation>v.generalize.smooth - Vektorbasierte Versatzgeneralisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="321"/>
         <source>v.generalize.network - Vector based network generalization.</source>
         <translation>v.generalize.network - Vektorbasierte Versatzgeneralisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
         <source>Canonical components analysis (CCA) program for image processing.</source>
         <translation>Kanonische Komponentenanalyseprogramm (CCA) für Bildverarbeitung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="569"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
         <source>Extracts quality control parameters from MODIS QC layers.</source>
         <translation>Extrahiert dies Qualitätskontrollparameter eines MODIS-QC-Layers.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="325"/>
         <source>Generates statistics for i.maxlik from raster map.</source>
         <translation>Generiert Statistik für i.maxlik aus Rasterkarte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
         <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="434"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="299"/>
         <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="481"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
         <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="451"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="335"/>
         <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="345"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="120"/>
         <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="573"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="79"/>
         <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="624"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
         <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="483"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="114"/>
         <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="498"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
         <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="553"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
         <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="413"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
         <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="373"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
         <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="419"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="61"/>
         <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="595"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
         <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="334"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
         <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="574"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
         <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="549"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
         <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="533"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
         <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="628"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
         <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="390"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
         <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="561"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
         <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="551"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
         <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="652"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
         <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="627"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
         <source>Manages NULL-values of given raster map.</source>
         <translation>NULL-Werte eine gegebenen Rasterkarte behandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="631"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="343"/>
         <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="351"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
         <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="607"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="157"/>
         <source>v.what.rast.points - Uploads raster values at positions of vector points to the table.</source>
         <translation>v.what.rast.points - Läd Rasterwerte an gegebenen Position von Vektorpunkten in eine Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
         <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="406"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
         <source>Sums up the raster cell values.</source>
         <translation>Summiert die Rasterzellenwerte.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="331"/>
         <source>Raster map matrix filter.</source>
         <translation>Rasterkartenmatrixfilter.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="15"/>
         <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="492"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="287"/>
         <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="504"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="328"/>
         <source>Watershed basin analysis program.</source>
         <translation>Wassereinzugsgebietsanalyseprogramm.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="342"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
         <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="375"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
         <source>v.what.rast.centroids - Uploads raster values at positions of vector centroids to the table.</source>
         <translation>v.what.rast.centroids - Lade Rasterwerte an den Position von Vektorzentroiden in die Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="591"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
         <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="577"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
         <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="593"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
         <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="482"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
         <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="600"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
         <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="313"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
         <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="470"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
         <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="641"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
         <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="473"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
         <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="339"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
         <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="331"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
         <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="317"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
         <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="337"/>
         <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="328"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="204"/>
         <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="578"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
         <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="415"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
         <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="457"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="322"/>
         <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="371"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
         <source>Solar irradiance and irradiation model.</source>
         <translation>Solar- und Bestrahlungsmodell.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="152"/>
         <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="568"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="333"/>
         <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="605"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
         <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="526"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
         <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="613"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
         <source>Vector based generalization.</source>
         <translation>Vektorbasierte Generalisierung.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
         <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="424"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
         <source>Create random raster</source>
         <translation>Zufälliges Raster erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="617"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
         <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="514"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
         <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="367"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="332"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
         <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="510"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
         <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="401"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
         <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="659"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="349"/>
         <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="379"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
         <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="655"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
         <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="511"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
         <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="582"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
         <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>
@@ -10901,32 +10911,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="1198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1200"/>
         <source>GRASS folder</source>
         <translation>GRASS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1201"/>
         <source>Msys folder</source>
         <translation>MSYS-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1203"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1204"/>
         <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="1203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1205"/>
         <source>GRASS commands</source>
         <translation>GRASS-Befehle</translation>
     </message>
@@ -10934,26 +10944,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="1207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1209"/>
         <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="1208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1210"/>
         <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="1209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1211"/>
         <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="1210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1212"/>
         <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.
@@ -10963,72 +10973,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Grid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1216"/>
         <source>Create grid</source>
         <translation>Gitter erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1217"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1218"/>
         <source>Rectangle (line)</source>
         <translation>Rechteck (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
         <source>Rectangle (polygon)</source>
         <translation>Rechteck (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
         <source>Diamond (polygon)</source>
         <translation>Raute (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
         <source>Hexagon (polygon)</source>
         <translation>Hexagon (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1226"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1227"/>
         <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="1226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1228"/>
         <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="1227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1229"/>
         <source>Vertical spacing is too small for the covered area</source>
         <translation>Vertikaler Abstand ist zu klein für abgedeckten Bereich</translation>
     </message>
@@ -11036,57 +11046,57 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridAverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1231"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
         <source>Grid (Moving average)</source>
         <translation>Gitter (Beweglicher Mittelwert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1242"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1243"/>
         <source>Interpolated moving average</source>
         <translation>Interpolierter beweglicher Mittelwert</translation>
     </message>
@@ -11094,62 +11104,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridDataMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1245"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1247"/>
         <source>Grid (Data metrics)</source>
         <translation>Gitter (Datenkriterien)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1251"/>
         <source>Metrics</source>
         <translation>Kriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1250"/>
+        <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="1251"/>
+        <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="1252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1257"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1258"/>
         <source>Interpolated metrics</source>
         <translation>Interpolierte Maße</translation>
     </message>
@@ -11157,72 +11167,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridInvDist</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1260"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1262"/>
         <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="1261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1263"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1262"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1264"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1264"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
         <source>Power</source>
         <translation>Potenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
         <source>Max points</source>
         <translation>Max. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
         <source>Min points</source>
         <translation>Min. Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1274"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1275"/>
         <source>Interpolated IDW</source>
         <translation>Interpolierte IDW</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1267"/>
         <source>Smoothing</source>
         <translation>Glättung</translation>
     </message>
@@ -11230,62 +11240,62 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridMetrics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1279"/>
         <source>Grid Metrics</source>
         <translation>Datenkriterien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
         <source>Input ground DTM layer</source>
         <translation>Eingabe-Boden-DTM-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
         <source>Height break</source>
         <translation>Höhen Unterbrechung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
         <source>Output table with grid metrics</source>
         <translation>Ausgabetabelle mit Gittermaßen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1284"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
         <source>OUTPUT CSV INTENSITY</source>
         <translation>Ausgabe CSV Intensität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
         <source>Outlier:low,high</source>
         <translation>Ausreißer:niedrig,hoch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1288"/>
         <source>First</source>
         <translation>Erster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1289"/>
         <source>Htmin</source>
         <translation>Htmin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1290"/>
         <source>Class (set blank if not used)</source>
         <translation>Klasse (leer setzen, wenn nicht verwendet)</translation>
     </message>
@@ -11293,52 +11303,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNearest</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
         <source>Grid (Nearest neighbor)</source>
         <translation>Gitter (Nächster Nachbar)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
         <source>Z field</source>
         <translation>Z-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
         <source>Radius 1</source>
         <translation>Radius 1</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
         <source>Radius 2</source>
         <translation>Radius 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
         <source>Angle</source>
         <translation>Winkel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1301"/>
         <source>Nodata</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1302"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1303"/>
         <source>Interpolated nearest neighbor</source>
         <translation>Interpolierter nächster Nachbar</translation>
     </message>
@@ -11346,52 +11356,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNet</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1305"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
         <source>Grid Network</source>
         <translation>Gitternetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1308"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1309"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1313"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1314"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt 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="1315"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1316"/>
         <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>
@@ -11399,52 +11409,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridNetMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
         <source>Grid Network (multifile)</source>
         <translation>Gitternetzwerk (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
         <source>D8 Flow Direction Grid</source>
         <translation>D8 Fliessrichtung Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
         <source>Outlets Shapefile</source>
         <translation>Auslaß-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
         <source>Mask Grid</source>
         <translation>Maskengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
         <source>Mask Threshold</source>
         <translation>Maskenschwellenwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
         <source>Longest Upslope Length Grid</source>
         <translation>Längstes Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
         <source>Total Upslope Length Grid</source>
         <translation>Gesamt Steigungslängen Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1328"/>
         <source>Strahler Network Order Grid</source>
         <translation>Strahler Netzwerk Ordnungs Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1329"/>
         <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>
@@ -11452,72 +11462,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GridSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1333"/>
         <source>Grid Surface Create</source>
         <translation>Gitteroberfläche erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1334"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1335"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1334"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1335"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1339"/>
         <source>DTM Output Surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
         <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="1339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
         <source>Median</source>
         <translation>Median</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1342"/>
         <source>Smooth</source>
         <translation>Glatt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1341"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1343"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1342"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1344"/>
         <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="1343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1345"/>
         <source>Class(es)</source>
         <translation>Klasse(n)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1346"/>
         <source>Additional modifiers</source>
         <translation>Zusätzliche Einstellungen</translation>
     </message>
@@ -11525,42 +11535,42 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Gridify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1351"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1352"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1351"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1353"/>
         <source>Horizontal spacing</source>
         <translation>Horizontaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1354"/>
         <source>Vertical spacing</source>
         <translation>Vertikaler Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1355"/>
         <source>Snapped</source>
         <translation>Gefangen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1356"/>
         <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="1355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1357"/>
         <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="1348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1350"/>
         <source>Snap points to grid</source>
         <translation>Punkte auf Gitter fangen</translation>
     </message>
@@ -11568,32 +11578,32 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>GroundFilter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1359"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
         <source>Ground Filter</source>
         <translation>Bodenfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1360"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1363"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1364"/>
         <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="1363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1365"/>
         <source>Output ground LAS file</source>
         <translation>LAS-Datei mit Bodenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1366"/>
         <source>Create .dtm surface</source>
         <translation>DTM-Ausgabeoberfläche erzeugen</translation>
     </message>
@@ -11848,55 +11858,55 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HelpEditionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
         <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="1369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
         <source><h2>Algorithm description</h2>
 </source>
         <translation><h2>Algorithmus Beschreibung</h2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
         <source><h2>Input parameters</h2>
 </source>
         <translation><h2>Eingangsparameter</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
         <source><h2>Outputs</h2>
 </source>
         <translation><h2>Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
         <source>Algorithm description</source>
         <translation>Algorithmus Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
         <source>Input parameters</source>
         <translation>Eingangs Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1376"/>
         <source>Outputs</source>
         <translation>Ausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1377"/>
         <source>Algorithm created by</source>
         <translation>Algorithmus erstellt von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1378"/>
         <source>Algorithm help written by</source>
         <translation>Algorithmus Hilfe Datei geschrieben von</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1379"/>
         <source>Algorithm version</source>
         <translation>Alorithmus Version</translation>
     </message>
@@ -11904,47 +11914,47 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HistoryDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
         <source>Clear</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
         <source>Save As...</source>
         <translation>Speichern als...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1387"/>
         <source>Confirmation</source>
         <translation>Bestätigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
         <source>Clear history</source>
         <translation>Historie leeren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
         <source>Save history</source>
         <translation>Historie speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
         <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="1387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1390"/>
         <source>Log files (*.log *.LOG)</source>
         <translation>Log Dateien (*.log *.LOG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1391"/>
         <source>Create test</source>
         <translation>Test erzeugen</translation>
     </message>
@@ -11973,72 +11983,72 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1394"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1396"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1397"/>
         <source>Meters</source>
         <translation>Meter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
         <source>Feet</source>
         <translation>Fuß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
         <source>Miles</source>
         <translation>Meilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
         <source>Kilometers</source>
         <translation>Kilometer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
         <source>Layer units</source>
         <translation>Layereinheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
         <source>Source points layer</source>
         <translation>Quellpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1403"/>
         <source>Destination hubs layer</source>
         <translation>Zielnabenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1404"/>
         <source>Hub layer name attribute</source>
         <translation>Nabenlayernamenattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1403"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1405"/>
         <source>Output shape type</source>
         <translation>Ausgabe-Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1406"/>
         <source>Measurement unit</source>
         <translation>Maßeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1407"/>
         <source>Hub distance</source>
         <translation>Knotenabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1408"/>
         <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="1393"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1395"/>
         <source>Distance to nearest hub</source>
         <translation>Abstand zum nächsten Knoten</translation>
     </message>
@@ -12046,37 +12056,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HubLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
         <source>Hub point layer</source>
         <translation>Nabenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
         <source>Hub ID field</source>
         <translation>Nabenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1416"/>
         <source>Spoke point layer</source>
         <translation>Speichenpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1417"/>
         <source>Spoke ID field</source>
         <translation>Speichenkennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1412"/>
         <source>Hub lines</source>
         <translation>Knotenlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1413"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1418"/>
         <source>Same layer given for both hubs and spokes</source>
         <translation>Gleicher Name für Naben- und Speichenlayer gewählt</translation>
     </message>
@@ -12084,52 +12094,52 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>HypsometricCurves</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
         <source>DEM to analyze</source>
         <translation>Zu analysierendes DEM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
         <source>Boundary layer</source>
         <translation>Begrenzungslayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1424"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
         <source>Step</source>
         <translation>Schrittweite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1425"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
         <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="1420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1422"/>
         <source>Hypsometric curves</source>
         <translation>Höhenschichtenkurven</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1423"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1428"/>
         <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="1428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1430"/>
         <source>Area</source>
         <translation>Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1431"/>
         <source>Elevation</source>
         <translation>Geländehöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1429"/>
         <source>Feature %d is smaller than raster cell size</source>
         <translation>Objekt %d ist kleiner als Rasterzellengröße</translation>
     </message>
@@ -12137,42 +12147,42 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>ImageCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1435"/>
         <source>ImageCreate</source>
         <translation>ImageCreate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1434"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1436"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1437"/>
         <source>Input LAS</source>
         <translation>LAS-Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1436"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1438"/>
         <source>Method to assign color</source>
         <translation>Methode zur Farbzuweisung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1440"/>
         <source>Use RGB color model to create the color ramp</source>
         <translation>RGB-Farbmodell für die Erzeugung des Farbverlaufs verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1439"/>
         <source>Ground file (used with 'Height' method)</source>
         <translation>Grunddatei (mit der 'Höhenmethode' verwendet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1441"/>
         <source>Pixel size</source>
         <translation>Pixelgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1442"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
@@ -12180,79 +12190,79 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>ImportIntoPostGIS</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1460"/>
         <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="1445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1448"/>
         <source>Layer to import</source>
         <translation>Zu importierender Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1449"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1450"/>
         <source>Schema (schema name)</source>
         <translation>Schema (Schemaname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1451"/>
         <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="1450"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1452"/>
         <source>Primary key field</source>
         <translation>Primärschlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1451"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1453"/>
         <source>Geometry column</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
         <source>Encoding</source>
         <translation>Kodierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
         <source>Create spatial index</source>
         <translation>Räumlichen Index erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1457"/>
         <source>Convert field names to lowercase</source>
         <translation>Feldnamen in Kleinschreibung umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1458"/>
         <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="1457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1459"/>
         <source>Create single-part geometries instead of multi-part</source>
         <translation>Einteilige statt mehrteiliger Geometrien erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1446"/>
         <source>Import into PostGIS</source>
         <translation>In PostGIS importieren</translation>
     </message>
@@ -12268,12 +12278,12 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>InputLayerSelectorPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1464"/>
         <source>Select file</source>
         <translation>Datei wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1465"/>
         <source>All files (*.*);;</source>
         <translation>Alle Dateien (*.*);;</translation>
     </message>
@@ -12281,42 +12291,42 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>IntensityImage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
         <source>IntensityImage</source>
         <translation>IntensityImage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
         <source>Input file</source>
         <translation>Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
         <source>Use all returns instead of only first</source>
         <translation>Alle Ergebnisse statt nur des ersten verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
         <source>Use the lowest return in pixel area to assign the intensity value</source>
         <translation>Niedrigstes Ergebnis im Pixelbereich zur Zuweisung des Intensitätswerts verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
         <source>Produce a CSV intensity histogram data file</source>
         <translation>CSV-Intensitätshistogrammdatendatei erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1475"/>
         <source>Pixel size</source>
         <translation>Pixelgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1476"/>
         <source>Output format</source>
         <translation>Ausgabeformat</translation>
     </message>
@@ -12324,32 +12334,32 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>Intersection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1485"/>
         <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="1479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1483"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1484"/>
         <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="1478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1480"/>
         <source>Intersection</source>
         <translation>Verschneidung</translation>
     </message>
@@ -12357,37 +12367,37 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>JoinAttributes</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1488"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
         <source>Table field</source>
         <translation>Tabellenspalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1494"/>
         <source>Table field 2</source>
         <translation>Tabellenfeld 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1495"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1487"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1489"/>
         <source>Join attributes table</source>
         <translation>Attributtabellen verknüpfen</translation>
     </message>
@@ -12411,194 +12421,194 @@ Bitte installieren bevor GRASS-Algorithmen ausgeführt werden.</translation>
 <context>
     <name>LAStoolsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1499"/>
         <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="1498"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1500"/>
         <source>verbose</source>
         <translation>ausführlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1501"/>
         <source>open LAStools GUI</source>
         <translation>LAStools-GUI öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1502"/>
         <source>number of cores</source>
         <translation>Kernanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1503"/>
         <source>input LAS/LAZ file</source>
         <translation>LAS/LAZ-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1504"/>
         <source>input directory</source>
         <translation>Eingabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1505"/>
         <source>input wildcard(s)</source>
         <translation>Eingabeplatzhalter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1506"/>
         <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="1505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1507"/>
         <source>horizontal feet</source>
         <translation>Fuß horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
         <source>vertical feet</source>
         <translation>Fuß vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
         <source>files are flightlines</source>
         <translation>Dateien sind Fluglinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
         <source>apply file source ID</source>
         <translation>Dateiquellekennung anwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
         <source>step size / pixel size</source>
         <translation>Schrittweite/Pixelgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1510"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
         <source>output LAS/LAZ file</source>
         <translation>LAS/LAZ-Ausgabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1511"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1513"/>
         <source>output format</source>
         <translation>Ausgabeformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1514"/>
         <source>Output raster file</source>
         <translation>Ausgaberasterdatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1515"/>
         <source>Output vector file</source>
         <translation>Ausgabevektordatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1516"/>
         <source>output directory</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1517"/>
         <source>output appendix</source>
         <translation>Ausgabe Anhang</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1518"/>
         <source>empty temporary directory</source>
         <translation>Leeres Temporärverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1519"/>
         <source>additional command line parameter(s)</source>
         <translation>Weitere(r) Kommandozeilenparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1520"/>
         <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="1519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1521"/>
         <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="1520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1522"/>
         <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="1521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1523"/>
         <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="1522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1524"/>
         <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="1523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1525"/>
         <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="1524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1526"/>
         <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="1525"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1527"/>
         <source>transform (coordinates)</source>
         <translation>Umwandeln (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1528"/>
         <source>value for transform (coordinates)</source>
         <translation>Wert für Transformation (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1527"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1529"/>
         <source>second transform (coordinates)</source>
         <translation>zweite Umwandlung (Koordinaten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1530"/>
         <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="1529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1531"/>
         <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="1530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1532"/>
         <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="1531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1533"/>
         <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="1532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1534"/>
         <source>value for second transform (intensities, scan angles, GPS times, ...)</source>
         <translation>Wert für zweite Umwandlung (Intensität, Scanwinkel, GPS-Zeit, ...)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1535"/>
         <source>ignore points with this classification</source>
         <translation>Punkte dieser Klasse ignorieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1536"/>
         <source>also ignore points with this classification</source>
         <translation>auch Punkte dieser Klasse ignorieren</translation>
     </message>
@@ -12606,12 +12616,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="1538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1540"/>
         <source>LAStools command line</source>
         <translation>LAStools Kommandozeile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1541"/>
         <source>LAStools console output</source>
         <translation>LAStools-Konsolenausgabe</translation>
     </message>
@@ -12637,42 +12647,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="1543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1545"/>
         <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="1544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1546"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1548"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1549"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1550"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1551"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1552"/>
         <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>
@@ -12680,42 +12690,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="1554"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
         <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="1555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1558"/>
         <source>Length Grid</source>
         <translation>Längengitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1559"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1558"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1560"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1561"/>
         <source>Exponent</source>
         <translation>Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1562"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1563"/>
         <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>
@@ -12723,22 +12733,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="1565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1567"/>
         <source>LAStools folder</source>
         <translation>LAStools-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1568"/>
         <source>Fusion folder</source>
         <translation>Fusion-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1569"/>
         <source>Wine folder</source>
         <translation>Wine-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1570"/>
         <source>Tools for LiDAR data</source>
         <translation>Werkzeuge für LiDAR-Daten</translation>
     </message>
@@ -12746,37 +12756,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="1573"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1577"/>
         <source>Intersect layer</source>
         <translation>Layer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1578"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1579"/>
         <source>Intersect unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Schnitts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1580"/>
         <source>Intersections</source>
         <translation>Schnittpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1574"/>
         <source>Line intersections</source>
         <translation>Linienschnittpunkte</translation>
     </message>
@@ -12784,22 +12794,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="1583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1585"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1586"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1587"/>
         <source>Polygons from lines</source>
         <translation>Polygon aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1582"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1584"/>
         <source>Lines to polygons</source>
         <translation>Linien zu Polygonen</translation>
     </message>
@@ -12863,6 +12873,7 @@ Bitte vor der Ausführung von LAStools-Algorithmen einstellen.</translation>
     </message>
     <message>
         <location filename="../src/ui/qgisapp.ui" line="243"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1591"/>
         <source>Vect&or</source>
         <translation>&Vektor</translation>
     </message>
@@ -14403,37 +14414,37 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>MeanAndStdDevPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1590"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1596"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1597"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1598"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
         <source>Mean field</source>
         <translation>Durchschnittswert Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
         <source>StdDev field</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
         <source>Plot</source>
         <translation>Plot</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1595"/>
         <source>Mean and standard deviation plot</source>
         <translation>Mittel- und Standardabweichungsplott</translation>
     </message>
@@ -14441,32 +14452,32 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>MeanCoords</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1606"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1607"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1603"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1609"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1610"/>
         <source>Mean coordinates</source>
         <translation>Mittlere Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1599"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1605"/>
         <source>Mean coordinate(s)</source>
         <translation>Mittlere Koordinate(n)</translation>
     </message>
@@ -14474,37 +14485,37 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>Merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1609"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1615"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1610"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1616"/>
         <source>Layers to merge</source>
         <translation>Zusammenzuführende Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
         <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="1613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
         <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="1614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
         <source>Attribute type mismatch</source>
         <translation>Attributtyp nicht passend</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1617"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1608"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1614"/>
         <source>Merge vector layers</source>
         <translation>Vektorlayer zusammenführen</translation>
     </message>
@@ -14512,22 +14523,22 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>MergeData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1618"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1624"/>
         <source>Merge LAS Files</source>
         <translation>LAS-Dateien zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1619"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1626"/>
         <source>Input LAS files</source>
         <translation>LAS-Eingabedateien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1627"/>
         <source>Output merged LAS file</source>
         <translation>Zusammengefasste LAS-Ausgabedatei</translation>
     </message>
@@ -14535,12 +14546,12 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>MessageBarProgress</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
         <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="1626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
         <source>Problem executing algorithm</source>
         <translation>Problem bei Algorithmus-Ausführung</translation>
     </message>
@@ -14990,54 +15001,54 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>ModelerAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
         <source>Model</source>
         <translation>Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1637"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1632"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
         <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>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1633"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1639"/>
         <source>Wrong value %s for %s %s</source>
         <translation>Falscher Wert %s für %s %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1634"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1640"/>
         <source>Prepare algorithm: %s</source>
         <translation>Bereite Algorithmus vor: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1641"/>
         <source>Running %s [%i/%i]</source>
         <translation>Verarbeite %s [%i/%i]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1642"/>
         <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="1637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1643"/>
         <source>Failed</source>
         <translation>Fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1644"/>
         <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="1639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1645"/>
         <source>Model processed ok. Executed %i algorithms total</source>
         <translation>Modellverarbeitung OK. Ausgeführte Anzahl der Algorithmen: %i</translation>
     </message>
@@ -15045,22 +15056,22 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>ModelerAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1649"/>
         <source>Models folder</source>
         <translation>Modellverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1650"/>
         <source>Models</source>
         <translation>Modelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
         <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="1646"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
         <source>Could not load model %s
 %s</source>
         <translation>Konnte Modell nicht laden %s
@@ -15070,153 +15081,153 @@ Strg (Cmd) erhöht um 15 Grad.</translation>
 <context>
     <name>ModelerDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1656"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
         <source>[Enter model name here]</source>
         <translation>[Modellname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
         <source>[Enter group name here]</source>
         <translation>[Gruppenname]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
         <source>Empty model</source>
         <translation>Leeres Modell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
         <source>Save Model As Image</source>
         <translation>Modell als Bild speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1658"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
         <source>PNG files (*.png *.PNG)</source>
         <translation>PNG-Dateien (*.png *.PNG)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1665"/>
         <source>Save Model As Python Script</source>
         <translation>Modell als Pythonskript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
         <source>Python files (*.py *.PY)</source>
         <translation>Python-Dateien (*.py *.PY)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
         <source>Model exported</source>
         <translation>Modell exportiert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
         <source>Model was correctly exported.</source>
         <translation>Modell wurde korrekt exportiert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1669"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1670"/>
         <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="1665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1671"/>
         <source>Save Model</source>
         <translation>Modell speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
         <source>Processing models (*.model)</source>
         <translation>Verarbeitungsmodelle (*.model)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
         <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="1669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
         <source>Can't save model</source>
         <translation>Konnte Modell nicht speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1680"/>
         <source>Processing models (*.model *.MODEL)</source>
         <translation>Auswertungsmodelle (*.model *.MODEL)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1681"/>
         <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="1677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1683"/>
         <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="1656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1662"/>
         <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="1670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1676"/>
         <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="1671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1677"/>
         <source>Model saved</source>
         <translation>Modell gespeichert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1678"/>
         <source>Model was correctly saved.</source>
         <translation>Modell wurde korrekt gespeichert.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1679"/>
         <source>Open Model</source>
         <translation>Modell öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
         <source>Could not open model</source>
         <translation>Konnte Modell nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1684"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1659"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1660"/>
         <source>There are unsaved changes in model. Continue?</source>
         <translation>Ungesicherte Änderung am Modell. Fortfahren?</translation>
     </message>
@@ -15224,7 +15235,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerOnlyAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
         <source>Modeler-only tools</source>
         <translation>Nur-Modellierungswerkzeuge</translation>
     </message>
@@ -15232,157 +15243,157 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParameterDefinitionDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1692"/>
         <source>Parameter definition</source>
         <translation>Parameter Definitionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1693"/>
         <source>Parameter name</source>
         <translation>Parameter Namen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1694"/>
         <source>Checked</source>
         <translation>Überprüft</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1695"/>
         <source>Parent layer</source>
         <translation>Übergeordneter Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1711"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1717"/>
         <source>Required</source>
         <translation>Erforderlich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1718"/>
         <source>Yes</source>
         <translation>Ja</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1719"/>
         <source>No</source>
         <translation>Nein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1694"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
         <source>Shape type</source>
         <translation>Shape Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1696"/>
         <source>Allowed data type</source>
         <translation>Erlaubter Datentyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1697"/>
         <source>Any</source>
         <translation>Jeder</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1698"/>
         <source>Number</source>
         <translation>Number</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
         <source>String</source>
         <translation>Zeichenkette</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1701"/>
         <source>Point</source>
         <translation>Punkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1702"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1703"/>
         <source>Polygon</source>
         <translation>Polygon</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1704"/>
         <source>Data type</source>
         <translation>Daten Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1705"/>
         <source>Vector (any)</source>
         <translation>Vector (jeder)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
         <source>Vector (point)</source>
         <translation>Vector (Punkt)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1701"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
         <source>Vector (line)</source>
         <translation>Vektor (Linie)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1702"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
         <source>Vector (polygon)</source>
         <translation>Vektor (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1703"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1709"/>
         <source>Raster</source>
         <translation>Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1710"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1711"/>
         <source>Min/Max values</source>
         <translation>Min/Max Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1712"/>
         <source>Default value</source>
         <translation>Vorgabewert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1713"/>
         <source>0</source>
         <translation>0</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1709"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1715"/>
         <source>File</source>
         <translation>Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1710"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1716"/>
         <source>Folder</source>
         <translation>Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1720"/>
         <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="1715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1721"/>
         <source>Invalid parameter name</source>
         <translation>Ungültiger Parameter Name</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1722"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -15390,57 +15401,57 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>ModelerParametersDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
         <source>Description</source>
         <translation>Beschreibung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
         <source>Show advanced parameters</source>
         <translation>Zeige erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
         <source>(xmin, xmax, ymin, ymax)</source>
         <translation> (xmin, xmax, ymin, ymax)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
         <source>(x, y)</source>
         <translation>(x, y)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
         <source>Parent algorithms</source>
         <translation>Übergeordneter Algorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1731"/>
         <source>Parameters</source>
         <translation>Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1732"/>
         <source><p>Downloading algorithm help... Please wait.</p></source>
         <translation><p>Algorithmenhilfe wird heruntergeladen... Bitte warten.</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1727"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1733"/>
         <source><h2>No help available for this algorithm</h2></source>
         <translation><h2>Keine Hilfe für diesen Algorithmus verfügbar.</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1728"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1734"/>
         <source><h2>No help available for this algorithm</h2><p>{}</p></source>
         <translation><h2>Keine Hilfe für diesen Algorithmus verfügbar.</h2><p>{}</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1729"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1735"/>
         <source>Hide advanced parameters</source>
         <translation>Verstecke erweiterte Parameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1736"/>
         <source>'%s' from algorithm '%s'</source>
         <translation>'%s' von Algorithmus '%s'</translation>
     </message>
@@ -15448,7 +15459,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultilineTextPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
         <source>[Use text below]</source>
         <translation>[Benutze Text unterhalb]</translation>
     </message>
@@ -15456,22 +15467,22 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipartToSingleparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1739"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1740"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1746"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1747"/>
         <source>Single parts</source>
         <translation>Einzelteile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1738"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1744"/>
         <source>Multipart to singleparts</source>
         <translation>Mehr- zu einteilig</translation>
     </message>
@@ -15479,7 +15490,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleDirectorySelector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -15487,27 +15498,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleFileInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1759"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1749"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1755"/>
         <source>Add file</source>
         <translation>Datei hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1756"/>
         <source>Remove file(s)</source>
         <translation>Datei(en) entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
         <source>Remove all</source>
         <translation>Alle entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1758"/>
         <source>Select file(s)</source>
         <translation>Datei(en) wählen</translation>
     </message>
@@ -15515,17 +15526,17 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
         <source>Clear selection</source>
         <translation>Auswahl aufheben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1759"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1765"/>
         <source>Toggle selection</source>
         <translation>Auswahl umschalten</translation>
     </message>
@@ -15533,12 +15544,12 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>MultipleInputPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1769"/>
         <source>0 elements selected</source>
         <translation>0 Elemente ausgewählt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1770"/>
         <source>%d elements selected</source>
         <translation>%d Elemente ausgewählt</translation>
     </message>
@@ -15546,47 +15557,47 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NearestNeighbourAnalysis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1777"/>
         <source>Nearest neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1778"/>
         <source>Observed mean distance</source>
         <translation>Beobachtete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1779"/>
         <source>Expected mean distance</source>
         <translation>Erwartete mittlere Distanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1780"/>
         <source>Nearest neighbour index</source>
         <translation>Nächster Nachbar Index</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1781"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1782"/>
         <source>Z-Score</source>
         <translation>Z-Wertung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1774"/>
         <source>Nearest neighbour analysis</source>
         <translation>Nächster Nachbaranalyse</translation>
     </message>
@@ -15635,7 +15646,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NewPreconfiguredAlgorithmAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1786"/>
         <source>Create preconfigured algorithm</source>
         <translation>Vorkonfigurierten Algorithmus anlegen</translation>
     </message>
@@ -15651,87 +15662,87 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NumberInputDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
         <source>[Enter your formula here]</source>
         <translation>[Formel hier eingeben]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1791"/>
         <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="1786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1792"/>
         <source>Min X</source>
         <translation>Min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1787"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1793"/>
         <source>Max X</source>
         <translation>Max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1794"/>
         <source>Min Y</source>
         <translation>Min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1795"/>
         <source>Max Y</source>
         <translation>Max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
         <source>Values from raster layers statistics</source>
         <translation>Werte aus Rasterlayerstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
         <source>Mean</source>
         <translation>Durchschnitt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1799"/>
         <source>Std. deviation</source>
         <translation>Std.-abweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1800"/>
         <source>Max value</source>
         <translation>Max. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1795"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1801"/>
         <source>Min value</source>
         <translation>Min. Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1796"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1802"/>
         <source>Values from QGIS map canvas</source>
         <translation>Werte aus QGIS-Kartefenster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1803"/>
         <source>Current extent</source>
         <translation>Aktuelle Ausmaße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1804"/>
         <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="1799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1805"/>
         <source>Wrong expression</source>
         <translation>Falscher Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1806"/>
         <source>The expression entered is not correct</source>
         <translation>Der eingegebene Ausdruck ist ungültig</translation>
     </message>
@@ -15739,7 +15750,7 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>NumberInputPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1804"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1810"/>
         <source>Expression based input</source>
         <translation>Ausdrucksbasierte Eingabe</translation>
     </message>
@@ -15747,19 +15758,19 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
         <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="1809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
         <source>OTB execution command</source>
         <translation>OTB-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1816"/>
         <source>Adapter for %s not found</source>
         <translation>Adapter für %s nicht gefunden</translation>
     </message>
@@ -15767,49 +15778,49 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OTBAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
         <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="1816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
         <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="1817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1823"/>
         <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="1818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1824"/>
         <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="1819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1825"/>
         <source>OTB command line tools folder</source>
         <translation>OTB Kommandozeilen Werkzeuge Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1826"/>
         <source>OTB applications folder</source>
         <translation>OTB Anwendungsordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1827"/>
         <source>SRTM tiles folder</source>
         <translation>SRTM Kachel Ordner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1822"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1828"/>
         <source>Geoid file</source>
         <translation>Geoid Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1814"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1820"/>
         <source>Orfeo Toolbox (Image analysis)</source>
         <translation>Orfeo Toolbox (Bildanalyse)</translation>
     </message>
@@ -15817,32 +15828,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2Ogr</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1833"/>
         <source>[OGR] Conversion</source>
         <translation>[OGR] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1834"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
         <source>Destination Format</source>
         <translation>Zielformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
         <source>Creation options</source>
         <translation>Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1832"/>
         <source>Convert format</source>
         <translation>Format konvertieren</translation>
     </message>
@@ -15850,52 +15861,52 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1842"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1843"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1844"/>
         <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="1839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1845"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1846"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1847"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1842"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
         <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="1843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
         <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="1844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1850"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1841"/>
         <source>Buffer vectors</source>
         <translation>Vektoren puffern</translation>
     </message>
@@ -15903,32 +15914,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1849"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1855"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1850"/>
+        <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="1851"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
         <source>Clip layer</source>
         <translation>Layer zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
         <source>Clipped (polygon)</source>
         <translation>Abgeschnitten (Polygon)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1854"/>
         <source>Clip vectors by polygon</source>
         <translation>Vektoren durch Polygon zuschneiden</translation>
     </message>
@@ -15936,32 +15947,32 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrClipExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1858"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1864"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1859"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1865"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
         <source>Clip extent</source>
         <translation>Grenzen zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
         <source>Clipped (extent)</source>
         <translation>Abgeschnitten (Grenze)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1863"/>
         <source>Clip vectors by extent</source>
         <translation>Vektoren auf Ausmaße zuschneiden</translation>
     </message>
@@ -15969,67 +15980,67 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrDissolve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1873"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1874"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1875"/>
         <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="1870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1876"/>
         <source>Dissolve field</source>
         <translation>Auflösungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1877"/>
         <source>Output as multipart geometries</source>
         <translation>Ausgabe als mehrteilige Geometrien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1878"/>
         <source>Keep input attributes</source>
         <translation>Eingabeattribute beibehalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1879"/>
         <source>Count dissolved features</source>
         <translation>Aufgelöste Objekte zählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1880"/>
         <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="1875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1881"/>
         <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="1876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
         <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="1877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
         <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="1878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
         <source>Dissolved</source>
         <translation>Aufgelöst</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1872"/>
         <source>Dissolve polygons</source>
         <translation>Polygone auflösen</translation>
     </message>
@@ -16037,62 +16048,62 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrOneSideBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
         <source>Operation</source>
         <translation>Operation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1892"/>
         <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="1887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1893"/>
         <source>Buffer distance</source>
         <translation>Pufferabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1894"/>
         <source>Buffer side</source>
         <translation>Pufferseite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1895"/>
         <source>Dissolve all results</source>
         <translation>Alle Ergebnisse auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1896"/>
         <source>Dissolve by attribute</source>
         <translation>Nach Attribute auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
         <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="1892"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
         <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="1893"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
         <source>Single sided buffer</source>
         <translation>Doppelseitiger Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1888"/>
         <source>Single sided buffers (and offset lines) for lines</source>
         <translation>Einseitige Puffer (und Versatzlinien) für Linien</translation>
     </message>
@@ -16100,37 +16111,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrPointsOnLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1904"/>
         <source>[OGR] Geoprocessing</source>
         <translation>[OGR] Geoverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1905"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1906"/>
         <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="1901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1907"/>
         <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="1902"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1908"/>
         <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="1903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1909"/>
         <source>Points along lines</source>
         <translation>Punkte entlang Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1903"/>
         <source>Create points along lines</source>
         <translation>Punkte entlang von Linien erzeugen</translation>
     </message>
@@ -16138,92 +16149,92 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrTableToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1916"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1917"/>
         <source>Shape encoding</source>
         <translation>Shapekodierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1912"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1918"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
         <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="1914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
         <source>Primary key</source>
         <translation>Primärschlüssel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1921"/>
         <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="1917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1923"/>
         <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="1918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1924"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1925"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1926"/>
         <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="1921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1927"/>
         <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="1922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
         <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="1923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1929"/>
         <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="1924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1913"/>
         <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="1908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1914"/>
         <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="1922"/>
         <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>
@@ -16231,172 +16242,172 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGis</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
         <source>Shape encoding</source>
         <translation>Shapekodierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1938"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1936"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1942"/>
         <source>Host</source>
         <translation>Host</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
         <source>Port</source>
         <translation>Port</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
         <source>Username</source>
         <translation>Benutzername</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1945"/>
         <source>Database name</source>
         <translation>Datenbankname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1940"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1946"/>
         <source>Password</source>
         <translation>Passwort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1947"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1948"/>
         <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="1945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1951"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1946"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1952"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1953"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
         <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="1949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
         <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="1950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1956"/>
         <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="1952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1958"/>
         <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="1953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1959"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1954"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1960"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1955"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1961"/>
         <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="1956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1962"/>
         <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="1957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1963"/>
         <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="1958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1964"/>
         <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="1961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1967"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
         <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="1929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1935"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1939"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1940"/>
         <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="1935"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1941"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1949"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1950"/>
         <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="1959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1965"/>
         <source>Promote to Multipart</source>
         <translation>In Mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1966"/>
         <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="1951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1957"/>
         <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>
@@ -16404,152 +16415,152 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>Ogr2OgrToPostGisList</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1973"/>
         <source>Database (connection name)</source>
         <translation>Datenbank (Verbindungsname)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1974"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1975"/>
         <source>Shape encoding</source>
         <translation>Shapekodierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1976"/>
         <source>Output geometry type</source>
         <translation>Ausgabegeometrietyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1980"/>
         <source>Schema name</source>
         <translation>Schemaname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1981"/>
         <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="1978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1984"/>
         <source>Geometry column name</source>
         <translation>Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1985"/>
         <source>Vector dimensions</source>
         <translation>Vektordimensionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1986"/>
         <source>Distance tolerance for simplification</source>
         <translation>Abstandstoleranz für Vereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1987"/>
         <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="1982"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1988"/>
         <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="1983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1989"/>
         <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="1985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1991"/>
         <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="1986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1992"/>
         <source>Overwrite existing table</source>
         <translation>Vorhandene Tabelle überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
         <source>Append to existing table</source>
         <translation>An vorhandene Tabelle anhängen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1994"/>
         <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="1989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1995"/>
         <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="1990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1996"/>
         <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="1991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1997"/>
         <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="1994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2000"/>
         <source>Additional creation options</source>
         <translation>Zusätzliche Erzeugungsoptionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
         <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="1966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1977"/>
         <source>Assign an output CRS</source>
         <translation>Ein Ausgabe-KBS zuweisen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1978"/>
         <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="1973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1979"/>
         <source>Override source CRS</source>
         <translation>Quell-CRS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1982"/>
         <source>Primary key (new field)</source>
         <translation>Primärschlüssel (Neues Feld)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1983"/>
         <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="1992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1998"/>
         <source>Promote to Multipart</source>
         <translation>In mehrteilige umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1999"/>
         <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="1984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="1990"/>
         <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>
@@ -16557,27 +16568,27 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrInfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2005"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2000"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2006"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2007"/>
         <source>Summary output only</source>
         <translation>Nur Zusammenfassung ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2008"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="1998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2004"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -16585,37 +16596,37 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OgrSql</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2012"/>
         <source>Execute SQL</source>
         <translation>SQL-Anweisung ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2013"/>
         <source>[OGR] Miscellaneous</source>
         <translation>[OGR] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2014"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2015"/>
         <source>SQL</source>
         <translation>SQL</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2016"/>
         <source>Dialect</source>
         <translation>Dialekt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2011"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2017"/>
         <source>SQL result</source>
         <translation>SQL-Ergebnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2012"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2018"/>
         <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>
@@ -16623,12 +16634,12 @@ Mehr Informationen.im Protokoll.</translation>
 <context>
     <name>OpenViewerAction</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2022"/>
         <source>Unable to open viewer</source>
         <translation>Konnte Anzeige nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2023"/>
         <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.
@@ -16707,37 +16718,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OrientedMinimumBoundingBox</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2021"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2027"/>
         <source>Oriented minimum bounding box</source>
         <translation>Minimaler gerichteter Umgrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2022"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2028"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2029"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2030"/>
         <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="2025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2031"/>
         <source>Oriented_MBBox</source>
         <translation>Minimale orientierte Umrandungsgrenze</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2032"/>
         <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="2027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2033"/>
         <source>Can't calculate an OMBB for feature {0}.</source>
         <translation>Kann MOUG für Objekt {0} nicht bestimmen.</translation>
     </message>
@@ -16745,12 +16756,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputFile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2037"/>
         <source>All files(*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2032"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2038"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien(*.%s)</translation>
     </message>
@@ -16758,7 +16769,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputHTML</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2042"/>
         <source>HTML files(*.html)</source>
         <translation>HTML Dateien (*.html)</translation>
     </message>
@@ -16766,7 +16777,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2040"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2046"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16774,57 +16785,57 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputSelectionPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2050"/>
         <source>[Save to temporary file]</source>
         <translation>[In temporärer Datei speichern]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2051"/>
         <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="2046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2052"/>
         <source>Save to file...</source>
         <translation>In Datei speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2053"/>
         <source>Use expression...</source>
         <translation>Ausdruck verwenden...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2054"/>
         <source>Save to memory layer</source>
         <translation>In Memory-Layer speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2055"/>
         <source>Save to Spatialite table...</source>
         <translation>In Spatialite-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2056"/>
         <source>Save to PostGIS table...</source>
         <translation>In PostGIS-Tabelle speichern...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2057"/>
         <source>Expression based output</source>
         <translation>Ausdrucksbasierte Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
         <source>Save Spatialite</source>
         <translation>Speichere Spatialite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2059"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2060"/>
         <source>Select directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
@@ -16832,7 +16843,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>OutputVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2064"/>
         <source>%s files (*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16876,12 +16887,12 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterMultipleInput</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2068"/>
         <source>All files (*.*)</source>
         <translation>Alle Dateien (*.*)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2069"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16889,7 +16900,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterRaster</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2073"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16897,7 +16908,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2071"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2077"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16905,7 +16916,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParameterVector</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2075"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2081"/>
         <source>%s files(*.%s)</source>
         <translation>%s Dateien (*.%s)</translation>
     </message>
@@ -16913,37 +16924,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>ParametersPanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2079"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2085"/>
         <source>[Not selected]</source>
         <translation>[nicht gewählt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2081"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2087"/>
         <source> (x, y)</source>
         <translation> (x, y)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2088"/>
         <source> [optional]</source>
         <translation> [optional]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2089"/>
         <source>Iterate over this layer</source>
         <translation>Iteriere über diesen Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2084"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2090"/>
         <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="2085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2091"/>
         <source>[not set]</source>
         <translation>[nicht gesetzt]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2080"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2086"/>
         <source> (xmin, xmax, ymin, ymax)</source>
         <translation> (xmin, xmax, ymin, ymax)</translation>
     </message>
@@ -16951,42 +16962,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglas</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
         <source>Peuker Douglas</source>
         <translation>Peuker-Douglas</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2091"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2097"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2092"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2098"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2093"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2099"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2100"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2101"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2102"/>
         <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>
@@ -16994,42 +17005,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PeukerDouglasMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2100"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
         <source>Peuker Douglas (multifile)</source>
         <translation>Peuker-Douglas (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2101"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2102"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2108"/>
         <source>Elevation Grid</source>
         <translation>Höhen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2103"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2109"/>
         <source>Center Smoothing Weight</source>
         <translation>Glättungsgewichtung Mitte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2110"/>
         <source>Side Smoothing Weight</source>
         <translation>Seitenglättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2111"/>
         <source>Diagonal Smoothing Weight</source>
         <translation>Diagonale Glättungsgewichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2112"/>
         <source>Stream Source Grid</source>
         <translation>Strom Quellennetz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
         <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>
@@ -17037,57 +17048,57 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointDistance</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2112"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2118"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2119"/>
         <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="2114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2120"/>
         <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="2115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2121"/>
         <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="2116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2122"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2123"/>
         <source>Input unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld der Eingabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2124"/>
         <source>Target point layer</source>
         <translation>Zielpunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2119"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
         <source>Target unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld des Ziels</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2120"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
         <source>Output matrix type</source>
         <translation>Typ der Ausgabematrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2121"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
         <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="2111"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2117"/>
         <source>Distance matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
@@ -17095,32 +17106,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsDisplacement</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2132"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2133"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
         <source>Displacement distance</source>
         <translation>Verlagerungsdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
         <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="2130"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
         <source>Displaced</source>
         <translation>Versetzt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2131"/>
         <source>Points displacement</source>
         <translation>Punktversatz</translation>
     </message>
@@ -17128,27 +17139,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2141"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2142"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2143"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
         <source>Points along line</source>
         <translation>Punkte entlang Linie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2140"/>
         <source>Generate points (pixel centroids) along line</source>
         <translation>Punkte (Pixelzentren) entlang einer Linie erzeugen</translation>
     </message>
@@ -17156,27 +17167,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsFromPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2149"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2150"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2151"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
         <source>Points from polygons</source>
         <translation>Punkte aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2142"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2148"/>
         <source>Generate points (pixel centroids) inside polygons</source>
         <translation>Punkte (Pixelzentren) in Polygonen erzeugen</translation>
     </message>
@@ -17184,32 +17195,32 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygon</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2157"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2158"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2159"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2160"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2161"/>
         <source>Count</source>
         <translation>Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2150"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2156"/>
         <source>Count points in polygon</source>
         <translation>Punkte in Polygon zählen</translation>
     </message>
@@ -17217,37 +17228,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonUnique</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2160"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2166"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2161"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2167"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2168"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
         <source>Class field</source>
         <translation>Klassenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2171"/>
         <source>Unique count</source>
         <translation>Eindeutige Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2159"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2165"/>
         <source>Count unique points in polygon</source>
         <translation>Eindeutige Punkte in Polygon zählen</translation>
     </message>
@@ -17255,37 +17266,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsInPolygonWeighted</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2176"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2177"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2178"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2179"/>
         <source>Weight field</source>
         <translation>Gewichtungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2180"/>
         <source>Count field name</source>
         <translation>Zählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2181"/>
         <source>Weighted count</source>
         <translation>Gewichtete Anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2175"/>
         <source>Count points in polygon(weighted)</source>
         <translation>Punkte in Polygon zählen (gewichtet)</translation>
     </message>
@@ -17293,37 +17304,37 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsLayerFromTable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2186"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2181"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2187"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2182"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2188"/>
         <source>X field</source>
         <translation>X-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2183"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2189"/>
         <source>Y field</source>
         <translation>Y-Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2190"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2191"/>
         <source>Points from table</source>
         <translation>Punkte aus Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2185"/>
         <source>Points layer from table</source>
         <translation>Punktlayer aus Tabelle</translation>
     </message>
@@ -17331,42 +17342,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PointsToPaths</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2190"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2191"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2197"/>
         <source>Input point layer</source>
         <translation>Eingabepunktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2192"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2198"/>
         <source>Group field</source>
         <translation>Gruppierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2199"/>
         <source>Order field</source>
         <translation>Sortierungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
         <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="2195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
         <source>Paths</source>
         <translation>Pfade</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
         <source>Directory</source>
         <translation>Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2189"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2195"/>
         <source>Points to path</source>
         <translation>Punkte zu Weg</translation>
     </message>
@@ -17374,27 +17385,27 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolarPlot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2207"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2208"/>
         <source>Input table</source>
         <translation>Tabelle eingeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2203"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2209"/>
         <source>Category name field</source>
         <translation>Kategorienamesfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2204"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2210"/>
         <source>Value field</source>
         <translation>Wertfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2206"/>
         <source>Polar plot</source>
         <translation>Polarplot</translation>
     </message>
@@ -17402,42 +17413,42 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolyClipData</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2217"/>
         <source>Mask layer</source>
         <translation>Maskenlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2216"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
         <source>Poly Clip Data</source>
         <translation>Poly-Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
         <source>Points</source>
         <translation>Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2218"/>
         <source>Output clipped LAS file</source>
         <translation>Zugeschnittene LAS-Datei ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2213"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
         <source>Use Shape attribute</source>
         <translation>Shapeattribut nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2214"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
         <source>Shape field index</source>
         <translation>Shapefeldindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2215"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
         <source>Shape value</source>
         <translation>Shapewert</translation>
     </message>
@@ -17445,52 +17456,52 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2231"/>
         <source>Processing lines...</source>
         <translation>Verarbeite Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2232"/>
         <source>Noding lines...</source>
         <translation>Bestimme Knoten in Linien...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2233"/>
         <source>Polygonizing...</source>
         <translation>Polygonisiert...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2234"/>
         <source>No polygons were created!</source>
         <translation>Es wurden keine Polygone erzeugt!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2226"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2227"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2228"/>
         <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="2223"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2229"/>
         <source>Create geometry columns</source>
         <translation>Geometriespalten erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2224"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2230"/>
         <source>Polygons from lines</source>
         <translation>Polygone aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2225"/>
         <source>Polygonize</source>
         <translation>Polygonbildung</translation>
     </message>
@@ -17498,22 +17509,22 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PolygonsToLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2233"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2234"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2240"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2235"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
         <source>Lines from polygons</source>
         <translation>Linien aus Polygonen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2238"/>
         <source>Polygons to lines</source>
         <translation>Polygone zu Linien</translation>
     </message>
@@ -17521,24 +17532,24 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PostGISExecuteSQL</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2242"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2248"/>
         <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="2240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2246"/>
         <source>Database</source>
         <translation>Datenbank</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2247"/>
         <source>SQL query</source>
         <translation>SQL-Abfrage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2245"/>
         <source>PostGIS execute SQL</source>
         <translation>PostGIS-SQL-Ausführen</translation>
     </message>
@@ -17554,7 +17565,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Postprocessing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
         <source>Loading resulting layers</source>
         <translation>Lade Ergebnis Layer</translation>
     </message>
@@ -17562,22 +17573,22 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PreconfiguredAlgorithmDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2250"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2256"/>
         <source>OK</source>
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2251"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
         <source>Unable to execute algorithm</source>
         <translation>Konnte Algorithmus nicht ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2252"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2258"/>
         <source><b>Missing parameter value: %s</b></source>
         <translation><b>Fehlender Parameterwert: %s</b></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2259"/>
         <source>Wrong or missing parameter values</source>
         <translation>Falsche oder fehlende Parameterwerte</translation>
     </message>
@@ -17585,7 +17596,7 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>PreconfiguredAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2263"/>
         <source>Preconfigured algorithms</source>
         <translation>Vorkonfigurierte Algorithmen</translation>
     </message>
@@ -17606,115 +17617,114 @@ Bitte die Processing-Einstellung überprüfen.</translation>
 <context>
     <name>Processing</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2267"/>
         <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="2262"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2268"/>
         <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="2263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2269"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2264"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2270"/>
         <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="2265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
         <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="2266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2272"/>
         <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="2267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2273"/>
         <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="2268"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
         <source>Error: Wrong number of parameters</source>
         <translation>Fehler: Falsche Parameteranzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2269"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
         <source>Error: Wrong parameter value: </source>
         <translation>Fehler: Falscher Parameterwert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2270"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2276"/>
         <source>Error: Wrong output value: </source>
         <translation>Fehler: Falscher Ausgabewert:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2277"/>
         <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="2272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2278"/>
         <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="2273"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2279"/>
         <source>There were errors executing the algorithm.</source>
         <translation>Fehler bei der Ausführung des Algorithmus.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2274"/>
         <source>Vect&or</source>
-        <translation>Vekt&or</translation>
+        <translation type="obsolete">Vekt&or</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2275"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2280"/>
         <source>&Analysis Tools</source>
         <translation>&Analyse-Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
         <source>&Research Tools</source>
         <translation>&Forschungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2282"/>
         <source>&Geoprocessing Tools</source>
         <translation>&Geoverarbeitungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2283"/>
         <source>G&eometry Tools</source>
         <translation>G&eometrie-Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2284"/>
         <source>&Data Management Tools</source>
         <translation>&Datenmanagement-Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2285"/>
         <source>Missing dependency</source>
         <translation>Fehlende Abhängigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2286"/>
         <source><h3>Missing dependency. This algorithm cannot be run :-( </h3>
 %s</source>
         <translation><h3>Fehlende Abhängigkeiten. Dieser Algorithmus kann nicht ausgeführt werden :-( </h3>
@@ -17724,97 +17734,97 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingConfig</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2285"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2286"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
         <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="2287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2292"/>
         <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="2288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2293"/>
         <source>Use only selected features</source>
         <translation>Nur gewählte Objekte nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2294"/>
         <source>Use filename as layer name</source>
         <translation>Benutze Dateinamen als Layernamen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2295"/>
         <source>Show recently executed algorithms</source>
         <translation>Zeige zuletzt ausgeführte Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2291"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2296"/>
         <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="2292"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
         <source>Output folder</source>
         <translation>Ausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2293"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
         <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="2294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
         <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="2295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2300"/>
         <source>Style for raster layers</source>
         <translation>Stil für Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2296"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2301"/>
         <source>Style for point layers</source>
         <translation>Stil für Punktlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2297"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
         <source>Style for line layers</source>
         <translation>Stil für Linienlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2298"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
         <source>Style for polygon layers</source>
         <translation>Stil für Polygonlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2304"/>
         <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="2300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2305"/>
         <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="2301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2306"/>
         <source>Recent algs</source>
         <translation>Kürzliche verwendete Algorithmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2307"/>
         <source>Default output vector layer extension</source>
         <translation>Erweiterungsvoreingestellung für Vektorlayerausgaben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2308"/>
         <source>Default output raster layer extension</source>
         <translation>Erweiterungsvoreingestellung für Rasterlayerausgaben</translation>
     </message>
@@ -17822,7 +17832,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingLog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2307"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
         <source>Processing</source>
         <translation>Verarbeitung</translation>
     </message>
@@ -17830,42 +17840,42 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
 <context>
     <name>ProcessingPlugin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
         <source>Pro&cessing</source>
         <translation>&Verarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
         <source>&Toolbox</source>
         <translation>&Werkzeugkiste</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
         <source>Graphical &Modeler...</source>
         <translation>Grafische &Modellierung...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2314"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2319"/>
         <source>&History...</source>
         <translation>&Historie...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2315"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2320"/>
         <source>&Options...</source>
         <translation>&Optionen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2316"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2321"/>
         <source>&Results Viewer...</source>
         <translation>&Ergebnisanzeige...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2322"/>
         <source>&Commander</source>
         <translation>&Commander</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2323"/>
         <source>Ctrl+Alt+M</source>
         <translation>Strg+Alt+M</translation>
     </message>
@@ -17874,62 +17884,62 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
     <name>ProcessingToolbox</name>
     <message>
         <location filename="../python/plugins/processing/ui/ProcessingToolbox.ui" line="14"/>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2322"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
         <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="2323"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
         <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="2324"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2329"/>
         <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="2325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2330"/>
         <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="2326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2331"/>
         <source>Search...</source>
         <translation>Suchen...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2327"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2332"/>
         <source>Execute</source>
         <translation>Ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2328"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2333"/>
         <source>Execute as batch process</source>
         <translation>Als Stapelprozeß ausführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2329"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2334"/>
         <source>Edit rendering styles for outputs</source>
         <translation>Darstellungsstile zur Ausgabe bearbeiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2335"/>
         <source>Error executing algorithm</source>
         <translation>Fehler bei Algorithmenausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
         <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="2332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2337"/>
         <source>Recently used algorithms</source>
         <translation>Zuletzt verwendete Algorithmen</translation>
     </message>
@@ -17987,7 +17997,7 @@ Dies kann zu unerwarteten Ergebnissen führen.</translation>
         <translation>Stacktrace</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2336"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2341"/>
         <location filename="../python/python-i18n.cpp" line="30"/>
         <source>View message log</source>
         <translation>Protokoll anzeigen</translation>
@@ -18462,7 +18472,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="2340"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
         <source>QGIS geoalgorithms</source>
         <translation>QGIS-Geo-Algorithmen</translation>
     </message>
@@ -18616,27 +18626,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="11891"/>
+        <location filename="../src/app/qgisapp.cpp" line="11889"/>
         <source>minidump written to %1</source>
         <translation>Minidump in %1 geschrieben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11895"/>
+        <location filename="../src/app/qgisapp.cpp" line="11893"/>
         <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="11902"/>
+        <location filename="../src/app/qgisapp.cpp" line="11900"/>
         <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="11905"/>
+        <location filename="../src/app/qgisapp.cpp" line="11903"/>
         <source>Crash dumped</source>
         <translation>Absturz abgebildet</translation>
     </message>
     <message>
-        <location filename="../src/app/main.cpp" line="761"/>
+        <location filename="../src/app/main.cpp" line="766"/>
         <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>
@@ -18774,23 +18784,23 @@ Sie wird deaktiviert.</translation>
         <translation>Fehler beim Lesen der Metadaten der Erweiterung %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1393"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1397"/>
         <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="1396"/>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1505"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1400"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1509"/>
         <location filename="../src/core/qgsvectorlayerrenderer.cpp" line="216"/>
         <source>CRS</source>
         <translation>KBS</translation>
     </message>
     <message>
         <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="136"/>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="461"/>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1244"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="465"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1248"/>
         <location filename="../src/core/qgsdistancearea.cpp" line="237"/>
         <location filename="../src/providers/grass/qgsgrassgislib.cpp" line="231"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="3341"/>
@@ -18800,12 +18810,12 @@ Fehler(%2): %3</translation>
         <translation>Erzeugtes KBS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1505"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1509"/>
         <source>Saved user CRS [%1]</source>
         <translation>Benutzer-KBS gespeichert [%1]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1806"/>
+        <location filename="../src/core/qgscoordinatereferencesystem.cpp" line="1810"/>
         <source>Imported from GDAL</source>
         <translation>Importiert aus GDAL</translation>
     </message>
@@ -19159,20 +19169,20 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="857"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1964"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="2201"/>
-        <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>
@@ -19184,20 +19194,20 @@ Fehler(%2): %3</translation>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1583"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="1964"/>
         <location filename="../src/core/geometry/qgsgeos.cpp" line="2201"/>
-        <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>
@@ -19418,715 +19428,715 @@ Fehler(%2): %3</translation>
         <translation>Konnte Autentifizierungsmethodenerweiterung %1 nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="196"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="197"/>
         <source>OGR driver for '%1' not found (OGR error: %2)</source>
         <translation>OGR-Treiber für '%1' nicht gefunden (OGR-Fehler: %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="230"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="231"/>
         <source>trimming attribute name '%1' to ten significant characters produces duplicate column name.</source>
         <translation>Kürzung des Attributnamens '%1' auf 10 signifikante Stellen führt zu doppelten Spaltennamen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="300"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="301"/>
         <source>creation of data source failed (OGR error:%1)</source>
         <translation>Erzeugung der Datenquelle gescheitert (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="393"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="394"/>
         <source>creation of layer failed (OGR error:%1)</source>
         <translation>Layererzeugung schlug fehl (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="489"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="496"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="376"/>
         <source>unsupported type for field %1</source>
         <translation>Feldtyp für %1 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="542"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="549"/>
         <source>creation of field %1 failed (OGR error: %2)</source>
         <translation>Erzeugung des Felds %1 gescheitert (OGR-Fehler: %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="578"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="585"/>
         <source>created field %1 not found (OGR error: %2)</source>
         <translation>Erzeugtes Feld %1 nicht gefunden (OGR-Fehler: %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1950"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1957"/>
         <source>Invalid variant type for field %1[%2]: received %3 with type %4</source>
         <translation>Ungültiger Typ für Feld %1[%2]: %3 mit Typ %4 empfangen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="519"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1955"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2013"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2024"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2040"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2073"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="526"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1962"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2020"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2031"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2047"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2080"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="67"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1964"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2471"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2488"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2536"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2562"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2631"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2637"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2655"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1985"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2492"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2509"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2557"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2583"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2652"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2658"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2676"/>
         <source>OGR</source>
         <translation>OGR</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="514"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="521"/>
         <source>no available replacement for internal fieldname ogc_fid found</source>
         <translation>Keinen verfügbaren Ersatz für den internen Feldnamen ogc_fid gefunden</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="519"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="526"/>
         <source>Reserved attribute name ogc_fid replaced with %1</source>
         <translation>Reservierten Attributnamen ogc_fid durch %1 ersetzt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="646"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="653"/>
         <source>By default, BNA files are created in multi-line format. For each record, the first line contains the identifiers and the type/number of coordinates to follow. Each following line contains a pair of coordinates.</source>
         <translation>Voreingestellt ist, dass BNA-Dateien in mehrzeiligem Format erzeugt werden.  Jeder Datensatz enthält in der ersten Zeile die Bezeichner und den Typ/Anzahl der Koordinaten. Jede folgende Zeile enthält ein Koordinatenpaar.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2010"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2021"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2037"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2017"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2028"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2044"/>
         <source>Feature geometry not imported (OGR error: %1)</source>
         <translation>Objektgeometrie nicht importiert (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2071"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2078"/>
         <source>Feature creation error (OGR error: %1)</source>
         <translation>Objekterzeugungsfehler (OGR-Fehler: %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2356"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2363"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="377"/>
         <source>Failed to transform a point while drawing a feature with ID '%1'. Writing stopped. (Exception: %2)</source>
         <translation>Transformation eines Punkts schlug beim Zeichnen eines Objekts mit der ID '%1' fehl. Schreiben beendet (Ausnahme %2)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2381"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2388"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="328"/>
         <source>Feature write errors:</source>
         <translation>Objektschreibfehler:</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2391"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2398"/>
         <location filename="../src/core/qgsvectorlayerimport.cpp" line="355"/>
         <source>Stopping after %1 errors</source>
         <translation>Abbruch nach %1 Fehlern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2414"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2770"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2421"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2777"/>
         <source>
 Only %1 of %2 features written.</source>
         <translation>
 Nur %1 von %2 Objekten geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="622"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1976"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="629"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1997"/>
         <source>Arc/Info ASCII Coverage</source>
         <translation>Arc/Info ASCII Coverage</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="687"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1981"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="694"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2002"/>
         <source>Atlas BNA</source>
         <translation>Atlas BNA</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1986"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2007"/>
         <source>Comma Separated Value</source>
         <translation>Komma-separierte Werte [CSV]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="802"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="809"/>
         <source>ESRI Shapefile</source>
         <translation>ESRI-Shapedatei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="832"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2018"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2020"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="839"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2039"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2041"/>
         <source>FMEObjects Gateway</source>
         <translation>FMEObjects Gateway</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="157"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="158"/>
         <source>Empty filename given</source>
         <translation>Leerer Dateiname angegeben</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="635"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="642"/>
         <source>New BNA files are created by the systems default line termination conventions. This may be overridden here.</source>
         <translation>Neue BNA-Dateien werden normalerweise mit systemüblichen Zeilenenden erzeugt. Dies kann hier geändert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="654"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="661"/>
         <source>BNA records may contain from 2 to 4 identifiers per record. Some software packages only support a precise number of identifiers. You can override the default value (2) by a precise value</source>
         <translation>BNA-Datensätze enthalten 2 bis 4 Bezeichner je Datensatz.  Einige Softwarepakete unterstützen nur eine bestimmte Bezeichneranzahl. Sie können hier die voreingestellte Anzahl (2) durch einen bestimmten Wert ersetzen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="666"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="673"/>
         <source>The BNA writer will try to recognize ellipses and circles when writing a polygon. This will only work if the feature has previously been read from a BNA file. As some software packages do not support ellipses/circles in BNA data file, it may be useful to tell the writer by specifying ELLIPSES_AS_ELLIPSES=NO not to export them as such, but keep them as polygons.</source>
         <translation>Die BNA-Ausgabe versucht Ellipsen und Kreise beim Schreiben eines Polygons zu erkennen. Die funktioniert nur, wenn das Objekt vorher aus einer BNA-Datei gelesen wurde. Da mansche Software Ellipsen/Kreise in BNA-Dateien nicht unterstützt, kann es sinnvoll sein der Ausgabe über ELLIPSES_AS_ELLIPSES=NO mitzuteilen, dies nicht als solche zu schreiben, sondern als Polygone zu belassen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="675"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="682"/>
         <source>Limit the number of coordinate pairs per line in multiline format.</source>
         <translation>Die Anzahl der Koordinaten je Zeile im mehrzeiligen Format beschränken.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="680"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="687"/>
         <source>Set the number of decimal for coordinates. Default value is 10.</source>
         <translation>Die Anzahl der Nachkommastellen für Koordinaten. Voreinstellung 10.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="712"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="719"/>
         <source>By default, the geometry of a feature written to a .csv file is discarded. It is possible to export the geometry in its WKT representation by specifying GEOMETRY=AS_WKT. It is also possible to export point geometries into their X,Y,Z components by specifying GEOMETRY=AS_XYZ, GEOMETRY=AS_XY or GEOMETRY=AS_YX.</source>
         <translation>Die Geometrie eines Objekts wird normalerweise nicht ausgegeben.  Durch die Angabe von GEOMETRY_ASWKT ist es allerdings möglich eine WKT-Darstellung zu exportieren. Für Punkte kann man mit GEOMETRY=AS_XYZ, GEOMETRY=AS_XY or GEOMETRY=AS_YX kann man auch die einzelnen X,Y,Z-Komponenten ausgeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="727"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="734"/>
         <source>Create the associated .csvt file to describe the type of each column of the layer and its optional width and precision.</source>
         <translation>Eine zugehörigte .csvt-Datei erzeugen, um die den Typ und ggf. Breite und Genauigkeit der Spalte anzugeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="742"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="749"/>
         <source>Write a UTF-8 Byte Order Mark (BOM) at the start of the file.</source>
         <translation>UTF-8-Byte-Order-Mark (BOM) am Dateianfang schreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="749"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="756"/>
         <source>Comma Separated Value [CSV]</source>
         <translation>Komma-getrennte Werte [CSV]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="762"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="769"/>
         <source>Override the type of shapefile created. Can be one of NULL for a simple .dbf file with no .shp file, POINT, ARC, POLYGON or MULTIPOINT for 2D, or POINTZ, ARCZ, POLYGONZ or MULTIPOINTZ for 3D. Shapefiles with measure values are not supported, nor are MULTIPATCH files.</source>
         <translation>Typ der Shapedatei ändern. Kann NULL für eine einfache DBF-Datei ohne .shp-Datei sein, POINT, ARC, POLYGON oder MULTIPOINT für 2D oder POINTZ, ARCZ, POLYGONZ oder MULTIPOINTZ für 3D.  Shapedateien mit Maßwerten oder MULTIPATCH-Dateien werden nicht unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="785"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="792"/>
         <source>set the encoding value in the DBF file. The default value is LDID/87. It is not clear what other values may be appropriate.</source>
         <translation>DBF-Zeichenkodierung der DBF-Datei festlegen. Die Voreinstellung ist LDID/87. Es ist unklar welche anderen Werte geeignet sind.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="795"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="802"/>
         <source>Set to YES to resize fields to their optimal size.</source>
         <translation>Auf YES setzen, um die Felder auf ihre optimale Größe zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="817"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="824"/>
         <source>DBF File</source>
         <translation>DBF-Datei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="845"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="852"/>
         <source>Set to YES to write a bbox property with the bounding box of the geometries at the feature and feature collection level.</source>
         <translation>Auf YES setzten, um die BBOX-Eigenschaft mit den Abmessungen der Geometrie auf Objekt- und Objektsammlungsebene zu setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="851"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="858"/>
         <source>Maximum number of figures after decimal separator to write in coordinates. Default to 15. Truncation will occur to remove trailing zeros.</source>
         <translation>Maximalzahl der zuschreibenden Nachkommastellen der Koordinaten. Voreingestellt ist 15. Schließende Nullen werden abgeschnitten.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="859"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2026"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="866"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2047"/>
         <source>GeoJSON</source>
         <translation>GeoJSON</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="873"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="880"/>
         <source>whether the document must be in RSS 2.0 or Atom 1.0 format. Default value : RSS</source>
         <translation>Ob das Dokument RSS 2.0- oder Atom 1.0-Format haben soll.  Voreingestellung: RSS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="882"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="889"/>
         <source>The encoding of location information. Default value : SIMPLE. W3C_GEO only supports point geometries. SIMPLE or W3C_GEO only support geometries in geographic WGS84 coordinates.</source>
         <translation>Die Kodierung der Positionsinformation. Voreinstellung: SIMPLE. W3C_GEO unterstützt nur Punktgeomtrie. SIMPLE oder W3C_GEO unterstützen nur Geometrien ins geographischen WGS84-Koordinaten.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="902"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="909"/>
         <source>If defined to NO, only <entry> or <item> elements will be written. The user will have to provide the appropriate header and footer of the document.</source>
         <translation>Wenn auf NO gesetzt werden nur <entry> oder <item>-Elemente geschrieben. Der Benutzer muß die passenden Kopf- und Fußzeilen des Dokuments bereitstellen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="908"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="915"/>
         <source>XML content that will be put between the <channel> element and the first <item> element for a RSS document, or between the xml tag and the first <entry> element for an Atom document. </source>
         <translation>XML-Inhalt der zwischen <channel>-Element und das erste <item>-Element des RSS-Dokuments bzw. zwischen das XML-Tag und das erste <entry>-Element des Atom-Dokuments gesetzt wird. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="915"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="922"/>
         <source>Value put inside the <title> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <title>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="921"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="928"/>
         <source>Value put inside the <description> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <description>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="927"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="934"/>
         <source>Value put inside the <link> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <link>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="933"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="940"/>
         <source>Value put inside the <updated> element in the header. Should be formatted as a XML datetime. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert der in das <updated>-Element im Kopf gesetzt wird. Sollte als XML-datetime formatiert werden. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="940"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="947"/>
         <source>Value put inside the <author><name> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <author><name>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="946"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="953"/>
         <source>Value put inside the <id> element in the header. If not provided, a dummy value will be used as that element is compulsory.</source>
         <translation>Wert, der in das <id>-Element im Kopf gesetzt wird. Wenn nicht angegeben, wird ein Dummywert benutzt, da das Element zwingend ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="954"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2031"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="961"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2052"/>
         <source>GeoRSS</source>
         <translation>GeoRSS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="968"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="975"/>
         <source>If provided, this URI will be inserted as the schema location. Note that the schema file isn't actually accessed by OGR, so it is up to the user to ensure it will match the schema of the OGR produced GML data file.</source>
         <translation>Wenn angegeben wird dies URI als Schemaort angegeben. Zu beachten ist, dass die Schemadatei nicht von OGR gelesen wird, daher obliegt es dem Benutzer sicherzustellen, dass es der durch OGR erzeugten GML-Datendatei entspricht.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="976"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="983"/>
         <source>This writes a GML application schema file to a corresponding .xsd file (with the same basename). If INTERNAL is used the schema is written within the GML file, but this is experimental and almost certainly not valid XML. OFF disables schema generation (and is implicit if XSISCHEMAURI is used).</source>
         <translation>Dies schreibt eine GML-Anwendungsschemadatei in die korrespondierende .xsd-Datei (mit dem gleichen Namensbasis). Wenn INTERNAL verwendet wird, wird das Schema in die GML-Datei geschrieben, aber dies ist experimentell und mit Sicherheit kein gültiges XML. OFF schaltet die Schemagenerierung ab (und wird implizit angenommen, wenn XSISCHEMAUIR verwendet wird).</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="989"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="996"/>
         <source>This is the prefix for the application target namespace.</source>
         <translation>Dies ist das Präfix für den Anwendungsszielnamensraum.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="994"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1001"/>
         <source>Can be set to TRUE to avoid writing the prefix of the application target namespace in the GML file.</source>
         <translation>Kann TRUE sein, um das Schreiben des Anwendungsnamensraumspräfix in die GML-Dateien zu vermeiden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1000"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1007"/>
         <source>Defaults to 'http://ogr.maptools.org/'. This is the application target namespace.</source>
         <translation>Voreinstellung: 'http://ogr.maptools.org/'. Dies ist der Anwendungszielnamensraum.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1006"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1013"/>
         <source>If not specified, GML2 will be used.</source>
         <translation>Wenn nicht angegeben, wird GML2 genutzt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1016"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1023"/>
         <source>only valid when FORMAT=GML3/GML3Degree/GML3.2) Default to YES. If YES, SRS with EPSG authority will be written with the 'urn:ogc:def:crs:EPSG::' prefix. In the case, if the SRS is a geographic SRS without explicit AXIS order, but that the same SRS authority code imported with ImportFromEPSGA() should be treated as lat/long, then the function will take care of coordinate order swapping. If set to NO, SRS with EPSG authority will be written with the 'EPSG:&ap [...]
         <translation>nur gültig wenn FORMAT=GML3/GML3Degree/GML3.2). Voreingestellt ist YES. Wenn auf YES gesetzt, werden KBS mit EPSG-Autorität mit dem Präfix 'urn:ogc:def:crs:EPSG::' geschrieben. Wenn das KBS ein geographisches KBS mit expliziter Achsenreihenfolge ist, aber gleiche mit importFromEPSGA() importierte SRS-Autoritätscode als lat/long behandelt werden soll, sorgt die Funktion für den Koordinatentausch. Wenn auf NO gesetzt, werden KBS mit EPSG-Autorität mit dem &ap [...]
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1028"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1035"/>
         <source>only valid when FORMAT=GML3/GML3Degree/GML3.2) Default to YES. If set to NO, the <gml:boundedBy> element will not be written for each feature.</source>
         <translation>Nur gültig, wenn FORMAT=GML3/GML3Degree/GML3.2.  Voreingestellt YES.  Wenn auf NO gesetzt wird das Element <gml:boundedBy> nicht für jedes Objekt geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1035"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1042"/>
         <source>Default to YES. If YES, the output will be indented with spaces for more readability, but at the expense of file size.</source>
         <translation>Voreingestellt auf YES. Wenn YES, wird die Ausgabe zur besseren Lesbarkeit mit Leerzeichen auf Kosten der Dateigröße eingerückt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1044"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2036"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1051"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2057"/>
         <source>Geography Markup Language [GML]</source>
         <translation>Geography Markup Language [GML]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1058"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1065"/>
         <source>Human-readable identifier (e.g. short name) for the layer content</source>
         <translation>Für Menschen lesbare Kennnung (z.B. Kurzname) für den Layerinhalt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1063"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1070"/>
         <source>Human-readable description for the layer content</source>
         <translation>Für Menschen lesbare Beschreibung des Layerinhalts</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1068"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1075"/>
         <source>Name for the feature identifier column</source>
         <translation>Name für die Objektkennungspalte</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1073"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1080"/>
         <source>Name for the geometry column</source>
         <translation>Name für die Geometriespalte</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1079"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1086"/>
         <source>If a spatial index must be created.</source>
         <translation>Ob ein räumlicher Index erzeugt werden muß.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1103"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2041"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1110"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2062"/>
         <source>Generic Mapping Tools [GMT]</source>
         <translation>Generic Mapping Tools [GMT]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1116"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1123"/>
         <source>By default when writing a layer whose features are of type wkbLineString, the GPX driver chooses to write them as routes. If FORCE_GPX_TRACK=YES is specified, they will be written as tracks.</source>
         <translation>Für das Schreiben von Layern mit Objekten vom Typ wkbLineString ist für den GPX-Treiber die Ausgabe als Routen voreingestellt. Wenn FORCE_GPX_TRACK=YES angegeben ist, werden sie als Spuren geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1124"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1131"/>
         <source>By default when writing a layer whose features are of type wkbMultiLineString, the GPX driver chooses to write them as tracks. If FORCE_GPX_ROUTE=YES is specified, they will be written as routes, provided that the multilines are composed of only one single line.</source>
         <translation>Für das Schreiben von Layern mit Objekten vom Typ wkbMultiLineString ist für den GPX-Treiber die Ausgabe als Spuren voreingestellt. Wenn FORCE_GPX_ROUTE=YES angegeben ist, werden sie als Routen geschrieben, vorausgesetzt sie bestehen aus einer einzigen Linie.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1133"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1140"/>
         <source>If GPX_USE_EXTENSIONS=YES is specified, extra fields will be written inside the <extensions> tag.</source>
         <translation>Wenn GPS_USE_EXTENSIONS=YES angegeben ist, werden zusätztliche Felder in das <extension>-Tag geschrieben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1139"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1146"/>
         <source>Only used if GPX_USE_EXTENSIONS=YES and GPX_EXTENSIONS_NS_URL is set. The namespace value used for extension tags. By default, 'ogr'.</source>
         <translation>Nur genutzt, wenn GPX_USE_EXTENSIONS=YES und GPX_EXTENSIONS_NS_URI gesetzt ist, Der für Extentiontags genutzte Namensraumwert. Voreingestellt: 'ogr'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1145"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1152"/>
         <source>Only used if GPX_USE_EXTENSIONS=YES and GPX_EXTENSIONS_NS is set. The namespace URI. By default, 'http://osgeo.org/gdal'.</source>
         <translation>Nur genutzt, wenn GPX_USE_EXTENSIONS=YES und GPX_EXTENSIONS_NS gesetzt ist, Die Namensraum-URI. Voreingestellt: 'http://osgeo.org/gdal'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1151"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1158"/>
         <source>By default files are created with the line termination conventions of the local platform (CR/LF on win32 or LF on all other systems). This may be overridden through use of the LINEFORMAT layer creation option which may have a value of CRLF (DOS format) or LF (Unix format).</source>
         <translation>Wenn neue Dateien erzeugt werden, werden diese normalerweise mit den Zeilenendekonvention der lokalen Plattform geschrieben (CR/LF unter Windows oder LF auf anderen Systemen). Dies kann mit der LINEFORMAT-Layererzeugungsoptionen festgelegt werden, der den Wert CRLF (DOS-Format) oder LF (Unix-Format) haben kann.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1166"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2046"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1173"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2067"/>
         <source>GPS eXchange Format [GPX]</source>
         <translation>GPS-Austauschformat [GPX]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1182"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2064"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1189"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2085"/>
         <source>INTERLIS 1</source>
         <translation>INTERLIS 1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1197"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2069"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1204"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2090"/>
         <source>INTERLIS 2</source>
         <translation>INTERLIS 2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1210"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1217"/>
         <source>Allows you to specify the field to use for the KML <name> element. </source>
         <translation>Erlaubt die Angabe des Felds zur Verwendung als KML-Element <name>. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1215"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1222"/>
         <source>Allows you to specify the field to use for the KML <description> element.</source>
         <translation>Erlaubt die Angabe des Felds zur Verwendung als KML-Element <description>. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1220"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1227"/>
         <source>Allows you to specify the AltitudeMode to use for KML geometries. This will only affect 3D geometries and must be one of the valid KML options.</source>
         <translation>Erlaubt die Angebe des AltitudeMode für KML-Geometrien. Dies wirkt sich nur auf 3D-Geometrien aus und muss einer gültige KML-Einstellung entsprechen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1232"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2078"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1239"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2099"/>
         <source>Keyhole Markup Language [KML]</source>
         <translation>Keyhole Markup Language [KML]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1246"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1253"/>
         <source>Use this to turn on 'quick spatial index mode'. In this mode writing files can be about 5 times faster, but spatial queries can be up to 30 times slower.</source>
         <translation>Zum Einschalten des schnellen räumlichen Indizierungsmodus. In diesem Modus werden die Dateien etwa fünfmal schneller geschrieben, aber räumliche Abfragen können dreizigmal langsamer sein.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1258"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1265"/>
         <source>Mapinfo TAB</source>
         <translation>Mapinfo-TAB</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1270"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1277"/>
         <source>Mapinfo MIF</source>
         <translation>Mapinfo-MIF</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1283"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1290"/>
         <source>Determine whether 2D (seed_2d.dgn) or 3D (seed_3d.dgn) seed file should be used. This option is ignored if the SEED option is provided.</source>
         <translation>Legt fest, ob die 2D- (seed_2d.dgn) oder 3D-Vorlagedatei (seed_3d.dgn) benutzt werden soll. Diese Option wird ignoriert, wenn die SEED-Option angegeben ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1289"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1296"/>
         <source>Override the seed file to use.</source>
         <translation>Zu verwendende Vorlagendatei vorgeben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1294"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1301"/>
         <source>Indicate whether the whole seed file should be copied. If not, only the first three elements will be copied.</source>
         <translation>Festlegen, ob die ganze Vorlagendatei kopiert werden soll. Wenn nicht werden nur die ersten drei Element kopiert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1300"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1307"/>
         <source>Indicates whether the color table should be copied from the seed file.</source>
         <translation>Gibt an, ob die Farbtabelle aus der Vorlagendatei kopiert werden soll.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1305"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1312"/>
         <source>Override the master unit name from the seed file with the provided one or two character unit name.</source>
         <translation>Haupteinheitennamen aus der Vorlagendatei mit den angegebenen ein- oder zweistelligen Einheitenname überschreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1311"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1318"/>
         <source>Override the sub unit name from the seed file with the provided one or two character unit name.</source>
         <translation>Untereinheitennamen aus der Vorlagendatei mit den angegebenen ein- oder zweistelligen Einheitenname überschreiben.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1317"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1324"/>
         <source>Override the number of subunits per master unit. By default the seed file value is used.</source>
         <translation>Anzahl der Untereinheiten pro Haupteinheit. Voreingestellt wird der Wert der Vorlagendatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1323"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1330"/>
         <source>Override the number of UORs (Units of Resolution) per sub unit. By default the seed file value is used.</source>
         <translation>Anzahl der UORs (Auflösungseinheiten) pro Untereinheit überschreiben. Voreingestellt wird der Wert aus der Vorlagedatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1329"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1336"/>
         <source>ORIGIN=x,y,z: Override the origin of the design plane. By default the origin from the seed file is used.</source>
         <translation>ORIGIN=x,y,z: Ursprung der Entwurfsebene überschreiben. Voreingestellt wird der Ursprung aus der Vorlagedatei verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1337"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2088"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1344"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2109"/>
         <source>Microstation DGN</source>
         <translation>Microstation DGN</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1350"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1357"/>
         <source>Should update files be incorporated into the base data on the fly. </source>
         <translation>Sollen Aktualisierungsdateien unmittelbar in die Basisdaten integriert werden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1366"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1373"/>
         <source>Should a DEPTH attribute be added on SOUNDG features and assign the depth of the sounding. This should only be enabled with SPLIT_MULTIPOINT is also enabled.</source>
         <translation>Soll ein DEPTH-Attribut den SOUNDG-Objekten hinzugefügt und die Tiefe der Peilung zugewiesen werden? Dies sollte nur eingeschaltet werden, wenn SPLIT_MULTIPOINT auch eingeschaltet ist.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1373"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1380"/>
         <source>Should all the low level geometry primitives be returned as special IsolatedNode, ConnectedNode, Edge and Face layers.</source>
         <translation>Sollten alle primitiven Geometrien als spezielle IsolatedNode-, ConnectedNode-, Edge- oder Face-Layer zurückgegeben werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1379"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1386"/>
         <source>If enabled, numeric attributes assigned an empty string as a value will be preserved as a special numeric value. This option should not generally be needed, but may be useful when translated S-57 to S-57 losslessly.</source>
         <translation>Wenn aktiviert werden numerischen Attributen, die eine leere Zeichenkette enthalten, als spezielle numerische Werte erhalten. Diese Option sollte nicht grundsätzlich notwendig sein, kann aber sinnvoll sein, wenn S-57 in S-57 verlustfrei übersetzt wird.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1386"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1393"/>
         <source>Should LNAM and LNAM_REFS fields be attached to features capturing the feature to feature relationships in the FFPT group of the S-57 file.</source>
         <translation>Sollen den Objekten LNMA- und LNAM_REFS-Felder zugeordnet werden, die die Beziehungen in der FFPT-Gruppe der S-57-Datei abbilden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1392"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1399"/>
         <source>Should additional attributes relating features to their underlying geometric primitives be attached. These are the values of the FSPT group, and are primarily needed when doing S-57 to S-57 translations.</source>
         <translation>Sollten zusätzliche Attribute hinzugefügt werden, die die Objekt mit den darunterliegenden Geometrieprimitiven in Beziehung bringen. Dies sind die Werte der FSPT-Gruppe und werden hauptsächlich für die S-57 nach S-57 Übersetzung benötigt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1399"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1406"/>
         <source>Should attribute values be recoded to UTF-8 from the character encoding specified in the S57 DSSI record.</source>
         <translation>Sollten Attributwerte von der im S57-DSSI-Datensatz angegebenen Kodierung in UTF-8 umkodiert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1409"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2121"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1416"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2142"/>
         <source>S-57 Base file</source>
         <translation>S-57 Base-Datei</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1424"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2127"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1431"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2148"/>
         <source>Spatial Data Transfer Standard [SDTS]</source>
         <translation>Spatial Data Transfer Standard [SDTS]</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1437"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1512"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1444"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1519"/>
         <source>Can be used to avoid creating the geometry_columns and spatial_ref_sys tables in a new database. By default these metadata tables are created when a new database is created.</source>
         <translation>Kann verwendet werden, um die Erzeugung Tabellen geometry_columns und spatial_ref_sys in der neuen Datenbank zu vermeiden. Normalerweise werden diese Tabellen in einer neuen Datenbank immer erstellt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1454"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1461"/>
         <source>Controls the format used for the geometry column. Defaults to WKB.This is generally more space and processing efficient, but harder to inspect or use in simple applications than WKT (Well Known Text).</source>
         <translation>Steuert das Format der Geometriespalten. Voreingestellt ist WKB. Diese ist grundsätzlich platz- und verarbeitungseffizient, aber schwerer als WKT (Well-Known-Text) zu lesen und in einfachen Anwendungen zu verwenden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1483"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1565"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1490"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1572"/>
         <source>column_name1[,column_name2, ...] A list of (String) columns that must be compressed with ZLib DEFLATE algorithm. This might be beneficial for databases that have big string blobs. However, use with care, since the value of such columns will be seen as compressed binary content with other SQLite utilities (or previous OGR versions). With OGR, when inserting, modifying or queryings compressed columns, compression/decompression is done transparently. However, such columns ca [...]
         <translation>column_name1[,column_name2, ...] Eine Liste von (Zeichenketten-)Spalten, die mit dem Zlib-DEFLATE-Algorithmus komprimiert werden müssen.  Dies kann bei Datenbanken mit langen Zeichenkette nützlich sein. Ist jedoch mit Sorgfalt zu verwenden, da solche Splaten in anderen SQLite-Werkzeugen (oder älteren OGR-Version) als komprimierten Binärdaten dargestellt werden. 'Mit OGR wird die (De-)Kompression beim Einfügen, Ändern und Abfragen der Spalten transparent vorgenom [...]
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="700"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="707"/>
         <source>By default when creating new .csv files they are created with the line termination conventions of the local platform (CR/LF on Win32 or LF on all other systems). This may be overridden through the use of the LINEFORMAT option.</source>
         <translation>Wenn neue Dateien erzeugt werden, werden diese normalerweise mit den Zeilenendekonvention der lokalen Plattform geschrieben (CR/LF unter Windows oder LF auf anderen Systemen). Dies kann mit der LINEFORMAT-Layererzeugungsoptionen geändert werden.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="733"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="740"/>
         <source>Field separator character.</source>
         <translation>Feldtrennzeichen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="893"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="900"/>
         <source>If defined to YES, extension fields will be written. If the field name not found in the base schema matches the foo_bar pattern, foo will be considered as the namespace of the element, and a <foo:bar> element will be written. Otherwise, elements will be written in the <ogr:> namespace.</source>
         <translation>Wenn auf YES gesetzt, werten Erweiterungsfelder geschrieben. Wenn der im Grundschema nicht vorhandene Feldname dem foo_bar-Muster entspricht, wird foo als Namensraum des Elements angesehen und eine Element <foo:bar> geschrieben. Anderenfalls werden die Element in den <ogr:>-Namensraum gelegt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1358"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1365"/>
         <source>Should multipoint soundings be split into many single point sounding features. Multipoint geometries are not well handled by many formats, so it can be convenient to split single sounding features with many points into many single point features.</source>
         <translation>Ob Mehrpunktpeilungs- in Einzelpunktpeilungsobjekte geteilt werden sollen. Mehrpunktgeometrien werden in vielen Formaten nicht gut unterstützt, daher kann es bequem sein die Einzelpeilungsobjekt mit vielen Punkt in viele Einzelpunktobjekte zu teilen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1464"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1533"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1471"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1540"/>
         <source>Controls whether layer and field names will be laundered for easier use in SQLite. Laundered names will be converted to lower case and some special characters(' - #) will be changed to underscores.</source>
         <translation>Steuert ob Layer- und Feldnamen für die einfachere Verwendung in SQLite bereinigt werden sollen.  Bereinigte Feldnamen werden in Kleinschreibung umgewandelt und einige Sonderzeichen (' - #) werden in Unterstriche geändert.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1498"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1505"/>
         <source>SQLite</source>
         <translation>SQLite</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1523"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1530"/>
         <source>Insert the content of the EPSG CSV files into the spatial_ref_sys table. Set to NO for regular SQLite databases.</source>
         <translation>Den Inhalt der EPSG-CSV-Dateien in die Tabelle spatial_ref_sys einfügen. Für normale SQLite-Datenbanken auf NO setzen.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1540"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1547"/>
         <source>If the database is of the SpatiaLite flavour, and if OGR is linked against libspatialite, this option can be used to control if a spatial index must be created.</source>
         <translation>Wenn es sich um eine SpatiaLite-Datenbank handelt und OGR gegen libspatialite gelinkt ist, kann diese Option verwendet werden, um zu steuern ob ein räumlicher Index erzeugt werden muß.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1547"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1554"/>
         <source>If the format of the geometry BLOB is of the SpatiaLite flavour, this option can be used to control if the compressed format for geometries (LINESTRINGs, POLYGONs) must be used</source>
         <translation>Wenn das Geometrieformat SpatiaLite ist, kann diese Option verwendet werden, um das Kompressionsformat für Geometrien (LINESTRINGs, POLYGONe) zu steuern</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1554"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1561"/>
         <source>Used to force the SRID number of the SRS associated with the layer. When this option isn't specified and that a SRS is associated with the layer, a search is made in the spatial_ref_sys to find a match for the SRS, and, if there is no match, a new entry is inserted for the SRS in the spatial_ref_sys table. When the SRID option is specified, this search (and the eventual insertion of a new entry) will not be done: the specified SRID is used as such.</source>
         <translation>Wird benutzt, um die SRID des dem Layer zugeordneten KBS festzulegen. Wenn diese Option nicht angegeben ist und dem Layer ein KBS zugeordnet ist, wird eine Suche in spatial_ref_sys nach dem KBS durchgeführt und das KBS in spatial_ref_sys eingefügt, wenn es keinen Treffer gibt.  Wenn die SRID-Option angegeben ist, wird diese Suche (und ggf. die Erzeugung eines neuen Eintrags) nicht durchgeführt und die SRID direkt verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1580"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1587"/>
         <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="331"/>
         <location filename="../src/providers/spatialite/qgsspatialitefeatureiterator.cpp" line="458"/>
         <source>SpatiaLite</source>
         <translation>SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1594"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1601"/>
         <source>Override the header file used - in place of header.dxf.</source>
         <translation>Anderen Dateikopf statt header.dxf verwenden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1599"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1606"/>
         <source>Override the trailer file used - in place of trailer.dxf.</source>
         <translation>Anderen Dateifuß statt trailer.dxf verwenden. </translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1607"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2173"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1614"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2194"/>
         <source>AutoCAD DXF</source>
         <translation>AutoCAD DXF</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1620"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1627"/>
         <source>Indicates the GeoConcept export file extension. TXT was used by earlier releases of GeoConcept. GXT is currently used.</source>
         <translation>Legt die GeoConcept-Exportdateierweiterung fest. TXT wurde für frühere GeoConcept-Versionen verwendet. GXT wird derzeit verwendet.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1630"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1637"/>
         <source>path to the GCT : the GCT file describe the GeoConcept types definitions: In this file, every line must start with //# followed by a keyword. Lines starting with // are comments.</source>
         <translation>Pfad zu GCT : die GCT-Datei beschreit die GeoConcept-Typdefinitionen: In dieser Datei muß jede Zeile mit //# gefolgt von einem Schlüsselwort beginnen. Zeilen die mit // beginnen sind Kommentare.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1640"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2168"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1647"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2189"/>
         <source>Geoconcept</source>
         <translation>Geoconcept</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1653"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1660"/>
         <source>When this option is set, the new layer will be created inside the named FeatureDataset folder. If the folder does not already exist, it will be created.</source>
         <translation>Wenn die Option gesetzt ist, wird der neue Layer innerhalb des angegebenen FeatureDataset-Verzeichnis erzeugt. Wenn das Verzeichnis nicht vorhanden ist, wird es angelegt.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1659"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1666"/>
         <source>Set name of geometry column in new layer. Defaults to 'SHAPE'.</source>
         <translation>Name der Geometriespalte des neuen Layers. Voreingestellt: 'SHAPE'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1664"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1671"/>
         <source>Name of the OID column to create. Defaults to 'OBJECTID'.</source>
         <translation>Name der anzulegenden OID-Spalte. Voreingestellt 'OBJECTID'.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1671"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1999"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1678"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2020"/>
         <source>ESRI FileGDB</source>
         <translation>ESRI-FileGDB</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1685"/>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1711"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1692"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1718"/>
         <source>By default, the driver will try to detect the data type of fields. If set to STRING, all fields will be of String type.</source>
         <translation>Normalerweise versucht der Treiber die Datentyp festzustellen.  STRING bewirkt, dass alle Felder Zeichenketten sind.</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2215"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2222"/>
         <source>Cannot overwrite a OGR layer in place</source>
         <translation>Kann OGR-Layer nicht mit sich selbst überschreiben</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2676"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="2683"/>
         <source>Failed to transform, writing stopped. (Exception: %1)</source>
         <translation>Transformation fehlgeschlagen, Schreiben gestoppt. (Ausnahme %1)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="4121"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="4142"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="4167"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4197"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4218"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4243"/>
         <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="4129"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="4150"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="4175"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4205"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4226"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4251"/>
         <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="4224"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4300"/>
         <source>Loaded from Provider</source>
         <translation>Aus Datenanbieter geladen</translation>
     </message>
@@ -20800,7 +20810,7 @@ Nur %1 von %2 Objekten geschrieben.</translation>
     </message>
     <message>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="2196"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2296"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2317"/>
         <source>GDAL/OGR VSIFileHandler</source>
         <translation>GDAL/OGR-VSI-Dateihandler</translation>
     </message>
@@ -20991,14 +21001,14 @@ stderr: %4</translation>
     <message>
         <location filename="../src/providers/db2/qgsdb2provider.cpp" line="1452"/>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="1883"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2918"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2924"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3710"/>
         <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="1897"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2937"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2943"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3730"/>
         <source>Creation of fields failed</source>
         <translation>Erzeugung der Felder gescheitert</translation>
@@ -21014,277 +21024,277 @@ stderr: %4</translation>
         <translation>Konnte die Datenquelle nicht erzeugen. %1 bereits vorhanden und Überschreiben ist aus.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1964"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1985"/>
         <source>Unable to get driver %1</source>
         <translation>Konnte Treiber %1 nicht laden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1972"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1993"/>
         <source>Arc/Info Binary Coverage</source>
         <translation>Arc/Info-Binär-Coverage</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1989"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2010"/>
         <source>DODS</source>
         <translation>DODS</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1993"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2014"/>
         <source>CouchDB</source>
         <translation>CouchDB</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2113"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2134"/>
         <source>OpenFileGDB</source>
         <translation>OpenFileGDB</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2003"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2005"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2024"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2026"/>
         <source>ESRI Personal GeoDatabase</source>
         <translation>ESRI-Personal-GeoDatabase</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2011"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2032"/>
         <source>ESRI ArcSDE</source>
         <translation>ESRI-ArcSDE</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2015"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2036"/>
         <source>ESRI Shapefiles</source>
         <translation>ESRI-Shapedateien</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1087"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2051"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1094"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2072"/>
         <source>GeoPackage</source>
         <translation>GeoPackage</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2056"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2077"/>
         <source>Grass Vector</source>
         <translation>GRASS-Vektor</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2060"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2081"/>
         <source>Informix DataBlade</source>
         <translation>Informix-DataBlade</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2074"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2095"/>
         <source>Ingres</source>
         <translation>Ingres</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2083"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2104"/>
         <source>Mapinfo File</source>
         <translation>Mapinfo-Datei</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2093"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2114"/>
         <source>MySQL</source>
         <translation>MySQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2097"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2118"/>
         <source>MSSQL</source>
         <translation>MSSQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2101"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2122"/>
         <source>Oracle Spatial</source>
         <translation>Oracle Spatial</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2105"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2126"/>
         <source>ODBC</source>
         <translation>ODBC</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2109"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2130"/>
         <source>OGDI Vectors</source>
         <translation>OGDI-Vektoren</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2117"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2138"/>
         <source>PostgreSQL</source>
         <translation>PostgreSQL</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2133"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2154"/>
         <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="2138"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2159"/>
         <source>SQLite/SpatiaLite</source>
         <translation>SQLite/SpatiaLite</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2143"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2164"/>
         <source>Storage and eXchange Format</source>
         <translation>Storage and eXchange Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2148"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2169"/>
         <source>UK. NTF2</source>
         <translation>UK. NTF2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2152"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2173"/>
         <source>U.S. Census TIGER/Line</source>
         <translation>U.S. Census TIGER/Line</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2156"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2177"/>
         <source>VRT - Virtual Datasource</source>
         <translation>VRT - Virtuelle Datenquellen</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2162"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2183"/>
         <source>X-Plane/Flightgear</source>
         <translation>X-Plane/Flightgear</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1723"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2178"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1730"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2199"/>
         <source>Open Document Spreadsheet</source>
         <translation>Open-Dokument-Tabelle</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1697"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2183"/>
+        <location filename="../src/core/qgsvectorfilewriter.cpp" line="1704"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2204"/>
         <source>MS Office Open XML spreadsheet</source>
         <translation>MS-Office-Open-XML-Tabelle</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2188"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2209"/>
         <source>MS Excel format</source>
         <translation>MS-Excel-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2193"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2214"/>
         <source>EDIGEO</source>
         <translation>EDIGEO</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2198"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2219"/>
         <source>NAS - ALKIS</source>
         <translation>NAS - ALKIS</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2203"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2224"/>
         <source>WAsP</source>
         <translation>WAsP</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2208"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2229"/>
         <source>PCI Geomatics Database File</source>
         <translation>PCI Geomatics-Datenbankdatei</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2213"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2234"/>
         <source>GPSTrackMaker</source>
         <translation>GPSTrackMaker</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2218"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2239"/>
         <source>Czech Cadastral Exchange Data Format</source>
         <translation>Tschechische Katasteraustauschdatenformat</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2223"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2244"/>
         <source>OpenStreetMap</source>
         <translation>OpenStreetMap</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2228"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2249"/>
         <source>Special Use Airspace Format</source>
         <translation>Special Use Airspace-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2233"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2254"/>
         <source>OpenAir Special Use Airspace Format</source>
         <translation>OpenAir Special Use Airspace-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2238"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2259"/>
         <source>Planetary Data Systems TABLE</source>
         <translation>Planetary Data Systems TABLE</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2243"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2264"/>
         <source>Hydrographic Transfer Format</source>
         <translation>Hydrographisches Transfer-Format</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2248"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2269"/>
         <source>Scalable Vector Graphics</source>
         <translation>Skalierbare Vektorgrafik</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2253"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2274"/>
         <source>Arc/Info Generate</source>
         <translation>Arc/Info Generate</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2258"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2279"/>
         <source>Geospatial PDF</source>
         <translation>Geospatial-PDF</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2263"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2284"/>
         <source>SEG-Y</source>
         <translation>SEG-Y</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2268"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2289"/>
         <source>SEG-P1</source>
         <translation>SEG-P1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2269"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2290"/>
         <source>UKOOA P1/90</source>
         <translation>UKOOA P1/90</translation>
     </message>
     <message>
         <location filename="../src/providers/gdal/qgsgdalprovider.cpp" line="2202"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2303"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2324"/>
         <source>All files</source>
         <translation>Alle Dateien</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2471"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2492"/>
         <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="2488"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2509"/>
         <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="2536"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2557"/>
         <source>Unknown vector type of %1</source>
         <translation>Unbekannter Vektortyp %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2562"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2583"/>
         <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="2631"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2652"/>
         <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="2637"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2658"/>
         <source>creation of field %1 failed</source>
         <translation>Erzeugung des Feld %1 gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2655"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2676"/>
         <source>Couldn't create file %1.qpj</source>
         <translation>Konnte Datei %1.qpj nicht erzeugen</translation>
     </message>
@@ -21305,8 +21315,8 @@ Fehler:%2</translation>
         <translation>Oracle</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2606"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3097"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2613"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3103"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3503"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3888"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3954"/>
@@ -21322,12 +21332,12 @@ Fehler:%2</translation>
         <translation>Verbindung zur Datenbank schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2618"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2625"/>
         <source>No owner name found</source>
         <translation>Kein Besitzername gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2805"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2812"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3647"/>
         <source>Creation of data source %1 failed: 
 %2</source>
@@ -21335,122 +21345,122 @@ Fehler:%2</translation>
 %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2839"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2846"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="3665"/>
         <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="2882"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2888"/>
         <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="3103"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3109"/>
         <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="3119"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3125"/>
         <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="3152"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3158"/>
         <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="3162"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3168"/>
         <source>Unable to clean metadata %1.%2: 
 %3</source>
         <translation>Konnte Metadaten %1.%2 nicht löschen: 
 %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3241"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3416"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3470"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3537"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3247"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3422"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3476"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3543"/>
         <source>Could not connect to database</source>
         <translation>Verbindung zur Datenbank gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3248"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3254"/>
         <source>Unable to check layer style existence [%1]</source>
         <translation>Konnte nicht prüfen, ob Layerstil vorhanden ist [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3272"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3278"/>
         <source>Unable to create layer style table [%1]</source>
         <translation>Konnte Layerstiltabelle nicht erzeugen [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3296"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3302"/>
         <source>Unable to check style existence [%1]</source>
         <translation>Konnte nicht prüfen, ob Stil existiert [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3425"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3431"/>
         <source>Unable to find layer style table [%1]</source>
         <translation>Konnte Layerstiltabelle nicht finden [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3483"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3489"/>
         <source>Layer style table does not exist [%1]</source>
         <translation>Layerstiltabelle nicht vorhanden [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3545"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3551"/>
         <source>Could not load layer style table [%1]</source>
         <translation>Konnte Layerstiltabelle nicht laden [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3348"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3354"/>
         <source>Cannot fetch new layer style id.</source>
         <translation>Konnte Layerstilkennung nicht laden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3355"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3361"/>
         <source>Could not prepare insert/update [%1]</source>
         <translation>Konnte INSERT/UPDATE nicht vorbereiten [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3376"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3382"/>
         <source>Could not execute insert/update [%1]</source>
         <translation>Konnte INSERT/UPDATE nicht ausführen [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3397"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3403"/>
         <source>Could not reset default status [%1]</source>
         <translation>Konnte Vorgabestatus nicht zurücksetzen [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3443"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3449"/>
         <source>Could not retrieve style [%1]</source>
         <translation>Konnte Stil nicht laden [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3447"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3453"/>
         <source>Style not found</source>
         <translation>Stil nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3479"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3485"/>
         <source>Could not verify existence of layer style table [%1]</source>
         <translation>Konnte Existenz der Layerstiltabelle nicht überprüfen [%1]</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3493"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3499"/>
         <source>No style for layer found</source>
         <translation>Kein Stil zum Layer gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3549"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3555"/>
         <source>No styles found in layer table [%1]</source>
         <translation>Keine Stile in der Layertabelle gefunden [%1]</translation>
     </message>
@@ -21507,7 +21517,7 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="2074"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3302"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3308"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4063"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5378"/>
         <source>Save style in database</source>
@@ -21515,7 +21525,7 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="2075"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3303"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3309"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4064"/>
         <location filename="../src/providers/spatialite/qgsspatialiteprovider.cpp" line="5379"/>
         <source>A style named "%1" already exists in the database for this layer. Do you want to overwrite it?</source>
@@ -21523,7 +21533,7 @@ Datenbankfehler: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/mssql/qgsmssqlprovider.cpp" line="2079"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3307"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="3313"/>
         <location filename="../src/providers/postgres/qgspostgresprovider.cpp" line="4068"/>
         <source>Operation aborted. No changes were made in the database</source>
         <translation>Vorgang abgebrochen. Es wurden keine Datenbankänderungen vorgenommen</translation>
@@ -21901,38 +21911,38 @@ SQL: %1</translation>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="471"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="484"/>
         <source>Global</source>
         <translation>Global</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="600"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="613"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="665"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="678"/>
         <location filename="../src/plugins/topology/dockModel.cpp" line="24"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="743"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="756"/>
         <source>Map Settings</source>
         <translation>Karteneinstellungen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="778"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="791"/>
         <source>Composition</source>
         <translation>Zusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="845"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="858"/>
         <source>Atlas</source>
         <translation>Atlas</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsexpressioncontext.cpp" line="882"/>
+        <location filename="../src/core/qgsexpressioncontext.cpp" line="895"/>
         <source>Composer Item</source>
         <translation>Zusammensstellungselement</translation>
     </message>
@@ -23481,7 +23491,7 @@ Nur verfügbar wenn der Layer klassifiziert dargestellt wird.</translation>
         <translation>0 oder mehr Argumente</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1030"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="1051"/>
         <source>Reset to defaults</source>
         <translation>Auf Voreinstellungen zurücksetzen</translation>
     </message>
@@ -23768,9 +23778,9 @@ Nur verfügbar wenn der Layer klassifiziert dargestellt wird.</translation>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="1757"/>
         <location filename="../src/app/qgisapp.cpp" line="6039"/>
-        <location filename="../src/app/qgisapp.cpp" line="7861"/>
-        <location filename="../src/app/qgisapp.cpp" line="7941"/>
-        <location filename="../src/app/qgisapp.cpp" line="10923"/>
+        <location filename="../src/app/qgisapp.cpp" line="7859"/>
+        <location filename="../src/app/qgisapp.cpp" line="7939"/>
+        <location filename="../src/app/qgisapp.cpp" line="10921"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
@@ -23800,13 +23810,13 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
     </message>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="1876"/>
-        <location filename="../src/app/qgisapp.cpp" line="11783"/>
+        <location filename="../src/app/qgisapp.cpp" line="11781"/>
         <source>Panels</source>
         <translation>Bedienfelder</translation>
     </message>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="1878"/>
-        <location filename="../src/app/qgisapp.cpp" line="11794"/>
+        <location filename="../src/app/qgisapp.cpp" line="11792"/>
         <source>Toolbars</source>
         <translation>Werkzeugkästen</translation>
     </message>
@@ -24043,58 +24053,58 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         <translation>Layerdiagrammeigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7033"/>
-        <location filename="../src/app/qgisapp.cpp" line="7072"/>
+        <location filename="../src/app/qgisapp.cpp" line="7031"/>
+        <location filename="../src/app/qgisapp.cpp" line="7070"/>
         <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="7501"/>
+        <location filename="../src/app/qgisapp.cpp" line="7499"/>
         <source>New temporary scratch layer name</source>
         <translation>Name des neuen Temporärlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7598"/>
+        <location filename="../src/app/qgisapp.cpp" line="7596"/>
         <source>Cannot create new layer.</source>
         <translation>Kann  neuen Layer nicht erzeugen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7665"/>
+        <location filename="../src/app/qgisapp.cpp" line="7663"/>
         <source>Cannot copy style</source>
         <translation>Kann Stil nicht kopieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7695"/>
+        <location filename="../src/app/qgisapp.cpp" line="7693"/>
         <source>Cannot parse style</source>
         <translation>Kann Stil nicht interpretieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7710"/>
+        <location filename="../src/app/qgisapp.cpp" line="7708"/>
         <source>Cannot paste style</source>
         <translation>Kann Stil nicht einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8133"/>
+        <location filename="../src/app/qgisapp.cpp" line="8131"/>
         <source>Filter on joined fields</source>
         <translation>Filter auf verknüpften Feldern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8268"/>
+        <location filename="../src/app/qgisapp.cpp" line="8266"/>
         <source>No legend entries selected</source>
         <translation>Keine Einträge der Legende gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8269"/>
+        <location filename="../src/app/qgisapp.cpp" line="8267"/>
         <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="8277"/>
+        <location filename="../src/app/qgisapp.cpp" line="8275"/>
         <source>Remove layers and groups</source>
         <translation>Layer und Gruppen löschen</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="8277"/>
+        <location filename="../src/app/qgisapp.cpp" line="8275"/>
         <source>Remove %n legend entries?</source>
         <comment>number of legend items to remove</comment>
         <translation>
@@ -24103,7 +24113,7 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgisapp.cpp" line="8289"/>
+        <location filename="../src/app/qgisapp.cpp" line="8287"/>
         <source>%n legend entries removed.</source>
         <comment>number of removed legend entries</comment>
         <translation>
@@ -24112,27 +24122,27 @@ Bitte nehmen Sie Kontakt zu den Entwicklern auf.</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8396"/>
+        <location filename="../src/app/qgisapp.cpp" line="8394"/>
         <source>%1 (%2 type unsupported)</source>
         <translation>%1 (Typ %2 nicht unterstützt)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8430"/>
+        <location filename="../src/app/qgisapp.cpp" line="8428"/>
         <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="9097"/>
+        <location filename="../src/app/qgisapp.cpp" line="9095"/>
         <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="9402"/>
+        <location filename="../src/app/qgisapp.cpp" line="9400"/>
         <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="10903"/>
+        <location filename="../src/app/qgisapp.cpp" line="10901"/>
         <source>Invalid Layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
@@ -24667,10 +24677,10 @@ Fehler: %1</translation>
     </message>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="6320"/>
-        <location filename="../src/app/qgisapp.cpp" line="8973"/>
-        <location filename="../src/app/qgisapp.cpp" line="8982"/>
-        <location filename="../src/app/qgisapp.cpp" line="9043"/>
-        <location filename="../src/app/qgisapp.cpp" line="9052"/>
+        <location filename="../src/app/qgisapp.cpp" line="8971"/>
+        <location filename="../src/app/qgisapp.cpp" line="8980"/>
+        <location filename="../src/app/qgisapp.cpp" line="9041"/>
+        <location filename="../src/app/qgisapp.cpp" line="9050"/>
         <source>No Layer Selected</source>
         <translation>Keinen Layer ausgewählt</translation>
     </message>
@@ -24701,10 +24711,10 @@ Fehler: %1</translation>
     </message>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="6345"/>
-        <location filename="../src/app/qgisapp.cpp" line="6853"/>
-        <location filename="../src/app/qgisapp.cpp" line="6862"/>
-        <location filename="../src/app/qgisapp.cpp" line="6963"/>
-        <location filename="../src/app/qgisapp.cpp" line="7004"/>
+        <location filename="../src/app/qgisapp.cpp" line="6851"/>
+        <location filename="../src/app/qgisapp.cpp" line="6860"/>
+        <location filename="../src/app/qgisapp.cpp" line="6961"/>
+        <location filename="../src/app/qgisapp.cpp" line="7002"/>
         <source>Layer not editable</source>
         <translation>Der Layer kann nicht bearbeitet werden</translation>
     </message>
@@ -24793,7 +24803,7 @@ Fehler: %1</translation>
     </message>
     <message>
         <location filename="../src/app/qgisapp.cpp" line="6536"/>
-        <location filename="../src/app/qgisapp.cpp" line="6637"/>
+        <location filename="../src/app/qgisapp.cpp" line="6635"/>
         <source>Composer %1</source>
         <translation>Druckzusammenstellung %1</translation>
     </message>
@@ -24803,181 +24813,181 @@ Fehler: %1</translation>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6631"/>
+        <location filename="../src/app/qgisapp.cpp" line="6629"/>
         <source>Loading composer %1</source>
         <translation>Lade Zusammenstellung %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6843"/>
-        <location filename="../src/app/qgisapp.cpp" line="6945"/>
-        <location filename="../src/app/qgisapp.cpp" line="6987"/>
+        <location filename="../src/app/qgisapp.cpp" line="6841"/>
+        <location filename="../src/app/qgisapp.cpp" line="6943"/>
+        <location filename="../src/app/qgisapp.cpp" line="6985"/>
         <source>No active layer</source>
         <translation>Kein aktiver Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6844"/>
+        <location filename="../src/app/qgisapp.cpp" line="6842"/>
         <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="6874"/>
-        <location filename="../src/app/qgisapp.cpp" line="7016"/>
-        <location filename="../src/app/qgisapp.cpp" line="7052"/>
+        <location filename="../src/app/qgisapp.cpp" line="6872"/>
+        <location filename="../src/app/qgisapp.cpp" line="7014"/>
+        <location filename="../src/app/qgisapp.cpp" line="7050"/>
         <source>Not enough features selected</source>
         <translation>Nicht genug Objekte gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6875"/>
-        <location filename="../src/app/qgisapp.cpp" line="7017"/>
-        <location filename="../src/app/qgisapp.cpp" line="7053"/>
+        <location filename="../src/app/qgisapp.cpp" line="6873"/>
+        <location filename="../src/app/qgisapp.cpp" line="7015"/>
+        <location filename="../src/app/qgisapp.cpp" line="7051"/>
         <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="6892"/>
+        <location filename="../src/app/qgisapp.cpp" line="6890"/>
         <source>Merged feature attributes</source>
         <translation>Objektattribute vereinen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6918"/>
-        <location filename="../src/app/qgisapp.cpp" line="7097"/>
+        <location filename="../src/app/qgisapp.cpp" line="6916"/>
+        <location filename="../src/app/qgisapp.cpp" line="7095"/>
         <source>Invalid result</source>
         <translation>Ungültiges Ergebnis</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="6919"/>
-        <location filename="../src/app/qgisapp.cpp" line="7098"/>
+        <location filename="../src/app/qgisapp.cpp" line="6917"/>
+        <location filename="../src/app/qgisapp.cpp" line="7096"/>
         <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="6964"/>
+        <location filename="../src/app/qgisapp.cpp" line="6962"/>
         <source>Modifying features can only be done for layers in editing mode.</source>
         <translation>Objektänderungen können nur im Bearbeitungsmodus vorgenommen werden.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7032"/>
-        <location filename="../src/app/qgisapp.cpp" line="7071"/>
+        <location filename="../src/app/qgisapp.cpp" line="7030"/>
+        <location filename="../src/app/qgisapp.cpp" line="7069"/>
         <source>Merge failed</source>
         <translation>Zusammenführung fehlgeschlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7079"/>
+        <location filename="../src/app/qgisapp.cpp" line="7077"/>
         <source>Merged features</source>
         <translation>Objekte verschmelzen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7219"/>
-        <location filename="../src/app/qgisapp.cpp" line="7244"/>
-        <location filename="../src/app/qgisapp.cpp" line="7269"/>
-        <location filename="../src/app/qgisapp.cpp" line="7287"/>
+        <location filename="../src/app/qgisapp.cpp" line="7217"/>
+        <location filename="../src/app/qgisapp.cpp" line="7242"/>
+        <location filename="../src/app/qgisapp.cpp" line="7267"/>
+        <location filename="../src/app/qgisapp.cpp" line="7285"/>
         <source>No active vector layer</source>
         <translation>Kein aktiver Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7220"/>
+        <location filename="../src/app/qgisapp.cpp" line="7218"/>
         <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="7245"/>
+        <location filename="../src/app/qgisapp.cpp" line="7243"/>
         <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="7270"/>
-        <location filename="../src/app/qgisapp.cpp" line="7288"/>
+        <location filename="../src/app/qgisapp.cpp" line="7268"/>
+        <location filename="../src/app/qgisapp.cpp" line="7286"/>
         <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="7335"/>
+        <location filename="../src/app/qgisapp.cpp" line="7333"/>
         <source>Features cut</source>
         <translation>Objekte ausgeschnitten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7361"/>
+        <location filename="../src/app/qgisapp.cpp" line="7359"/>
         <source>Features pasted</source>
         <translation>Objekte eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7459"/>
-        <location filename="../src/app/qgisapp.cpp" line="7466"/>
-        <location filename="../src/app/qgisapp.cpp" line="7472"/>
-        <location filename="../src/app/qgisapp.cpp" line="7577"/>
-        <location filename="../src/app/qgisapp.cpp" line="7584"/>
-        <location filename="../src/app/qgisapp.cpp" line="7597"/>
-        <location filename="../src/app/qgisapp.cpp" line="7612"/>
+        <location filename="../src/app/qgisapp.cpp" line="7457"/>
+        <location filename="../src/app/qgisapp.cpp" line="7464"/>
+        <location filename="../src/app/qgisapp.cpp" line="7470"/>
+        <location filename="../src/app/qgisapp.cpp" line="7575"/>
+        <location filename="../src/app/qgisapp.cpp" line="7582"/>
+        <location filename="../src/app/qgisapp.cpp" line="7595"/>
+        <location filename="../src/app/qgisapp.cpp" line="7610"/>
         <source>Paste features</source>
         <translation>Objekte einfügen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7460"/>
+        <location filename="../src/app/qgisapp.cpp" line="7458"/>
         <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="7467"/>
+        <location filename="../src/app/qgisapp.cpp" line="7465"/>
         <source>%1 features were successfully pasted.</source>
         <translation>%1 Objekte wurden erfolgreich eingefügt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7473"/>
+        <location filename="../src/app/qgisapp.cpp" line="7471"/>
         <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="7500"/>
+        <location filename="../src/app/qgisapp.cpp" line="7498"/>
         <source>Pasted</source>
         <translation>Eingefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7502"/>
+        <location filename="../src/app/qgisapp.cpp" line="7500"/>
         <source>Layer name</source>
         <translation>Layername</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7578"/>
+        <location filename="../src/app/qgisapp.cpp" line="7576"/>
         <source>No features in clipboard.</source>
         <translation>Keine Objekte in der Zwischenablage.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7585"/>
+        <location filename="../src/app/qgisapp.cpp" line="7583"/>
         <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>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7613"/>
+        <location filename="../src/app/qgisapp.cpp" line="7611"/>
         <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="7804"/>
+        <location filename="../src/app/qgisapp.cpp" line="7802"/>
         <source>Start editing failed</source>
         <translation>Bearbeitungsbeginn schlug fehl</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7805"/>
+        <location filename="../src/app/qgisapp.cpp" line="7803"/>
         <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="7830"/>
+        <location filename="../src/app/qgisapp.cpp" line="7828"/>
         <source>Stop editing</source>
         <translation>Bearbeitung beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7831"/>
+        <location filename="../src/app/qgisapp.cpp" line="7829"/>
         <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="7862"/>
+        <location filename="../src/app/qgisapp.cpp" line="7860"/>
         <source>Problems during roll back</source>
         <translation>Probleme beim Zurücknehmen der Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7942"/>
+        <location filename="../src/app/qgisapp.cpp" line="7940"/>
         <source>Could not %1 changes to layer %2
 
 Errors: %3
@@ -24988,220 +24998,220 @@ Fehler: %3
 </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7943"/>
+        <location filename="../src/app/qgisapp.cpp" line="7941"/>
         <source>rollback</source>
         <translation>verworfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7943"/>
+        <location filename="../src/app/qgisapp.cpp" line="7941"/>
         <source>cancel</source>
         <translation>abgebrochen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7973"/>
+        <location filename="../src/app/qgisapp.cpp" line="7971"/>
         <source>Save</source>
         <translation>Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7973"/>
-        <location filename="../src/app/qgisapp.cpp" line="7999"/>
-        <location filename="../src/app/qgisapp.cpp" line="8025"/>
+        <location filename="../src/app/qgisapp.cpp" line="7971"/>
+        <location filename="../src/app/qgisapp.cpp" line="7997"/>
+        <location filename="../src/app/qgisapp.cpp" line="8023"/>
         <source>all</source>
         <translation>Alle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="7999"/>
+        <location filename="../src/app/qgisapp.cpp" line="7997"/>
         <source>Rollback</source>
         <translation>Verwerfen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8025"/>
+        <location filename="../src/app/qgisapp.cpp" line="8023"/>
         <source>Cancel</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8041"/>
+        <location filename="../src/app/qgisapp.cpp" line="8039"/>
         <source>Current edits</source>
         <translation>Aktuelle Änderungen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8042"/>
+        <location filename="../src/app/qgisapp.cpp" line="8040"/>
         <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="8134"/>
+        <location filename="../src/app/qgisapp.cpp" line="8132"/>
         <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="8316"/>
+        <location filename="../src/app/qgisapp.cpp" line="8314"/>
         <source>copy</source>
         <translation>Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8320"/>
+        <location filename="../src/app/qgisapp.cpp" line="8318"/>
         <source>Plugin layer</source>
         <translation>Erweiterungslayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8332"/>
+        <location filename="../src/app/qgisapp.cpp" line="8330"/>
         <source>Memory layer</source>
         <translation>Speicherlayer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8384"/>
-        <location filename="../src/app/qgisapp.cpp" line="8395"/>
+        <location filename="../src/app/qgisapp.cpp" line="8382"/>
+        <location filename="../src/app/qgisapp.cpp" line="8393"/>
         <source>Duplicate layer: </source>
         <translation>Layerduplizierung:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8385"/>
+        <location filename="../src/app/qgisapp.cpp" line="8383"/>
         <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="8455"/>
+        <location filename="../src/app/qgisapp.cpp" line="8453"/>
         <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="8773"/>
+        <location filename="../src/app/qgisapp.cpp" line="8771"/>
         <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="8784"/>
+        <location filename="../src/app/qgisapp.cpp" line="8782"/>
         <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="8802"/>
+        <location filename="../src/app/qgisapp.cpp" line="8800"/>
         <source>Python support ENABLED :-) </source>
         <translation>Python-Unterstützung aktiviert :-) </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8828"/>
+        <location filename="../src/app/qgisapp.cpp" line="8826"/>
         <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="8832"/>
+        <location filename="../src/app/qgisapp.cpp" line="8830"/>
         <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="8836"/>
+        <location filename="../src/app/qgisapp.cpp" line="8834"/>
         <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="8843"/>
-        <location filename="../src/app/qgisapp.cpp" line="8849"/>
+        <location filename="../src/app/qgisapp.cpp" line="8841"/>
+        <location filename="../src/app/qgisapp.cpp" line="8847"/>
         <source>QGIS Version Information</source>
         <translation>QGIS-Versionsinformationen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="8849"/>
+        <location filename="../src/app/qgisapp.cpp" line="8847"/>
         <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="8974"/>
-        <location filename="../src/app/qgisapp.cpp" line="8983"/>
+        <location filename="../src/app/qgisapp.cpp" line="8972"/>
+        <location filename="../src/app/qgisapp.cpp" line="8981"/>
         <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="9044"/>
-        <location filename="../src/app/qgisapp.cpp" line="9053"/>
+        <location filename="../src/app/qgisapp.cpp" line="9042"/>
+        <location filename="../src/app/qgisapp.cpp" line="9051"/>
         <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="9079"/>
+        <location filename="../src/app/qgisapp.cpp" line="9077"/>
         <source>en</source>
         <comment>documentation language</comment>
         <translation>de</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9101"/>
+        <location filename="../src/app/qgisapp.cpp" line="9099"/>
         <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="9239"/>
-        <location filename="../src/app/qgisapp.cpp" line="9282"/>
+        <location filename="../src/app/qgisapp.cpp" line="9237"/>
+        <location filename="../src/app/qgisapp.cpp" line="9280"/>
         <source>Layer is not valid</source>
         <translation>Layer ist ungültig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10024"/>
+        <location filename="../src/app/qgisapp.cpp" line="10022"/>
         <source>Current CRS: %1 (OTF enabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aktiv)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10030"/>
+        <location filename="../src/app/qgisapp.cpp" line="10028"/>
         <source>Current CRS: %1 (OTF disabled)</source>
         <translation>Aktuelles KBS: %1 (SRP aus)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11839"/>
+        <location filename="../src/app/qgisapp.cpp" line="11837"/>
         <source>Layer %1</source>
         <translation>Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9238"/>
+        <location filename="../src/app/qgisapp.cpp" line="9236"/>
         <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="6854"/>
-        <location filename="../src/app/qgisapp.cpp" line="6956"/>
-        <location filename="../src/app/qgisapp.cpp" line="6997"/>
+        <location filename="../src/app/qgisapp.cpp" line="6852"/>
+        <location filename="../src/app/qgisapp.cpp" line="6954"/>
+        <location filename="../src/app/qgisapp.cpp" line="6995"/>
         <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="6863"/>
-        <location filename="../src/app/qgisapp.cpp" line="7005"/>
+        <location filename="../src/app/qgisapp.cpp" line="6861"/>
+        <location filename="../src/app/qgisapp.cpp" line="7003"/>
         <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="6946"/>
-        <location filename="../src/app/qgisapp.cpp" line="6988"/>
+        <location filename="../src/app/qgisapp.cpp" line="6944"/>
+        <location filename="../src/app/qgisapp.cpp" line="6986"/>
         <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="6955"/>
-        <location filename="../src/app/qgisapp.cpp" line="6996"/>
+        <location filename="../src/app/qgisapp.cpp" line="6953"/>
+        <location filename="../src/app/qgisapp.cpp" line="6994"/>
         <source>Invalid layer</source>
         <translation>Ungültiger Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="9281"/>
+        <location filename="../src/app/qgisapp.cpp" line="9279"/>
         <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="9377"/>
+        <location filename="../src/app/qgisapp.cpp" line="9375"/>
         <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="9401"/>
+        <location filename="../src/app/qgisapp.cpp" line="9399"/>
         <source>Save?</source>
         <translation>Speichern?</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10242"/>
+        <location filename="../src/app/qgisapp.cpp" line="10240"/>
         <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="10309"/>
+        <location filename="../src/app/qgisapp.cpp" line="10307"/>
         <source>%n feature(s) selected on layer %1.</source>
         <comment>number of selected features</comment>
         <translation>
@@ -25210,77 +25220,77 @@ Fehler: %3
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10816"/>
+        <location filename="../src/app/qgisapp.cpp" line="10814"/>
         <source>Open a GDAL Supported Raster Data Source</source>
         <translation>Öffnen einer GDAL-Rasterdatenquelle</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="10921"/>
+        <location filename="../src/app/qgisapp.cpp" line="10919"/>
         <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="10922"/>
+        <location filename="../src/app/qgisapp.cpp" line="10920"/>
         <source>Raster layer</source>
         <translation>Raster-Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11048"/>
+        <location filename="../src/app/qgisapp.cpp" line="11046"/>
         <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="11052"/>
+        <location filename="../src/app/qgisapp.cpp" line="11050"/>
         <source>Unsupported Data Source</source>
         <translation>Nicht unterstütztes Datenformat</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11109"/>
+        <location filename="../src/app/qgisapp.cpp" line="11107"/>
         <source>Exit QGIS</source>
         <translation>QGIS beenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11110"/>
+        <location filename="../src/app/qgisapp.cpp" line="11108"/>
         <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="11213"/>
+        <location filename="../src/app/qgisapp.cpp" line="11211"/>
         <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="11217"/>
+        <location filename="../src/app/qgisapp.cpp" line="11215"/>
         <source>Project file is older</source>
         <translation>Projektdatei ist älter</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11628"/>
+        <location filename="../src/app/qgisapp.cpp" line="11626"/>
         <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="11627"/>
+        <location filename="../src/app/qgisapp.cpp" line="11625"/>
         <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="11399"/>
+        <location filename="../src/app/qgisapp.cpp" line="11397"/>
         <source>Warning</source>
         <translation>Warnung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11400"/>
+        <location filename="../src/app/qgisapp.cpp" line="11398"/>
         <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="11457"/>
+        <location filename="../src/app/qgisapp.cpp" line="11455"/>
         <source>Authentication required</source>
         <translation>Authentifikation erforderlich</translation>
     </message>
     <message>
-        <location filename="../src/app/qgisapp.cpp" line="11512"/>
+        <location filename="../src/app/qgisapp.cpp" line="11510"/>
         <source>Proxy authentication required</source>
         <translation>Proxy-Authentifikation erforderlich</translation>
     </message>
@@ -25314,7 +25324,7 @@ Fehler: %3
         <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="10022"/>
+        <location filename="../src/app/qgisapp.cpp" line="10020"/>
         <source>%1 (OTF)</source>
         <translation>%1 (SRP)</translation>
     </message>
@@ -26647,28 +26657,28 @@ Auth-DB-Pfad:		%10
 <context>
     <name>QgsAtlasComposition</name>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="243"/>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="837"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="246"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="840"/>
         <source>Composer</source>
         <translation>Zusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="243"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="246"/>
         <source>Atlas name eval error: %1</source>
         <translation>Atlasnamenauswertungsfehler: %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="404"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="407"/>
         <source>No matching atlas features</source>
         <translation>Keine passenden Atlas-Objekte</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="429"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="432"/>
         <source>Atlas feature %1 of %2</source>
         <translation>Atlasobjekt %1 von %2</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="837"/>
+        <location filename="../src/core/composer/qgsatlascomposition.cpp" line="840"/>
         <source>Atlas filename evaluation error: %1</source>
         <translation>Atlas-Dateinamenauswertungsfehler: %1</translation>
     </message>
@@ -26707,7 +26717,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>
@@ -27184,82 +27194,82 @@ Ausdruckfehler:
         <translation>Nicht angewandte Mehrfachänderungen: <a href="#apply">anwenden</a> oder <a href="#reset">zurücksetzen</a>.</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="801"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="802"/>
         <source>Invalid fields</source>
         <translation>Ungültige Felder</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="900"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="902"/>
         <source>Description: </source>
         <translation>Beschreibung:</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="901"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="903"/>
         <source>Raw expression: </source>
         <translation>Rohausdruck:</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="901"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="903"/>
         <source>Constraint: </source>
         <translation>Einschränkung:</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1286"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1289"/>
         <source>&Reset form</source>
         <translation>Formular &zurücksetzen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1293"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1296"/>
         <source>&Select features</source>
         <translation>&Objekte wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1297"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1300"/>
         <source>Select features</source>
         <translation>Objekt wählen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1300"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1303"/>
         <source>Add to current selection</source>
         <translation>Zu aktuellen Auswahl hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1303"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1306"/>
         <source>Filter current selection</source>
         <translation>Mit aktueller Auswahl filtern</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1306"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1309"/>
         <source>Remove from current selection</source>
         <translation>Aus aktueller Auswahl entfernen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1315"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1318"/>
         <source>Filter features</source>
         <translation>Objekt filtern</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1320"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1323"/>
         <source>Filter within ("AND")</source>
         <translation>Filter innerhalb ("AND")</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1323"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1326"/>
         <source>Extend filter ("OR")</source>
         <translation>Filter erweitern ("OR")</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1331"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1334"/>
         <source>Close</source>
         <translation>Schließen</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsattributeform.cpp" line="1457"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1460"/>
         <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="1473"/>
+        <location filename="../src/gui/qgsattributeform.cpp" line="1476"/>
         <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>
@@ -30112,19 +30122,19 @@ Operation kann nicht zurückgenommen werden!</translation>
 <context>
     <name>QgsBookmarks</name>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="51"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="53"/>
         <source>Import/Export Bookmarks</source>
         <translation>Lesezeichen im-/exportieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="75"/>
-        <location filename="../src/app/qgsbookmarks.cpp" line="178"/>
-        <location filename="../src/app/qgsbookmarks.cpp" line="316"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="77"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="180"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="318"/>
         <source>Error</source>
         <translation>Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="76"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="78"/>
         <source>Unable to open bookmarks database.
 Database: %1
 Driver: %2
@@ -30135,52 +30145,52 @@ Treiber: %2
 Datenbank: %3</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="92"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="94"/>
         <source>ID</source>
         <translation>ID</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="93"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="95"/>
         <source>Name</source>
         <translation>Name</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="94"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="96"/>
         <source>Project</source>
         <translation>Projekt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="95"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="97"/>
         <source>xMin</source>
         <translation>xMin</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="96"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="98"/>
         <source>yMin</source>
         <translation>yMin</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="97"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="99"/>
         <source>xMax</source>
         <translation>xMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="98"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="100"/>
         <source>yMax</source>
         <translation>yMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="99"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="101"/>
         <source>SRID</source>
         <translation>SRID</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="161"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="163"/>
         <source>New bookmark</source>
         <translation>Neues Lesezeichen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="178"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="180"/>
         <source>Unable to create the bookmark.
 Driver:%1
 Database:%2</source>
@@ -30189,12 +30199,12 @@ Treiber: %1
 Datenbank: %2</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="199"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="201"/>
         <source>Really Delete?</source>
         <translation>Wirklich löschen?</translation>
     </message>
     <message numerus="yes">
-        <location filename="../src/app/qgsbookmarks.cpp" line="200"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="202"/>
         <source>Are you sure you want to delete %n bookmark(s)?</source>
         <comment>number of rows</comment>
         <translation>
@@ -30203,37 +30213,37 @@ Datenbank: %2</translation>
         </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="241"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="243"/>
         <source>Empty extent</source>
         <translation>Ausdehnung leer</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="241"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="243"/>
         <source>Reprojected extent is empty.</source>
         <translation>Reprojiziertes Ausmaß ist leer.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="56"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="58"/>
         <source>&Export</source>
         <translation>&Exportiere</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="57"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="59"/>
         <source>&Import</source>
         <translation>&Importiere</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="256"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="258"/>
         <source>Import Bookmarks</source>
         <translation>Importiere Lesezeichen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="257"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="259"/>
         <source>XML files (*.xml *XML)</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="316"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="318"/>
         <source>Unable to create the bookmark.
 Driver: %1
 Database: %2</source>
@@ -30242,12 +30252,12 @@ Treiber: %1
 Datenbank: %2</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="331"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="333"/>
         <source>Export bookmarks</source>
         <translation>Exportiere Lesezeichen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="332"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="334"/>
         <source>XML files( *.xml *.XML )</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
@@ -31412,21 +31422,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="1648"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2032"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2505"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1672"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2056"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2529"/>
         <source>Save composition as</source>
         <translation>Zusammenstellung speichern als</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1683"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2178"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2541"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1707"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2202"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2565"/>
         <source>Export atlas to directory</source>
         <translation>Atlas in Verzeichnis exportieren</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3554"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3538"/>
         <source>Composer</source>
         <translation>Zusammenstellung</translation>
     </message>
@@ -31507,8 +31517,8 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     </message>
     <message>
         <location filename="../src/app/composer/qgscomposer.cpp" line="495"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="938"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="948"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="962"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="972"/>
         <source>%1%</source>
         <translation>%1%</translation>
     </message>
@@ -31539,314 +31549,312 @@ Sollen die vorhandenen Klassen vor der Klassifizierung gelöscht werden?</transl
     </message>
     <message>
         <location filename="../src/app/composer/qgscomposer.cpp" line="906"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="4153"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="4198"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="4137"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="4182"/>
         <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="921"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="945"/>
         <source>x: %1 mm</source>
         <translation>x: %1 mm</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="922"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="946"/>
         <source>y: %1 mm</source>
         <translation>y: %1 mm</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="923"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="947"/>
         <source>page: %3</source>
         <translation>Seite: %3</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1081"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1106"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1105"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1130"/>
         <source>Enable atlas preview</source>
         <translation>Atlas-Voransicht einschalten</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1082"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1106"/>
         <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="1107"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1131"/>
         <source>No matching atlas features found!</source>
         <translation>Keine passenden Atlas-Objekte gefunden!</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1650"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1674"/>
         <source>PDF Format</source>
         <translation>PDF-Format</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1669"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2163"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2525"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1693"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2187"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2549"/>
         <source>Empty filename pattern</source>
         <translation>Dateinamenmuster leer</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1670"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2164"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2526"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1694"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2188"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2550"/>
         <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="1693"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2228"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2552"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1717"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2252"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2576"/>
         <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="1694"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2229"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2553"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1718"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2253"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2577"/>
         <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="1714"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1731"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1756"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1757"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1777"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1808"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1899"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1738"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1755"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1780"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1781"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1801"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1832"/>
         <location filename="../src/app/composer/qgscomposer.cpp" line="1923"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1924"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2255"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2280"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2281"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2349"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2602"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2631"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2632"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1947"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1948"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2279"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2304"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2305"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2373"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2626"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2655"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2656"/>
         <source>Atlas processing error</source>
         <translation>Atlas-Verarbeitungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1715"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1900"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2256"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2603"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1739"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1924"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2280"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2627"/>
         <source>Feature filter parser error: %1</source>
         <translation>Interpretationsfehler bei Objektfilter: %1</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1732"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1778"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1809"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2125"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2350"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2700"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2858"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1756"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1802"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1833"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2149"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2374"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2724"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2882"/>
         <source>Error creating %1.</source>
         <translation>Fehler beim Erzeugung von %1.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1740"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1907"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2264"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2611"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1764"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1931"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2288"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2635"/>
         <source>Rendering maps...</source>
         <translation>Zeichne Karten...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1740"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1907"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2264"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2611"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1764"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1931"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2288"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2635"/>
         <source>Abort</source>
         <translation>Abbrechen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1741"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1908"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2265"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2612"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1765"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="1932"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2289"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2636"/>
         <source>Exporting atlas</source>
         <translation>Exportiere Atlas</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1994"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2018"/>
         <source>Big image</source>
         <translation>Großes Bild</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="1995"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2019"/>
         <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="2099"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2123"/>
         <source>Memory Allocation Error</source>
         <translation>Speicherreservierungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2100"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2124"/>
         <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="2124"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2148"/>
         <source>Image export error</source>
         <translation>Bildexportfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2203"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2227"/>
         <source>Image format: </source>
         <translation>Bildformat: </translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2454"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2478"/>
         <source>SVG warning</source>
         <translation>SVG-Warnung</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2455"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3895"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2479"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3879"/>
         <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="2459"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2483"/>
         <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="2461"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2485"/>
         <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="2464"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2488"/>
         <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="2507"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2531"/>
         <source>SVG Format</source>
         <translation>SVG-Format</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2699"/>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2857"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2723"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2881"/>
         <source>SVG export error</source>
         <translation>SVG-Exportfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2826"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2850"/>
         <source> on page </source>
         <translation>auf Seite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2826"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2850"/>
         <source>SVG error</source>
         <translation>SVG-Fehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="2826"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="2850"/>
         <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="3018"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3042"/>
         <source> copy</source>
         <translation> Kopie</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3024"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3048"/>
         <source>Duplicating composer...</source>
         <translation>Dupliziere Druckzusammenstellung...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3036"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3060"/>
         <source>Duplicate Composer</source>
         <translation>Druckzusammenstellungsduplizierung</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3037"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3061"/>
         <source>Composer duplication failed.</source>
         <translation>Duplikation der Druckzusammenstellung gescheitert.</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3060"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3084"/>
         <source>Save template</source>
         <translation>Vorlage speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3062"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3086"/>
         <source>Composer templates</source>
         <translation>Druckvorlagen</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3086"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3110"/>
         <source>Save error</source>
         <translation>Fehler beim Speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3086"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3110"/>
         <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="3099"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3121"/>
         <source>Load template</source>
         <translation>Vorlage laden</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3112"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3134"/>
         <source>Read error</source>
         <translation>Lesefehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3112"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3134"/>
         <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="3129"/>
         <source>Composer error</source>
-        <translation>Zusammenstellungsfehler</translation>
+        <translation type="obsolete">Zusammenstellungsfehler</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3129"/>
         <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="3146"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="913"/>
         <source>Loading template into composer...</source>
         <translation>Lade Zusammenstellung aus Vorlage...</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3893"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3877"/>
         <source>Project contains WMS layers</source>
         <translation>Projekt enthält WMS-Layer</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3894"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3878"/>
         <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="3908"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3892"/>
         <source>Project contains composition effects</source>
         <translation>Projekt enthält Kompositionseffekte</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposer.cpp" line="3909"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3893"/>
         <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="3910"/>
+        <location filename="../src/app/composer/qgscomposer.cpp" line="3894"/>
         <source>Print as raster</source>
         <translation>Als Raster drucken</translation>
     </message>
@@ -34080,72 +34088,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>
@@ -34465,12 +34478,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="557"/>
+        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="606"/>
         <source><legend></source>
         <translation><legend></translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="561"/>
+        <location filename="../src/core/composer/qgscomposerlegend.cpp" line="610"/>
         <source>%1...</source>
         <translation>%1...</translation>
     </message>
@@ -34509,162 +34522,167 @@ 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="152"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="154"/>
         <source>Item wrapping changed</source>
         <translation>Elementumbruch geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="164"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="166"/>
         <source>Legend title changed</source>
         <translation>Legendentitel geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="177"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="179"/>
         <source>Legend title alignment changed</source>
         <translation>Legendentitelausrichtung geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="188"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="190"/>
         <source>Legend column count</source>
         <translation>Legendenspaltenanzahl</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="202"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="204"/>
         <source>Legend split layers</source>
         <translation>Layerlegende aufgeteilt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="214"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="216"/>
         <source>Legend equal column width</source>
         <translation>Gleiche Spaltenbreite eingeschaltet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="226"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="228"/>
         <source>Legend symbol width</source>
         <translation>Legendensymbolbreite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="238"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="240"/>
         <source>Legend symbol height</source>
         <translation>Legendensymbolhöhe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="250"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="252"/>
         <source>Wms Legend width</source>
         <translation>WMS-Legendenbreite</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="262"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="264"/>
         <source>Wms Legend height</source>
         <translation>WMS-Legendenhöhe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="274"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="276"/>
         <source>Legend title space bottom</source>
         <translation>Unterer Legendentitelzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="286"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="288"/>
         <source>Legend group space</source>
         <translation>Legendgruppenzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="298"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="300"/>
         <source>Legend layer space</source>
         <translation>Legendlayerzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="310"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="312"/>
         <source>Legend symbol space</source>
         <translation>Legendensymbolzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="324"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="326"/>
         <source>Legend icon label space</source>
         <translation>Legendeniconbeschriftungszwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="340"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="342"/>
         <source>Title font changed</source>
         <translation>Titelschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="357"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="359"/>
         <source>Legend group font changed</source>
         <translation>Legendgruppenschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="374"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="376"/>
         <source>Legend layer font changed</source>
         <translation>Legendenlayerschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="391"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="393"/>
         <source>Legend item font changed</source>
         <translation>Legendenelementschriftart geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="407"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="409"/>
         <source>Legend font color changed</source>
         <translation>Legendschriftfarbe geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="417"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="429"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="419"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="431"/>
         <source>Legend box space</source>
         <translation>Legendenrahmenzwischenraum</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="568"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="570"/>
         <source>Legend map changed</source>
         <translation>Legendenkarte geändert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="582"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="584"/>
+        <source>Legend resize to contents</source>
+        <translation>Legendengröße an Inhalt anpassen</translation>
+    </message>
+    <message>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="599"/>
         <source>Legend raster borders</source>
         <translation>Legendenrasterränder</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="596"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="613"/>
         <source>Legend raster border width</source>
         <translation>Legendenrasterrandstärke</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="610"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="627"/>
         <source>Legend raster border color</source>
         <translation>Legendenrasterrandfarbe</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="972"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="993"/>
         <source>Legend item properties</source>
         <translation>Eigenschaften des Legendenelements</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="972"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="993"/>
         <source>Item text</source>
         <translation>Elementtext</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="977"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="998"/>
         <source>Legend item edited</source>
         <translation>Legendenelement bearbeitet</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="744"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="778"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="787"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="815"/>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="854"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="761"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="795"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="804"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="832"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="871"/>
         <source>Legend updated</source>
         <translation>Legende aktualisiert</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="830"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="847"/>
         <source>Legend group added</source>
         <translation>Legendengruppe hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="831"/>
+        <location filename="../src/app/composer/qgscomposerlegendwidget.cpp" line="848"/>
         <source>Group</source>
         <translation>Gruppe</translation>
     </message>
@@ -34702,90 +34720,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="278"/>
+        <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="352"/>
+        <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="443"/>
+        <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="870"/>
+        <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="873"/>
+        <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="890"/>
+        <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="947"/>
+        <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="538"/>
+        <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="556"/>
+        <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="576"/>
+        <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="586"/>
+        <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="832"/>
+        <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="627"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="647"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="740"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="790"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="813"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="863"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="883"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="903"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="923"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="940"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="957"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="977"/>
+        <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"/>
@@ -34803,158 +34820,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="281"/>
+        <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="375"/>
+        <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>Größe an Inhalt 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="427"/>
+        <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="430"/>
+        <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="461"/>
+        <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="468"/>
+        <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="475"/>
+        <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="482"/>
+        <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="491"/>
+        <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="583"/>
+        <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="599"/>
+        <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="617"/>
+        <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="637"/>
+        <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="657"/>
+        <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="672"/>
+        <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="721"/>
+        <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="737"/>
+        <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="762"/>
+        <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="780"/>
+        <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="803"/>
+        <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="850"/>
+        <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="853"/>
+        <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="893"/>
+        <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="910"/>
+        <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="913"/>
+        <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="930"/>
+        <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="964"/>
-        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="974"/>
+        <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="967"/>
+        <location filename="../src/ui/composer/qgscomposerlegendwidgetbase.ui" line="974"/>
         <source>Title space</source>
         <translation>Titelzwischenraum</translation>
     </message>
@@ -34994,7 +35021,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>
@@ -35019,72 +35046,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>
@@ -35130,30 +35156,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="143"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="2146"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="144"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="2147"/>
         <source>Map %1</source>
         <translation>Karte %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="347"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="348"/>
         <source>Map will be printed here</source>
         <translation>Karte wird hier gedruckt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1498"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1682"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1499"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1683"/>
         <source>Grid %1</source>
         <translation>Gitter %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1560"/>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="1999"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="1561"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="2000"/>
         <source>Overview %1</source>
         <translation>Übersicht %1</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposermap.cpp" line="2175"/>
+        <location filename="../src/core/composer/qgscomposermap.cpp" line="2176"/>
         <source>Map Settings</source>
         <translation>Karteneinstellungen</translation>
     </message>
@@ -36197,12 +36223,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>
@@ -37655,132 +37681,132 @@ Bitte versuchen Sie eine niedrigere Auflösung oder ein kleineres Papierformat</
 <context>
     <name>QgsComposition</name>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1250"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1252"/>
         <source>Label added</source>
         <translation>Beschriftung hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1293"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1295"/>
         <source>Map added</source>
         <translation>Karte hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1338"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1340"/>
         <source>Arrow added</source>
         <translation>Pfeil hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1366"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1368"/>
         <source>Scale bar added</source>
         <translation>Maßstabsleiste hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1396"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1398"/>
         <source>Shape added</source>
         <translation>Form hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1427"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1429"/>
         <source>Polygon added</source>
         <translation>Polygon hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1458"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1460"/>
         <source>Polyline added</source>
         <translation>Polylinie hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1487"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1489"/>
         <source>Picture added</source>
         <translation>Bild hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1515"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1517"/>
         <source>Legend added</source>
         <translation>Legende hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1543"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1545"/>
         <source>Table added</source>
         <translation>Tabelle hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1595"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1597"/>
         <source>Group added</source>
         <translation>Gruppe hinzugefügt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1808"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1810"/>
         <source>Aligned items left</source>
         <translation>Element links ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1838"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1840"/>
         <source>Aligned items horizontal center</source>
         <translation>Elemente horizontal zentriert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1925"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1927"/>
         <source>Aligned items vertical center</source>
         <translation>Elemente vertikal zentriert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1868"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1870"/>
         <source>Aligned items right</source>
         <translation>Elemente rechts ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1897"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1899"/>
         <source>Aligned items top</source>
         <translation>Element oben ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1953"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1955"/>
         <source>Aligned items bottom</source>
         <translation>Element unten ausgerichtet</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1968"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1970"/>
         <source>Items locked</source>
         <translation>Element gesperrt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="1988"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="1990"/>
         <source>Items unlocked</source>
         <translation>Element entsperrt</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2034"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2036"/>
         <source>Items grouped</source>
         <translation>Elemente gruppiert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2058"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2060"/>
         <source>Items ungrouped</source>
         <translation>Elementgruppe aufgelöst</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2090"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2092"/>
         <source>Item z-order changed</source>
         <translation>Elementebene geändert</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2690"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2692"/>
         <source>Remove item group</source>
         <translation>Elementgruppe entfernen</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2717"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2719"/>
         <source>Frame deleted</source>
         <translation>Rahmen gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2722"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2724"/>
         <source>Item deleted</source>
         <translation>Element gelöscht</translation>
     </message>
     <message>
-        <location filename="../src/core/composer/qgscomposition.cpp" line="2735"/>
+        <location filename="../src/core/composer/qgscomposition.cpp" line="2737"/>
         <source>Multiframe removed</source>
         <translation>Mehrfachrahmen gelöscht</translation>
     </message>
@@ -37826,153 +37852,153 @@ 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="399"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="516"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="42"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="412"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="529"/>
         <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="520"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="43"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="533"/>
         <source>Portrait</source>
         <translation>Hochformat</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="273"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="286"/>
         <source>A5 (148x210 mm)</source>
         <translation>A5 (148x210 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="274"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="287"/>
         <source>A4 (210x297 mm)</source>
         <translation>A4 (210x297 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="275"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="288"/>
         <source>A3 (297x420 mm)</source>
         <translation>A3 (297x420 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="276"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="289"/>
         <source>A2 (420x594 mm)</source>
         <translation>A2 (420x594 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="277"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="290"/>
         <source>A1 (594x841 mm)</source>
         <translation>A1 (594x841 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="278"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="291"/>
         <source>A0 (841x1189 mm)</source>
         <translation>A0 (841x1189 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="279"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="292"/>
         <source>B5 (176 x 250 mm)</source>
         <translation>B5 (176 x 250 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="280"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="293"/>
         <source>B4 (250 x 353 mm)</source>
         <translation>B4 (250 x 353 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="281"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="294"/>
         <source>B3 (353 x 500 mm)</source>
         <translation>B3 (353 x 500 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="282"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="295"/>
         <source>B2 (500 x 707 mm)</source>
         <translation>B2 (500 x 707 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="283"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="296"/>
         <source>B1 (707 x 1000 mm)</source>
         <translation>B1 (707 x 1000 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="284"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="297"/>
         <source>B0 (1000 x 1414 mm)</source>
         <translation>B0 (1000 x 1414 mm)</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="286"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="299"/>
         <source>Legal (8.5x14 in)</source>
         <translation>Legal (8.5x14")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="287"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="300"/>
         <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="288"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="301"/>
         <source>ANSI B (Tabloid; 11x17 in)</source>
         <translation>ANSI B (Tabloid; 11x17")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="289"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="302"/>
         <source>ANSI C (17x22 in)</source>
         <translation>ANSI C (17x22")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="290"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="303"/>
         <source>ANSI D (22x34 in)</source>
         <translation>ANSI D (22x34")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="291"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="304"/>
         <source>ANSI E (34x44 in)</source>
         <translation>ANSI E (34x44")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="292"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="305"/>
         <source>Arch A (9x12 in)</source>
         <translation>Arch A (9x12")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="293"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="306"/>
         <source>Arch B (12x18 in)</source>
         <translation>Arch B (12x18")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="294"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="307"/>
         <source>Arch C (18x24 in)</source>
         <translation>Arch C (18x24")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="295"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="308"/>
         <source>Arch D (24x36 in)</source>
         <translation>Arch D (24x36")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="296"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="309"/>
         <source>Arch E (36x48 in)</source>
         <translation>Arch E (36x48")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="297"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="310"/>
         <source>Arch E1 (30x42 in)</source>
         <translation>Arch E1 (30x42")</translation>
     </message>
     <message>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="299"/>
         <location filename="../src/app/composer/qgscompositionwidget.cpp" line="312"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="331"/>
-        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="366"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="325"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="344"/>
+        <location filename="../src/app/composer/qgscompositionwidget.cpp" line="379"/>
         <source>Custom</source>
         <translation>Benutzerdefiniert</translation>
     </message>
@@ -42326,12 +42352,12 @@ Parser-Fehler:
 <context>
     <name>QgsDxfExportDialog</name>
     <message>
-        <location filename="../src/app/qgsdxfexportdialog.cpp" line="558"/>
+        <location filename="../src/app/qgsdxfexportdialog.cpp" line="560"/>
         <source>Export as DXF</source>
         <translation>Als DXF exportieren</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsdxfexportdialog.cpp" line="558"/>
+        <location filename="../src/app/qgsdxfexportdialog.cpp" line="560"/>
         <source>DXF files *.dxf *.DXF</source>
         <translation>DXF-Dateien *.dxf *.DXF</translation>
     </message>
@@ -44584,31 +44610,31 @@ p, li { white-space: pre-wrap; }
     </message>
     <message>
         <source>Returns a point projected from a start point using a distance and bearing (azimuth) in radians.</source>
-        <translation type="obsolete">Liefert einen von einem Startpunkt, einem Abstand und einer Richtung im Bogenmaß (Azimuth) projizierten Punkt.</translation>
+        <translation>Liefert einen von einem Startpunkt, einem Abstand und einer Richtung im Bogenmaß (Azimuth) projizierten Punkt.</translation>
     </message>
     <message>
         <source>project</source>
-        <translation type="obsolete">Projekt</translation>
+        <translation>Projekt</translation>
     </message>
     <message>
         <source>start point</source>
-        <translation type="obsolete">Startpunkt</translation>
+        <translation>Startpunkt</translation>
     </message>
     <message>
         <source>distance to project</source>
-        <translation type="obsolete">zu projizierender Abstand</translation>
+        <translation>zu projizierender Abstand</translation>
     </message>
     <message>
         <source>bearing in radians clockwise, where 0 corresponds to north</source>
-        <translation type="obsolete">Richtung im Uhrzeigersinn im Bogenmaß, beginnend im Norden</translation>
+        <translation>Richtung im Uhrzeigersinn im Bogenmaß, beginnend im Norden</translation>
     </message>
     <message>
         <source>project(make_point(1, 2), 3, radians(270))</source>
-        <translation type="obsolete">project(make_point(1, 2), 3, radians(270))</translation>
+        <translation>project(make_point(1, 2), 3, radians(270))</translation>
     </message>
     <message>
         <source>Point(-2, 2)</source>
-        <translation type="obsolete">Point(-2, 2)</translation>
+        <translation>Point(-2, 2)</translation>
     </message>
     <message>
         <source>x</source>
@@ -44945,59 +44971,59 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>the result which will be returned when the condition is true or another value that does not convert to false.</source>
-        <translation type="obsolete">Das zurückzugebende Ergebnisse, wenn die Bedingung  erfüllt ist oder einen anderen Wert, wenn sie nicht erfüllt ist.</translation>
+        <translation>Das zurückzugebende Ergebnisse, wenn die Bedingung  erfüllt ist oder einen anderen Wert, wenn sie nicht erfüllt ist.</translation>
     </message>
     <message>
         <source>the result which will be returned when the condition is false or another value that converts to false like 0 or ''. NULL will also be converted to false.</source>
-        <translation type="obsolete">das Ergebnis, das zurückgegeben wird, wenn die Bedingung nicht erfüllt ist oder ein anderer Wert wie 0 oder '', der zu unwahr umgewandelt wird. NULL wird auch als unwahr betrachtet.</translation>
+        <translation>das Ergebnis, das zurückgegeben wird, wenn die Bedingung nicht erfüllt ist oder ein anderer Wert wie 0 oder '', der zu unwahr umgewandelt wird. NULL wird auch als unwahr betrachtet.</translation>
     </message>
     <message>
         <source>if( 1+1=2, 'Yes', 'No' )</source>
-        <translation type="obsolete">if( 1+1=2, 'Ja', 'Nein' )</translation>
+        <translation>if( 1+1=2, 'Ja', 'Nein' )</translation>
     </message>
     <message>
         <source>'Yes'</source>
-        <translation type="obsolete">'Ja'</translation>
+        <translation>'Ja'</translation>
     </message>
     <message>
         <source>if( 1+1=3, 'Yes', 'No' )</source>
-        <translation type="obsolete">if( 1+1=3, 'Ja', 'Nein' )</translation>
+        <translation>if( 1+1=3, 'Ja', 'Nein' )</translation>
     </message>
     <message>
         <source>'No'</source>
-        <translation type="obsolete">'Nein'</translation>
+        <translation>'Nein'</translation>
     </message>
     <message>
         <source>if( 5 > 3, 1, 0)</source>
-        <translation type="obsolete">if( 5 > 3, 1, 0)</translation>
+        <translation>if( 5 > 3, 1, 0)</translation>
     </message>
     <message>
         <source>if( '', 'It is true (not empty)', 'It is false (empty)' )</source>
-        <translation type="obsolete">if( '', 'Ist wahr (nicht leer)', 'ist unwahr  (leer)' )</translation>
+        <translation>if( '', 'Ist wahr (nicht leer)', 'ist unwahr  (leer)' )</translation>
     </message>
     <message>
         <source>'It is false (empty)'</source>
-        <translation type="obsolete">'ist unwahr (leer)'</translation>
+        <translation>'ist unwahr (leer)'</translation>
     </message>
     <message>
         <source>if( ' ', 'It is true (not empty)', 'It is false (empty)' )</source>
-        <translation type="obsolete">if( ' ', 'ist wahr (nicht leer)', 'ist unwahr (leer)' )</translation>
+        <translation>if( ' ', 'ist wahr (nicht leer)', 'ist unwahr (leer)' )</translation>
     </message>
     <message>
         <source>'It is true (not empty)'</source>
-        <translation type="obsolete">'ist wahr (nicht leer)'</translation>
+        <translation>'ist wahr (nicht leer)'</translation>
     </message>
     <message>
         <source>if( 0, 'One', 'Zero' )</source>
-        <translation type="obsolete">if( 0, 'Eins', 'Null' )</translation>
+        <translation>if( 0, 'Eins', 'Null' )</translation>
     </message>
     <message>
         <source>'Zero'</source>
-        <translation type="obsolete">'Null'</translation>
+        <translation>'Null'</translation>
     </message>
     <message>
         <source>if( 10, 'One', 'Zero' )</source>
-        <translation type="obsolete">if( 10, 'Eins', 'Null' )</translation>
+        <translation>if( 10, 'Eins', 'Null' )</translation>
     </message>
     <message>
         <source>Returns a specific interior ring from a polygon geometry, or null if the geometry is not a polygon.</source>
@@ -45428,176 +45454,204 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
         <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>
+        <source>Contains functions which aggregate values over layers and fields.</source>
+        <translation>Enthält Funktionen die Werte über Layer und Felder aggregieren.</translation>
+    </message>
+    <message>
+        <source>Aggregates</source>
+        <translation>Aggregate</translation>
+    </message>
+    <message>
         <source>Returns an aggregate value calculated using features from another layer.</source>
-        <translation type="obsolete">Liefert einen mit Objekten eines anderen Layers berechneten Aggregatwert.</translation>
+        <translation>Liefert einen mit Objekten eines anderen Layers berechneten Aggregatwert.</translation>
     </message>
     <message>
         <source>aggregate</source>
-        <translation type="obsolete">Aggregat</translation>
+        <translation>aggregate</translation>
     </message>
     <message>
         <source>a string corresponding to the aggregate to calculate. Valid options are:<br /><ul><li>count</li><li>count_distinct</li><li>count_missing</li><li>min</li><li>max</li><li>sum</li><li>mean</li><li>median</li><li>stdev</li><li>stdevsample</li><li>range</li><li>minority</li><li>majority</li><li>q1: first q [...]
-        <translation type="obsolete">Zeichenkette die das zu berechnende Aggregat angibt. Gültige Angaben sind:<br /><ul><li>count</li><li>count_distinct</li><li>count_missing</li><li>min</li><li>max</li><li>sum</li><li>mean</li><li>median</li><li>stdev</li><li>stdevsample</li><li>range</li><li>minority</li><li>majority</li&g [...]
+        <translation>Zeichenkette die das zu berechnende Aggregat angibt. Gültige Angaben sind:<br /><ul><li>count</li><li>count_distinct</li><li>count_missing</li><li>min</li><li>max</li><li>sum</li><li>mean</li><li>median</li><li>stdev</li><li>stdevsample</li><li>range</li><li>minority</li><li>majority</li><li>q1:  [...]
     </message>
     <message>
         <source>sub expression or field name to aggregate</source>
-        <translation type="obsolete">Unterausdruck oder zu aggregierender Feldname</translation>
+        <translation>Unterausdruck oder zu aggregierender Feldname</translation>
     </message>
     <message>
         <source>optional filter expression to limit the features used for calculating the aggregate</source>
-        <translation type="obsolete">optionaler Filterausdruck um die zur Aggregatberechnung herangezogenen Objekte zu beschränken</translation>
+        <translation>optionaler Filterausdruck um die zur Aggregatberechnung herangezogenen Objekte zu beschränken</translation>
     </message>
     <message>
         <source>optional string to use to join values for 'concatenate' aggregate</source>
-        <translation type="obsolete">Optionale Zeichenkette zum Verbinden der Werte des Aggregats 'concatenate'</translation>
+        <translation>Optionale Zeichenkette zum Verbinden der Werte des Aggregats 'concatenate'</translation>
     </message>
     <message>
         <source>aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers")</source>
-        <translation type="obsolete">aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers")</translation>
+        <translation>aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers")</translation>
     </message>
     <message>
         <source>sum of all values from the passengers field in the rail_stations layer</source>
-        <translation type="obsolete">Summe aller Werte des Felds passengeers im Layer rail_stations</translation>
+        <translation>Summe aller Werte des Felds passengeers im Layer rail_stations</translation>
     </message>
     <message>
         <source>aggregate('rail_stations','sum', "passengers"/7)</source>
-        <translation type="obsolete">aggregate('rail_stations','sum', "passengers"/7)</translation>
+        <translation>aggregate('rail_stations','sum', "passengers"/7)</translation>
     </message>
     <message>
         <source>calculates a daily average of "passengers" by dividing the "passengers" field by 7 before summing the values</source>
-        <translation type="obsolete">berechnet den täglichen Durchschnitt von "passengers" durch Teilen des Felds "passengers" durch 7 vor Summierung der Werte</translation>
+        <translation>berechnet den täglichen Durchschnitt von "passengers" durch Teilen des Felds "passengers" durch 7 vor Summierung der Werte</translation>
     </message>
     <message>
         <source>aggregate(layer:='rail_stations',calculation:='sum',expression:="passengers",filter:="class">3)</source>
-        <translation type="obsolete">aggregate(layer:='rail_stations',calculation:='sum',expression:="passengers",filter:="class">3)</translation>
+        <translation>aggregate(layer:='rail_stations',calculation:='sum',expression:="passengers",filter:="class">3)</translation>
     </message>
     <message>
         <source>sums up all values from the "passengers" field from features where the "class" attribute is greater than 3 only</source>
-        <translation type="obsolete">summiert nur der Werte des Felds "passengers" von Objekten deren Attribut "class" größer als 3 ist</translation>
+        <translation>summiert nur der Werte des Felds "passengers" von Objekten deren Attribut "class" größer als 3 ist</translation>
     </message>
     <message>
         <source>aggregate(layer:='rail_stations',calculation:='concatenate', expression:="name", concatenator:=',')</source>
-        <translation type="obsolete">aggregate(layer:='rail_stations',calculation:='concatenate', expression:="name", concatenator:=',')</translation>
+        <translation>aggregate(layer:='rail_stations',calculation:='concatenate', expression:="name", concatenator:=',')</translation>
     </message>
     <message>
         <source>comma separated list of the name field for all features in the rail_stations layer</source>
-        <translation type="obsolete">Kommagetrennte Liste des Feld name für alle Objekte im Layer rail_stations</translation>
+        <translation>Kommagetrennte Liste des Feld name für alle Objekte im Layer rail_stations</translation>
     </message>
     <message>
         <source>Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on point_a to point_b.</source>
-        <translation type="obsolete">Liefert auf Norden bezogenen Azimuth als Winkel im Bogenmaß im Uhrzeigersinn gemessen von der Vertikalen von punkt_a zu punkt_b.</translation>
+        <translation>Liefert auf Norden bezogenen Azimuth als Winkel im Bogenmaß im Uhrzeigersinn gemessen von der Vertikalen von punkt_a zu punkt_b.</translation>
+    </message>
+    <message>
+        <source>Returns the character associated with a unicode code.</source>
+        <translation>Liefert das dem Unicode-Kode zugehörige Zeichen.</translation>
+    </message>
+    <message>
+        <source>char</source>
+        <translation>char</translation>
+    </message>
+    <message>
+        <source>a unicode code number</source>
+        <translation>Eine Unicode-Kodenummer</translation>
+    </message>
+    <message>
+        <source>char(81)</source>
+        <translation>char(81)</translation>
+    </message>
+    <message>
+        <source>'Q'</source>
+        <translation>'Q'</translation>
     </message>
     <message>
         <source>Returns the all aggregated strings from a field or expression joined by a delimiter.</source>
-        <translation type="obsolete">Liefert alle durch ein Trennzeichen verbundene aggregierten Zeichenketten eines Felds oder Ausdruck</translation>
+        <translation>Liefert alle durch ein Trennzeichen verbundene aggregierten Zeichenketten eines Felds oder Ausdruck.</translation>
     </message>
     <message>
         <source>concatenate</source>
-        <translation type="obsolete">Verkettung</translation>
+        <translation>concatenate</translation>
     </message>
     <message>
         <source>sub expression of field to aggregate</source>
-        <translation type="obsolete">Unterausdruck des zu aggregierenden Felds</translation>
+        <translation>Unterausdruck des zu aggregierenden Felds</translation>
     </message>
     <message>
         <source>optional expression to use to group aggregate calculations</source>
-        <translation type="obsolete">Optionaler für Gruppenaggregierungsberechnungen zu verwendender Ausdruck </translation>
+        <translation>Optionaler für Gruppenaggregierungsberechnungen zu verwendender Ausdruck</translation>
     </message>
     <message>
         <source>optional expression to use to filter features used to calculate aggregate</source>
-        <translation type="obsolete">Optionaler Ausdruck zum Filtern der zu aggregierenden Objekte verwendet wird</translation>
+        <translation>Optionaler Ausdruck zum Filtern der zu aggregierenden Objekte verwendet wird</translation>
     </message>
     <message>
         <source>optional string to use to join values</source>
-        <translation type="obsolete">Optionale Zeichenkette um Werte zu verbinden</translation>
+        <translation>Optionale Zeichenkette um Werte zu verbinden</translation>
     </message>
     <message>
         <source>concatenate("town_name",group_by:="state",concatenator:=',')</source>
-        <translation type="obsolete">concatenate("town_name",group_by:="state",concatenator:=',')</translation>
+        <translation>concatenate("town_name",group_by:="state",concatenator:=',')</translation>
     </message>
     <message>
         <source>comma separated list of town_names, grouped by state field</source>
-        <translation type="obsolete">Kommagetrennte Liste von town_names, gruppiert nach Feld state</translation>
+        <translation>Kommagetrennte Liste von town_names, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the count of matching features.</source>
-        <translation type="obsolete">Liefert die Anzahl der passenden Objekte.</translation>
+        <translation>Liefert die Anzahl der passenden Objekte.</translation>
     </message>
     <message>
         <source>count</source>
-        <translation type="obsolete">count</translation>
+        <translation>count</translation>
     </message>
     <message>
         <source>count("stations",group_by:="state")</source>
-        <translation type="obsolete">count("stations",group_by:="state")</translation>
+        <translation>count("stations",group_by:="state")</translation>
     </message>
     <message>
         <source>count of stations, grouped by state field</source>
-        <translation type="obsolete">Stationen zählen, gruppiert nach Feld Staat</translation>
+        <translation>Stationen zählen, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the count of distinct values.</source>
-        <translation type="obsolete">Liefert die Anzahl von eindeutigen Werten.</translation>
+        <translation>Liefert die Anzahl von eindeutigen Werten.</translation>
     </message>
     <message>
         <source>count_distinct</source>
-        <translation type="obsolete">count_distinct</translation>
+        <translation>count_distinct</translation>
     </message>
     <message>
         <source>count_distinct("stations",group_by:="state")</source>
-        <translation type="obsolete">count_distinct("stations",group_by:="state")</translation>
+        <translation>count_distinct("stations",group_by:="state")</translation>
     </message>
     <message>
         <source>count of distinct stations values, grouped by state field</source>
-        <translation type="obsolete">Anzahl der unterschiedlichen Wert für station, gruppiert nach Feld state</translation>
+        <translation>Anzahl der unterschiedlichen Wert für station, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the count of missing (null) values.</source>
-        <translation type="obsolete">Liefert die Anzahl von fehlenden Werten (NULL).</translation>
+        <translation>Liefert die Anzahl von fehlenden Werten (NULL).</translation>
     </message>
     <message>
         <source>count_missing</source>
-        <translation type="obsolete">count_missing</translation>
+        <translation>count_missing</translation>
     </message>
     <message>
         <source>count_missing("stations",group_by:="state")</source>
-        <translation type="obsolete">count_missing("stations",group_by:="state")</translation>
+        <translation>count_missing("stations",group_by:="state")</translation>
     </message>
     <message>
         <source>count of missing (null) station values, grouped by state field</source>
-        <translation type="obsolete">Anzahl der fehlenden Stationswerte (NULL), gruppiert nach Feld Staat</translation>
+        <translation>Anzahl der fehlenden Stationswerte (NULL), gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the calculated inter quartile range from a field or expression.</source>
-        <translation type="obsolete">Liefert den berechneten Interquartilebereich eines Felds oder Ausdrucks</translation>
+        <translation>Liefert den berechneten Interquartilebereich eines Felds oder Ausdrucks</translation>
     </message>
     <message>
         <source>iqr</source>
-        <translation type="obsolete">iqr</translation>
+        <translation>iqr</translation>
     </message>
     <message>
         <source>iqr("population",group_by:="state")</source>
-        <translation type="obsolete">iqr("population",group_by:="state")</translation>
+        <translation>iqr("population",group_by:="state")</translation>
     </message>
     <message>
         <source>inter quartile range of population value, grouped by state field</source>
-        <translation type="obsolete">Interquartilbereich des Werts population, gruppiert nach Feld state</translation>
+        <translation>Interquartilbereich des Werts population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate majority of values (most commonly occurring value) from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierten Mehrheitswert (am häufigsten auftretender Wert) eines Felds oder Ausdrucks</translation>
+        <translation>Liefert den aggregierten Mehrheitswert (am häufigsten auftretender Wert) eines Felds oder Ausdrucks</translation>
     </message>
     <message>
         <source>majority</source>
-        <translation type="obsolete">majority</translation>
+        <translation>majority</translation>
     </message>
     <message>
         <source>majority("class",group_by:="state")</source>
-        <translation type="obsolete">majority("class",group_by:="state")</translation>
+        <translation>majority("class",group_by:="state")</translation>
     </message>
     <message>
         <source>most commonly occurring class value, grouped by state field</source>
-        <translation type="obsolete">häufigster auftretender Klassenwert, gruppiert nach Feld state</translation>
+        <translation>häufigster auftretender Klassenwert, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>optional m value of point</source>
@@ -45697,63 +45751,63 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the maximum length of strings from a field or expression.</source>
-        <translation type="obsolete">Liefert die maximale Zeichenkettenlängen eines Felds oder Ausdrucks</translation>
+        <translation>Liefert die maximale Zeichenkettenlängen eines Felds oder Ausdrucks</translation>
     </message>
     <message>
         <source>max_length</source>
-        <translation type="obsolete">max_length</translation>
+        <translation>max_length</translation>
     </message>
     <message>
         <source>max_length("town_name",group_by:="state")</source>
-        <translation type="obsolete">max_length("town_name",group_by:="state")</translation>
+        <translation>max_length("town_name",group_by:="state")</translation>
     </message>
     <message>
         <source>maximum length of town_name, grouped by state field</source>
-        <translation type="obsolete">Maximale Länge von town_name, gruppiert nach Feld Staat</translation>
+        <translation>Maximale Länge von town_name, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate maximum value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierten Maximalwert eines Felds oder Ausdrucks.</translation>
+        <translation>Liefert den aggregierten Maximalwert eines Felds oder Ausdrucks.</translation>
     </message>
     <message>
         <source>maximum("population",group_by:="state")</source>
-        <translation type="obsolete">maximum("population",group_by:="state")</translation>
+        <translation>maximum("population",group_by:="state")</translation>
     </message>
     <message>
         <source>maximum population value, grouped by state field</source>
-        <translation type="obsolete">Maximaler Bevölkerungswert, gruppiert nach Feld Staat</translation>
+        <translation>Maximaler Bevölkerungswert, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate mean value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierten Mittelwert eines Felds oder Ausdrucks</translation>
+        <translation>Liefert den aggregierten Mittelwert eines Felds oder Ausdrucks</translation>
     </message>
     <message>
         <source>mean</source>
-        <translation type="obsolete">Durchschnitt</translation>
+        <translation>Durchschnitt</translation>
     </message>
     <message>
         <source>mean("population",group_by:="state")</source>
-        <translation type="obsolete">mean("population",group_by:="state")</translation>
+        <translation>mean("population",group_by:="state")</translation>
     </message>
     <message>
         <source>mean population value, grouped by state field</source>
-        <translation type="obsolete">Mittlerer Wert von population, gruppiert nach Feld state</translation>
+        <translation>Mittlerer Wert von population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate median value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggegierten Medianwert aus einem Feld oder Ausdruck</translation>
+        <translation>Liefert den aggegierten Medianwert aus einem Feld oder Ausdruck</translation>
     </message>
     <message>
         <source>median</source>
-        <translation type="obsolete">median</translation>
+        <translation>median</translation>
     </message>
     <message>
         <source>median("population",group_by:="state")</source>
-        <translation type="obsolete">median("population",group_by:="state")</translation>
+        <translation>median("population",group_by:="state")</translation>
     </message>
     <message>
         <source>median population value, grouped by state field</source>
-        <translation type="obsolete">Bevölkerungsmedianwert, gruppiert nach Feld state</translation>
+        <translation>Bevölkerungsmedianwert, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the smallest value in a set of values.</source>
@@ -45773,47 +45827,47 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the minimum length of strings from a field or expression.</source>
-        <translation type="obsolete">Liefert die minimale Zeichenkettenlänge eines Felds oder Ausdrucks.</translation>
+        <translation>Liefert die minimale Zeichenkettenlänge eines Felds oder Ausdrucks.</translation>
     </message>
     <message>
         <source>min_length</source>
-        <translation type="obsolete">min_length</translation>
+        <translation>min_length</translation>
     </message>
     <message>
         <source>min_length("town_name",group_by:="state")</source>
-        <translation type="obsolete">min_length("town_name",group_by:="state")</translation>
+        <translation>min_length("town_name",group_by:="state")</translation>
     </message>
     <message>
         <source>minimum length of town_name, grouped by state field</source>
-        <translation type="obsolete">Minimale Länger von town_name, gruppiert nach Feld Staat</translation>
+        <translation>Minimale Länger von town_name, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate minimum value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierte minimalen Wert eines Feldes oder eines Ausdrucks.</translation>
+        <translation>Liefert den aggregierte minimalen Wert eines Feldes oder eines Ausdrucks.</translation>
     </message>
     <message>
         <source>minimum("population",group_by:="state")</source>
-        <translation type="obsolete">minimum("population",group_by:="state")</translation>
+        <translation>minimum("population",group_by:="state")</translation>
     </message>
     <message>
         <source>minimum population value, grouped by state field</source>
-        <translation type="obsolete">minimaler Wert von population, gruppiert nach Feld state</translation>
+        <translation>minimaler Wert von population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the aggregate minority of values (least occurring value) from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierte Minderheitswert (am wenigstens auftretende Wert) eines Feldes oder eines Ausdrucks.</translation>
+        <translation>Liefert den aggregierte Minderheitswert (am wenigstens auftretende Wert) eines Feldes oder eines Ausdrucks.</translation>
     </message>
     <message>
         <source>minority</source>
-        <translation type="obsolete">minority</translation>
+        <translation>minority</translation>
     </message>
     <message>
         <source>minority("class",group_by:="state")</source>
-        <translation type="obsolete">minority("class",group_by:="state")</translation>
+        <translation>minority("class",group_by:="state")</translation>
     </message>
     <message>
         <source>least occurring class value, grouped by state field</source>
-        <translation type="obsolete">am wenigsten auftretender Klassenwert, gruppiert nach Feld state</translation>
+        <translation>am wenigsten auftretender Klassenwert, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Extract the minutes part from a datetime or time, or the number of minutes from an interval.</source>
@@ -46405,35 +46459,35 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the calculated first quartile from a field or expression.</source>
-        <translation type="obsolete">Liefert das berechnete erste Quartil eines Feld oder Ausdrucks.</translation>
+        <translation>Liefert das berechnete erste Quartil eines Feld oder Ausdrucks.</translation>
     </message>
     <message>
         <source>q1</source>
-        <translation type="obsolete">q1</translation>
+        <translation>q1</translation>
     </message>
     <message>
         <source>q1("population",group_by:="state")</source>
-        <translation type="obsolete">q1("population",group_by:="state")</translation>
+        <translation>q1("population",group_by:="state")</translation>
     </message>
     <message>
         <source>first quartile of population value, grouped by state field</source>
-        <translation type="obsolete">Erstes Quartil des Werts population, gruppiert nach Feld state</translation>
+        <translation>Erstes Quartil des Werts population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns the calculated third quartile from a field or expression.</source>
-        <translation type="obsolete">Liefert das berechnete dritte Quartil eines Feld oder Ausdrucks.</translation>
+        <translation>Liefert das berechnete dritte Quartil eines Feld oder Ausdrucks.</translation>
     </message>
     <message>
         <source>q3</source>
-        <translation type="obsolete">q3</translation>
+        <translation>q3</translation>
     </message>
     <message>
         <source>q3("population",group_by:="state")</source>
-        <translation type="obsolete">q3("population",group_by:="state")</translation>
+        <translation>q3("population",group_by:="state")</translation>
     </message>
     <message>
         <source>third quartile of population value, grouped by state field</source>
-        <translation type="obsolete">Drittes Quartil des Werts population, gruppiert nach Feld state</translation>
+        <translation>Drittes Quartil des Werts population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Converts from degrees to radians.</source>
@@ -46529,19 +46583,19 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the aggregate range of values (maximum - minimum) from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierten Wertnbereich (maximum - minimum) eines Felds oder Ausdrucks.</translation>
+        <translation>Liefert den aggregierten Wertnbereich (maximum - minimum) eines Felds oder Ausdrucks.</translation>
     </message>
     <message>
         <source>range</source>
-        <translation type="obsolete">range</translation>
+        <translation>range</translation>
     </message>
     <message>
         <source>range("population",group_by:="state")</source>
-        <translation type="obsolete">range("population",group_by:="state")</translation>
+        <translation>range("population",group_by:="state")</translation>
     </message>
     <message>
         <source>range of population values, grouped by state field</source>
-        <translation type="obsolete">Wertbereich population, gruppiert nach Feld state</translation>
+        <translation>Wertbereich population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns true if any part of a string matches the supplied regular expression.</source>
@@ -46657,39 +46711,39 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns an aggregate value calculated using all matching child features from a layer relation.</source>
-        <translation type="obsolete">Liefert einen aus allen passenden Kindobjekten aggregierten Wert einer Layerbeziehung.</translation>
+        <translation>Liefert einen aus allen passenden Kindobjekten aggregierten Wert einer Layerbeziehung.</translation>
     </message>
     <message>
         <source>relation_aggregate</source>
-        <translation type="obsolete">relation_aggregate</translation>
+        <translation>relation_aggregate</translation>
     </message>
     <message>
         <source>a string, representing a relation ID</source>
-        <translation type="obsolete">eine Zeichenkette, die die Verknüpfungskennung angibt</translation>
+        <translation>eine Zeichenkette, die die Verknüpfungskennung angibt</translation>
     </message>
     <message>
         <source>relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers")</source>
-        <translation type="obsolete">relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers")</translation>
+        <translation>relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers")</translation>
     </message>
     <message>
         <source>mean value of all matching child features using the 'my_relation' relation</source>
-        <translation type="obsolete">Mittelwert aller passenden Kindobjekte zur 'my_relation' Beziehung</translation>
+        <translation>Mittelwert aller passenden Kindobjekte zur 'my_relation' Beziehung</translation>
     </message>
     <message>
         <source>relation_aggregate('my_relation','sum', "passengers"/7)</source>
-        <translation type="obsolete">relation_aggregate('my_relation','sum', "passengers"/7)</translation>
+        <translation>relation_aggregate('my_relation','sum', "passengers"/7)</translation>
     </message>
     <message>
         <source>sum of the passengers field divided by 7 for all matching child features using the 'my_relation' relation</source>
-        <translation type="obsolete">Summe von des Feld passengers geteilt durch 7 für alle  passenden Kindobjekte über die Beziehung 'my_relation'</translation>
+        <translation>Summe von des Feld passengers geteilt durch 7 für alle passenden Kindobjekte über die Beziehung 'my_relation'</translation>
     </message>
     <message>
         <source>relation_aggregate('my_relation','concatenate', "towns", concatenator:=',')</source>
-        <translation type="obsolete">relation_aggregate('my_relation','concatenate', "towns", concatenator:=',')</translation>
+        <translation>relation_aggregate('my_relation','concatenate', "towns", concatenator:=',')</translation>
     </message>
     <message>
         <source>comma separated list of the towns field for all matching child features using the 'my_relation' relation</source>
-        <translation type="obsolete">Kommagetrennte Liste des Felds towns für alle passenden Kindobjekte über die Beziehung 'my_relation'</translation>
+        <translation>Kommagetrennte Liste des Felds towns für alle passenden Kindobjekte über die Beziehung 'my_relation'</translation>
     </message>
     <message>
         <source>Returns a string with the the supplied string replaced.</source>
@@ -47061,19 +47115,19 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the aggregate standard deviation value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierten Standardabweichungswert eines Felds oder Ausdrucks.</translation>
+        <translation>Liefert den aggregierten Standardabweichungswert eines Felds oder Ausdrucks.</translation>
     </message>
     <message>
         <source>stdev</source>
-        <translation type="obsolete">stdev</translation>
+        <translation>stdev</translation>
     </message>
     <message>
         <source>stdev("population",group_by:="state")</source>
-        <translation type="obsolete">stdev("population",group_by:="state")</translation>
+        <translation>stdev("population",group_by:="state")</translation>
     </message>
     <message>
         <source>standard deviation of population value, grouped by state field</source>
-        <translation type="obsolete">Standardabweichung des Feld population gruppiert nach Feld state</translation>
+        <translation>Standardabweichung des Feld population gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Return the first matching position of a substring within another string, or 0 if the substring is not found.</source>
@@ -47129,19 +47183,19 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>Returns the aggregate summed value from a field or expression.</source>
-        <translation type="obsolete">Liefert den aggregierte summierten Wert eines Feldes oder eines Ausdrucks.</translation>
+        <translation>Liefert den aggregierte summierten Wert eines Feldes oder eines Ausdrucks.</translation>
     </message>
     <message>
         <source>sum</source>
-        <translation type="obsolete">Summe</translation>
+        <translation>Summe</translation>
     </message>
     <message>
         <source>sum("population",group_by:="state")</source>
-        <translation type="obsolete">sum("population",group_by:="state")</translation>
+        <translation>sum("population",group_by:="state")</translation>
     </message>
     <message>
         <source>summed population value, grouped by state field</source>
-        <translation type="obsolete">summierter Wert von population, gruppiert nach Feld state</translation>
+        <translation>summierter Wert von population, gruppiert nach Feld state</translation>
     </message>
     <message>
         <source>Returns a geometry that represents the portions of two geometries that do not intersect.</source>
@@ -47577,11 +47631,11 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>x( $geometry )</source>
-        <translation type="obsolete">x( $geometry )</translation>
+        <translation>x( $geometry )</translation>
     </message>
     <message>
         <source>x coordinate of the current feature's centroid</source>
-        <translation type="obsolete">X-Koordinate des Zentroiden des aktuellen Objekts</translation>
+        <translation>X-Koordinate des Zentroiden des aktuellen Objekts</translation>
     </message>
     <message>
         <source>Returns the maximum x coordinate of a geometry. Calculations are in the spatial reference system of this geometry.</source>
@@ -47617,11 +47671,11 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>y( $geometry )</source>
-        <translation type="obsolete">y( $geometry )</translation>
+        <translation>y( $geometry )</translation>
     </message>
     <message>
         <source>y coordinate of the current feature's centroid</source>
-        <translation type="obsolete">Y-Koordinate des Zentroiden des aktuellen Objekts</translation>
+        <translation>Y-Koordinate des Zentroiden des aktuellen Objekts</translation>
     </message>
     <message>
         <source>Returns the maximum y coordinate of a geometry. Calculations are in the spatial reference system of this geometry.</source>
@@ -47693,63 +47747,63 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>i</source>
-        <translation>i</translation>
+        <translation type="obsolete">i</translation>
     </message>
     <message>
         <source>a</source>
-        <translation>a</translation>
+        <translation type="obsolete">a</translation>
     </message>
     <message>
         <source>b</source>
-        <translation>b</translation>
+        <translation type="obsolete">b</translation>
     </message>
     <message>
         <source>string/number</source>
-        <translation>Zeichenkette/Zahl</translation>
+        <translation type="obsolete">Zeichenkette/Zahl</translation>
     </message>
     <message>
         <source>pattern</source>
-        <translation>Muster</translation>
+        <translation type="obsolete">Muster</translation>
     </message>
     <message>
         <source>datetime1</source>
-        <translation>datumzeit1</translation>
+        <translation type="obsolete">datumzeit1</translation>
     </message>
     <message>
         <source>datetime2</source>
-        <translation>datumzeit2</translation>
+        <translation type="obsolete">datumzeit2</translation>
     </message>
     <message>
         <source>dy</source>
-        <translation>dy</translation>
+        <translation type="obsolete">dy</translation>
     </message>
     <message>
         <source>dx</source>
-        <translation>dx</translation>
+        <translation type="obsolete">dx</translation>
     </message>
     <message>
         <source>feature</source>
-        <translation>Objekt</translation>
+        <translation type="obsolete">Objekt</translation>
     </message>
     <message>
         <source>attribute_name</source>
-        <translation>attribut_name</translation>
+        <translation type="obsolete">attribut_name</translation>
     </message>
     <message>
         <source>Returns the north-based azimuth as the angle in radians measured clockwise from the vertical on pointA to pointB.</source>
-        <translation>Liefert auf Norden bezogenen Azimuth als Winkel im Bogenmaß im Uhrzeigersinn gemessen von der Vertikallen von punktA zu punktB.</translation>
+        <translation type="obsolete">Liefert auf Norden bezogenen Azimuth als Winkel im Bogenmaß im Uhrzeigersinn gemessen von der Vertikallen von punktA zu punktB.</translation>
     </message>
     <message>
         <source>pointA</source>
-        <translation>punktA</translation>
+        <translation type="obsolete">punktA</translation>
     </message>
     <message>
         <source>pointB</source>
-        <translation>punktB</translation>
+        <translation type="obsolete">punktB</translation>
     </message>
     <message>
         <source>geom</source>
-        <translation>geom</translation>
+        <translation type="obsolete">geom</translation>
     </message>
     <message>
         <source>minimum</source>
@@ -47757,7 +47811,7 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>input</source>
-        <translation>eingabe</translation>
+        <translation type="obsolete">eingabe</translation>
     </message>
     <message>
         <source>maximum</source>
@@ -47765,339 +47819,339 @@ valign="top"><td>dddd</td><td>der lange lokale Wo
     </message>
     <message>
         <source>geometry 1</source>
-        <translation>Geometrie 1</translation>
+        <translation type="obsolete">Geometrie 1</translation>
     </message>
     <message>
         <source>geometry 2</source>
-        <translation>Geometrie 2</translation>
+        <translation type="obsolete">Geometrie 2</translation>
     </message>
     <message>
         <source>expression1</source>
-        <translation>Ausdruck1</translation>
+        <translation type="obsolete">Ausdruck1</translation>
     </message>
     <message>
         <source>expression2</source>
-        <translation>Ausdruck2</translation>
+        <translation type="obsolete">Ausdruck2</translation>
     </message>
     <message>
         <source>cyan</source>
-        <translation>Cyan</translation>
+        <translation type="obsolete">Cyan</translation>
     </message>
     <message>
         <source>magenta</source>
-        <translation>Magenta</translation>
+        <translation type="obsolete">Magenta</translation>
     </message>
     <message>
         <source>yellow</source>
-        <translation>gelb</translation>
+        <translation type="obsolete">gelb</translation>
     </message>
     <message>
         <source>black</source>
-        <translation>Schwarz</translation>
+        <translation type="obsolete">Schwarz</translation>
     </message>
     <message>
         <source>alpha</source>
-        <translation>alpha</translation>
+        <translation type="obsolete">alpha</translation>
     </message>
     <message>
         <source>hue</source>
-        <translation>Farbton</translation>
+        <translation type="obsolete">Farbton</translation>
     </message>
     <message>
         <source>saturation</source>
-        <translation>Sättigung</translation>
+        <translation type="obsolete">Sättigung</translation>
     </message>
     <message>
         <source>lightness</source>
-        <translation>Helligkeit</translation>
+        <translation type="obsolete">Helligkeit</translation>
     </message>
     <message>
         <source>color</source>
-        <translation>Farbe</translation>
+        <translation type="obsolete">Farbe</translation>
     </message>
     <message>
         <source>component</source>
-        <translation>komponente</translation>
+        <translation type="obsolete">komponente</translation>
     </message>
     <message>
         <source>red</source>
-        <translation>Rot</translation>
+        <translation type="obsolete">Rot</translation>
     </message>
     <message>
         <source>green</source>
-        <translation>Grün</translation>
+        <translation type="obsolete">Grün</translation>
     </message>
     <message>
         <source>blue</source>
-        <translation>Blau</translation>
+        <translation type="obsolete">Blau</translation>
     </message>
     <message>
         <source>geometry1</source>
-        <translation>Geometrie1</translation>
+        <translation type="obsolete">Geometrie1</translation>
     </message>
     <message>
         <source>geometry2</source>
-        <translation>Geometrie2</translation>
+        <translation type="obsolete">Geometrie2</translation>
     </message>
     <message>
         <source>string1</source>
-        <translation>zeichenkette1</translation>
+        <translation type="obsolete">zeichenkette1</translation>
     </message>
     <message>
         <source>string2</source>
-        <translation>zeichenkette2</translation>
+        <translation type="obsolete">zeichenkette2</translation>
     </message>
     <message>
         <source>string</source>
-        <translation>Zeichenkette</translation>
+        <translation type="obsolete">Zeichenkette</translation>
     </message>
     <message>
         <source>geometry a</source>
-        <translation>Geometrie a</translation>
+        <translation type="obsolete">Geometrie a</translation>
     </message>
     <message>
         <source>geometry b</source>
-        <translation>Geometrie b</translation>
+        <translation type="obsolete">Geometrie b</translation>
     </message>
     <message>
         <source>angle</source>
-        <translation>winkel</translation>
+        <translation type="obsolete">winkel</translation>
     </message>
     <message>
         <source>factor</source>
-        <translation>faktor</translation>
+        <translation type="obsolete">faktor</translation>
     </message>
     <message>
         <source>date</source>
-        <translation>Datum</translation>
+        <translation type="obsolete">Datum</translation>
     </message>
     <message>
         <source>geometry_a</source>
-        <translation>Geometrie_a</translation>
+        <translation type="obsolete">Geometrie_a</translation>
     </message>
     <message>
         <source>geometry_b</source>
-        <translation>Geometrie_b</translation>
+        <translation type="obsolete">Geometrie_b</translation>
     </message>
     <message>
         <source>arg1</source>
-        <translation>arg1</translation>
+        <translation type="obsolete">arg1</translation>
     </message>
     <message>
         <source>arg2</source>
-        <translation>arg2</translation>
+        <translation type="obsolete">arg2</translation>
     </message>
     <message>
         <source>arg</source>
-        <translation>arg</translation>
+        <translation type="obsolete">arg</translation>
     </message>
     <message>
         <source>datetime</source>
-        <translation>Zeitpunkt</translation>
+        <translation type="obsolete">Zeitpunkt</translation>
     </message>
     <message>
         <source>number</source>
-        <translation>Zahl</translation>
+        <translation type="obsolete">Zahl</translation>
     </message>
     <message>
         <source>places</source>
-        <translation>Stellen</translation>
+        <translation type="obsolete">Stellen</translation>
     </message>
     <message>
         <source>gml</source>
-        <translation>GML</translation>
+        <translation type="obsolete">GML</translation>
     </message>
     <message>
         <source>text</source>
-        <translation>Text</translation>
+        <translation type="obsolete">Text</translation>
     </message>
     <message>
         <source>index</source>
-        <translation>index</translation>
+        <translation type="obsolete">index</translation>
     </message>
     <message>
         <source>layer</source>
-        <translation>Layer</translation>
+        <translation type="obsolete">Layer</translation>
     </message>
     <message>
         <source>result_when_true</source>
-        <translation>Ergebnis wenn wahr</translation>
+        <translation type="obsolete">Ergebnis wenn wahr</translation>
     </message>
     <message>
         <source>the result which will be returned when the condition is True</source>
-        <translation>Das zurückzugebende Ergebnisse, wenn die Bedingung erfüllt ist</translation>
+        <translation type="obsolete">Das zurückzugebende Ergebnisse, wenn die Bedingung erfüllt ist</translation>
     </message>
     <message>
         <source>result_when_false</source>
-        <translation>Ergebnis wenn falsch</translation>
+        <translation type="obsolete">Ergebnis wenn falsch</translation>
     </message>
     <message>
         <source>the result which will be returned when the condition is False</source>
-        <translation>Das zurückzugebende Ergebnisse, wenn die Bedingung nicht erfüllt ist</translation>
+        <translation type="obsolete">Das zurückzugebende Ergebnisse, wenn die Bedingung nicht erfüllt ist</translation>
     </message>
     <message>
         <source>if( 1, 'One', 'Not One' )</source>
-        <translation>if( 1, 'One', 'Not One' )</translation>
+        <translation type="obsolete">if( 1, 'One', 'Not One' )</translation>
     </message>
     <message>
         <source>if( 8, 'One', 'Not One' )</source>
-        <translation>if( 8, 'One', 'Not One' )</translation>
+        <translation type="obsolete">if( 8, 'One', 'Not One' )</translation>
     </message>
     <message>
         <source>'Not One'</source>
-        <translation>'Not One'</translation>
+        <translation type="obsolete">'Not One'</translation>
     </message>
     <message>
         <source>property</source>
-        <translation>property</translation>
+        <translation type="obsolete">property</translation>
     </message>
     <message>
         <source>length</source>
-        <translation>länge</translation>
+        <translation type="obsolete">länge</translation>
     </message>
     <message>
         <source>base</source>
-        <translation>Basis</translation>
+        <translation type="obsolete">Basis</translation>
     </message>
     <message>
         <source>width</source>
-        <translation>Breite</translation>
+        <translation type="obsolete">Breite</translation>
     </message>
     <message>
         <source>fill</source>
-        <translation>Füllzeichen</translation>
+        <translation type="obsolete">Füllzeichen</translation>
     </message>
     <message>
         <source>point1</source>
-        <translation>punkt1</translation>
+        <translation type="obsolete">punkt1</translation>
     </message>
     <message>
         <source>point2</source>
-        <translation>punkt2</translation>
+        <translation type="obsolete">punkt2</translation>
     </message>
     <message>
         <source>point</source>
-        <translation>Punkt</translation>
+        <translation type="obsolete">Punkt</translation>
     </message>
     <message>
         <source>outerRing</source>
-        <translation>aussenRing</translation>
+        <translation type="obsolete">aussenRing</translation>
     </message>
     <message>
         <source>innerRing1</source>
-        <translation>innenRing1</translation>
+        <translation type="obsolete">innenRing1</translation>
     </message>
     <message>
         <source>innerRing2</source>
-        <translation>innenRing2</translation>
+        <translation type="obsolete">innenRing2</translation>
     </message>
     <message>
         <source>innerRing</source>
-        <translation>innenRing</translation>
+        <translation type="obsolete">innenRing</translation>
     </message>
     <message>
         <source>value1</source>
-        <translation>wert1</translation>
+        <translation type="obsolete">wert1</translation>
     </message>
     <message>
         <source>value2</source>
-        <translation>wert2</translation>
+        <translation type="obsolete">wert2</translation>
     </message>
     <message>
         <source>ignore_closing_nodes</source>
-        <translation>ignore_closing_nodes</translation>
+        <translation type="obsolete">ignore_closing_nodes</translation>
     </message>
     <message>
         <source>orderby</source>
-        <translation>orderby</translation>
+        <translation type="obsolete">orderby</translation>
     </message>
     <message>
         <source>ascending</source>
-        <translation>aufsteigend</translation>
+        <translation type="obsolete">aufsteigend</translation>
     </message>
     <message>
         <source>name</source>
-        <translation>name</translation>
+        <translation type="obsolete">name</translation>
     </message>
     <message>
         <source>ramp_name</source>
-        <translation>ramp_name</translation>
+        <translation type="obsolete">ramp_name</translation>
     </message>
     <message>
         <source>input_string</source>
-        <translation>eingabe_zeichenkette</translation>
+        <translation type="obsolete">eingabe_zeichenkette</translation>
     </message>
     <message>
         <source>regex</source>
-        <translation>regex</translation>
+        <translation type="obsolete">regex</translation>
     </message>
     <message>
         <source>replacement</source>
-        <translation>ersatz</translation>
+        <translation type="obsolete">ersatz</translation>
     </message>
     <message>
         <source>before</source>
-        <translation>vorher</translation>
+        <translation type="obsolete">vorher</translation>
     </message>
     <message>
         <source>after</source>
-        <translation>nachher</translation>
+        <translation type="obsolete">nachher</translation>
     </message>
     <message>
         <source>decimal</source>
-        <translation>decimal</translation>
+        <translation type="obsolete">decimal</translation>
     </message>
     <message>
         <source>val</source>
-        <translation>wert</translation>
+        <translation type="obsolete">wert</translation>
     </message>
     <message>
         <source>domain_min</source>
-        <translation>bereich_min</translation>
+        <translation type="obsolete">bereich_min</translation>
     </message>
     <message>
         <source>domain_max</source>
-        <translation>bereich_max</translation>
+        <translation type="obsolete">bereich_max</translation>
     </message>
     <message>
         <source>range_min</source>
-        <translation>min_bereich</translation>
+        <translation type="obsolete">min_bereich</translation>
     </message>
     <message>
         <source>range_max</source>
-        <translation>max_bereich</translation>
+        <translation type="obsolete">max_bereich</translation>
     </message>
     <message>
         <source>exponent</source>
-        <translation>exponent</translation>
+        <translation type="obsolete">exponent</translation>
     </message>
     <message>
         <source>haystack</source>
-        <translation>Heuhaufen</translation>
+        <translation type="obsolete">Heuhaufen</translation>
     </message>
     <message>
         <source>needle</source>
-        <translation>Nadel</translation>
+        <translation type="obsolete">Nadel</translation>
     </message>
     <message>
         <source>startpos</source>
-        <translation>startpos</translation>
+        <translation type="obsolete">startpos</translation>
     </message>
     <message>
         <source>source_auth_id</source>
-        <translation>source_auth_id</translation>
+        <translation type="obsolete">source_auth_id</translation>
     </message>
     <message>
         <source>dest_auth_id</source>
-        <translation>dest_auth_id</translation>
+        <translation type="obsolete">dest_auth_id</translation>
     </message>
     <message>
         <source>wrap_length</source>
-        <translation>wrap_length</translation>
+        <translation type="obsolete">wrap_length</translation>
     </message>
     <message>
         <source>delimiter_string</source>
-        <translation>delimiter_string</translation>
+        <translation type="obsolete">delimiter_string</translation>
     </message>
 </context>
 <context>
@@ -49492,12 +49546,12 @@ Referenz im Funktionsnamen: my_form_open
 <context>
     <name>QgsFormAnnotationDialog</name>
     <message>
-        <location filename="../src/app/qgsformannotationdialog.cpp" line="39"/>
+        <location filename="../src/app/qgsformannotationdialog.cpp" line="38"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsformannotationdialog.cpp" line="78"/>
+        <location filename="../src/app/qgsformannotationdialog.cpp" line="77"/>
         <source>Qt designer file</source>
         <translation>Qt-Designer-Datei</translation>
     </message>
@@ -56457,12 +56511,12 @@ in Zeile %2, Spalte %3</translation>
         <translation>HTML-Beschriftung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="40"/>
+        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="39"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="83"/>
+        <location filename="../src/app/qgshtmlannotationdialog.cpp" line="82"/>
         <source>html</source>
         <translation>HTML</translation>
     </message>
@@ -57737,146 +57791,181 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <translation>Schattenfarbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="756"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="481"/>
+        <source>Text</source>
+        <translation>Text</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="482"/>
+        <source>Formatting</source>
+        <translation>Formatierung</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="483"/>
+        <source>Buffer</source>
+        <translation>Puffer</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="484"/>
+        <source>Background</source>
+        <translation>Hintergrund</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="485"/>
+        <source>Shadow</source>
+        <translation>Schatten</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="486"/>
+        <source>Placement</source>
+        <translation>Platzierung</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="487"/>
+        <source>Rendering</source>
+        <translation>Darstellung</translation>
+    </message>
+    <message>
+        <location filename="../src/app/qgslabelinggui.cpp" line="764"/>
         <source>%1 not found. Default substituted.</source>
         <translation>%1 nicht gefunden. Durch Voreinstellung ersetzt.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="757"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="765"/>
         <source>Chosen font</source>
         <translation>Gewählte Schriftart</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1216"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1224"/>
         <source>string </source>
         <translation>Zeichenkette </translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1222"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1230"/>
         <source>[<b>family</b>|<b>family[foundry]</b>],<br>e.g. Helvetica or Helvetica [Cronyx]</source>
         <translation>[<b>Familie</b>|<b>Familie[Hersteller]</b>]<br>z.B. Helvetica oder Helvetica [Cronyx]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1227"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1235"/>
         <source>[<b>font style name</b>|<b>Ignore</b>],<br>e.g. Bold Condensed or Light Italic</source>
         <translation>[<b>Schriftstilname</b>|<b>Ignorieren</b>],<br>z.B. Fett schmal oder Leicht kursiv</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1271"/>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1414"/>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1479"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1279"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1422"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1487"/>
         <source>double [0.0-10.0]</source>
         <translation>Fließkommazahl [0.0 - 10.0]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1293"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1301"/>
         <source>int [0-20]</source>
         <translation>Ganze Zahl [0-20]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1382"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1390"/>
         <source>int [0-2000]</source>
         <translation>Ganze Zahl [0-2000]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1394"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1402"/>
         <source>int<br></source>
         <translation>Ganze Zahl<br></translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1399"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1407"/>
         <source>Comma separated list of placements in order of priority<br></source>
         <translation>Durch Komma getrennte Liste von Plazierungen in Reihenfolge der Priorität<br></translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1420"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1428"/>
         <source>double coord [<b>in,out</b> as 20.0-60.0,20.0-95.0]</source>
         <translation>Fließkommakoordinate [<b>in,out</b> als 20.0-60.0,20.0-95.0]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1427"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1435"/>
         <source>In edit mode, layer's relevant labeling map tool is:<br>&nbsp;&nbsp;Defined attribute field -&gt; <i>enabled</i><br>&nbsp;&nbsp;Defined expression -&gt; <i>disabled</i></source>
         <translation>Beschriftungswerkzeuge sind im Bearbeitungsmodus:<br>&nbsp;&nbsp;Definiertes Attributfeld &rarr; <i>aktiv</i><br>&nbsp;&nbsp;Definierter Ausdruck: &rarr; <i>abgeschaltet</i></translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1450"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1458"/>
         <source>Value &lt; 0 represents a scale closer than 1:1, e.g. -10 = 10:1<br>Value of 0 disables the specific limit.</source>
         <translation>Wert &lt; 0 definiert einen größeren Maßstab als 1:1, z.B. -10 = 10:1<br>Wert = 0 schaltet die betreffende Beschränkung ab.</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1466"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1474"/>
         <source>int [1-1000]</source>
         <translation>Ganze Zahl [1-1000]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1468"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1476"/>
         <source>int [1-10000]</source>
         <translation>Ganze Zahl [1-10000]</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1549"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1557"/>
         <source>Text/Buffer sample</source>
         <translation>Text-/Pufferbeispiel</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1556"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1564"/>
         <source> @ %1 pts (using map units)</source>
         <translation> @ %1 Pkt (in Karteneinheiten)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1569"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1577"/>
         <source> @ %1 pts (using map units, BUFFER IN MILLIMETERS)</source>
         <translation> @ %1 Pkt (in Karteneinheiten, PUFFER IN MILLIMETERN)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1589"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1597"/>
         <source> (BUFFER NOT SHOWN, in map units)</source>
         <translation> (PUFFER NICHT ANGEZEIGT, in Karteneinheiten)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1734"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1742"/>
         <source>No change</source>
         <translation>Keine Änderung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1735"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1743"/>
         <source>All uppercase</source>
         <translation>Nur Großbuchstaben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1736"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1744"/>
         <source>All lowercase</source>
         <translation>Nur Kleinbuchstaben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1740"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1748"/>
         <source>Capitalize first letter</source>
         <translation>Erstes Zeichen groß</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1896"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1904"/>
         <source>Size%1</source>
         <translation>Größe%1</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1896"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1904"/>
         <source> X</source>
         <translation> X</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="1967"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="1975"/>
         <source>File not found</source>
         <translation>Datei nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="2007"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="2015"/>
         <source>Select SVG file</source>
         <translation>SVG-Datei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgslabelinggui.cpp" line="593"/>
-        <location filename="../src/app/qgslabelinggui.cpp" line="594"/>
-        <location filename="../src/app/qgslabelinggui.cpp" line="598"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="601"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="602"/>
+        <location filename="../src/app/qgslabelinggui.cpp" line="606"/>
         <source>Follow label placement</source>
         <translation>Beschriftungsplazierung folgen</translation>
     </message>
@@ -59438,12 +59527,12 @@ Die könnte auf ein Netzwerkproblem oder ein Problem des WMS-Server hindeuten.</
         <translation>Zoom auf Objektkennung gescheitert</translation>
     </message>
     <message>
-        <location filename="../src/gui/qgsmapcanvas.cpp" line="1218"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1219"/>
         <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="1218"/>
+        <location filename="../src/gui/qgsmapcanvas.cpp" line="1219"/>
         <source>Geometry is NULL</source>
         <translation>Geometry ist NULL</translation>
     </message>
@@ -60999,7 +61088,7 @@ and re-encrypted using new password</source>
 <context>
     <name>QgsMergedBookmarksTableModel</name>
     <message>
-        <location filename="../src/app/qgsbookmarks.cpp" line="640"/>
+        <location filename="../src/app/qgsbookmarks.cpp" line="642"/>
         <source>In Project</source>
         <translation>Im Projekt</translation>
     </message>
@@ -63862,7 +63951,7 @@ 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="3181"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3202"/>
         <source>Data source is invalid, no layer found (%1)</source>
         <translation>Datenquelle ungültig, kein Layer gefunden (%1)</translation>
     </message>
@@ -63871,19 +63960,19 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="177"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="185"/>
         <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1206"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1863"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3176"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3181"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3186"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3291"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3309"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3324"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1884"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3197"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3202"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3207"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3312"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3330"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3345"/>
         <source>OGR</source>
         <translation>OGR</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3176"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3186"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3197"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3207"/>
         <source>Data source is invalid (%1)</source>
         <translation>Datenquelle ungültig (%1)</translation>
     </message>
@@ -63948,129 +64037,129 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>OGR-Fehler beim Erzeugen des Objekts %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1309"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1320"/>
         <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="1323"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1334"/>
         <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="1348"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1369"/>
         <source>Cannot delete feature id column</source>
         <translation>Kann Objektkennungsspalte nicht löschen</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1359"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1380"/>
         <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="1367"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1388"/>
         <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="1385"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1402"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1406"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1423"/>
         <source>Invalid attribute index</source>
         <translation>Ungültiger Attributindex</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1392"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1413"/>
         <source>Error renaming field %1: name '%2' already exists</source>
         <translation>Fehler beim Umbenennen des Felds %1: name '%2' bereits vorhanden</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1412"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1433"/>
         <source>OGR error renaming field %1: %2</source>
         <translation>OGR-Fehler beim Umbenennen des Felds %1: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1421"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1442"/>
         <source>Renaming fields is not supported prior to GDAL 1.9.0</source>
         <translation>Umbenennen von Feldern wird vor GDAL 1.9.0 nicht unterstützt</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1445"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1573"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1713"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1466"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1594"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1734"/>
         <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="1456"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1477"/>
         <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="1471"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1492"/>
         <source>Changing feature id of feature %1 is not allowed.</source>
         <translation>Änderung der Objektkennung des Objekts %1 ist nicht erlaubt.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1484"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1505"/>
         <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="1540"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1561"/>
         <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="1548"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1626"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1569"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1647"/>
         <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="1556"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2960"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1577"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="2981"/>
         <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="1580"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1601"/>
         <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="1595"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1616"/>
         <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="1604"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1625"/>
         <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="1615"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1636"/>
         <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="3269"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3290"/>
         <source>Cannot reopen datasource %1</source>
         <translation>Kann Datenquelle %1 nicht neu öffnen</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3291"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3292"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3312"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3313"/>
         <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="3309"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3330"/>
         <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="3324"/>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3325"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3345"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="3346"/>
         <source>Cannot reopen datasource %1 in read-only mode</source>
         <translation>Kann Datenquelle %1 nicht im schreibgeschützten Modus neu öffnen</translation>
     </message>
@@ -64090,12 +64179,12 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Ursprüngliche Datenquelle konnte nicht erneut geöffnet werden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1719"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1740"/>
         <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="1863"/>
+        <location filename="../src/providers/ogr/qgsogrprovider.cpp" line="1884"/>
         <source>Shapefiles without attribute are considered read-only.</source>
         <translation>Shapedateien ohne Attribute werden als schreibgeschützt betrachtet.</translation>
     </message>
@@ -64669,53 +64758,53 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>QGIS-Dateien</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2152"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2158"/>
         <source>Select color</source>
         <translation>Farbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2166"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2172"/>
         <source>Select palette file</source>
         <translation>Palettendatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2177"/>
-        <location filename="../src/app/qgsoptions.cpp" line="2186"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2183"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2192"/>
         <source>Invalid file</source>
         <translation>Ungültige Datei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2177"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2183"/>
         <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="2186"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2192"/>
         <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="2195"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2201"/>
         <source>Palette file</source>
         <translation>Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2215"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2221"/>
         <source>Error exporting</source>
         <translation>Fehler beim Export</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2215"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2221"/>
         <source>Error writing palette file</source>
         <translation>Fehler beim Schreiben der Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2259"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2265"/>
         <source>Invalid scale</source>
         <translation>Ungültiger Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2259"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2265"/>
         <source>The text you entered is not a valid scale.</source>
         <translation>Der eingegebene Text ist kein gültiger Maßstab</translation>
     </message>
@@ -64788,101 +64877,101 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Beim Start zu öffnende Projektdatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1571"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1577"/>
         <source>Create Options - %1 Driver</source>
         <translation>Erzeugungsoptionen - %1 Treiber</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1573"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1579"/>
         <source>Create Options - pyramids</source>
         <translation>Erzeugungsoptionen - Pyramiden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1626"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1632"/>
         <source>Restore UI defaults</source>
         <translation>Oberflächenvoreinstellung wiederherstellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1626"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1632"/>
         <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="1644"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1650"/>
         <source>Overwrite</source>
         <translation>Überschreiben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1645"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1651"/>
         <source>If Undefined</source>
         <translation>Wenn definiert</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1646"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1652"/>
         <source>Unset</source>
         <translation>Nicht gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1647"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1653"/>
         <source>Prepend</source>
         <translation>Voranstellen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1648"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1654"/>
         <source>Append</source>
         <translation>Anhängen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1710"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1736"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1763"/>
-        <location filename="../src/app/qgsoptions.cpp" line="1812"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1716"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1742"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1769"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1818"/>
         <source>Choose a directory</source>
         <translation>Verzeichnis wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1981"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1987"/>
         <source>Enter scale</source>
         <translation>Maßstab angeben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="1982"/>
+        <location filename="../src/app/qgsoptions.cpp" line="1988"/>
         <source>Scale denominator</source>
         <translation>Maßstabsnenner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2014"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2020"/>
         <source>Load scales</source>
         <translation>Maßstäbe laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2015"/>
-        <location filename="../src/app/qgsoptions.cpp" line="2037"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2021"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2043"/>
         <source>XML files (*.xml *.XML)</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2036"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2042"/>
         <source>Save scales</source>
         <translation>Maßstäbe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2068"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2074"/>
         <source>No Stretch</source>
         <translation>Kein Strecken</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2069"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2075"/>
         <source>Stretch To MinMax</source>
         <translation>Strecken auf MinMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2070"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2076"/>
         <source>Stretch And Clip To MinMax</source>
         <translation>Strecken und Zuschneiden auf MinMax</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsoptions.cpp" line="2071"/>
+        <location filename="../src/app/qgsoptions.cpp" line="2077"/>
         <source>Clip To MinMax</source>
         <translation>Zuschneiden auf MinMax</translation>
     </message>
@@ -65282,9 +65371,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="1484"/>
         <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="1506"/>
@@ -65338,6 +65426,11 @@ Immer Netzwerk: immer aus dem Netzwerk laden und nicht prüfen, ob im Cache ein
         <translation>Neue Variable hinzufügen</translation>
     </message>
     <message>
+        <location filename="../src/ui/qgsoptionsbase.ui" line="1484"/>
+        <source>Open attribute table in a dock window</source>
+        <translation>Attributtabelle gedockt öffnen</translation>
+    </message>
+    <message>
         <location filename="../src/ui/qgsoptionsbase.ui" line="1575"/>
         <source>Default view</source>
         <translation>Voreingestellte Ansicht</translation>
@@ -66854,22 +66947,22 @@ Fehler:%2
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1694"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1701"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1841"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2050"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2225"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2257"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2292"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2300"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2320"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2328"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2452"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2474"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2502"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2515"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2799"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2811"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2820"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2980"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2989"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2057"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2232"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2264"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2299"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2307"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2327"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2335"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2459"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2481"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2509"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2522"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2806"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2818"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2827"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2986"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2995"/>
         <source>Oracle</source>
         <translation>Oracle</translation>
     </message>
@@ -66994,8 +67087,8 @@ SQL: %2</translation>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1583"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1663"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1727"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2014"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2666"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2021"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2673"/>
         <source>Could not start transaction</source>
         <translation>Transaktion konnte nicht gestartet werden</translation>
     </message>
@@ -67026,8 +67119,8 @@ SQL: %2</translation>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1610"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1686"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1833"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2042"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2799"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2049"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2806"/>
         <source>Could not commit transaction</source>
         <translation>Transaktion konnte nicht festgeschrieben werden</translation>
     </message>
@@ -67043,8 +67136,8 @@ SQL: %2</translation>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1618"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1694"/>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1841"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2050"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2811"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2057"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2818"/>
         <source>Could not rollback transaction</source>
         <translation>Transaktion konnte nicht zurückgerollt werden</translation>
     </message>
@@ -67112,7 +67205,7 @@ SQL: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1807"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2035"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2042"/>
         <source>Update of feature %1 failed</source>
         <translation>Aktualisierung des Objekte %1 gescheitert</translation>
     </message>
@@ -67123,24 +67216,24 @@ SQL: %2</translation>
     </message>
     <message>
         <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="1786"/>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2024"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2031"/>
         <source>Could not prepare update statement.</source>
         <translation>Konnte Aktualisierungsanweisung nicht vorbereiten.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2047"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2054"/>
         <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="2225"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2232"/>
         <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="2255"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2262"/>
         <source>Could not execute query.
 The error message from the database was:
 %1.
@@ -67151,7 +67244,7 @@ Die Datenbankfehlermeldung war:
 SQL: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2289"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2296"/>
         <source>Could not retrieve SRID of %1.
 The error message from the database was:
 %2.
@@ -67162,7 +67255,7 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2297"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2304"/>
         <source>Could not determine SRID of %1.
 The error message from the database was:
 %2.
@@ -67173,14 +67266,14 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2318"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2325"/>
         <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="2325"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2332"/>
         <source>Could not determine geometry type of %1.
 The error message from the database was:
 %2.
@@ -67191,22 +67284,22 @@ Die Datenbankfehlermeldung war:
 SQL: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2362"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2369"/>
         <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="2389"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2396"/>
         <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="2417"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2424"/>
         <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="2447"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2454"/>
         <source>Could not update metadata for %1.%2.
 SQL:%3
 Error: %4</source>
@@ -67215,7 +67308,7 @@ SQL:%3
 Fehler: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2469"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2476"/>
         <source>Could not insert metadata for %1.%2.
 SQL:%3
 Error: %4</source>
@@ -67224,7 +67317,7 @@ SQL: %3
 Fehler: %4</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2499"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2506"/>
         <source>Creation spatial index failed.
 SQL:%1
 Error: %2</source>
@@ -67233,7 +67326,7 @@ SQL:%1
 FehleR:%2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2512"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2519"/>
         <source>Rebuild of spatial index failed.
 SQL:%1
 Error: %2</source>
@@ -67242,52 +67335,52 @@ SQL:%1
 Fehler:%2</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2674"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2681"/>
         <source>Could not determine table existence.</source>
         <translation>Konnte Tabellenexistenz nicht feststellen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2686"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2693"/>
         <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="2691"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2698"/>
         <source>Table %1 already exists.</source>
         <translation>Tabelle %1 bereits vorhanden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2710"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2717"/>
         <source>Table creation failed.</source>
         <translation>Tabellenerzeugung gescheitert.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2741"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2748"/>
         <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="2757"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2764"/>
         <source>Could not lookup WKT.</source>
         <translation>Konnte WKT nicht finden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2768"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2775"/>
         <source>Could not determine new srid.</source>
         <translation>Konnte freie SRID nicht feststellen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2783"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2790"/>
         <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="2794"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2801"/>
         <source>Could not insert metadata.</source>
         <translation>Konnte Metadaten nicht einfügen.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2818"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2825"/>
         <source>Drop created table %1 failed.
 SQL:%2
 Error: %3</source>
@@ -67296,12 +67389,12 @@ SQL:%2
 Fehler: %3</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2980"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2986"/>
         <source>Oracle SRID %1 not found.</source>
         <translation>Oracle SRID %1 nicht gefunden.</translation>
     </message>
     <message>
-        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2985"/>
+        <location filename="../src/providers/oracle/qgsoracleprovider.cpp" line="2991"/>
         <source>Lookup of Oracle SRID %1 failed.
 SQL:%2
 Error:%3</source>
@@ -67838,7 +67931,7 @@ Fehler: %2</translation>
 <context>
     <name>QgsPGRootItem</name>
     <message>
-        <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="726"/>
+        <location filename="../src/providers/postgres/qgspostgresdataitems.cpp" line="730"/>
         <source>New Connection...</source>
         <translation>Neue Verbindung...</translation>
     </message>
@@ -70285,52 +70378,52 @@ PostGIS %2</translation>
 <context>
     <name>QgsProject</name>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="630"/>
+        <location filename="../src/core/qgsproject.cpp" line="635"/>
         <source>Loading layer %1</source>
         <translation>Lade Layer %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="741"/>
+        <location filename="../src/core/qgsproject.cpp" line="746"/>
         <source>Unable to open %1</source>
         <translation>Konnte %1 nicht öffnen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="754"/>
+        <location filename="../src/core/qgsproject.cpp" line="759"/>
         <source>Project File Read Error</source>
         <translation>Projektlesefehler</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="755"/>
+        <location filename="../src/core/qgsproject.cpp" line="760"/>
         <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="758"/>
+        <location filename="../src/core/qgsproject.cpp" line="763"/>
         <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="765"/>
+        <location filename="../src/core/qgsproject.cpp" line="770"/>
         <source>%1 for file %2</source>
         <translation>%1 in Datei %2</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1149"/>
+        <location filename="../src/core/qgsproject.cpp" line="1154"/>
         <source>Unable to create backup file %1</source>
         <translation>Kann Sicherung %1 nicht anlegen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsproject.cpp" line="1163"/>
+        <location filename="../src/core/qgsproject.cpp" line="1168"/>
         <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="1023"/>
+        <location filename="../src/core/qgsproject.cpp" line="1028"/>
         <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="1193"/>
+        <location filename="../src/core/qgsproject.cpp" line="1198"/>
         <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>
@@ -70429,7 +70522,7 @@ Choose ignore to continue loading without the missing layers. Choose cancel to r
     </message>
     <message>
         <location filename="../src/app/qgsprojectproperties.cpp" line="1028"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1370"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1371"/>
         <source>Coordinate System Restriction</source>
         <translation>Koordinatensystemeinschränkung</translation>
     </message>
@@ -70661,197 +70754,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="1282"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1289"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1295"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1283"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1290"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1296"/>
         <source>Map units (%1)</source>
         <translation>Karteneinheiten (%1)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1370"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1371"/>
         <source>CRS %1 was already selected</source>
         <translation>KBS %1 war bereits gewählt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1390"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1391"/>
         <source>Coordinate System Restrictions</source>
         <translation>Koordinatensystemeinschränkung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1391"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1392"/>
         <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="1424"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1425"/>
         <source>Select print composer</source>
         <translation>Druckzusammenstellung wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1424"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1425"/>
         <source>Composer Title</source>
         <translation>Titel der Druckzusammenstellung</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1446"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1447"/>
         <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="1535"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1584"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1536"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1585"/>
         <source>Start checking QGIS Server</source>
         <translation>QGIS-Serverprüfung starten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1545"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1546"/>
         <source>Use short name for "%1"</source>
         <translation>Kurzname für "%1" verwenden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1554"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1555"/>
         <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="1555"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1556"/>
         <source>Duplicate names:</source>
         <translation>Doppelte Namen:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1561"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1562"/>
         <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="1566"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1567"/>
         <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="1571"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1572"/>
         <source>All layer short names are well formed</source>
         <translation>Alle Layerkurznamen sind richtig</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1576"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1577"/>
         <source>Some layer encodings are not set:</source>
         <translation>Einige Layerkodierungen sind nicht gesetzt:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1581"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1582"/>
         <source>All layer encodings are set</source>
         <translation>Alle Layerkodierungen sind gesetzt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1591"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1592"/>
         <source>Enter scale</source>
         <translation>Maßstab eingeben</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1592"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1593"/>
         <source>Scale denominator</source>
         <translation>Maßstabsnenner</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1613"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1614"/>
         <source>Load scales</source>
         <translation>Maßstäbe laden</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1614"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1636"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1615"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1637"/>
         <source>XML files (*.xml *.XML)</source>
         <translation>XML-Dateien (*.xml *.XML)</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1635"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1636"/>
         <source>Save scales</source>
         <translation>Maßstäbe speichern</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1787"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1788"/>
         <source>Select a valid symbol</source>
         <translation>Ein gültiges Symbol wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1793"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1794"/>
         <source>Invalid symbol : </source>
         <translation>Ungültiges Symbil : </translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1850"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1851"/>
         <source>Update layer "%1" encoding</source>
         <translation>Aktualisiere Kodierung des Layers "%1"</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1874"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1978"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1875"/>
         <location filename="../src/app/qgsprojectproperties.cpp" line="1979"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1980"/>
         <source>Parameters:</source>
         <translation>Parameter:</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="1978"/>
         <location filename="../src/app/qgsprojectproperties.cpp" line="1979"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1980"/>
         <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="1990"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="1991"/>
         <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="2024"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2025"/>
         <source>Select Color</source>
         <translation>Farbe wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2038"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2039"/>
         <source>Select palette file</source>
         <translation>Palettendatei wählen</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2049"/>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2058"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2050"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2059"/>
         <source>Invalid file</source>
         <translation>Ungültige Datei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2049"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2050"/>
         <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="2058"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2059"/>
         <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="2067"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2068"/>
         <source>Palette file</source>
         <translation>Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2087"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2088"/>
         <source>Error exporting</source>
         <translation>Fehler beim Export</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2087"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2088"/>
         <source>Error writing palette file</source>
         <translation>Fehler beim Schreiben der Palettendatei</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2132"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2133"/>
         <source>Invalid scale</source>
         <translation>Ungültiger Maßstab</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsprojectproperties.cpp" line="2132"/>
+        <location filename="../src/app/qgsprojectproperties.cpp" line="2133"/>
         <source>The text you entered is not a valid scale.</source>
         <translation>Der eingegebene Text ist kein gültiger Maßstab</translation>
     </message>
@@ -70875,18 +70968,17 @@ Fortfahren?</translation>
         <translation>Allgemeine Einstellungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="401"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="433"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="375"/>
         <source>Project title</source>
         <translation>Projekttitel</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="385"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="451"/>
         <source>Descriptive project name</source>
         <translation>Beschreibender Projektname</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="388"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="454"/>
         <source>Default project title</source>
         <translation>Projekttitelvorgabe</translation>
     </message>
@@ -70901,27 +70993,27 @@ Fortfahren?</translation>
         <translation>Hintergrundfarbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="457"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="412"/>
         <source>absolute</source>
         <translation>Absolut</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="462"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="417"/>
         <source>relative</source>
         <translation>Relativ</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="375"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="431"/>
         <source>Save paths</source>
         <translation>Pfade speichern</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="526"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="514"/>
         <source>Semi-minor</source>
         <translation>Nebenachse</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="503"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="491"/>
         <source>Semi-major</source>
         <translation>Hauptachse</translation>
     </message>
@@ -70957,112 +71049,112 @@ Fortfahren?</translation>
         <translation>Variablen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="470"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="441"/>
         <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="473"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="444"/>
         <source>Avoid artifacts when project is rendered as map tiles (degrades performance)</source>
         <translation>Artefakte bei der Darstellung von Kartenkacheln vermeiden (beeinträchtigt Geschwindigkeit)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="492"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="480"/>
         <source>Ellipsoid
 (for distance calculations)</source>
         <translation>Ellipsoid
 (für Abstandsberechnungen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="561"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="549"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="584"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="572"/>
         <source>Automatic</source>
         <translation>Automatisch</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1596"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1584"/>
         <source>Position</source>
         <translation>Position</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1626"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1614"/>
         <source>Short name</source>
         <translation>Kurzname</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2235"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2301"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2223"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2289"/>
         <source>Deselect all</source>
         <translation>Alle abwählen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2338"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2326"/>
         <source>Test configuration</source>
         <translation>Testkonfiguration</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2346"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2334"/>
         <source>Launch</source>
         <translation>Starten</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2495"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2483"/>
         <source>When enabled, layers from the same database connection will be put into a transaction group. Their edit state will be synchronized and changes to these layers will be sent to the provider immediately. Only supported on postgres provider.</source>
         <translation>Wenn aktiv werden Layer aus der gleichen Datenbankvebindung in eine Transaktionsgruppe gelegt. Ihre Bearbeitungszustand wird synchronisiert und Änderungen an diesen Layer werden direkt zur Datenanbieter geschickt. Nur mit dem PostgreSQL-Anbieter unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2498"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2486"/>
         <source>Automatically create transaction groups where possible</source>
         <translation>Wenn möglich automatisch Transaktionsgruppen erstellen </translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2505"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2493"/>
         <source>When enabled, default values will be evaluated as early as possible. This will fill default values in the add feature form already and not only create them on commit. Only supported for postgres provider.</source>
         <translation>Wenn aktiv werden Vorgabewerte so früh wie möglich ausgewertet. Die füllt die Vorgabewert direkt im Objektformular aus und nicht erst beim Festschreiben.  Nur mit dem PostgreSQL-Anbieter unterstützt.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2508"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2496"/>
         <source>Evaluate default values on provider side</source>
         <translation>Vorgabewerte auf Anbieterseite auswerten</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2519"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2507"/>
         <source>Expression Variables</source>
         <translation>Ausdrucksvariablen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="597"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="585"/>
         <source>Manual</source>
         <translation>Manuell</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="604"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="592"/>
         <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="617"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="605"/>
         <source>decimal places</source>
         <translation>Dezimalstellen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="636"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="624"/>
         <source>Project scales</source>
         <translation>Projektmaßstäbe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="656"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="667"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="678"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="689"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="926"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="979"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1068"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1115"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="644"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="655"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="666"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="677"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="914"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="967"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1056"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1103"/>
         <source>...</source>
         <translation>...</translation>
     </message>
@@ -71072,69 +71164,69 @@ Fortfahren?</translation>
         <translation>Abfragbare Layer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="840"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="828"/>
         <source>Project layers</source>
         <translation>Projektlayer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="850"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2202"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2288"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="838"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2190"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2276"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="855"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="843"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="860"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="848"/>
         <source>Identifiable</source>
         <translation>Abfragbar</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1058"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1046"/>
         <source>Marker</source>
         <translation>Markierung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="937"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="925"/>
         <source>Line</source>
         <translation>Linie</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="914"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="902"/>
         <source>Default symbols</source>
         <translation>Vorlagesymbole</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1079"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1067"/>
         <source>Fill</source>
         <translation>Füllung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1019"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1007"/>
         <source>Color Ramp</source>
         <translation>Farbverlauf</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1140"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1128"/>
         <source>Transparency</source>
         <translation>Transparenz</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1175"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1163"/>
         <source> %</source>
         <translation> %</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1212"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1200"/>
         <source>Style Manager</source>
         <translation>Stilverwaltung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1129"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1117"/>
         <source>Options</source>
         <translation>Optionen</translation>
     </message>
@@ -71144,163 +71236,163 @@ Fortfahren?</translation>
         <translation>Beziehungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="417"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="388"/>
         <source>Project file</source>
         <translation>Projektdatei</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1200"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1188"/>
         <source>Assign random colors to symbols</source>
         <translation>Den Symbolen zufällige Farben zuordnen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1234"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1222"/>
         <source>Project colors</source>
         <translation>Projektfarben</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1240"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1228"/>
         <source>Copy colors</source>
         <translation>Farben kopieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1267"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1255"/>
         <source>Add color</source>
         <translation>Farbe hinzufügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1281"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1269"/>
         <source>Paste colors</source>
         <translation>Farben einfügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1295"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1283"/>
         <source>Remove color</source>
         <translation>Farbe entfernen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1387"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1375"/>
         <source>Service capabilities</source>
         <translation>Diensteigenschaften</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1418"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1421"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1406"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1409"/>
         <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="1435"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1423"/>
         <source>Person</source>
         <translation>Person</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1408"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1396"/>
         <source>Title</source>
         <translation>Titel</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1552"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1540"/>
         <source>Organization</source>
         <translation>Organisation</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1428"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1416"/>
         <source>Online resource</source>
         <translation>Online-Quelle</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1465"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1453"/>
         <source>E-Mail</source>
         <translation>E-Mail</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1482"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1470"/>
         <source>Phone</source>
         <translation>Telefon</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1502"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1490"/>
         <source>Abstract</source>
         <translation>Zusammenfassung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1569"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1557"/>
         <source>Fees</source>
         <translation>Gebühren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1562"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1550"/>
         <source>Access constraints</source>
         <translation>Zugriffsbeschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1535"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1523"/>
         <source>Keyword list</source>
         <translation>Schlüsselwortliste</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1636"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1624"/>
         <source>WMS capabilities</source>
         <translation>WMS-Capabilities</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1953"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1941"/>
         <source>Add geometry to feature response</source>
         <translation>Geometrie der Objektantwort beifügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1663"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1651"/>
         <source>Min. X</source>
         <translation>Min. X</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1680"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1668"/>
         <source>Min. Y</source>
         <translation>Min. Y</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1697"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1685"/>
         <source>Max. X</source>
         <translation>Max. X</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1714"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1702"/>
         <source>Max. Y</source>
         <translation>Max. Y</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1731"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1719"/>
         <source>Use Current Canvas Extent</source>
         <translation>Aktuelle Anzeigegrenzen übernehmen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1901"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1889"/>
         <source>Used</source>
         <translation>Benutzte</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1754"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1742"/>
         <source>Exclude composers</source>
         <translation>Druckzusammenstellungen ausschließen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2272"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2260"/>
         <source>WCS capabilities</source>
         <translation>WCS-Capabilities</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1813"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1801"/>
         <source>Exclude layers</source>
         <translation>Layer ausschließen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1928"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1916"/>
         <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="1919"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1907"/>
         <source>Use layer ids as names</source>
         <translation>Layer-IDs als Namen verwenden</translation>
     </message>
@@ -71315,216 +71407,216 @@ Fortfahren?</translation>
         <translation>Datenquellen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="483"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="471"/>
         <source>Measurements</source>
         <translation>Messungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="510"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="498"/>
         <source>Units for distance measurement</source>
         <translation>Einheit für Abstandsmessung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="533"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="521"/>
         <source>Units for area measurement</source>
         <translation>Einheiten  für Flächenmessung</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="552"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="540"/>
         <source>Coordinate display</source>
         <translation>Koordinatenanzeige</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="568"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="556"/>
         <source>Display coordinates using</source>
         <translation>Koordinatenanzeige in</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="581"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="569"/>
         <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="594"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="582"/>
         <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="775"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="763"/>
         <source>Enable 'on the fly' CRS transformation (OTF)</source>
         <translation>Spontanreprojektion aktivieren (SRP)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="865"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="853"/>
         <source>Read Only</source>
         <translation>Schreibgeschützt</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1312"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1300"/>
         <source>Import colors</source>
         <translation>Farben importieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1326"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1314"/>
         <source>Export colors</source>
         <translation>Farben exportieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1445"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1448"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1433"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1436"/>
         <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="1455"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1458"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1443"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1446"/>
         <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="1472"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1475"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1460"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1463"/>
         <source>The name of the service provider.</source>
         <translation>Der Name des Dienstanbieters.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1492"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1495"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1480"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1483"/>
         <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="1512"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1515"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1500"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1503"/>
         <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="1522"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1510"/>
         <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="1542"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1545"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1530"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1533"/>
         <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="1576"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1564"/>
         <source>Fees applied to the service.</source>
         <translation>Gebühren des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1586"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1574"/>
         <source>Access constraints applied to the service.</source>
         <translation>Zugriffsbeschränkungen des Dienstes.</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1603"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1591"/>
         <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="1616"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1619"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1604"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1607"/>
         <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="2009"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1997"/>
         <source>GetFeatureInfo geometry precision (decimal places)</source>
         <translation>GetFeatureInfo-Geometriegenauigkeit (Dezimalstellen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2045"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2033"/>
         <source>INSPIRE (European directive)</source>
         <translation>INSPIRE (Europäische Richtlinie)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2067"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2055"/>
         <source>Service language</source>
         <translation>Dienstsprache</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2074"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2062"/>
         <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="2096"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2084"/>
         <source>Metadata date</source>
         <translation>Metadaten-Datum</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2113"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2101"/>
         <source>Last revision date</source>
         <translation>Letztes Bearbeitungsdatum:</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2123"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2111"/>
         <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="2138"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2126"/>
         <source>Metadata URL</source>
         <translation>Metadaten-URL</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2146"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2134"/>
         <source>application/vnd.iso.19139+xml</source>
         <translation>application/vnd.iso.19139+xml</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2151"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2139"/>
         <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="2156"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2144"/>
         <source>application/vnd.ogc.csw_xml</source>
         <translation>application/vnd.ogc.csw_xml</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2164"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2152"/>
         <source>URL mime/type</source>
         <translation>URL mime/type</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2186"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2174"/>
         <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="2207"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2293"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2195"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2281"/>
         <source>Published</source>
         <translation>Veröffentlich</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2212"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2200"/>
         <source>Geometry precision (decimal places)</source>
         <translation>Geometriegenauigkeit (Dezimalstellen)</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2217"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2205"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2222"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2210"/>
         <source>Insert</source>
         <translation>Einfügen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2227"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2215"/>
         <source>Delete</source>
         <translation>Löschen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2242"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2308"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2230"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2296"/>
         <source>Select all</source>
         <translation>Alle wählen</translation>
     </message>
@@ -71535,39 +71627,39 @@ Fortfahren?</translation>
         <translation>Makros</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2033"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2251"/>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2317"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2021"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2239"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2305"/>
         <source>Advertised URL</source>
         <translation>Angezeigte URL</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1962"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1950"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1991"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1979"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1998"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1986"/>
         <source>Maximums for GetMap request</source>
         <translation>Maxima für GetMap-Abfragen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1645"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1633"/>
         <source>Advertised extent</source>
         <translation>Angezeigte Ausmasse</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1872"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="1860"/>
         <source>CRS restrictions</source>
         <translation>KBS-Beschränkungen</translation>
     </message>
     <message>
-        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2453"/>
+        <location filename="../src/ui/qgsprojectpropertiesbase.ui" line="2441"/>
         <source>Python macros</source>
         <translation>Python-Makros</translation>
     </message>
@@ -76483,33 +76575,33 @@ verbesserung</translation>
         <translation>Quantile</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="595"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="596"/>
         <source>Load Color Map</source>
         <translation>QGIS-Farbabbildung laden</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="595"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="596"/>
         <source>The color map for band %1 has no entries</source>
         <translation>Die Farbabbildung für den Kanal %1 hat keine Einträge</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="607"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="608"/>
         <source>Open file</source>
         <translation>Datei öffnen</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="607"/>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="694"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="608"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="695"/>
         <source>Textfile (*.txt)</source>
         <translation>Textdatei (*.txt)</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="680"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="681"/>
         <source>Import Error</source>
         <translation>Importfehler</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="680"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="681"/>
         <source>The following lines contained errors
 
 </source>
@@ -76517,12 +76609,12 @@ verbesserung</translation>
 </translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="685"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="686"/>
         <source>Read access denied</source>
         <translation>Lesezugriff verweigert</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="685"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="686"/>
         <source>Read access denied. Adjust the file permissions and try again.
 
 </source>
@@ -76530,22 +76622,22 @@ verbesserung</translation>
 </translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="694"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="695"/>
         <source>Save file</source>
         <translation>Datei speichern</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="706"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="707"/>
         <source>QGIS Generated Color Map Export File</source>
         <translation>QGIS-Farbabbildungsexportdatei</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="752"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="753"/>
         <source>Write access denied</source>
         <translation>Schreibzugriff verweigert</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="752"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="753"/>
         <source>Write access denied. Adjust the file permissions and try again.
 
 </source>
@@ -76553,32 +76645,32 @@ verbesserung</translation>
 </translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="858"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="860"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="859"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="861"/>
         <source>Value for color stop</source>
         <translation>Wert für Farbstopp</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="862"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="864"/>
         <source>Value <=</source>
         <translation>Wert <=</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="863"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="865"/>
         <source>Maximum value for class</source>
         <translation>Maximalwert für Klasse</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="866"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="868"/>
         <source>Value =</source>
         <translation>Wert =</translation>
     </message>
     <message>
-        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="867"/>
+        <location filename="../src/gui/raster/qgssinglebandpseudocolorrendererwidget.cpp" line="869"/>
         <source>Value for color</source>
         <translation>Wert für Farbe</translation>
     </message>
@@ -77434,7 +77526,8 @@ aber führt danach zu größerer Geschwindigkeit.</translation>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="300"/>
         <source>A connection with the same name already exists,
 please provide a new name:</source>
-        <translation>Eine Verbindung namens '%1' ist bereits vorhanden.  Bitte einen neuen Namen angeben:</translation>
+        <translation>Eine Verbindung mit dem gleichen Namen ist bereits vorhanden,
+bitte einen neuen Namen angeben:</translation>
     </message>
     <message>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="366"/>
@@ -77492,11 +77585,25 @@ please provide a new name:</source>
     </message>
     <message>
         <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="465"/>
+        <source>SpatiaLite metadata check failed</source>
+        <translation>SpatiaLite-Metadatenprüfung gescheitert</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="466"/>
+        <source>Failure getting table metadata ... is this really a SpatialLite database? %1
+
+%2</source>
+        <translation>Fehler bei der Metadatentabelleabfrage ... ist dies wirklich eine SpatiaLite-Datenbank? %1
+
+%2</translation>
+    </message>
+    <message>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="469"/>
         <source>SpatiaLite Error</source>
         <translation>SpatiaLite-Fehler</translation>
     </message>
     <message>
-        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="466"/>
+        <location filename="../src/providers/spatialite/qgsspatialitesourceselect.cpp" line="470"/>
         <source>Unexpected error when working with: %1
 
 %2</source>
@@ -78035,7 +78142,7 @@ p, li { white-space: pre-wrap; }
 <context>
     <name>QgsStatusBarCoordinatesWidget</name>
     <message>
-        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="206"/>
+        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="207"/>
         <source>Coordinate:</source>
         <translation>Koordinate:</translation>
     </message>
@@ -78065,17 +78172,17 @@ p, li { white-space: pre-wrap; }
         <translation>Ausdehnungs- und Mauspositionsanzeige umschalten</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="196"/>
+        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="197"/>
         <source>Map coordinates for the current view extents</source>
         <translation>Kartenkoordinaten für den aktuell sichtbaren Ausschnitt</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="204"/>
+        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="205"/>
         <source>Map coordinates at mouse cursor position</source>
         <translation>Kartenkoordinaten beim Mauszeiger</translation>
     </message>
     <message>
-        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="246"/>
+        <location filename="../src/app/qgsstatusbarcoordinateswidget.cpp" line="247"/>
         <source>Extents:</source>
         <translation>Ausdehnung:</translation>
     </message>
@@ -78817,17 +78924,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>
@@ -79191,12 +79298,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>
@@ -80318,136 +80425,136 @@ Fehler war:%2</translation>
         <translation>QGIS</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2505"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2508"/>
         <source>ERROR: no provider</source>
         <translation>FEHLER: kein Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2511"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2514"/>
         <source>ERROR: layer not editable</source>
         <translation>FEHLER: Layer ist nicht veränderbar</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="2528"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="2531"/>
         <source>Commit errors:
   %1</source>
         <translation>Commit-Fehler:
   %1</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3768"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3844"/>
         <source>General</source>
         <translation>Allgemein</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3774"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3850"/>
         <source>Layer comment</source>
         <translation>Layerkommentar</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3781"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3857"/>
         <source>Storage type of this layer</source>
         <translation>Speichertyp dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3789"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3865"/>
         <source>Description of this provider</source>
         <translation>Beschreibung dieses Datenanbieter</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3796"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3872"/>
         <source>Source for this layer</source>
         <translation>Quelle dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3814"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3890"/>
         <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="3821"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3897"/>
         <source>Primary key attributes</source>
         <translation>Primärschlüsselattribute</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3832"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3908"/>
         <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="3846"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3922"/>
         <source>Extents</source>
         <translation>Ausdehnung</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3850"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3926"/>
         <source>In layer spatial reference system units</source>
         <translation>In Bezugssystemeinheiten des Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3916"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3951"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3992"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4027"/>
         <source>In project spatial reference system units</source>
         <translation>In Bezugssystemeinheiten des Projekts</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3929"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4005"/>
         <source>Layer Spatial Reference System</source>
         <translation>Räumliches Bezugssystem des Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3940"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4016"/>
         <source>Project (Output) Spatial Reference System</source>
         <translation>Räumliches Bezugssystem des Projekts (Ausgabe)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3962"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4038"/>
         <source>Attribute field info</source>
         <translation>Attributfeldinformationen</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3899"/>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3918"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3975"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3994"/>
         <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="3837"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3913"/>
         <source>Capabilities of this layer</source>
         <translation>Funktionalität dieses Layers</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3904"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="3980"/>
         <source>unknown extent</source>
         <translation>Unbekannte Ausmaße</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3953"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4029"/>
         <source>(Invalid transformation of layer extents)</source>
         <translation>(Transformation der Layerausdehnung ungültig)</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3968"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4044"/>
         <source>Field</source>
         <translation>Feld</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3971"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4047"/>
         <source>Type</source>
         <translation>Typ</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3974"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4050"/>
         <source>Length</source>
         <translation>Länge</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3977"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4053"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../src/core/qgsvectorlayer.cpp" line="3980"/>
+        <location filename="../src/core/qgsvectorlayer.cpp" line="4056"/>
         <source>Comment</source>
         <translation>Kommentar</translation>
     </message>
@@ -81912,8 +82019,8 @@ Insbesondere können virtuellen Layern mit eingebetteten Layern in eine QLR-Date
         <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1109"/>
         <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1121"/>
         <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1130"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1431"/>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1506"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1440"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1515"/>
         <source>WFS</source>
         <translation>WFS</translation>
     </message>
@@ -82020,62 +82127,62 @@ Insbesondere können virtuellen Layern mit eingebetteten Layern in eine QLR-Date
         <translation>Schemawurzelement nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1194"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1200"/>
         <source>it is probably a schema for Complex Features</source>
         <translation>es ist wahrscheinlich eine Schema mit komplexen Objekten</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1198"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1204"/>
         <source>Cannot find element '%1'</source>
         <translation>Kann Element '%1' nicht finden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1223"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1231"/>
         <source>Cannot find ComplexType element '%1'</source>
         <translation>ComplexType-Element '%1' nicht gefunden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1231"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1240"/>
         <source>Cannot find attribute elements</source>
         <translation>Kann Attributelemente nicht finden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1430"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1439"/>
         <source>GetCapabilities failed for url %1: %2</source>
         <translation>GetCapabilities für URL %1 gescheitert: %2</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1505"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1514"/>
         <source>Could not find typename %1 in capabilities for url %2</source>
         <translation>Konnte Namen des Typs %1 in Diensteigenschaften der URL %2 nicht finden</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1540"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1549"/>
         <source>empty response</source>
         <translation>Leere Antwort</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1546"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1555"/>
         <source>WFS service exception:%1</source>
         <translation>WFS-Dienstausnahme: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1552"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1561"/>
         <source>unsuccessful service response: %1</source>
         <translation>Nichterfolgreiche Dienstantwort: %1</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1559"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1568"/>
         <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="1560"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1569"/>
         <source>missing</source>
         <translation>fehlt</translation>
     </message>
     <message>
-        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1566"/>
+        <location filename="../src/providers/wfs/qgswfsprovider.cpp" line="1575"/>
         <source>unhandled response: %1</source>
         <translation>nicht behandelte Antwort: %1</translation>
     </message>
@@ -84448,41 +84555,41 @@ Grund: %2</translation>
 <context>
     <name>RAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2344"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2349"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2350"/>
         <source>User R scripts</source>
         <translation>R-Benutzerskripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2351"/>
         <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="2347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2352"/>
         <source>R Console Output</source>
         <translation>R-Konsolenausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2353"/>
         <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="2349"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
         <source>R execution commands</source>
         <translation>R-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2350"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
         <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>
@@ -84490,27 +84597,27 @@ Bitte vor der Ausführung von R-Skripten einstellen.</translation>
 <context>
     <name>RAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2359"/>
         <source>R Scripts folder</source>
         <translation>R-Skriptverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2360"/>
         <source>R folder</source>
         <translation>R-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2361"/>
         <source>R user library folder</source>
         <translation>R-Benutzerbibliotheksverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2362"/>
         <source>Use 64 bit version</source>
         <translation>64bit-Version verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2358"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2363"/>
         <source>Could not load R script: %s
 %s</source>
         <translation>Konnte R-Skript nicht laden: %s
@@ -84520,25 +84627,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="2362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2367"/>
         <source>R execution console output</source>
         <translation>Konsolenausgabe aus R-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2368"/>
         <source><h2>R Output</h2>
 </source>
         <translation><h2>R-Ausgabe</h2></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2369"/>
         <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="2365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2370"/>
         <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>
@@ -84546,52 +84653,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="2370"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2375"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2371"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2376"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2372"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2377"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2378"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2379"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2380"/>
         <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="2376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2381"/>
         <source>Extracted (random)</source>
         <translation>Extrahiert (zufällig)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2382"/>
         <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="2378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2383"/>
         <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="2369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2374"/>
         <source>Random extract</source>
         <translation>Zufälliger Ausschnitt</translation>
     </message>
@@ -84599,57 +84706,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="2383"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2388"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2384"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2389"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2390"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2391"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2392"/>
         <source>ID field</source>
         <translation>Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2388"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2393"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2389"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2394"/>
         <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="2390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2395"/>
         <source>Extracted (random stratified)</source>
         <translation>Extrahiert (zufällig geschichtet)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2396"/>
         <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="2392"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2397"/>
         <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="2382"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2387"/>
         <source>Random extract within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -84657,38 +84764,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="2397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2402"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2403"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2404"/>
         <source>Number of points</source>
         <translation>Anzahl von Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2405"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2406"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2402"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
         <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="2396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2401"/>
         <source>Random points along line</source>
         <translation>Zufällige Punkte entlang einer Linie</translation>
     </message>
@@ -84696,38 +84803,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsExtent</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2407"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2408"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2413"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2409"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2414"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2415"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2416"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2417"/>
         <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="2406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2411"/>
         <source>Random points in extent</source>
         <translation>Zufällige Punkte in Grenzen</translation>
     </message>
@@ -84735,38 +84842,38 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2417"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2422"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2418"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2423"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2424"/>
         <source>Points number</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2425"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2426"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
         <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="2416"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2421"/>
         <source>Random points in layer bounds</source>
         <translation>Zufällige Punkte in den Layergrenzen</translation>
     </message>
@@ -84774,53 +84881,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsFixed</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2436"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2437"/>
         <source>Number or density of points</source>
         <translation>Anzahl der Dichtepunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2433"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2438"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2434"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2439"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2435"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2440"/>
         <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="2426"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2431"/>
         <source>Random points inside polygons (fixed)</source>
         <translation>Zufällige Punkte in Polygonen (festgelegt)</translation>
     </message>
@@ -84828,53 +84935,53 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomPointsPolygonsVariable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2446"/>
         <source>Points count</source>
         <translation>Punktanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2442"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2447"/>
         <source>Points density</source>
         <translation>Punktdichte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2443"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2448"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2449"/>
         <source>Sampling strategy</source>
         <translation>Abtaststrategie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2450"/>
         <source>Number field</source>
         <translation>Nummernfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2451"/>
         <source>Minimum distance</source>
         <translation>Minimalabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2452"/>
         <source>Random points</source>
         <translation>Zufällige Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2453"/>
         <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="2439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2444"/>
         <source>Random points inside polygons (variable)</source>
         <translation>Zufällige Punkte in Polygonen (variable)</translation>
     </message>
@@ -84882,52 +84989,52 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2459"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2460"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2461"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2462"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2458"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2463"/>
         <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="2459"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2464"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2460"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2465"/>
         <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="2461"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
         <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="2452"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2457"/>
         <source>Random selection</source>
         <translation>Zufällige Auswahl</translation>
     </message>
@@ -84935,57 +85042,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RandomSelectionWithinSubsets</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2471"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2467"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
         <source>Number of selected features</source>
         <translation>Anzahl gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2468"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2473"/>
         <source>Percentage of selected features</source>
         <translation>Prozentsatz gewählter Objekte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2469"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2474"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2475"/>
         <source>ID Field</source>
         <translation>ID Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2476"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2477"/>
         <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="2473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2478"/>
         <source>Selection stratified</source>
         <translation>Geschichtete Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2479"/>
         <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="2475"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2480"/>
         <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="2465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2470"/>
         <source>Random selection within subsets</source>
         <translation>Zufällige Auswahl in Untermengen</translation>
     </message>
@@ -84993,42 +85100,42 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
         <source>Raster layer bounds</source>
         <translation>Rasterlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2487"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2488"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2489"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2491"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -85036,32 +85143,32 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2496"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2497"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2498"/>
         <source>Number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2499"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
         <source>Table</source>
         <translation>Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2495"/>
         <source>Raster layer histogram</source>
         <translation>Rasterlayerhistogramm</translation>
     </message>
@@ -85069,57 +85176,57 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RasterLayerStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2500"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2505"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2501"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2506"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
         <source>Statistics</source>
         <translation>Statistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2503"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
         <source>Minimum value</source>
         <translation>Minimalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
         <source>Maximum value</source>
         <translation>Maximalwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2510"/>
         <source>Sum</source>
         <translation>Summe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2511"/>
         <source>Mean value</source>
         <translation>Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2512"/>
         <source>valid cells count</source>
         <translation>Anzahl von gültigen Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2513"/>
         <source>No-data cells count</source>
         <translation>Anzahl von NoData Zellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2509"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2514"/>
         <source>Standard deviation</source>
         <translation>Standardabweichung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2499"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2504"/>
         <source>Raster layer statistics</source>
         <translation>Rasterlayerstatistik</translation>
     </message>
@@ -85136,62 +85243,62 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RectanglesOvalsDiamondsFixed</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2518"/>
         <source>Rectangles, ovals, diamonds (fixed)</source>
         <translation>Rechtecke, Ovale, Rauten (fest)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2519"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2520"/>
         <source>Rectangles</source>
         <translation>Rechtecke</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2521"/>
         <source>Diamonds</source>
         <translation>Rauten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
         <source>Ovals</source>
         <translation>Ovale</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2519"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
         <source>Buffer shape</source>
         <translation>Formpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2520"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2525"/>
         <source>Width</source>
         <translation>Breite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2521"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2526"/>
         <source>Height</source>
         <translation>Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2527"/>
         <source>Rotation</source>
         <translation>Drehung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2528"/>
         <source>Number of segments</source>
         <translation>Segmentanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2529"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
@@ -85199,72 +85306,72 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RectanglesOvalsDiamondsVariable</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
         <source>Rectangles, ovals, diamonds (variable)</source>
         <translation>Rechtecke, Ovale, Rauten (variabel)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
         <source>Rectangles</source>
         <translation>Rechtecke</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
         <source>Diamonds</source>
         <translation>Rauten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
         <source>Ovals</source>
         <translation>Ovale</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2533"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2534"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
         <source>Buffer shape</source>
         <translation>Formpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2535"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
         <source>Width field</source>
         <translation>Breitenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2541"/>
         <source>Height field</source>
         <translation>Höhenfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2542"/>
         <source>Rotation field</source>
         <translation>Drehungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2543"/>
         <source>Number of segments</source>
         <translation>Segmentanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2544"/>
         <source>Output</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2545"/>
         <source>Feature {} has empty width, height or angle. Skipping...</source>
         <translation>Überspringe Objekt {} mit leerer Breite, Höhe oder Winkel...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
         <source>Feature {} has empty width or height. Skipping...</source>
         <translation>Objekt {} mit leerer Breite oder Höhe übersprungen...</translation>
     </message>
@@ -85272,37 +85379,37 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RegularPoints</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2551"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2547"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2552"/>
         <source>Input extent</source>
         <translation>Eingabeabmessungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2548"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2553"/>
         <source>Point spacing/count</source>
         <translation>Punktabstände/-anzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2549"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2554"/>
         <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="2550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2555"/>
         <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="2551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2556"/>
         <source>Use point spacing</source>
         <translation>Benutze Punktabstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2550"/>
         <source>Regular points</source>
         <translation>Regelmäßige Punkte</translation>
     </message>
@@ -85310,12 +85417,12 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>RenderingStyleFilePanel</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2555"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
         <source>Select style file</source>
         <translation>Wähle Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2556"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
         <source>QGIS Layer Style File (*.qml *.QML)</source>
         <translation>QGIS Layerstildatei (*.qml *.QML)</translation>
     </message>
@@ -85323,27 +85430,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReprojectLayer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2561"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2566"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2562"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2567"/>
         <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="2568"/>
         <source>Target CRS</source>
         <translation>Ziel KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2565"/>
         <source>Reproject layer</source>
         <translation>Layer reprojizieren</translation>
     </message>
@@ -85351,27 +85458,27 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>ReverseLineDirection</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2573"/>
         <source>Reverse line direction</source>
         <translation>Linienrichtung umgekehren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2574"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2575"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
         <source>Reversed</source>
         <translation>Umgekehrt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2572"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
         <source>Error reversing line</source>
         <translation>Fehler bei Linienumkehrung</translation>
     </message>
@@ -85665,1307 +85772,1307 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SAGAAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="86"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="435"/>
         <source>Slope Length</source>
         <translation>Hanglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="196"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="574"/>
         <source>Shapes Buffer (Attribute distance)|Shapes Buffer</source>
         <translation>Shapepuffer (Attributabstand)|Shapepuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="54"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="575"/>
         <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="14"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="516"/>
         <source>Gaussian Filter</source>
         <translation>Gauss'scher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="57"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="463"/>
         <source>Flow Accumulation (Top-Down)</source>
         <translation>Flußdichte (Oben-Unten)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="145"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="522"/>
         <source>Convex Hull</source>
         <translation>Konvexe Hülle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="244"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="361"/>
         <source>Flow Accumulation (Recursive)</source>
         <translation>Flußdichte (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="44"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="446"/>
         <source>Polygon Centroids</source>
         <translation>Polygonschwerpunkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="88"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="409"/>
         <source>Flow Accumulation (Flow Tracing)</source>
         <translation>Flußdichte (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="100"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="547"/>
         <source>Point Statistics for Polygons</source>
         <translation>Polygon-Punktstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="10"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="416"/>
         <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="152"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="576"/>
         <source>Clip Points with Polygons</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="206"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="495"/>
         <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="7"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="461"/>
         <source>Grid Statistics for Polygons</source>
         <translation>Gitterstatistik für Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="129"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="603"/>
         <source>Layer of extreme value</source>
         <translation>Extrema-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="70"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="549"/>
         <source>Create Graticule</source>
         <translation>Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="107"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="430"/>
         <source>Difference</source>
         <translation>Differenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="194"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="531"/>
         <source>Clip Grid with Polygon</source>
         <translation>Punkte auf Polygon zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="216"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="442"/>
         <source>Crop to Data</source>
         <translation>Auf Daten zuschneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="68"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="405"/>
         <source>Close Gaps</source>
         <translation>Lücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="28"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="431"/>
         <source>Polygon Clipping</source>
         <translation>Polygonclipping</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="200"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="473"/>
         <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="60"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="600"/>
         <source>Flatten Polygon Layer</source>
         <translation>Polygonlayer glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="231"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="401"/>
         <source>Shared Polygon Edges</source>
         <translation>Gemeinsame Polygonkanten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="69"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="481"/>
         <source>Add Point Attributes to Polygons</source>
         <translation>Punktattribute zu Polygonen hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="24"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="514"/>
         <source>Polygon Self-Intersection</source>
         <translation>Polygonselbstüberschneidungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="229"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="440"/>
         <source>Gradient Vectors from Surface</source>
         <translation>Gradientenvektor aus Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="47"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="418"/>
         <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="92"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="533"/>
         <source>Multiple Regression Analysis (Points/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Punkt/Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="103"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="546"/>
         <source>Hypsometry</source>
         <translation>Hypsometrie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="111"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="462"/>
         <source>Aggregation Index</source>
         <translation>Aggregationsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="94"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="492"/>
         <source>Identity</source>
         <translation>Identität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="33"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="372"/>
         <source>LS Factor</source>
         <translation>LS-Faktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="75"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="482"/>
         <source>DTM Filter (slope-based)</source>
         <translation>DTM-Filter (Hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="168"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="571"/>
         <source>Effective Air Flow Heights</source>
         <translation>Effektive Luftflußhöhen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="59"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="419"/>
         <source>Add Grid Values to Points</source>
         <translation>Gitterwerte zu Punkten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="207"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="410"/>
         <source>Kernel Density Estimation</source>
         <translation>Kerndichtenschätzung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="116"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="512"/>
         <source>Grid Cell Index</source>
         <translation>Gitterzellenindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="146"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="375"/>
         <source>Mass Balance Index</source>
         <translation>Gleichgewichtsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="30"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="543"/>
         <source>Transform Shapes</source>
         <translation>Shapes transformieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="53"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="507"/>
         <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="150"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="417"/>
         <source>Polygon Properties</source>
         <translation>Polygoneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="177"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="521"/>
         <source>Geographically Weighted Multiple Regression</source>
         <translation>Geografischgewichtete Mehrfach-Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="201"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="505"/>
         <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="255"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="398"/>
         <source>Directional Statistics for Single Grid</source>
         <translation>Richtungsstatistik für Einzelraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="115"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="530"/>
         <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="120"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="450"/>
         <source>Grids Product</source>
         <translation>Rasterprodukte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="42"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="458"/>
         <source>Fill Gaps in Records</source>
         <translation>Datensatzlücken füllen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="257"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="509"/>
         <source>Topographic Correction</source>
         <translation>Topographische Korrektur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="49"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="590"/>
         <source>Grid Buffer</source>
         <translation>Gitterpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="228"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="449"/>
         <source>Catchment Area (Flow Tracing)</source>
         <translation>Einzugsbereich (Flußverfolgung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="239"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="356"/>
         <source>User Defined Filter</source>
         <translation>Benutzerdefinierter Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="198"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="438"/>
         <source>Watershed Segmentation</source>
         <translation>Niederschlagssegmentierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="55"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="380"/>
         <source>Line Simplification</source>
         <translation>Linienvereinfachung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="205"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="523"/>
         <source>Convergence Index (Search Radius)</source>
         <translation>Konvergenzindex (Suchradius)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="261"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="487"/>
         <source>Topographic Wetness Index (TWI)</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="218"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="468"/>
         <source>Upslope Area|4</source>
         <translation>Anstieg Areal4</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="72"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="542"/>
         <source>Laplacian Filter</source>
         <translation>Laplace-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="63"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="384"/>
         <source>Grid Proximity Buffer</source>
         <translation>Gitterannährungspuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="203"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="613"/>
         <source>Aggregate Point Observations</source>
         <translation>Punktbeobachtung sammeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="136"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="420"/>
         <source>Transpose Grids</source>
         <translation>Gitter transponieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="260"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="506"/>
         <source>Topographic Position Index (TPI)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="95"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="536"/>
         <source>Grid Masking</source>
         <translation>Gittermaskierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="166"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="563"/>
         <source>Channel Network and Drainage Basins</source>
         <translation>Kanalnetzwerk und Drainagebecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="118"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="365"/>
         <source>Real Surface Area</source>
         <translation>Echte Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="210"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="504"/>
         <source>Threshold Buffer</source>
         <translation>Schwellenpuffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="36"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="573"/>
         <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="52"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="452"/>
         <source>QuadTree Structure to Shapes</source>
         <translation>Quad-Tree-Struktur zu Shapes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="144"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="490"/>
         <source>Analytical Hillshading</source>
         <translation>Analytische Schummerung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="242"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="609"/>
         <source>Surface Specific Points</source>
         <translation>Oberflächen spezifische Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="160"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="451"/>
         <source>Transect through polygon shapefile</source>
         <translation>Durch Polygonshapedateien schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="104"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="556"/>
         <source>Convert Lines to Polygons</source>
         <translation>Linien in Polygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="41"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="364"/>
         <source>Local Minima and Maxima</source>
         <translation>Lokale Minima und Maxima</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="243"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="586"/>
         <source>Accumulated Cost (Isotropic)</source>
         <translation>Aufgelaufenen Kosten (isotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="137"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="484"/>
         <source>Line Dissolve</source>
         <translation>Linien auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="134"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="513"/>
         <source>Resampling</source>
         <translation>Abtastung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="38"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="545"/>
         <source>Fuzzy Union (OR)</source>
         <translation>Fuzzy-Vereinigung (ODER)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="105"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="423"/>
         <source>Natural Neighbour</source>
         <translation>Natürlicher Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="132"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="360"/>
         <source>Convert Lines to Points</source>
         <translation>Linien in Punkten umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="83"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="612"/>
         <source>Thin Plate Spline (Global)</source>
         <translation>Thin Plate Spline (global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="89"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="589"/>
         <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="256"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="369"/>
         <source>Stream Power Index</source>
         <translation>Stromstärkeindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="165"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="529"/>
         <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="208"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="552"/>
         <source>Polynomial Regression</source>
         <translation>Polynominalregression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="156"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="444"/>
         <source>Multiple Regression Analysis (Grid/Grids)</source>
         <translation>Mehrfach-Regressionsanalyse (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="189"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="606"/>
         <source>Nearest Neighbour</source>
         <translation>Nächster Nachbar</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="39"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="489"/>
         <source>Water Retention Capacity</source>
         <translation>Bodenwasserspannungskapazität</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="226"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="578"/>
         <source>Gradient Vectors from Directional Components</source>
         <translation>Gradientenvektoren aus gerichteten Komponenten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="248"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="377"/>
         <source>Majority Filter</source>
         <translation>Mehrheitsfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="108"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="568"/>
         <source>Flow Path Length</source>
         <translation>Fließweglänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="27"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="429"/>
         <source>Simple Region Growing</source>
         <translation>Einfaches Region-Growing</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="138"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="433"/>
         <source>Simulation</source>
         <translation>Simulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="193"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="443"/>
         <source>Get Shapes Extents</source>
         <translation>Shapeausmaße bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="29"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="550"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="8"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="445"/>
         <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="51"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="526"/>
         <source>B-Spline Approximation</source>
         <translation>B-Spline-Approximation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="91"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="359"/>
         <source>Polygon Parts to Separate Polygons</source>
         <translation>Polygonteile in Einzelpolygone umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="16"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="460"/>
         <source>Points Thinning</source>
         <translation>Punkte ausdünnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="188"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="454"/>
         <source>Change Date Format</source>
         <translation>Datumsformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="263"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="601"/>
         <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="15"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="404"/>
         <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="155"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="381"/>
         <source>Ordinary Kriging</source>
         <translation>Normales Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="163"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="537"/>
         <source>Grid Volume</source>
         <translation>Rastervolumen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="222"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="367"/>
         <source>Patching</source>
         <translation>Zusammenflicken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="211"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="553"/>
         <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="114"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="587"/>
         <source>Thin Plate Spline (TIN)</source>
         <translation>Thin-Plate-Spline (TIN)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="62"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="528"/>
         <source>SAGA Wetness Index</source>
         <translation>SAGA Feuchtigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="237"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="434"/>
         <source>Histogram Surface</source>
         <translation>Histogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="140"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="594"/>
         <source>Merge Layers</source>
         <translation>Layer zusammenführen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="187"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="499"/>
         <source>Grid Skeletonization</source>
         <translation>Rasterskelettierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="266"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="501"/>
         <source>Catchment Area|Catchment Area (Parallel)</source>
         <translation>Einzugsgebiet|Einzugsgebiet (Parallel)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="186"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="593"/>
         <source>Geometric Figures</source>
         <translation>Geometrische Figuren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="20"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="494"/>
         <source>Spatial Point Pattern Analysis</source>
         <translation>Räumliche Punktmusteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="18"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="580"/>
         <source>Update</source>
         <translation>Aktualisieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="178"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="581"/>
         <source>Sink Removal</source>
         <translation>Ablauf entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="236"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="456"/>
         <source>Convert Points to Line(s)</source>
         <translation>Punkte in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="154"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="396"/>
         <source>Change Grid Values</source>
         <translation>Gitterwert ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="223"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="541"/>
         <source>Line Properties</source>
         <translation>Linieneigenschaften</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="22"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="422"/>
         <source>Convert Multipoints to Points</source>
         <translation>Multipunkt zu Punkt umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="230"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="544"/>
         <source>Cell Balance</source>
         <translation>Zellengleichgewicht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="85"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="540"/>
         <source>Fill Sinks (Wang & Liu)</source>
         <translation>Senken füllen (Wang & Liu)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="191"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="583"/>
         <source>Convert Data Storage Type</source>
         <translation>Datenspeichertyp umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="46"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="478"/>
         <source>Rank Filter</source>
         <translation>Rangfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="110"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="479"/>
         <source>Change Detection</source>
         <translation>Erkennung ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="264"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="585"/>
         <source>Strahler Order</source>
         <translation>Strahler-Reihenfolge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="64"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="510"/>
         <source>Inverse Distance Weighted</source>
         <translation>gewichtete inverse Distanz (IDW)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="214"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="427"/>
         <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="139"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="475"/>
         <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="135"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="515"/>
         <source>Fast Region Growing Algorithm</source>
         <translation>Schneller Regionswachstumalgorithmus</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="25"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="560"/>
         <source>Terrain Ruggedness Index (TRI)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="250"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="432"/>
         <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="157"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="362"/>
         <source>Points Filter</source>
         <translation>Punktfilter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="173"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="599"/>
         <source>Radius of Variance (Grid)</source>
         <translation>Radius der Varianz (Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="192"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="577"/>
         <source>Geographically Weighted Multiple Regression (Points)</source>
         <translation>Geografischgewichtete Mehrfach-Regression (Punkte)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="184"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="592"/>
         <source>Sink Drainage Route Detection</source>
         <translation>Ablaufdrainageweg bestimmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="123"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="388"/>
         <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="11"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="373"/>
         <source>Cubic Spline Approximation</source>
         <translation>Kubische Spline-Nährung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="76"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="483"/>
         <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="204"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="559"/>
         <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="199"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="534"/>
         <source>Line-Polygon Intersection</source>
         <translation>Linien-Polygon-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="267"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="511"/>
         <source>Accumulated Cost (Anisotropic)</source>
         <translation>Aufgelaufenen Kosten (Anisotropisch)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="182"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="579"/>
         <source>Fragmentation (Alternative)</source>
         <translation>Fragmentierung (Alternative)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="82"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="493"/>
         <source>Principle Components Analysis</source>
         <translation>Hauptkomponentenanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="252"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="368"/>
         <source>Ordinary Kriging (Global)</source>
         <translation>Normales Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="13"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="485"/>
         <source>Multi-Band Variation</source>
         <translation>Mehrkanalvariation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="149"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="403"/>
         <source>Universal Kriging (Global)</source>
         <translation>Universeles Krigen (Global)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="167"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="471"/>
         <source>Analytical Hierarchy Process</source>
         <translation>Analytischer Hierachieprozeß</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="78"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="535"/>
         <source>Diurnal Anisotropic Heating</source>
         <translation>Anisotrope Erwärmung über Tag</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="31"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="595"/>
         <source>Variogram Surface</source>
         <translation>Variogramm-Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="213"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="470"/>
         <source>Multi Direction Lee Filter</source>
         <translation>Mehrrichtung-Lee-Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="202"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="363"/>
         <source>Watershed Basins</source>
         <translation>Einzugsgebietsbecken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="190"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="447"/>
         <source>Supervised Classification</source>
         <translation>Überwachte Klassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="249"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="455"/>
         <source>Soil Texture Classification</source>
         <translation>Bodentexturklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="125"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="413"/>
         <source>Vectorising Grid Classes</source>
         <translation>Vektorisierende Gitter-Klassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="32"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="474"/>
         <source>Modified Quadratic Shepard</source>
         <translation>Modifizierte quadratische Shepard-Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="262"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="411"/>
         <source>Variogram Cloud</source>
         <translation>Variogramm Wolke</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="124"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="498"/>
         <source>Vectorising Raster Classes</source>
         <translation>Vektorisierene Rasterklassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="130"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="582"/>
         <source>Morphometric Protection Index</source>
         <translation>Morphometrischer Schutzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="127"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="374"/>
         <source>Universal Kriging</source>
         <translation>Universeles Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="215"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="394"/>
         <source>Raster calculator|Grid Calculator</source>
         <translation>Rasterrechner|Rasterrechner</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="241"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="386"/>
         <source>Grid Orientation</source>
         <translation>Gitterrichtung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="171"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="421"/>
         <source>Convergence Index</source>
         <translation>Konvergenzindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="80"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="519"/>
         <source>Shapes to Grid</source>
         <translation>Shapes in Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="112"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="385"/>
         <source>Land Surface Temperature</source>
         <translation>Landoberflächentemperatur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="220"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="436"/>
         <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="143"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="472"/>
         <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="79"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="569"/>
         <source>Random Terrain Generation</source>
         <translation>Zufälliges Gelände erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="142"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="379"/>
         <source>Convert Polygons to Lines</source>
         <translation>Polygon in Linien umwandeln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="265"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="415"/>
         <source>Fuzzy Intersection (AND)</source>
         <translation>Fuzzy-Schnittmenge (UND)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="233"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="397"/>
         <source>Polygon Shape Indices</source>
         <translation>Polygonshapeindizes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="97"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="520"/>
         <source>Cluster Analysis for Grids</source>
         <translation>Häufungsanalyse für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="254"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="358"/>
         <source>Burn Stream Network into DEM</source>
         <translation>Stromnetzwerk in DEM brennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="141"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="370"/>
         <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="84"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="391"/>
         <source>Regression Kriging</source>
         <translation>Regressionskrigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="98"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="570"/>
         <source>Simple Kriging</source>
         <translation>Einfaches Krigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="77"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="355"/>
         <source>Fuzzify</source>
         <translation>Fuzzifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="212"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="605"/>
         <source>Catchment Area (Recursive)</source>
         <translation>Einzugsbereich (Rekursiv)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="117"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="502"/>
         <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="74"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="538"/>
         <source>Least Cost Paths</source>
         <translation>Pfad geringster Kosten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="35"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="383"/>
         <source>Split Shapes Layer Randomly</source>
         <translation>Shapelayer zufällig aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="12"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="611"/>
         <source>Grid Standardisation</source>
         <translation>Gitterstandardisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="221"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="400"/>
         <source>Proximity Grid</source>
         <translation>Näheraster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="176"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="392"/>
         <source>Contour Lines from Grid</source>
         <translation>Umrandungslinien aus Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="43"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="598"/>
         <source>Fragmentation (Standard)</source>
         <translation>Fragmentierung (Standard)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="23"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="500"/>
         <source>Invert Data/No-Data</source>
         <translation>Daten/Leerdaten invertieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="247"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="406"/>
         <source>Vegetation Index (Slope Based)</source>
         <translation>Vegetationsindex (hangbasiert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="58"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="527"/>
         <source>Statistics for Grids</source>
         <translation>Statistik für Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="209"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="488"/>
         <source>Grids Sum</source>
         <translation>Gittersumme</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="34"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="508"/>
         <source>Triangulation</source>
         <translation>Triangulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="159"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="607"/>
         <source>Grid Values to Points</source>
         <translation>Gitterwerte in Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="170"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="557"/>
         <source>Add Coordinates to points</source>
         <translation>Koordinaten zu Punkten hinzufügen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="66"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="491"/>
         <source>Symmetrical Difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="183"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="555"/>
         <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="503"/>
         <source>Aggregate</source>
         <translation>Aggregieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="101"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="562"/>
         <source>Sky View Factor</source>
         <translation>Himmelsichtfaktor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="246"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="467"/>
         <source>Grid Difference</source>
         <translation>Gitterdifferenz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="73"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="465"/>
         <source>Vertical Distance to Channel Network</source>
         <translation>Vertikale Distanz in Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="224"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="389"/>
         <source>Random Field</source>
         <translation>Zufälliges Feld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="232"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="591"/>
         <source>Simple Filter</source>
         <translation>Einfacher Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="240"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="604"/>
         <source>Minimum Distance Analysis</source>
         <translation>Minimumdistanzanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="197"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="453"/>
         <source>Shrink and Expand</source>
         <translation>Verkleinern und Vergrößern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="217"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="441"/>
         <source>Cut Shapes Layer</source>
         <translation>Shapelayer schneiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="251"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="393"/>
         <source>TPI Based Landform Classification</source>
         <translation>TPI basierte Landformklassifikation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="65"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="548"/>
         <source>Intersect</source>
         <translation>Schnittmengen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="106"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="378"/>
         <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="56"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="464"/>
         <source>Downslope Distance Gradient</source>
         <translation>Abwärtsabstandsgrendiente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="9"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="564"/>
         <source>Channel Network</source>
         <translation>Kanalnetzwerk</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="253"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="412"/>
         <source>Pattern Analysis</source>
         <translation>Musteranalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="81"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="477"/>
         <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="40"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="517"/>
         <source>Remove Duplicate Points</source>
         <translation>Doppelte Punkte entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="161"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="425"/>
         <source>Reclassify Grid Values</source>
         <translation>Gitterwert neuklassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="162"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="469"/>
         <source>Geographically Weighted Regression (Points/Grid)</source>
         <translation>Geografischgewichtete Regression (Punkt/Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="109"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="476"/>
         <source>Close One Cell Gaps</source>
         <translation>Einzellenlücken schließen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="227"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="426"/>
         <source>Slope, Aspect, Curvature</source>
         <translation>Neigung, Exposition, Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="219"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="561"/>
         <source>Function</source>
         <translation>Funktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="87"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="439"/>
         <source>GWR for Multiple Predictors</source>
         <translation>GWR für mehrere Vorhersagen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="90"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="428"/>
         <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="133"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="614"/>
         <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="235"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="357"/>
         <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="147"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="518"/>
         <source>Diversity of Categories</source>
         <translation>Kategorienvielfalt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="158"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="539"/>
         <source>Create Polygons Graticule|Create Graticule</source>
         <translation>Gradnetz als Polygone erzeugen|Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="195"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="390"/>
         <source>Change Time Format</source>
         <translation>Zeitformat ändern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="48"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="566"/>
         <source>Confusion Matrix (Polygons / Grid)</source>
         <translation>Wahrheitsmatrix (Polygone / Gitter)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="93"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="567"/>
         <source>Successive Flow Routing</source>
         <translation>Aufeinanderfolgende Flußlenkung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="148"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="437"/>
         <source>Thin Plate Spline (Local)</source>
         <translation>Thin Plate Spline (Lokal)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="179"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="532"/>
         <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="67"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="408"/>
         <source>Diffusive Hillslope Evolution (FTCS)</source>
         <translation>Diffusive Hillslope Evolution (FTCS)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="238"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="608"/>
         <source>Diffusive Hillslope Evolution (ADI)</source>
         <translation>Diffusive Hillslope Evolution (ADI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="102"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="448"/>
         <source>Create Lines Graticule|Create Graticule</source>
         <translation>Gradnetz als Linien erzeugen|Gradnetz erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="19"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="376"/>
         <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="61"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="610"/>
         <source>Grid Normalisation</source>
         <translation>Gitternormalisierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="225"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="496"/>
         <source>Thin Plate Spline</source>
         <translation>Thin Plate Spline</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="128"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="615"/>
         <source>Seed Generation</source>
         <translation>Saaterzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="169"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="395"/>
         <source>Polygon-Line Intersection</source>
         <translation>Polygon-Linien-Verschneidung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="121"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="424"/>
         <source>Running Average</source>
         <translation>Beweglicher Mittelwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="37"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="572"/>
         <source>Cross-Classification and Tabulation</source>
         <translation>Kreuzklassifizierung und Tabellierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="258"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="466"/>
         <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="174"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="525"/>
         <source>Metric Conversions</source>
         <translation>Metrische Umwandlungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="175"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="558"/>
         <source>RGB Composite</source>
         <translation>RGB-Composite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="153"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="597"/>
         <source>Edge Contamination</source>
         <translation>Kantenverunreinigung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="99"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="524"/>
         <source>Curvature Classification</source>
         <translation>Wölbungsklassifizierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="126"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="402"/>
         <source>Filter Clumps</source>
         <translation>Klumpen filtern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="172"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="407"/>
         <source>Overland Flow - Kinematic Wave D8</source>
         <translation>Überlandfluß - Kinematische Welle D8</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="180"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="382"/>
         <source>Profiles from Lines</source>
         <translation>Profile aus Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="119"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="497"/>
         <source>Distance Matrix</source>
         <translation>Distanzmatrix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="21"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="371"/>
         <source>Residual analysis|Residual Analysis (Grid)</source>
         <translation>Restanalyse|Restanalyse (Raster)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="259"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="584"/>
         <source>Zonal Grid Statistics</source>
         <translation>Zonengitterstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="50"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="399"/>
         <source>Grid Division</source>
         <translation>Gitterteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="122"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="596"/>
         <source>Lake Flood</source>
         <translation>Seeflut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="71"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="565"/>
         <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="17"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="486"/>
         <source>Multilevel B-Spline Interpolation</source>
         <translation>Mehrstufen-B-Spline-Interpolation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="26"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="366"/>
         <source>Cross Profiles</source>
         <translation>Kreuzprofile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="151"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="459"/>
         <source>Polar to Cartesian Coordinates</source>
         <translation>Polar- zu kartesischen Koordinaten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="234"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="480"/>
         <source>Mosaick raster layers|Mosaicking</source>
         <translation>Stitching von Rasterlayern|Stitching</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="131"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="457"/>
         <source>Fire Risk Analysis</source>
         <translation>Feuerriskikoanalyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="185"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="602"/>
         <source>Geographically Weighted Regression</source>
         <translation>Geografischgewichtete Regression</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="164"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="387"/>
         <source>Separate points by direction</source>
         <translation>Punkte nach Richtung aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="96"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="414"/>
         <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="45"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="551"/>
         <source>Morphological Filter</source>
         <translation>Morphologischer Filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="181"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="554"/>
         <source>Vector Ruggedness Measure (VRM)</source>
         <translation>Vektorrauhigkeitsmaß (VRM)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="245"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="588"/>
         <source>Fast Representativeness</source>
         <translation>Schnelle Repräsentativität</translation>
     </message>
@@ -86991,24 +87098,24 @@ Maximalzahl der Versuche überschritten.</translation>
 <context>
     <name>SagaAlgorithm212</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2581"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2582"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
         <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="2579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
         <source>Input layers do not have the same grid extent.</source>
         <translation>Eingabelayer haben nicht die gleichen Gitterabmessungen.</translation>
     </message>
@@ -87016,12 +87123,12 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithm213</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2583"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2588"/>
         <source>Unsupported file format</source>
         <translation>Nicht unterstütztes Dateiformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2584"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2589"/>
         <source>SAGA execution commands</source>
         <translation>SAGA-Befehlsausführung</translation>
     </message>
@@ -87029,47 +87136,47 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2588"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
         <source>SAGA folder</source>
         <translation>SAGA-Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2594"/>
         <source>Enable SAGA Import/Export optimizations</source>
         <translation>SAGA-Im-/Exportoptimierungen einschalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2590"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2595"/>
         <source>Log execution commands</source>
         <translation>Befehlsausführung protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2596"/>
         <source>Log console output</source>
         <translation>Konsolenausgabe protokollieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2597"/>
         <source>Activate</source>
         <translation>Aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2593"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2598"/>
         <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="2594"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2599"/>
         <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="2595"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2600"/>
         <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="2596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2601"/>
         <source>Could not open SAGA algorithm: %s
 %s</source>
         <translation>Konnte SAGA-Algorithmus nicht öffnen: %s
@@ -87079,7 +87186,7 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SagaUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2600"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2605"/>
         <source>SAGA execution console output</source>
         <translation>Konsolenausgabe der SAGA-Ausführung</translation>
     </message>
@@ -87087,22 +87194,22 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>SaveSelectedFeatures</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2605"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2610"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2612"/>
         <source>Selection</source>
         <translation>Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2609"/>
         <source>Save selected features</source>
         <translation>Gewählte Objekt speichern</translation>
     </message>
@@ -87110,36 +87217,36 @@ Mehrkanallayer werden von SAGA nicht unterstützt</translation>
 <context>
     <name>ScriptAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2616"/>
         <source>User scripts</source>
         <translation>Benutzer Skripte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2617"/>
         <source>This script has a syntax errors.
 Problem with line: %s</source>
         <translation>Diese Skript hat Syntaxfehler.
 Problem in Zeile: %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2618"/>
         <source>[Test scripts]</source>
         <translation>[Test Skripte]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2619"/>
         <source>[Unnamed algorithm]</source>
         <translation>[Unbenannte Algorithmen]</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
         <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="2616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2621"/>
         <source>Could not load script: %s.
 Problem with line %d</source>
         <translation>Konnte Skript nicht laden: %s.
@@ -87149,12 +87256,12 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2620"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2625"/>
         <source>Scripts folder</source>
         <translation>Skript Verzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
         <source>Scripts</source>
         <translation>Skripte</translation>
     </message>
@@ -87162,39 +87269,39 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ScriptEditorDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2627"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2632"/>
         <source>Python scripts (*.py)</source>
         <translation>Python-Skripte (*.py)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2633"/>
         <source>Processing R script (*.rsx)</source>
         <translation>Verarbeitete R-Skript (*.rsx)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2634"/>
         <source>Save script</source>
         <translation>Skript speichern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2635"/>
         <source>I/O error</source>
         <translation>E/A-Fehler</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2636"/>
         <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="2625"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2630"/>
         <source>Unsaved changes</source>
         <translation>Ungesicherte Änderungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2626"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2631"/>
         <source>There are unsaved changes in script. Continue?</source>
         <translation>Es gibt ungesicherte Skriptänderungen.  Fortfahren?</translation>
     </message>
@@ -87250,57 +87357,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttribute</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
         <source>begins with </source>
         <translation>Beginnt mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2643"/>
         <source>contains</source>
         <translation>enthält</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2644"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2645"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2646"/>
         <source>Operator</source>
         <translation>Operator</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2642"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2647"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2643"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2648"/>
         <source>Selected (attribute)</source>
         <translation>Auswahl (Attribut)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2644"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
         <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="2645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
         <source>Unsupported field type "%s"</source>
         <translation>Nicht unterstützter Feldtyp "%s"</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2640"/>
         <source>Select by attribute</source>
         <translation>Nach Attribut wählen</translation>
     </message>
@@ -87308,42 +87415,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByAttributeSum</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2655"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2656"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2652"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2657"/>
         <source>Selection attribute</source>
         <translation>Auswahlattribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2653"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2658"/>
         <source>Value</source>
         <translation>Wert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2654"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2659"/>
         <source>Selected (attribute sum)</source>
         <translation>Auswahl (Attributsumme)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
         <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="2656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
         <source>No adjacent features found.</source>
         <translation>Keine benachbarten Objekte gefunden.</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2654"/>
         <source>Select by attribute sum</source>
         <translation>Nach Attributsumme wählen</translation>
     </message>
@@ -87351,52 +87458,52 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByExpression</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl wird erstellt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
         <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="2664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2670"/>
         <source>selecting within current selection</source>
         <translation>innerhalb der aktuellen Auswahl wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2671"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2672"/>
         <source>Expression</source>
         <translation>Ausdruck</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2673"/>
         <source>Modify current selection by</source>
         <translation>Vorhandene Auswaähl ändern durch</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2674"/>
         <source>Selected (expression)</source>
         <translation>Auswahl (Ausdruck)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2660"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2665"/>
         <source>Select by expression</source>
         <translation>Nach Ausdruck wählen</translation>
     </message>
@@ -87404,57 +87511,57 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SelectByLocation</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2674"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2679"/>
         <source>Vector selection tools</source>
         <translation>Vektorauswahlwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2675"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2680"/>
         <source>creating new selection</source>
         <translation>Neue Auswahl erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2681"/>
         <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="2677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2682"/>
         <source>removing from current selection</source>
         <translation>Entferne aus aktueller Auswahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2683"/>
         <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="2679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2684"/>
         <source>Additional layer (intersection layer)</source>
         <translation>Zusätzliche Layer (Schnittlayer)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2685"/>
         <source>Geometric predicate</source>
         <translation>Geometrisches Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2686"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
         <source>Modify current selection by</source>
         <translation>Aktuelle Auswahl ändern mit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2688"/>
         <source>Selected (location)</source>
         <translation>Auswahl (Position)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2673"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2678"/>
         <source>Select by location</source>
         <translation>Nach Position selektieren</translation>
     </message>
@@ -87515,27 +87622,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetRasterStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2688"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2693"/>
         <source>Raster general tools</source>
         <translation>Allgemeine Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2689"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2694"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2690"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2692"/>
         <source>Set style for raster layer</source>
         <translation>Setze Stil für Rasterlayer</translation>
     </message>
@@ -87543,27 +87650,27 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SetVectorStyle</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2696"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2701"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2702"/>
         <source>Vector layer</source>
         <translation>Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
         <source>Style file</source>
         <translation>Stildatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
         <source>Styled</source>
         <translation>Gestaltet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2695"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2700"/>
         <source>Set style for vector layer</source>
         <translation>Setze Stil für Vektorlayer</translation>
     </message>
@@ -87571,14 +87678,14 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Setting</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2703"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2708"/>
         <source>Wrong parameter value:
 %s</source>
         <translation>Falscher Parameterwert:
 %s</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2709"/>
         <source>Specified path does not exist:
 %s</source>
         <translation>Angegebener Pfad existiert nicht:
@@ -87860,7 +87967,7 @@ Fehler in Zeile %d</translation>
 <context>
     <name>ShowTestDialog</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2708"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
         <source>Unit test</source>
         <translation>Unit-Test</translation>
     </message>
@@ -87868,32 +87975,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SimplifyGeometries</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2718"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2719"/>
         <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="2720"/>
         <source>Tolerance</source>
         <translation>Toleranz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2716"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2721"/>
         <source>Simplified</source>
         <translation>Vereinfacht</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2717"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2722"/>
         <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="2712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2717"/>
         <source>Simplify geometries</source>
         <translation>Geometrien vereinfachen</translation>
     </message>
@@ -87934,32 +88041,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SinglePartsToMultiparts</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2727"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2728"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2729"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
         <source>Multipart</source>
         <translation>Mehrteilig</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
         <source>Invalid unique ID field</source>
         <translation>Ungültiges eindeutiges Kennungsfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2726"/>
         <source>Singleparts to multipart</source>
         <translation>Ein- zu mehrteilig</translation>
     </message>
@@ -88006,42 +88113,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeArea</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2735"/>
         <source>Slope Area Combination</source>
         <translation>Neigungsflächenkombination</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2736"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2737"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2738"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2739"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2740"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2741"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2742"/>
         <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>
@@ -88049,42 +88156,42 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SlopeAreaMulti</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2746"/>
         <source>Slope Area Combination (multifile)</source>
         <translation>Neigungsflächenkombination (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2747"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2748"/>
         <source>Slope Grid</source>
         <translation>Neigungsgitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2749"/>
         <source>Contributing Area Grid</source>
         <translation>Beitragende Fläche Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2750"/>
         <source>Slope Exponent</source>
         <translation>Neigungs Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2751"/>
         <source>Area Exponent</source>
         <translation>Flächen Exponent</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2747"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2752"/>
         <source>Slope Area Grid</source>
         <translation>Neigungsflächen Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2748"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2753"/>
         <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>
@@ -88092,37 +88199,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>Smooth</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
         <source>Smooth geometry</source>
         <translation>Geometrieglättung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2754"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2759"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2760"/>
         <source>Iterations</source>
         <translation>Wiederholungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2761"/>
         <source>Offset</source>
         <translation>Versatz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2757"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
         <source>Smoothed</source>
         <translation>Geglättet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2758"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2763"/>
         <source>Error smoothing geometry</source>
         <translation>Fehler bei Geometrieglättung</translation>
     </message>
@@ -88130,32 +88237,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SpatialIndex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2767"/>
         <source>Create spatial index</source>
         <translation>Räumlichen Index erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2768"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2764"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2769"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2765"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2770"/>
         <source>Indexed layer</source>
         <translation>Indizierter Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2766"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2771"/>
         <source>Can not create spatial index</source>
         <translation>Kann räumlichen Index nicht erstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2772"/>
         <source>Layer's data provider does not support spatial indexes</source>
         <translation>Der Datenanbieter dieses Layers unterstützt das Erzeugen von räumlichen Indizes nicht</translation>
     </message>
@@ -88163,72 +88270,72 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SpatialJoin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2772"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2777"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2773"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2778"/>
         <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="2774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2779"/>
         <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="2775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2780"/>
         <source>Only keep matching records</source>
         <translation>Nur passende Datensätze erhalten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2781"/>
         <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="2777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2782"/>
         <source>Target vector layer</source>
         <translation>Zielvektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
         <source>Join vector layer</source>
         <translation>Verknüpfter Vektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2779"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
         <source>Geometric predicate</source>
         <translation>Geometrische Prädikat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2780"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2785"/>
         <source>Precision</source>
         <translation>Genauigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2781"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2786"/>
         <source>Attribute summary</source>
         <translation>Attributzusammenfassung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2787"/>
         <source>Statistics for summary (comma separated)</source>
         <translation>Statistik zur Zusammenfassung (kommasepariert)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2788"/>
         <source>Joined table</source>
         <translation>Verknüpfte Tabelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2789"/>
         <source>Joined layer</source>
         <translation>Zusammengefasster Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2771"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2776"/>
         <source>Join attributes by location</source>
         <translation>Attribute nach Position zusammenfügen</translation>
     </message>
@@ -88236,32 +88343,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitLinesWithLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2789"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2794"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2795"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2796"/>
         <source>Split layer</source>
         <translation>Layer aufteilen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2797"/>
         <source>Splitted</source>
         <translation>Geteilt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2798"/>
         <source>Geometry exception while splitting</source>
         <translation>Geometrieausnahme während Aufteilung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2788"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2793"/>
         <source>Split lines with lines</source>
         <translation>Linien with Linien teilen</translation>
     </message>
@@ -88269,32 +88376,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SplitRGBBands</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2797"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2802"/>
         <source>Split RGB bands</source>
         <translation>RGB-Kanäle trennen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2803"/>
         <source>Image tools</source>
         <translation>Bildwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2804"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2805"/>
         <source>Output R band layer</source>
         <translation>R-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
         <source>Output G band layer</source>
         <translation>G-Ausgabekanallayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
         <source>Output B band layer</source>
         <translation>B-Ausgabekanallayer</translation>
     </message>
@@ -88330,32 +88437,32 @@ Fehler in Zeile %d</translation>
 <context>
     <name>StatisticsByCategories</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2812"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2813"/>
         <source>Input vector layer</source>
         <translation>Eingabevektorlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2814"/>
         <source>Field to calculate statistics on</source>
         <translation>Feld für Statistikberechnung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2815"/>
         <source>Field with categories</source>
         <translation>Feld mit Kategorien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
         <source>Statistics by category</source>
         <translation>Statistik nach Kategorie</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2811"/>
         <source>Statistics by categories</source>
         <translation>Statistik nach Kategorien</translation>
     </message>
@@ -88363,37 +88470,37 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SumLines</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2821"/>
         <source>Vector analysis tools</source>
         <translation>Vektoranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2822"/>
         <source>Lines</source>
         <translation>Linien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2823"/>
         <source>Polygons</source>
         <translation>Polygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2824"/>
         <source>Lines length field name</source>
         <translation>Linienlängenfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2825"/>
         <source>Lines count field name</source>
         <translation>Linienzählfeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2826"/>
         <source>Line length</source>
         <translation>Linienlänge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2815"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2820"/>
         <source>Sum line lengths</source>
         <translation>Linienlängen summieren</translation>
     </message>
@@ -88494,33 +88601,33 @@ Fehler in Zeile %d</translation>
 <context>
     <name>SymmetricalDifference</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2831"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2832"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2833"/>
         <source>Difference layer</source>
         <translation>Differenzlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2834"/>
         <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="2830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2835"/>
         <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="2825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2830"/>
         <source>Symmetrical difference</source>
         <translation>Symmetrische Differenz</translation>
     </message>
@@ -88528,222 +88635,222 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TAUDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="310"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="633"/>
         <source>Basic Grid Analysis tools</source>
         <translation>Grundlegende Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="306"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="621"/>
         <source>D-Infinity Avalanche Runout (multifile)</source>
         <translation>D-Unendlich Lawinenauslauf (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="298"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="634"/>
         <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="309"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="644"/>
         <source>D8 Flow Directions (multifile)</source>
         <translation>D8 Flußrichtungen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="290"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="627"/>
         <source>Topographic Wetness Index</source>
         <translation>Topographischer Niederschlagsindex (TWI)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="296"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="648"/>
         <source>Stream Network Analysis tools</source>
         <translation>Stromnetzwerkanalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="280"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="629"/>
         <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="311"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="658"/>
         <source>Stream Reach and Watershed</source>
         <translation>Flußausdehnung und Wasserscheiden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="282"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="649"/>
         <source>D-Infinity Reverse Accumulation</source>
         <translation>D-Unendlich umgekehrte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="302"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="643"/>
         <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="287"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="645"/>
         <source>Select GT Threshold (multifile)</source>
         <translation>GT-Schwelle wählen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="293"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="641"/>
         <source>D-Infinity Contributing Area (multifile)</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="279"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="657"/>
         <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="283"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="652"/>
         <source>D8 Distance To Streams</source>
         <translation>D8 Abstand zu Strömen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="304"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="653"/>
         <source>D-Infinity Decaying Accumulation</source>
         <translation>D-Unendlich abnehmende Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="271"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="636"/>
         <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="269"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="651"/>
         <source>Select GT Threshold</source>
         <translation>GT-Schwelle wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="294"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="628"/>
         <source>D8 Contributing Area</source>
         <translation>D8 beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="292"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="618"/>
         <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="303"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="617"/>
         <source>Gage Watershed - 2 (multifile)</source>
         <translation>Einzugsgebiet messen - 2 (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="285"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="637"/>
         <source>Specialized Grid Analysis tools</source>
         <translation>Spezialisierte Gitteranalysewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="307"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="616"/>
         <source>D-Infinity Concentration Limited Accumulation</source>
         <translation>D-Unendlich konzentrationsbegrenzte Akkumulation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="300"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="619"/>
         <source>D-Infinity Flow Directions</source>
         <translation>D-Infinity Fließrichtungen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="276"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="631"/>
         <source>Gage Watershed - 2</source>
         <translation>Einzugsgebiet messen - 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="272"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="639"/>
         <source>D-Infinity Contributing Area</source>
         <translation>D-Unendlich beitragende Fläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="278"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="659"/>
         <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="275"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="647"/>
         <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="281"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="623"/>
         <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="297"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="622"/>
         <source>Pit Remove</source>
         <translation>Löcher entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="273"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="656"/>
         <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="642"/>
         <source>Stream Definition By Threshold</source>
         <translation>Stromdefinition nach Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="308"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="650"/>
         <source>D8 Extreme Upslope Value</source>
         <translation>D8 Extremer Aufwärtswert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="305"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="625"/>
         <source>Slope Average Down</source>
         <translation>Gemitteltes Gefälle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="277"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="638"/>
         <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="655"/>
         <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="291"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="626"/>
         <source>Gage Watershed (multifile)</source>
         <translation>Einzugsgebiet messen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="274"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="632"/>
         <source>D-Infinity Avalanche Runout</source>
         <translation>D-Unendlich Lawinenauslauf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="288"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="620"/>
         <source>Slope Average Down (multifile)</source>
         <translation>Gemitteltes Gefälle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="289"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="640"/>
         <source>Pit Remove (multifile)</source>
         <translation>Löcher entfernen (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="301"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="646"/>
         <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="284"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="630"/>
         <source>D-Infinity Upslope Dependence</source>
         <translation>D-Unendlich Aufwärtsabhängigkeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="295"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="654"/>
         <source>Topographic Wetness Index (multifile)</source>
         <translation>Topographischer Niederschlagsindex (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="268"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="624"/>
         <source>Stream Definition By Threshold (multifile)</source>
         <translation>Stromdefinition nach Schwelle (Mehrdatei)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/processing-i18n.cpp" line="286"/>
+        <location filename="../python/plugins/processing/processing-i18n.cpp" line="635"/>
         <source>D8 Flow Directions</source>
         <translation>D8 Flußrichtungen</translation>
     </message>
@@ -88751,14 +88858,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2834"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2839"/>
         <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="2835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2840"/>
         <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>
@@ -88766,47 +88873,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMAlgorithmProvider</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
         <source>TauDEM command line tools folder</source>
         <translation>Verzeichnis der TauDEM-Kommandozeilenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2844"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2849"/>
         <source>MPICH2/OpenMPI bin directory</source>
         <translation>MPICH2/OpenMPI-Programmverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2850"/>
         <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="2846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2851"/>
         <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="2839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2844"/>
         <source>TauDEM (hydrologic analysis)</source>
         <translation>TauDEM (hydrologische Analyse)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2846"/>
         <source>TauDEM multifile command line tools folder</source>
         <translation>TauDEM-Mehrdateibefehlszeilenwerkzeugverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2842"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2847"/>
         <source>Enable singlefile TauDEM tools</source>
         <translation>TauDEM-Einzeldateibefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2843"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2848"/>
         <source>Enable multifile TauDEM tools</source>
         <translation>TauDEM-Mehrdateienbefehlswerkzeuge aktivieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2852"/>
         <source>Could not open TauDEM algorithm %s:
 %s</source>
         <translation>Konnte TauDEM-Algorithmus %s nicht öffnen:
@@ -88816,14 +88923,14 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMMultifileAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2851"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2856"/>
         <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="2852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2857"/>
         <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>
@@ -88831,12 +88938,12 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TauDEMUtils</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
         <source>TauDEM execution console output</source>
         <translation>Konsolenausgabe der TauDEM-Ausführung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2857"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
         <source>TauDEM command:</source>
         <translation>TauDEM-Befehl:</translation>
     </message>
@@ -88844,27 +88951,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TextToFloat</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2867"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2868"/>
         <source>Input Layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2869"/>
         <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="2865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2870"/>
         <source>Float from text</source>
         <translation>Fließkomma aus Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2866"/>
         <source>Text to float</source>
         <translation>Text zu Fließkomma</translation>
     </message>
@@ -88872,47 +88979,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TinSurfaceCreate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2874"/>
         <source>Tin Surface Create</source>
         <translation>TIN-Oberflächenerzeugung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2870"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2875"/>
         <source>Surface</source>
         <translation>Oberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2871"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2876"/>
         <source>Input LAS layer</source>
         <translation>Eingabe-LAS-Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2872"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2877"/>
         <source>Cellsize</source>
         <translation>Zellengröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2878"/>
         <source>XY Units</source>
         <translation>XY-Einheiten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2879"/>
         <source>Z Units</source>
         <translation>Z-Einheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2880"/>
         <source>.dtm output surface</source>
         <translation>DTM-Ausgabeoberfläche</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2882"/>
         <source>Select specific return</source>
         <translation>Bestimmtes Ergebnis wählen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
         <source>Class</source>
         <translation>Klasse</translation>
     </message>
@@ -88934,7 +89041,7 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>TreeProviderItem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2886"/>
         <source> [{0} geoalgorithms]</source>
         <translation> [{0} Geo-Algorithmen]</translation>
     </message>
@@ -88942,33 +89049,33 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>Union</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2891"/>
         <source>Vector overlay tools</source>
         <translation>Vektorlayerüberlagerungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2892"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2893"/>
         <source>Input layer 2</source>
         <translation>Eingabelayer 2</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2894"/>
         <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="2890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2895"/>
         <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="2885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2890"/>
         <source>Union</source>
         <translation>Vereinigungen</translation>
     </message>
@@ -88976,42 +89083,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>UniqueValues</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2900"/>
         <source>Vector table tools</source>
         <translation>Vektortabellenwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2901"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2902"/>
         <source>Target field</source>
         <translation>Zielfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2903"/>
         <source>Unique values</source>
         <translation>Eindeutige Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2904"/>
         <source>Total unique values</source>
         <translation>Gesamtzahl eindeutiger Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2900"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
         <source><p>Total unique values: </source>
         <translation><p>Gesamte eindeutige Werte:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2901"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
         <source><p>Unique values:</p></source>
         <translation><p>Eindeutige Werte:</p></translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2894"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2899"/>
         <source>List unique values</source>
         <translation>Eindeutige Werte auflisten</translation>
     </message>
@@ -89032,37 +89139,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VariableDistanceBuffer</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2911"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2912"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2913"/>
         <source>Distance field</source>
         <translation>Distanzfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2914"/>
         <source>Segments</source>
         <translation>Segmente</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
         <source>Dissolve result</source>
         <translation>Ergebnis auflösen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
         <source>Buffer</source>
         <translation>Puffer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2910"/>
         <source>Variable distance buffer</source>
         <translation>Puffer variabler Distanz</translation>
     </message>
@@ -89083,47 +89190,47 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorGrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2921"/>
         <source>Vector creation tools</source>
         <translation>Vektorerzeugungswerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2922"/>
         <source>Output grid as polygons</source>
         <translation>Gitter als Polygone ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2923"/>
         <source>Output grid as lines</source>
         <translation>Gitter als Linien ausgeben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2919"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2924"/>
         <source>Grid extent</source>
         <translation>Gittergrenze von Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2920"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2925"/>
         <source>X spacing</source>
         <translation>X-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2921"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2926"/>
         <source>Y spacing</source>
         <translation>Y-Abstand</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
         <source>Grid type</source>
         <translation>Gittertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2928"/>
         <source>Grid</source>
         <translation>Gitter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2920"/>
         <source>Vector grid</source>
         <translation>Vektorraster</translation>
     </message>
@@ -89131,42 +89238,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerBoundsAlgorithm</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2927"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2932"/>
         <source>Vector layer bounds</source>
         <translation>Vektorlayer Grenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2928"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2933"/>
         <source>Modeler-only tools</source>
         <translation>Modell Werkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2934"/>
         <source>Layer</source>
         <translation>Layer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2935"/>
         <source>min X</source>
         <translation>min X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2936"/>
         <source>max X</source>
         <translation>max X</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2937"/>
         <source>min Y</source>
         <translation>min Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2938"/>
         <source>max Y</source>
         <translation>max Y</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2934"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2939"/>
         <source>Extent</source>
         <translation>Umfang</translation>
     </message>
@@ -89174,32 +89281,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerHistogram</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2939"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2944"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2940"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2945"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2946"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
         <source>number of bins</source>
         <translation>Anzahl von bins</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
         <source>Histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2938"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2943"/>
         <source>Vector layer histogram</source>
         <translation>Vektorlayerhistogramm</translation>
     </message>
@@ -89207,32 +89314,32 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorLayerScatterplot</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2948"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2953"/>
         <source>Graphics</source>
         <translation>Grafik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2954"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2955"/>
         <source>X attribute</source>
         <translation>X-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2956"/>
         <source>Y attribute</source>
         <translation>Y-Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
         <source>Scatterplot</source>
         <translation>Streudiagramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2947"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2952"/>
         <source>Vector layer scatterplot</source>
         <translation>Vektorlayerstreuungsplott</translation>
     </message>
@@ -89240,27 +89347,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VectorSplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2957"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2962"/>
         <source>Vector general tools</source>
         <translation>Allgemeine Vektorwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2963"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2964"/>
         <source>Unique ID field</source>
         <translation>Eindeutiges Schlüsselfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2965"/>
         <source>Output directory</source>
         <translation>Ausgabeverzeichniss</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2956"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2961"/>
         <source>Split vector layer</source>
         <translation>Vektorlayer teilen</translation>
     </message>
@@ -89268,27 +89375,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>VoronoiPolygons</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2966"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2971"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2967"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2972"/>
         <source>Buffer region</source>
         <translation>Region puffern</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2969"/>
         <source>Voronoi polygons</source>
         <translation>Voronoipolygone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2970"/>
         <source>Vector geometry tools</source>
         <translation>Vektorgeometriewerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2968"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2973"/>
         <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>
@@ -90848,42 +90955,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>ZonalStatistics</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2978"/>
         <source>Raster tools</source>
         <translation>Rasterwerkzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2979"/>
         <source>Raster layer</source>
         <translation>Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2975"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2980"/>
         <source>Raster band</source>
         <translation>Rasterkanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2976"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2981"/>
         <source>Vector layer containing zones</source>
         <translation>Zonenvektorlayer </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2982"/>
         <source>Output column prefix</source>
         <translation>Ausgabespaltenpräfix</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2983"/>
         <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="2979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2984"/>
         <source>Zonal statistics</source>
         <translation>Zonenstatistik</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2977"/>
         <source>Zonal Statistics</source>
         <translation>Räumliche Statistik</translation>
     </message>
@@ -90904,151 +91011,151 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>alg</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3000"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3005"/>
         <source>You need to set either inline data positions or an input data positions file!</source>
         <translation>Es muß entweder interne Datenpositionen oder eine Eingabedatei für Positionen geben!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
         <source>You need to set either sampling data positions or an output sampling data positions file!</source>
         <translation>Es müssen entweder Abtastdatenpositionen oder eine Ausgabedatei für Abtastdatenpositionen angeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3007"/>
         <source>You need to set input and output data positions parameters!</source>
         <translation>Es mpssen Eingabe- und Ausgabedatenpositionsparameter angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
         <source>You need to set either a brighten percentage or a NULL color!</source>
         <translation>Es must entweder der Aufhellungsprozentsatz oder eine NULL-Farbe angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3007"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3012"/>
         <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="2991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
         <source>You need to set either inline configuration or a configuration file!</source>
         <translation>Es muss entweder eine direkte Konfiguration oder eine Konfigurationsdatei angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
         <source>Your configuration needs to be a "moving window" configuration!</source>
         <translation>Die Konfiguration muss eine "gleitende Fenster"-Konfiguration sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3011"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
         <source>Your configuration needs to be a non "moving window" configuration!</source>
         <translation>Die Konfiguration muss eine nicht-"gleitende Fenster"-Konfiguration sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
         <source>You need to set either start coordinates OR a start points vector layer!</source>
         <translation>Es müssen entweder Startkoordinaten oder ein Startpunktvektorlayer angeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
         <source>-c, -a, -n parameters are mutually exclusive!</source>
         <translation>-c, -a, -n Parameter schließen sich gegenseitig aus!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2998"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3003"/>
         <source>You can't use original Hargreaves flag and precipitation parameter together!</source>
         <translation>Die originale Hargreaves-Einstellung und der Fällungsparameter schließen sich aus!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2999"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3004"/>
         <source>If you don't use original Hargreaves flag, you must set the precipitation raster parameter!</source>
         <translation>Wenn die orginale Hargreaves-Einstellung nicht verwendet wird, muß ein Fällungsrasterparameter angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2990"/>
         <source>You need to set either a segment rules file or write directly the rules!</source>
         <translation>Die Segmentregeln müssen direkt oder als Datei angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3008"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3013"/>
         <source>Upload parameters should be a list of elements taken in the following values:
 'cat', 'dist', 'to_x', 'to_y', 'to_along', 'to_angle', 'to_attr'</source>
         <translation>Hochladeparameter sollten eine Elementliste mit folgenden Werten sein:
 'cat', 'dist', 'to_x', 'to_y', 'to_along', 'to_angle', 'to_attr'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3009"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3014"/>
         <source>The number of columns and the number of upload parameters should be equal!</source>
         <translation>Die Anzahl der Spalten und die Anzahl der Hochladeparameter sollte gleich sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2993"/>
         <source>You need to set at least 'setnull' or 'null' parameters for this algorithm!</source>
         <translation>Für diesen Algorithmus muß zumindest der Parameter 'setnull' oder 'null' gesetzt sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3003"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3008"/>
         <source>You need to set either inline expression or a rules file!</source>
         <translation>Es muss ein direkter Ausdruck oder eine Regeldatei angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3000"/>
         <source>You need to set either a rules file or write directly the rules!</source>
         <translation>Die Regeln müssen direkt oder als Datei angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3004"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3009"/>
         <source>You need to set either radius or x_radius and y_radius!</source>
         <translation>Es muss ein Radius, x_radius oder y_radius angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3010"/>
         <source>You need to set x_radius and y_radius!</source>
         <translation>Es muß mindestens x_radius und y_radius gesetzt sein!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3001"/>
         <source>You need to set either rules or a raster from which to copy categories!</source>
         <translation>Es müssen Regeln oder ein Raster aus dem die Kategorien kopiert werden angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3011"/>
         <source>You need to set the method list with the following values only: asm, contrast, corr, var, idm, sa, se, sv, entr, dv, de, moc1, moc2!</source>
-        <translation>Es muss eine Methodenliste ausschließlich aus folgenden Werten angeben werden: </translation>
+        <translation>Es muss eine Methodenliste ausschließlich aus folgenden Werten angeben werden: asm, contrast, corr, var, idm, sa, se, sv, entr, dv, de, moc1, moc2!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2991"/>
         <source>You need to set either inline rules or a rules file!</source>
         <translation>Es müssen direkte Regeln oder eine Regeldatei angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3015"/>
         <source>Feature type for '{}' should be a list of elements taken in the following values:
 'point', 'line', 'boundary', 'centroid', 'area'</source>
         <translation>Objekttyp für '{}' sollte eine Elementliste mit folgenden Werten sein:
 'point', 'line', 'boundary', 'centroid', 'area'</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2989"/>
         <source>You need to set either an input control point file or inline control points!</source>
         <translation>Es muss entweder eine Kontrollpunkteingabedatei oder direkt Kontrollpunkte angeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3002"/>
         <source>You need to set either a fixed height value or the height column!</source>
         <translation>Es muss entweder eine fester Höhenwert oder eine Höhenspalte angeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2992"/>
         <source>You need to set either an input ASCII file or inline data!</source>
         <translation>Es muss eine ASCII Eingabedatei oder Daten angegeben werden!</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="2994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2999"/>
         <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="2983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="2988"/>
         <source>Fusion</source>
         <translation>Fusion</translation>
     </message>
@@ -91056,42 +91163,42 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>aspect</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3021"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3022"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3023"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3019"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3024"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3020"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3025"/>
         <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="3021"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
         <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="3022"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
         <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="3015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3020"/>
         <source>Aspect</source>
         <translation>Perspektive</translation>
     </message>
@@ -91099,27 +91206,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3031"/>
         <source>blast2dem</source>
         <translation>blast2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3032"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3033"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3030"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -91127,27 +91234,27 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3034"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3039"/>
         <source>blast2demPro</source>
         <translation>blast2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3040"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3041"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3042"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3043"/>
         <source>Use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -91155,37 +91262,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3047"/>
         <source>blast2iso</source>
         <translation>blast2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3048"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3049"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3050"/>
         <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="3046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3051"/>
         <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="3047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3052"/>
         <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="3048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3053"/>
         <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>
@@ -91193,37 +91300,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>blast2isoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3057"/>
         <source>blast2isoPro</source>
         <translation>blast2isoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3058"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3059"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3055"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3060"/>
         <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="3056"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3061"/>
         <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="3057"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3062"/>
         <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="3058"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3063"/>
         <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>
@@ -91231,37 +91338,37 @@ Objektgeometriefehler: Eine oder mehrere Ausgabeobjekte mit ungültiger Geometri
 <context>
     <name>buildvrt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3063"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3068"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3064"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3069"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3065"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3070"/>
         <source>Resolution</source>
         <translation>Auflösung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3066"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3071"/>
         <source>Layer stack</source>
         <translation>Layerstapel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3067"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3072"/>
         <source>Allow projection difference</source>
         <translation>Unterschiedliche Projektionen zulassen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3068"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3073"/>
         <source>Virtual</source>
         <translation>Virtuell</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3062"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3067"/>
         <source>Build Virtual Raster</source>
         <translation>Virtuelles Raster generieren</translation>
     </message>
@@ -91954,7 +92061,7 @@ To delete a bookmark from the Bookmarks dialog, click on it then click the <l
 To update the extent of a bookmark, click on it then click the <label>Update</label> button. Confirm your choice by clicking <label>OK</label> or cancel the update by clicking <label>Cancel</label>.
 
 </source>
-        <translation><h3>Räumliche Lesezeichen</h3>
+        <translation type="obsolete"><h3>Räumliche Lesezeichen</h3>
 Mit räumliche Lesezeichen kann man sich geographische Positionen merken, um später dorthin zurückzukehren. 
 
 <p>
@@ -92488,7 +92595,7 @@ The following options can be added
 
 
 </source>
-        <translation type="obsolete"><h3>Getrennter Textlayer</h3>
+        <translation><h3>Getrennter Textlayer</h3>
 Läd und zeigt getrennten Text an.
 <p>
 <a href="#re">Überblick</a><br/>
@@ -93326,7 +93433,7 @@ To filter a layer before adding it to the map, double click on its name or use &
 <li>Ticking <label>Search options</label> enables additional options for searching in different column types and using 2 search modes: <label>Wildcard</label> or <label>RegExp</label>.
 </ul>
 </source>
-        <translation type="obsolete"><h3>Oracle-Tabelle hinzufügen</h3>
+        <translation><h3>Oracle-Tabelle hinzufügen</h3>
 In diesem Dialog können Sie Oracle-Layern (Tabellen mit Geometriespalten) zur Karte hinzufügen.
 <p>
 <a href="#connect">Verbindungen</a><br/>
@@ -93476,7 +93583,7 @@ To filter a layer before adding it to the map, double click on its name or use &
 <li>Ticking <label>Search options</label> enables additional options for searching in different column types and using 2 search modes: <label>Wildcard</label> or <label>RegExp</label>.
 </ul>
 </source>
-        <translation type="obsolete"><h3>PostGIS-Tabelle hinzufügen</h3>
+        <translation><h3>PostGIS-Tabelle hinzufügen</h3>
 In diesem Dialog können Sie PostgreSQL/PostGIS-Layern (Tabellen mit Geometriespalten) zur Karte hinzufügen.
 <p>
 <a href="#connect">Verbindungen</a><br/>
@@ -93554,7 +93661,7 @@ To filter a layer before adding it to the map, double click on its name or use &
 </a>
 Ticking <label>Search options</label> enables additional options for searching in different column types and using 2 search modes: <label>Wildcard</label> or <label>RegExp</label>.
 </source>
-        <translation><h3>PostGIS-Tabelle hinzufügen</h3>
+        <translation type="obsolete"><h3>PostGIS-Tabelle hinzufügen</h3>
 In diesem Dialog können Sie PostgreSQL/PostGIS-Layern (Tabellen mit Geometriespalten) zur Karte hinzufügen.
 <p>
 <a href="#connect">Verbindungen</a><br/>
@@ -94821,7 +94928,7 @@ The following options can be added
 
 
 </source>
-        <translation><h3>Getrennter Textlayer</h3>
+        <translation type="obsolete"><h3>Getrennter Textlayer</h3>
 Läd und zeigt getrennten Text ans
 <p>
 <a href="#re">Überblick</a><br/>
@@ -95056,37 +95163,37 @@ Die folgenden Optionen können verwendet werden
 <context>
     <name>contour</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3072"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3077"/>
         <source>Contour</source>
         <translation>Kontur</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3073"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3078"/>
         <source>[GDAL] Extraction</source>
         <translation>[GDAL] Extraktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3074"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3079"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3075"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3080"/>
         <source>Interval between contour lines</source>
         <translation>Intervall zwischen Konturlinien</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3076"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3081"/>
         <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="3077"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3082"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3078"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3083"/>
         <source>Contours</source>
         <translation>Konturen</translation>
     </message>
@@ -95976,47 +96083,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>fillnodata</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3083"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3088"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3084"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3085"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3090"/>
         <source>Search distance</source>
         <translation>Suchdistanz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3086"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3091"/>
         <source>Smooth iterations</source>
         <translation>Glättungsiterationen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3087"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3092"/>
         <source>Band to operate on</source>
         <translation>Zu bearbeitender Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3088"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3093"/>
         <source>Validity mask</source>
         <translation>Gültigkeitsmaske</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3089"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3094"/>
         <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="3090"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3095"/>
         <source>Filled</source>
         <translation>Gefüllt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3082"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3087"/>
         <source>Fill nodata</source>
         <translation>"Leerwert" füllen</translation>
     </message>
@@ -96024,37 +96131,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>flightlinesToCHM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3094"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
         <source>flightlinesToCHM</source>
         <translation>flightlinesToCHM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3095"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3096"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3101"/>
         <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="3097"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3102"/>
         <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="3098"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3103"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3099"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3104"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3100"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3105"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -96062,32 +96169,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>flightlinesToDTMandDSM</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3104"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3109"/>
         <source>flightlinesToDTMandDSM</source>
         <translation>flightlinesToDTMandDSM</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3105"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3110"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3106"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3111"/>
         <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="3107"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3112"/>
         <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="3108"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3113"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3109"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3114"/>
         <source>tile base name (using 'sydney' creates sydney_274000_4714000...)</source>
         <translation>Kachelbasisname ('sydney' erzeugt sydney_274000_4714000...)</translation>
     </message>
@@ -96095,32 +96202,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>flightlinesToSingleCHMpitFree</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3113"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3118"/>
         <source>flightlinesToSingleCHMpitFree</source>
         <translation>flightlinesToSingleCHMpitFree</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3114"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3119"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3115"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3120"/>
         <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="3116"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3121"/>
         <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="3117"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3122"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3118"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3123"/>
         <source>laser beam width (diameter of laser footprint)</source>
         <translation>Laserstrahlbreite (Laserabdrucksdurchmesser)</translation>
     </message>
@@ -96128,92 +96235,92 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>gdal2tiles</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3122"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3127"/>
         <source>gdal2tiles</source>
         <translation>gdal2tiles</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3123"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3128"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3124"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3129"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3125"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3130"/>
         <source>Tile cutting profile</source>
         <translation>Kachelschneideprofil</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3126"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3131"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3127"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3132"/>
         <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="3128"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3133"/>
         <source>Zoom levels to render</source>
         <translation>Darzustellende Zoomstufen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3129"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3134"/>
         <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="3130"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3135"/>
         <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="3131"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3136"/>
         <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="3132"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3137"/>
         <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="3133"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3138"/>
         <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="3134"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3139"/>
         <source>Web viewer to generate</source>
         <translation>Zu erzeugende Webanzeige</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3135"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3140"/>
         <source>Title of the map</source>
         <translation>Kartentitel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3136"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3141"/>
         <source>Copyright for the map</source>
         <translation>Urheberrecht der Karte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3137"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3142"/>
         <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="3138"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3143"/>
         <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="3139"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3144"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -96221,27 +96328,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>gdal2xyz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3144"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3149"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3145"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3150"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3146"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3151"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3147"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3152"/>
         <source>xyz</source>
         <translation>xyz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3143"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3148"/>
         <source>gdal2xyz</source>
         <translation>gdal2xyz</translation>
     </message>
@@ -96249,42 +96356,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>gdaladdo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3152"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3157"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3153"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3158"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3154"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3159"/>
         <source>Overview levels</source>
         <translation>Übersichtsebenen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3155"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3160"/>
         <source>Remove all existing overviews</source>
         <translation>Alle Übersichten entfernen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3156"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3161"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3157"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
         <source>Overview format</source>
         <translation>Übersichtsformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3158"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
         <source>Pyramidized</source>
         <translation>Ausgabe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3151"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3156"/>
         <source>Build overviews (pyramids)</source>
         <translation>Übersichten erzeugen (Pyramiden)</translation>
     </message>
@@ -96292,97 +96399,97 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>gdalcalc</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3163"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3168"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3164"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3169"/>
         <source>Input layer A</source>
         <translation>Eingabelayer A</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3165"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3170"/>
         <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="3166"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3171"/>
         <source>Input layer B</source>
         <translation>Eingabelayer B</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3167"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3172"/>
         <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="3168"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3173"/>
         <source>Input layer C</source>
         <translation>Eingabelayer C</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3169"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3174"/>
         <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="3170"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3175"/>
         <source>Input layer D</source>
         <translation>Eingabelayer D</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3171"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3176"/>
         <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="3172"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3177"/>
         <source>Input layer E</source>
         <translation>Eingabelayer E</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3173"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3178"/>
         <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="3174"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3179"/>
         <source>Input layer F</source>
         <translation>Eingabelayer F</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3175"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
         <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="3176"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3181"/>
         <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="3177"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3182"/>
         <source>Set output nodata value</source>
         <translation>Ausgabeleerwert festlegen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3178"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3183"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3179"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3184"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3180"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3185"/>
         <source>Calculated</source>
         <translation>Berechnet</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3162"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3167"/>
         <source>Raster calculator</source>
         <translation>Rasterrechner</translation>
     </message>
@@ -96390,32 +96497,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>gdaltindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3185"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3190"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3186"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3191"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3187"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3192"/>
         <source>Tile index field</source>
         <translation>Kachelindexfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3188"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3193"/>
         <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="3189"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3194"/>
         <source>Tile index</source>
         <translation>Kachelindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3184"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3189"/>
         <source>Tile Index</source>
         <translation>Kachelindex</translation>
     </message>
@@ -99001,52 +99108,52 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>hillshade</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3194"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3199"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3195"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3200"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3196"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3201"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3197"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3202"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3198"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3203"/>
         <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="3199"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3204"/>
         <source>Z factor (vertical exaggeration)</source>
         <translation>Z-Faktor (Vertikale Überhöhung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3200"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3205"/>
         <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="3201"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
         <source>Azimuth of the light</source>
         <translation>Azimut des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3202"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
         <source>Altitude of the light</source>
         <translation>Höhe des Lichts</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3193"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3198"/>
         <source>Hillshade</source>
         <translation>Schummerung</translation>
     </message>
@@ -99054,37 +99161,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>hugeFileClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3206"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3211"/>
         <source>hugeFileClassify</source>
         <translation>hugeFileClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3207"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3212"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3208"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3213"/>
         <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="3209"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3214"/>
         <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="3210"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3215"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3211"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3212"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3217"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -99092,37 +99199,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>hugeFileGroundClassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3216"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3221"/>
         <source>hugeFileGroundClassify</source>
         <translation>hugeFileGroundClassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3217"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3222"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3218"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3223"/>
         <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="3219"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3224"/>
         <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="3220"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3225"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3221"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3222"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -99130,37 +99237,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>hugeFileNormalize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3226"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3231"/>
         <source>hugeFileNormalize</source>
         <translation>hugeFileNormalize</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3227"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3232"/>
         <source>LAStools Pipelines</source>
         <translation>LAS-Tools Pipelines</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3228"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3233"/>
         <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="3229"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3234"/>
         <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="3230"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3235"/>
         <source>airborne LiDAR</source>
         <translation>Luft-LiDAR</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3231"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3232"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -99168,32 +99275,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>information</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3237"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3242"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3238"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3243"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3239"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3244"/>
         <source>Suppress GCP info</source>
         <translation>Paßpunktinformation unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3240"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3245"/>
         <source>Suppress metadata info</source>
         <translation>Metadateninfo unterdrücken</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3241"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3246"/>
         <source>Layer information</source>
         <translation>Layerinformation</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3236"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3241"/>
         <source>Information</source>
         <translation>Information</translation>
     </message>
@@ -99201,27 +99308,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2dem</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3245"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3250"/>
         <source>las2dem</source>
         <translation>las2dem</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3246"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3251"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3247"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3252"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3248"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3253"/>
         <source>Product</source>
         <translation>Produkt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3249"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3254"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -99229,27 +99336,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2demPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3253"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3258"/>
         <source>las2demPro</source>
         <translation>las2demPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3254"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3259"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3255"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3260"/>
         <source>attribute (what to interpolate)</source>
         <translation>Attribute (zu Interpolieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3256"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3261"/>
         <source>product (how to output per pixel)</source>
         <translation>Produkt (Pixelausgabe)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3257"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3262"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -99257,37 +99364,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2iso</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3261"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3266"/>
         <source>las2iso</source>
         <translation>las2iso</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3262"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3267"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3263"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3268"/>
         <source>smooth underlying TIN</source>
         <translation>Zugrundeliegendes TIN glätten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3264"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3269"/>
         <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="3265"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3270"/>
         <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="3266"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3271"/>
         <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="3267"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3272"/>
         <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>
@@ -99295,12 +99402,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2lasPro_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3271"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3276"/>
         <source>las2lasPro_filter</source>
         <translation>las2lasPro_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3272"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3277"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -99308,42 +99415,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2lasPro_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3276"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3281"/>
         <source>las2lasPro_project</source>
         <translation>las2lasPro_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3277"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3278"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3279"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3284"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3280"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3285"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3281"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3286"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3282"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3287"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3283"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3288"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -99351,22 +99458,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2lasPro_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3287"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3292"/>
         <source>las2lasPro_transform</source>
         <translation>las2lasPro_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3288"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3293"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3289"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3294"/>
         <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="3290"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3295"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -99374,12 +99481,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2las_filter</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3294"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3299"/>
         <source>las2las_filter</source>
         <translation>las2las_filter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3295"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -99387,42 +99494,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2las_project</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3299"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3304"/>
         <source>las2las_project</source>
         <translation>las2las_project</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3300"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3305"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3301"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3306"/>
         <source>source projection</source>
         <translation>Quellprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3302"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3307"/>
         <source>source utm zone</source>
         <translation>Quell-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3303"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3308"/>
         <source>source state plane code</source>
         <translation>US-Koodinatensystemkennung Quelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3304"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3309"/>
         <source>target projection</source>
         <translation>Zielprojektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3305"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3310"/>
         <source>target utm zone</source>
         <translation>Ziel-UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3306"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3311"/>
         <source>target state plane code</source>
         <translation>US-Koodinatensystemkennung Ziel</translation>
     </message>
@@ -99430,22 +99537,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2las_transform</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3310"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3315"/>
         <source>las2las_transform</source>
         <translation>las2las_transform</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3311"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3316"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3312"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3317"/>
         <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="3313"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3318"/>
         <source>argument for operation</source>
         <translation>Argument für Operation</translation>
     </message>
@@ -99453,27 +99560,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2shp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3317"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3322"/>
         <source>las2shp</source>
         <translation>las2shp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3318"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3323"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3319"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3324"/>
         <source>use PointZ instead of MultiPointZ</source>
         <translation>PointZ statt MultiPointZ nutzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3320"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3325"/>
         <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="3321"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3326"/>
         <source>Output SHP file</source>
         <translation>Ausgabeshapedatei</translation>
     </message>
@@ -99481,12 +99588,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2tin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3325"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3330"/>
         <source>las2tin</source>
         <translation>las2tin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3326"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3331"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -99494,22 +99601,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2txt</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3330"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3335"/>
         <source>las2txt</source>
         <translation>las2txt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3331"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3336"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3332"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3337"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3333"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3338"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -99517,17 +99624,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>las2txtPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3337"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3342"/>
         <source>las2txtPro</source>
         <translation>las2txtPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3338"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3339"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
         <source>parse string</source>
         <translation>Analysiere Text</translation>
     </message>
@@ -99535,32 +99642,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasboundary</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3343"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3348"/>
         <source>lasboundary</source>
         <translation>lasboundary</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3344"/>
+        <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="3345"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3350"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3346"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3351"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3347"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3352"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3348"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3353"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -99568,32 +99675,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasboundaryPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3352"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3357"/>
         <source>lasboundaryPro</source>
         <translation>lasboundaryPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3353"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3358"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3354"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3359"/>
         <source>compute boundary based on</source>
         <translation>berechne Grenzen basierend auf</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3355"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3360"/>
         <source>concavity</source>
         <translation>Wölbung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3356"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3361"/>
         <source>interior holes</source>
         <translation>Innere Löcher</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3357"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3362"/>
         <source>disjoint polygon</source>
         <translation>getrenntes Polygon</translation>
     </message>
@@ -99601,47 +99708,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lascanopy</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3361"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
         <source>lascanopy</source>
         <translation>lascanopy</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3362"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3367"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3363"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3368"/>
         <source>square plot size</source>
         <translation>Quadratische Plottgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3364"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3369"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3365"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3370"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3366"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3371"/>
         <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="3367"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3372"/>
         <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="3368"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3373"/>
         <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="3369"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3374"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist ein einzelner Plott</translation>
     </message>
@@ -99649,47 +99756,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lascanopyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3373"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
         <source>lascanopyPro</source>
         <translation>lascanopyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3374"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3379"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3375"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3380"/>
         <source>square plot size</source>
         <translation>Quadratische Plattgröße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3376"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3381"/>
         <source>height cutoff / breast height</source>
         <translation>abgeschnittene Höhe / Brusthöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3377"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3382"/>
         <source>create</source>
         <translation>erzeuge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3378"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3383"/>
         <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="3379"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3384"/>
         <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="3380"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3385"/>
         <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="3381"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3386"/>
         <source>input file is single plot</source>
         <translation>Eingabedatei ist einzelner Plott</translation>
     </message>
@@ -99697,12 +99804,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasclassify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3385"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
         <source>lasclassify</source>
         <translation>lasclassify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3386"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3391"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
@@ -99710,12 +99817,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasclassifyPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3390"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3395"/>
         <source>lasclassifyPro</source>
         <translation>lasclassifyPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3391"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3396"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -99723,32 +99830,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasclip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3395"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3400"/>
         <source>lasclip</source>
         <translation>lasclip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3396"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3401"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3397"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3402"/>
         <source>Input polygon(s)</source>
         <translation>Eingabepolygon(e)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3398"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3403"/>
         <source>interior</source>
         <translation>Innenbereich</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3399"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
         <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="3400"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -99756,17 +99863,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lascolor</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3404"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3409"/>
         <source>lascolor</source>
         <translation>lascolor</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3405"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3410"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3406"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3411"/>
         <source>Input ortho</source>
         <translation>Eingabe Ortho</translation>
     </message>
@@ -99774,32 +99881,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lascontrol</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3410"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
         <source>lascontrol</source>
         <translation>lascontrol</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3411"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3416"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3412"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3417"/>
         <source>ASCII text file of control points</source>
         <translation>ASCII-Textdatei mit Kontrollpunkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3413"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3418"/>
         <source>parse string marking which columns are xyz (use 's' for skip)</source>
         <translation>Zeichenkettenmarkierung für xyz-Spalten ('s' zum Überspringen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3414"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3419"/>
         <source>which points to use for elevation checks</source>
         <translation>Zur Höhenkontrolle zu verwendene Punkte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3415"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3420"/>
         <source>adjust z elevation by translating away the average error</source>
         <translation>Z-Höhe durch Herausrechnen des durchschnittlichen Fehlers anpassen</translation>
     </message>
@@ -99807,27 +99914,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasdiff</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3419"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3424"/>
         <source>lasdiff</source>
         <translation>lasdiff</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3420"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3425"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3421"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3426"/>
         <source>other input LAS/LAZ file</source>
         <translation>weitere LAS/LAZ-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3422"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3427"/>
         <source>stop reporting difference after this many points</source>
         <translation>Bericht über Unterschiede nach folgender Punktanzahl einstellen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3423"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3428"/>
         <source>create elevation difference file (if points are in the same order)</source>
         <translation>Höhenunterschiedsdatei erzeugen (wenn die Pukte die gleiche Reihenfolge haben)</translation>
     </message>
@@ -99835,32 +99942,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasduplicate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3427"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3432"/>
         <source>lasduplicate</source>
         <translation>lasduplicate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3428"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3433"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3429"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3434"/>
         <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="3430"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3435"/>
         <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="3431"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3436"/>
         <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="3432"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
         <source>record removed duplicates to LAS/LAZ file</source>
         <translation>Speichere entfernte Duplikate in die LAS/LAZ Datei</translation>
     </message>
@@ -99868,32 +99975,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasduplicatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3436"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3441"/>
         <source>lasduplicatePro</source>
         <translation>lasduplicatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3437"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3442"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3438"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3443"/>
         <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="3439"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3444"/>
         <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="3440"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3445"/>
         <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="3441"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3446"/>
         <source>record removed duplicates</source>
         <translation>Gelöschte Duplikate aufzeichnen</translation>
     </message>
@@ -99901,27 +100008,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasgrid</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3445"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3450"/>
         <source>lasgrid</source>
         <translation>lasgrid</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3446"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3451"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3447"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3452"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3448"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3453"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3449"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3454"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -99929,27 +100036,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasgridPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3453"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3458"/>
         <source>lasgridPro</source>
         <translation>lasgridPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3454"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3459"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3455"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3460"/>
         <source>Attribute</source>
         <translation>Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3456"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3461"/>
         <source>Method</source>
         <translation>Methode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3457"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3462"/>
         <source>use tile bounding box (after tiling with buffer)</source>
         <translation>Benutze Kachel Begrenzungsrahmen (nach Buffer)</translation>
     </message>
@@ -99957,32 +100064,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasground</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3461"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3466"/>
         <source>lasground</source>
         <translation>lasground</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3462"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3467"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3463"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3468"/>
         <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="3464"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3469"/>
         <source>classify flightlines separately (needs point source IDs populated)</source>
         <translation>Fluglinien getrennt klassifizieren (Punktquellenkennungen müssen gefüllt sein) </translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3465"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3470"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3466"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3471"/>
         <source>preprocessing</source>
         <translation>Vorbereitung</translation>
     </message>
@@ -99990,27 +100097,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasgroundPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3470"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3475"/>
         <source>lasgroundPro</source>
         <translation>lasgroundPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3471"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3476"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3472"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3477"/>
         <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="3473"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3478"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3474"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3479"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
@@ -100018,47 +100125,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasgroundPro_new</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3478"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
         <source>lasgroundPro_new</source>
         <translation>lasgroundPro_new</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3479"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3484"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3480"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3485"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3481"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3486"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3482"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3487"/>
         <source>step (for 'custom' terrain only)</source>
         <translation>Schrittweite (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3483"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3488"/>
         <source>bulge (for 'custom' terrain only)</source>
         <translation>Ausbuchtung (nur für 'Benutzergelände)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3484"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3489"/>
         <source>spike (for 'custom' terrain only)</source>
         <translation>Spitze (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3485"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3490"/>
         <source>down spike (for 'custom' terrain only)</source>
         <translation>Tiefpunkt (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3486"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
         <source>offset (for 'custom' terrain only)</source>
         <translation>Versatz (nur für 'Benutzergelände')</translation>
     </message>
@@ -100066,47 +100173,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasground_new</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3490"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3495"/>
         <source>lasground_new</source>
         <translation>lasground_new</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3491"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3496"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3492"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3497"/>
         <source>terrain type</source>
         <translation>Geländetyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3493"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3498"/>
         <source>preprocessing</source>
         <translation>Vorverarbeitung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3494"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3499"/>
         <source>step (for 'custom' terrain only)</source>
         <translation>Schrittweite (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3495"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3500"/>
         <source>bulge (for 'custom' terrain only)</source>
         <translation>Ausbuchtung (nur für 'Benutzergelände)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3496"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3501"/>
         <source>spike (for 'custom' terrain only)</source>
         <translation>Spitze (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3497"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
         <source>down spike (for 'custom' terrain only)</source>
         <translation>Tiefpunkt (nur für 'Benutzergelände')</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3498"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
         <source>offset (for 'custom' terrain only)</source>
         <translation>Versatz (nur für 'Benutzergelände')</translation>
     </message>
@@ -100114,37 +100221,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasheight</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3502"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3507"/>
         <source>lasheight</source>
         <translation>lasheight</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3503"/>
+        <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="3504"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3509"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3505"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3510"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3506"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3511"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3507"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3512"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3508"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3513"/>
         <source>drop below height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
@@ -100152,37 +100259,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasheightPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3512"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3517"/>
         <source>lasheightPro</source>
         <translation>lasheightPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3513"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3518"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3514"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3519"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3515"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3520"/>
         <source>drop above</source>
         <translation>ausscheiden über</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3516"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3521"/>
         <source>drop above height</source>
         <translation>ausscheiden über Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3517"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3522"/>
         <source>drop below</source>
         <translation>ausscheiden unter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3518"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3523"/>
         <source>drop below height</source>
         <translation>ausscheiden unter Höhe</translation>
     </message>
@@ -100190,57 +100297,57 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasheightPro_classify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3522"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3527"/>
         <source>lasheightPro_classify</source>
         <translation>lasheightPro_classify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3523"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3528"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3524"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3529"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3525"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3530"/>
         <source>classify below height as</source>
         <translation>Unterhöhen klassifizieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3526"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3531"/>
         <source>below height</source>
         <translation>Unterhöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3527"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3532"/>
         <source>classify between height as</source>
         <translation>Zwischenhöhen klassifieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3528"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3533"/>
         <source>between height ... </source>
         <translation>Zwischenhöhe ...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3529"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3534"/>
         <source>... and height</source>
         <translation>... und Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3530"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3535"/>
         <source>between height ...</source>
         <translation>zwischen Höhe ...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3531"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3536"/>
         <source>classify above</source>
         <translation>Überklassifierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3532"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3537"/>
         <source>classify above height</source>
         <translation>Überhöhe klassifizieren</translation>
     </message>
@@ -100248,57 +100355,57 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasheight_classify</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3536"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3541"/>
         <source>lasheight_classify</source>
         <translation>lasheight_classify</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3537"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3538"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3543"/>
         <source>replace z</source>
         <translation>Z ersetzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3539"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3544"/>
         <source>classify below height as</source>
         <translation>Unterhöhen klassifizieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3540"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3545"/>
         <source>below height</source>
         <translation>Unterhöhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3541"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3546"/>
         <source>classify between height as</source>
         <translation>Zwischenhöhen klassifieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3542"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3547"/>
         <source>between height ... </source>
         <translation>zwischen Höhe ...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3543"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3548"/>
         <source>... and height</source>
         <translation>... und Höhe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3544"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3549"/>
         <source>between height ...</source>
         <translation>zwischen Höhe ...</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3545"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
         <source>classify above</source>
         <translation>darüber klassifizieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3546"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3551"/>
         <source>classify above height</source>
         <translation>Überhöhe klassifizieren</translation>
     </message>
@@ -100306,22 +100413,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasindex</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3550"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3555"/>
         <source>lasindex</source>
         <translation>lasindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3551"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3556"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3552"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3557"/>
         <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="3553"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -100329,22 +100436,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasindexPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3557"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3562"/>
         <source>lasindexPro</source>
         <translation>lasindexPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3558"/>
+        <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="3559"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3564"/>
         <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="3560"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3565"/>
         <source>is mobile or terrestrial LiDAR (not airborne)</source>
         <translation>ist mobiles oder terrestrisches LIDAR (nicht aus der Luft)</translation>
     </message>
@@ -100352,42 +100459,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasinfo</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3564"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3569"/>
         <source>lasinfo</source>
         <translation>lasinfo</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3565"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3570"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3566"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3571"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3567"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3572"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3568"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3573"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3569"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3574"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3570"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3571"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -100395,37 +100502,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasinfoPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3575"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3580"/>
         <source>lasinfoPro</source>
         <translation>lasinfoPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3576"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3581"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3577"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3582"/>
         <source>compute density</source>
         <translation>Dichte berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3578"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3583"/>
         <source>repair bounding box</source>
         <translation>repariere Begrenzungsrahmen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3579"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3584"/>
         <source>repair counters</source>
         <translation>Zähler reparieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3580"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
         <source>histogram</source>
         <translation>Histogramm</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3581"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3586"/>
         <source>bin size</source>
         <translation>bin Größe</translation>
     </message>
@@ -100433,42 +100540,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasmerge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3585"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3590"/>
         <source>lasmerge</source>
         <translation>lasmerge</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3586"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3591"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3587"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3592"/>
         <source>2nd file</source>
         <translation>2. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3588"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3593"/>
         <source>3rd file</source>
         <translation>3. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3589"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3594"/>
         <source>4th file</source>
         <translation>4. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3590"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3595"/>
         <source>5th file</source>
         <translation>5. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3591"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3596"/>
         <source>6th file</source>
         <translation>6. Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3592"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3597"/>
         <source>7th file</source>
         <translation>7. Datei</translation>
     </message>
@@ -100476,12 +100583,12 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasmergePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3596"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3601"/>
         <source>lasmergePro</source>
         <translation>lasmergePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3597"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3602"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
@@ -100489,37 +100596,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasnoise</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3601"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3606"/>
         <source>lasnoise</source>
         <translation>lasnoise</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3602"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3607"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3603"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3608"/>
         <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="3604"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3609"/>
         <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="3605"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3610"/>
         <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="3606"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3611"/>
         <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="3607"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3612"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -100527,37 +100634,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasnoisePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3611"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3616"/>
         <source>lasnoisePro</source>
         <translation>lasnoisePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3612"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3617"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3613"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3618"/>
         <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="3614"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3619"/>
         <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="3615"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3620"/>
         <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="3616"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3621"/>
         <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="3617"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3622"/>
         <source>classify as</source>
         <translation>klassifiziere als</translation>
     </message>
@@ -100565,22 +100672,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasoverage</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3621"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3626"/>
         <source>lasoverage</source>
         <translation>lasoverage</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3622"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3627"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3623"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
         <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="3624"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -100588,22 +100695,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasoveragePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3628"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3633"/>
         <source>lasoveragePro</source>
         <translation>lasoveragePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3629"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3634"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3630"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3635"/>
         <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="3631"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3636"/>
         <source>mode of operation</source>
         <translation>Modus der Operation</translation>
     </message>
@@ -100611,37 +100718,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasoverlap</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3635"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3640"/>
         <source>lasoverlap</source>
         <translation>lasoverlap</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3636"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3637"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3642"/>
         <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="3638"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3643"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3639"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3644"/>
         <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="3640"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3641"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -100649,37 +100756,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasoverlapPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3645"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3650"/>
         <source>lasoverlapPro</source>
         <translation>lasoverlapPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3646"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3647"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3652"/>
         <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="3648"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3653"/>
         <source>attribute to check</source>
         <translation>Zu prüfendes Attribut</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3649"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3654"/>
         <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="3650"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3655"/>
         <source>create overlap raster</source>
         <translation>erzeuge überlappendes Raster</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3651"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3656"/>
         <source>create difference raster</source>
         <translation>erzeuge Differenzenraster</translation>
     </message>
@@ -100687,17 +100794,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasprecision</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3655"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3660"/>
         <source>lasprecision</source>
         <translation>lasprecision</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3656"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3661"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3657"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
         <source>Output ASCII file</source>
         <translation>ASCII-Ausgabedatei</translation>
     </message>
@@ -100705,62 +100812,62 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>laspublish</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3661"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3666"/>
         <source>laspublish</source>
         <translation>laspublish</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3662"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3667"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3663"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3668"/>
         <source>type of portal</source>
         <translation>Portaltyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3664"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3669"/>
         <source>use Eye Dome Lighting (EDL)</source>
         <translation>Eye-Dome-Lighting (EDL) verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3665"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
         <source>show Skybox</source>
         <translation>Skybox anzeigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3666"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
         <source>default material colors on start-up</source>
         <translation>Vorgabematerialfarben beim Start</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3667"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
         <source>portal output directory</source>
         <translation>Portalausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3668"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3673"/>
         <source>copy or move source LiDAR files into portal (only for download portals)</source>
         <translation>LiDAR-Quelldateien ins Portal kopieren oder verschieben (nur für Portale zum Herunterladen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3669"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3674"/>
         <source>overwrite existing files</source>
         <translation>Vorhandene Dateien überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3670"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3675"/>
         <source>portal HTML page</source>
         <translation>Portal-HTML-Seite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3671"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
         <source>portal title</source>
         <translation>Portal-Titel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3672"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
         <source>portal description</source>
         <translation>Portal-Beschreibung</translation>
     </message>
@@ -100768,62 +100875,62 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>laspublishPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3676"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
         <source>laspublishPro</source>
         <translation>laspublishPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3677"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3682"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3678"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3683"/>
         <source>type of portal</source>
         <translation>Portaltyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3679"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3684"/>
         <source>use Eye Dome Lighting (EDL)</source>
         <translation>Eye-Dome-Lighting (EDL) verwenden</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3680"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3685"/>
         <source>show Skybox</source>
         <translation>Skybox anzeigen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3681"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3686"/>
         <source>default material colors on start-up</source>
         <translation>Vorgabematerialfarben beim Start</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3682"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3687"/>
         <source>portal output directory</source>
         <translation>Portalausgabeverzeichnis</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3683"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3688"/>
         <source>copy or move source LiDAR files into portal (only for download portals)</source>
         <translation>LiDAR-Quelldateien ins Portal kopieren oder verschieben (nur für Portale zum Herunterladen)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3684"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3689"/>
         <source>overwrite existing files</source>
         <translation>Vorhandene Dateien überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3685"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3690"/>
         <source>portal HTML page</source>
         <translation>Portal-HTML-Seite</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3686"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3691"/>
         <source>portal title</source>
         <translation>Portal-Titel</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3687"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3692"/>
         <source>portal description</source>
         <translation>Portal-Beschreibung</translation>
     </message>
@@ -100831,17 +100938,17 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasquery</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3691"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3696"/>
         <source>lasquery</source>
         <translation>lasquery</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3692"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3697"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3693"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3698"/>
         <source>area of interest</source>
         <translation>Interessensgebiet</translation>
     </message>
@@ -100849,22 +100956,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lassort</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3697"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3702"/>
         <source>lassort</source>
         <translation>lassort</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3698"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3703"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3699"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3704"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3700"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3705"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -100872,22 +100979,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lassortPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3704"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3709"/>
         <source>lassortPro</source>
         <translation>lassortPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3705"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3710"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3706"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3711"/>
         <source>sort by GPS time</source>
         <translation>sortiere nach GPS Zeit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3707"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3712"/>
         <source>sort by point source ID</source>
         <translation>Nach Punktquellkennung sortieren</translation>
     </message>
@@ -100895,27 +101002,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lassplit</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3711"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3716"/>
         <source>lassplit</source>
         <translation>lassplit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3712"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3717"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3713"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3718"/>
         <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="3714"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3719"/>
         <source>how to split</source>
         <translation>Wie zu teilen ist</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3715"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3720"/>
         <source>interval or number</source>
         <translation>Interval oder Nummer</translation>
     </message>
@@ -100923,42 +101030,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasthin</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3719"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3724"/>
         <source>lasthin</source>
         <translation>lasthin</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3720"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3725"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3721"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3726"/>
         <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="3722"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3727"/>
         <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="3723"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3728"/>
         <source>vertical threshold or contour intervals (only for 'adaptive' or 'contours' thinning)</source>
         <translation>Vertikalereserve oder Konturintervalle (nur für 'adaptive' oder Konturausdünnung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3724"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3729"/>
         <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="3725"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3730"/>
         <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="3726"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3731"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -100966,42 +101073,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasthinPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3730"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3735"/>
         <source>lasthinPro</source>
         <translation>lasthinPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3731"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3736"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3732"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3737"/>
         <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="3733"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3738"/>
         <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="3734"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3739"/>
         <source>vertical threshold or contour intervals (only for 'adaptive' or 'contours' thinning)</source>
         <translation>Vertikalereserve oder Konturintervalle (nur für 'adaptive' oder Konturausdünnung)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3735"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3740"/>
         <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="3736"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3741"/>
         <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="3737"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3742"/>
         <source>class</source>
         <translation>Klasse</translation>
     </message>
@@ -101009,32 +101116,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lastile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3741"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
         <source>lastile</source>
         <translation>lastile</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3742"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3747"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3743"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3748"/>
         <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="3744"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3749"/>
         <source>buffer around each tile</source>
         <translation>Puffer um einzelne Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3745"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
         <source>flag buffer points as 'withheld' for easier removal later</source>
         <translation>Pufferpunkte zur einfachen späteren Entfernung als 'zurückgehalten' markieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3746"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
         <source>make tiling reversible (advanced, usually not needed)</source>
         <translation>Kachelung umkehrbar machen (fortgeschritten, normalerweise nicht nötig)</translation>
     </message>
@@ -101042,37 +101149,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lastilePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3750"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
         <source>lastilePro</source>
         <translation>lastilePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3751"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3752"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3757"/>
         <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="3753"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3758"/>
         <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="3754"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3759"/>
         <source>flag buffer points as 'withheld' for easier removal later</source>
         <translation>Pufferpunkte zur einfachen späteren Entfernung als 'zurückgehalten' markieren</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3755"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
         <source>more than 2000 tiles</source>
         <translation>mehr als 2000 Kacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3756"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3761"/>
         <source>tile base name (using sydney.laz creates sydney_274000_4714000.laz)</source>
         <translation>Kachelbasisname ('sydney.laz' erzeugt sydney_274000_4714000.laz)</translation>
     </message>
@@ -101080,22 +101187,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasvalidate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3760"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3765"/>
         <source>lasvalidate</source>
         <translation>lasvalidate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3761"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3766"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3762"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3767"/>
         <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="3763"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -101103,22 +101210,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasvalidatePro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3767"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3772"/>
         <source>lasvalidatePro</source>
         <translation>lasvalidatePro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3768"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3773"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3769"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3774"/>
         <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="3770"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3775"/>
         <source>Output XML file</source>
         <translation>XML-Ausgabedatei</translation>
     </message>
@@ -101126,27 +101233,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasview</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3774"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3779"/>
         <source>lasview</source>
         <translation>lasview</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3775"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3780"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3776"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3781"/>
         <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="3777"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3778"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3783"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -101154,27 +101261,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>lasviewPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3782"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3787"/>
         <source>lasviewPro</source>
         <translation>lasviewPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3783"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3788"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3784"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3789"/>
         <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="3785"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
         <source>color by</source>
         <translation>Einfärben nach</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3786"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
         <source>window size (x y) in pixels</source>
         <translation>Fenstergröße (x y) in Pixel</translation>
     </message>
@@ -101182,27 +101289,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>laszip</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3790"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3795"/>
         <source>laszip</source>
         <translation>laszip</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3791"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3796"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3792"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3797"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3793"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3798"/>
         <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="3794"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3799"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -101210,27 +101317,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>laszipPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3798"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3803"/>
         <source>laszipPro</source>
         <translation>laszipPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3799"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3804"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3800"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3805"/>
         <source>only report size</source>
         <translation>Nur Größe berichten</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3801"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
         <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="3802"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
         <source>append *.lax into *.laz file</source>
         <translation>LAX- and LAZ-Datei anhängen</translation>
     </message>
@@ -101238,37 +101345,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>merge</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3806"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
         <source>Merge</source>
         <translation>Verschmelzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3807"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3808"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3813"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3809"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3814"/>
         <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="3810"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3815"/>
         <source>Place each input file into a separate band</source>
         <translation>Jeder Datei einen eigenen Kanal zuordnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3811"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3816"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3812"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3817"/>
         <source>Merged</source>
         <translation>Zusammengeführt</translation>
     </message>
@@ -101276,32 +101383,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>nearblack</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3817"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3822"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3818"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3823"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3819"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3824"/>
         <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="3820"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3825"/>
         <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="3821"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3826"/>
         <source>Nearblack</source>
         <translation>Fast Schwarz</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3816"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3821"/>
         <source>Near black</source>
         <translation>Fast schwarz</translation>
     </message>
@@ -101309,37 +101416,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>nviz</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3826"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3831"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3827"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3832"/>
         <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="3828"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3833"/>
         <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="3829"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3834"/>
         <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="3830"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3835"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3831"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3836"/>
         <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="3825"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3830"/>
         <source>nviz</source>
         <translation>nviz</translation>
     </message>
@@ -101347,37 +101454,37 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>nviz7</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3835"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3840"/>
         <source>nviz7</source>
         <translation>nviz7</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3836"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3841"/>
         <source>Visualization(NVIZ)</source>
         <translation>Visualisierung (NVIZ)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3837"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3842"/>
         <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="3838"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3843"/>
         <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="3839"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3844"/>
         <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="3840"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3845"/>
         <source>GRASS region extent</source>
         <translation>GRASS-Regionengrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3841"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3846"/>
         <source>GRASS region cellsize (leave 0 for default)</source>
         <translation>GRASS-Regionenzellengröße (0 für um Voreinstellung beizubehalten)</translation>
     </message>
@@ -101431,22 +101538,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>pct2rgb</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3846"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3851"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3847"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3852"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3848"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3853"/>
         <source>Band to convert</source>
         <translation>Umzuwandelnder Kanal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3845"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3850"/>
         <source>PCT to RGB</source>
         <translation>PCT nach RGB</translation>
     </message>
@@ -101454,27 +101561,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>polygonize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3852"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3857"/>
         <source>Polygonize (raster to vector)</source>
         <translation>Vektorisieren (Raster nach Vektor)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3853"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3858"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3854"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3859"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3855"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3860"/>
         <source>Output field name</source>
         <translation>Ausgabefeldname</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3856"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3861"/>
         <source>Vectorized</source>
         <translation>Vektorisiert</translation>
     </message>
@@ -101482,52 +101589,52 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>proximity</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3861"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3866"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3862"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3867"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3863"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3868"/>
         <source>Values</source>
         <translation>Werte</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3864"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3869"/>
         <source>Distance units</source>
         <translation>Distanzeinheit</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3865"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3870"/>
         <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="3866"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3871"/>
         <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="3867"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3872"/>
         <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="3868"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3873"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3869"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3874"/>
         <source>Distance</source>
         <translation>Entfernung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3860"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3865"/>
         <source>Proximity (raster distance)</source>
         <translation>Nähe (Rasterabstand)</translation>
     </message>
@@ -101535,97 +101642,97 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>rasterize</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3874"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3879"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3875"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3880"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3876"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3881"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3877"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3882"/>
         <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="3878"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3883"/>
         <source>Horizontal</source>
         <translation>Horizontal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3879"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3884"/>
         <source>Vertical</source>
         <translation>Vertikal</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3880"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3885"/>
         <source>Raster extent</source>
         <translation>Rastermaße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3881"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3886"/>
         <source>Raster type</source>
         <translation>Rastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3882"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3887"/>
         <source>Nodata value</source>
         <translation>Leerwert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3883"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3888"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3884"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3889"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3885"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3890"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3886"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3891"/>
         <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="3887"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3892"/>
         <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="3888"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3893"/>
         <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="3889"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3894"/>
         <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="3890"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3895"/>
         <source>Additional creation parameters</source>
         <translation>Zusaätzliche Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3891"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3896"/>
         <source>Rasterized</source>
         <translation>Gerastert</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3873"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3878"/>
         <source>Rasterize (vector to raster)</source>
         <translation>Rastern (Vektor nach Raster)</translation>
     </message>
@@ -101633,27 +101740,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>rasterize_over</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3896"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3901"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3897"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3902"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3898"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3903"/>
         <source>Attribute field</source>
         <translation>Attributfeld</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3899"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3904"/>
         <source>Existing raster layer</source>
         <translation>Vorhandener Rasterlayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3895"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3900"/>
         <source>Rasterize (write over existing raster)</source>
         <translation>Rastern (vorhandenes Raster überschreiben)</translation>
     </message>
@@ -101661,82 +101768,82 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>retile</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3903"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3908"/>
         <source>Retile</source>
         <translation>Neukacheln</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3904"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3909"/>
         <source>[GDAL] Miscellaneous</source>
         <translation>[GDAL] Verschiedenes</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3905"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3910"/>
         <source>Input layers</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3906"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3911"/>
         <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="3907"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3912"/>
         <source>Resampling algorithm</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3908"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3913"/>
         <source>Override source CRS</source>
         <translation>Quell-KBS überschreiben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3909"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3914"/>
         <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="3910"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3915"/>
         <source>Build only the pyramids</source>
         <translation>Nur Pyramiden erzeugen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3911"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3916"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3912"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3917"/>
         <source>Output raster format</source>
         <translation>Ausgaberasterformat</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3913"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3918"/>
         <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="3914"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3919"/>
         <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="3915"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3920"/>
         <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="3916"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3921"/>
         <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="3917"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3922"/>
         <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="3918"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3923"/>
         <source>The directory where the tile result is created</source>
         <translation>Verzeichnis in dem die Ergebniskacheln erzeugt werden sollen</translation>
     </message>
@@ -101744,22 +101851,22 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>rgb2pct</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3923"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3928"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3924"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3929"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3925"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3930"/>
         <source>Number of colors</source>
         <translation>Farbanzahl</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3922"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3927"/>
         <source>RGB to PCT</source>
         <translation>RGB nach PCT</translation>
     </message>
@@ -101767,27 +101874,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>roughness</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3930"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3935"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3931"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3936"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3932"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3937"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3933"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3938"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3929"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3934"/>
         <source>Roughness</source>
         <translation>Rauhigkeit</translation>
     </message>
@@ -101877,7 +101984,7 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>self.output</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3937"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3942"/>
         <source>Spatialite files(*.sqlite)</source>
         <translation>Spatialite dateien(*.sqlite)</translation>
     </message>
@@ -101885,27 +101992,27 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>shp2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3941"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3946"/>
         <source>shp2las</source>
         <translation>shp2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3942"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3947"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3943"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3948"/>
         <source>Input SHP file</source>
         <translation>Eingabe shp Datei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3944"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3949"/>
         <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="3945"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3950"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
@@ -101913,32 +102020,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>sieve</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3949"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3954"/>
         <source>Sieve</source>
         <translation>Sieben</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3950"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3955"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3951"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3956"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3952"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3957"/>
         <source>Threshold</source>
         <translation>Schwelle</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3953"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3958"/>
         <source>Pixel connection</source>
         <translation>Pixelverbindung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3954"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3959"/>
         <source>Sieved</source>
         <translation>Gesiebt</translation>
     </message>
@@ -101946,42 +102053,42 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>slope</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3959"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3964"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3960"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3965"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3961"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3966"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3962"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3967"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3963"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3968"/>
         <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="3964"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3969"/>
         <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="3965"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3970"/>
         <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="3958"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3963"/>
         <source>Slope</source>
         <translation>Neigung</translation>
     </message>
@@ -102201,32 +102308,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>tpi</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3970"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3975"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3971"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3976"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3972"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3977"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3973"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3978"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3974"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3979"/>
         <source>Topographic Position Index</source>
         <translation>Topographischer Positionsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3969"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3974"/>
         <source>TPI (Topographic Position Index)</source>
         <translation>Topographische Position (TPI)</translation>
     </message>
@@ -102234,102 +102341,102 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>translate</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3980"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3985"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3981"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3986"/>
         <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="3982"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3987"/>
         <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="3984"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3989"/>
         <source>Expand</source>
         <translation>Ausdehnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3985"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3990"/>
         <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="3986"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3991"/>
         <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="3987"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3992"/>
         <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="3996"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4001"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3997"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4002"/>
         <source>Converted</source>
         <translation>Umgewandelt</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3988"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3993"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3983"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3988"/>
         <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="3978"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3983"/>
         <source>Translate (convert format)</source>
         <translation>Umwandeln (Format konvertieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3979"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3984"/>
         <source>[GDAL] Conversion</source>
         <translation>[GDAL] Konvertierung</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3989"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3994"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen. Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3990"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3995"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3991"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3996"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="3992"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3997"/>
         <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="3993"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3998"/>
         <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="3994"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="3999"/>
         <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="3995"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4000"/>
         <source>Force the generation of an associated ESRI world file (.tfw))</source>
         <translation>Erzeugung der zugehörigen ESRI-Worlddatei (.tfw) erzwingen</translation>
     </message>
@@ -102337,32 +102444,32 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>tri</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4002"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4007"/>
         <source>[GDAL] Analysis</source>
         <translation>[GDAL] Analyse</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4003"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4008"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4004"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4009"/>
         <source>Band number</source>
         <translation>Kanalnummer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4005"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4010"/>
         <source>Compute edges</source>
         <translation>Kanten berechnen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4006"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4011"/>
         <source>Terrain Ruggedness Index</source>
         <translation>Geländerauhigkeitsindex</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4001"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4006"/>
         <source>TRI (Terrain Ruggedness Index)</source>
         <translation>Oberflächenrauhigkeit (TRI)</translation>
     </message>
@@ -102370,52 +102477,52 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>txt2las</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4010"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4015"/>
         <source>txt2las</source>
         <translation>txt2las</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4011"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4016"/>
         <source>LAStools</source>
         <translation>LAS-Tools</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4012"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4017"/>
         <source>Input ASCII file</source>
         <translation>ASCII-Eingabedatei</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4013"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4018"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4014"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4019"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeilen überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4015"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4020"/>
         <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="4016"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4021"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4017"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4022"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4018"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4023"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4019"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4024"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -102423,47 +102530,47 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>txt2lasPro</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4023"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4028"/>
         <source>txt2lasPro</source>
         <translation>txt2lasPro</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4024"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4029"/>
         <source>LAStools Production</source>
         <translation>LASTools-Produktion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4025"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4030"/>
         <source>parse lines as</source>
         <translation>Zeilen interpretieren als</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4026"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4031"/>
         <source>skip the first n lines</source>
         <translation>Erste n Zeile überspringen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4027"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4032"/>
         <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="4028"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4033"/>
         <source>resolution of z coordinate</source>
         <translation>Auflösung der Z Koordinate</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4029"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4034"/>
         <source>projection</source>
         <translation>Projektion</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4030"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4035"/>
         <source>utm zone</source>
         <translation>UTM-Zone</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4031"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4036"/>
         <source>state plane code</source>
         <translation>US-Koodinatensystemkennung</translation>
     </message>
@@ -102699,102 +102806,102 @@ Base Path (i.e. keep only filename from attribute)</source>
 <context>
     <name>warp</name>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4037"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4042"/>
         <source>Input layer</source>
         <translation>Eingabelayer</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4038"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4043"/>
         <source>Source SRS</source>
         <translation>Quell-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4039"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4044"/>
         <source>Destination SRS</source>
         <translation>Ziel-KBS</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4041"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4046"/>
         <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="4042"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4047"/>
         <source>Resampling method</source>
         <translation>Abtastmethode</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4053"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4058"/>
         <source>Additional creation parameters</source>
         <translation>Weitere Erzeugungsparameter</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4045"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4050"/>
         <source>Output raster type</source>
         <translation>Ausgaberastertyp</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4035"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4040"/>
         <source>Warp (reproject)</source>
         <translation>Transformieren (Reprojizieren)</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4036"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4041"/>
         <source>[GDAL] Projections</source>
         <translation>[GDAL] Projektionen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4040"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4045"/>
         <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="4043"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4048"/>
         <source>Raster extent</source>
         <translation>Rastermaße</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4044"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4049"/>
         <source>CRS of the raster extent</source>
         <translation>KBS der Rastergrenzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4046"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4051"/>
         <source>GeoTIFF options. Compression type:</source>
         <translation>GeoTIFF-Optionen.  Kompressionstyp:</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4047"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4052"/>
         <source>Set the JPEG compression level</source>
         <translation>JPEG-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4048"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4053"/>
         <source>Set the DEFLATE compression level</source>
         <translation>DEFLATE-Kompressionsstufe setzen</translation>
     </message>
     <message>
-        <location filename="../python/plugins/processing/python-i18n.cpp" line="4049"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4054"/>
         <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="4050"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4055"/>
         <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="4051"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4056"/>
         <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="4052"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4057"/>
         <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="4054"/>
+        <location filename="../python/plugins/processing/python-i18n.cpp" line="4059"/>
         <source>Reprojected</source>
         <translation>Reprojiiziert</translation>
     </message>
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 0c474d5..8ff1f35 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -338,3 +338,17 @@ FOREACH(module ${PY_MODULES})
   ENDFOREACH(pyfile)
   PY_COMPILE(py${module} "${QGIS_PYTHON_OUTPUT_DIRECTORY}/${module}")
 ENDFOREACH(module)
+
+SET (WITH_INTERNAL_WEBKIT_BINDINGS FALSE CACHE BOOL "Build internal QtWebKit bindings")
+IF(WITH_INTERNAL_WEBKIT_BINDINGS)
+  INCLUDE_DIRECTORIES(${QT_QTWEBKIT_INCLUDE_DIR})
+  FILE(GLOB_RECURSE sip_files_qtwebkit QtWebKit/*.sip)
+  SET(SIP_EXTRA_FILES_DEPEND ${sip_files_qtwebkit})
+  SET(SIP_EXTRA_OPTIONS ${PYQT_SIP_FLAGS} -o -a ${CMAKE_BINARY_DIR}/python/PyQt4.QtWebKit.api)
+
+  SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}/PyQt4)
+  SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PYTHON_OUTPUT_DIRECTORY}/PyQt4)
+  GENERATE_SIP_PYTHON_MODULE_CODE(PyQt4.QtWebKit QtWebKit/QtWebKitmod.sip cpp_files)
+  BUILD_SIP_PYTHON_MODULE(PyQt4.QtWebKit QtWebKitmod.sip ${cpp_files} "" QtWebKit QtCore QtGui QtNetwork)
+  SET(SIP_QTWEBKIT_CPP_FILES ${cpp_files})
+ENDIF(WITH_INTERNAL_WEBKIT_BINDINGS)
diff --git a/python/QtWebKit/QtWebKitmod.sip b/python/QtWebKit/QtWebKitmod.sip
new file mode 100644
index 0000000..dbb17f3
--- /dev/null
+++ b/python/QtWebKit/QtWebKitmod.sip
@@ -0,0 +1,63 @@
+// QtWebKitmod.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%Module(name=PyQt4.QtWebKit, keyword_arguments="Optional")
+
+%Import QtCore/QtCoremod.sip
+%Import QtGui/QtGuimod.sip
+%Import QtNetwork/QtNetworkmod.sip
+
+%Copying
+Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+
+This file is part of PyQt4.
+
+This file may be used under the terms of the GNU General Public License
+version 3.0 as published by the Free Software Foundation and appearing in
+the file LICENSE included in the packaging of this file.  Please review the
+following information to ensure the GNU General Public License version 3.0
+requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you do not wish to use this file under the terms of the GPL version 3.0
+then you may purchase a commercial license.  For more information contact
+info at riverbankcomputing.com.
+
+This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+%End
+
+%DefaultSupertype sip.simplewrapper
+
+%Include qgraphicswebview.sip
+%Include qwebdatabase.sip
+%Include qwebelement.sip
+%Include qwebframe.sip
+%Include qwebkitglobal.sip
+%Include qwebhistory.sip
+%Include qwebhistoryinterface.sip
+%Include qwebinspector.sip
+%Include qwebkitversion.sip
+%Include qwebpage.sip
+%Include qwebpluginfactory.sip
+%Include qwebsecurityorigin.sip
+%Include qwebsettings.sip
+%Include qwebview.sip
diff --git a/python/QtWebKit/__init__.py b/python/QtWebKit/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/python/QtWebKit/qgraphicswebview.sip b/python/QtWebKit/qgraphicswebview.sip
new file mode 100644
index 0000000..e006416
--- /dev/null
+++ b/python/QtWebKit/qgraphicswebview.sip
@@ -0,0 +1,150 @@
+// qgraphicswebview.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_6_0 -)
+
+class QGraphicsWebView : QGraphicsWidget
+{
+%TypeHeaderCode
+#include <qgraphicswebview.h>
+%End
+
+%ConvertToSubClassCode
+    sipType = 0;
+
+    // For some reason Qt doesn't allocate a new type for this so we have to test
+    // the numeric and QObject types.
+    if (sipCpp->type() == 11)
+    {
+        QGraphicsWidget *gw = static_cast<QGraphicsWidget *>(sipCpp);
+
+        if (gw->inherits("QGraphicsWebView"))
+        {
+            *sipCppRet = static_cast<QGraphicsWebView *>(gw);
+            sipType = sipType_QGraphicsWebView;
+        }
+    }
+%End
+
+public:
+    explicit QGraphicsWebView(QGraphicsItem *parent /TransferThis/ = 0);
+    virtual ~QGraphicsWebView();
+    QWebPage *page() const;
+    void setPage(QWebPage * /KeepReference/);
+    QUrl url() const;
+    void setUrl(const QUrl &);
+    QString title() const;
+    QIcon icon() const;
+    qreal zoomFactor() const;
+    void setZoomFactor(qreal);
+    bool isModified() const;
+    void load(const QUrl &url) /ReleaseGIL/;
+    void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()) /ReleaseGIL/;
+    void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
+    void setContent(const QByteArray &data, const QString &mimeType = QString(), const QUrl &baseUrl = QUrl());
+    QWebHistory *history() const;
+    QWebSettings *settings() const;
+    QAction *pageAction(QWebPage::WebAction action) const;
+    void triggerPageAction(QWebPage::WebAction action, bool checked = false);
+    bool findText(const QString &subString, QFlags<QWebPage::FindFlag> options = 0);
+    virtual void setGeometry(const QRectF &rect);
+    virtual void updateGeometry();
+    virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+    virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value);
+    virtual bool event(QEvent *);
+    virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF &constraint) const;
+    virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+
+public slots:
+    void stop();
+    void back();
+    void forward();
+    void reload();
+
+signals:
+    void loadStarted();
+    void loadFinished(bool);
+    void loadProgress(int progress);
+    void urlChanged(const QUrl &);
+    void titleChanged(const QString &);
+    void iconChanged();
+    void statusBarMessage(const QString &message);
+    void linkClicked(const QUrl &);
+
+protected:
+    virtual void mousePressEvent(QGraphicsSceneMouseEvent *);
+    virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *);
+    virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *);
+    virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *);
+    virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
+    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
+    virtual void wheelEvent(QGraphicsSceneWheelEvent *);
+    virtual void keyPressEvent(QKeyEvent *);
+    virtual void keyReleaseEvent(QKeyEvent *);
+    virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *);
+    virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *);
+    virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *);
+    virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *);
+    virtual void dropEvent(QGraphicsSceneDragDropEvent *);
+    virtual void focusInEvent(QFocusEvent *);
+    virtual void focusOutEvent(QFocusEvent *);
+    virtual void inputMethodEvent(QInputMethodEvent *);
+    virtual bool focusNextPrevChild(bool next);
+    virtual bool sceneEvent(QEvent *);
+
+public:
+%If (Qt_4_7_0 -)
+    bool resizesToContents() const;
+%End
+%If (Qt_4_7_0 -)
+    void setResizesToContents(bool enabled);
+%End
+%If (Qt_4_7_0 -)
+    bool isTiledBackingStoreFrozen() const;
+%End
+%If (Qt_4_7_0 -)
+    void setTiledBackingStoreFrozen(bool frozen);
+%End
+%If (Qt_4_8_0 -)
+    QFlags<QPainter::RenderHint> renderHints() const;
+%End
+%If (Qt_4_8_0 -)
+    void setRenderHints(QFlags<QPainter::RenderHint> hints);
+%End
+%If (Qt_4_8_0 -)
+    void setRenderHint(QPainter::RenderHint hint, bool enabled = true);
+%End
+};
+
+%End
+
+%ModuleHeaderCode
+#if QT_VERSION >= 0x040600
+// This is needed by the %ConvertSubClassCode.
+#include <QGraphicsWebView>
+#endif
+
+// This is needed for Qt v5.0.0.
+#if defined(B0)
+#undef B0
+#endif
+%End
diff --git a/python/QtWebKit/qwebdatabase.sip b/python/QtWebKit/qwebdatabase.sip
new file mode 100644
index 0000000..5da7c2e
--- /dev/null
+++ b/python/QtWebKit/qwebdatabase.sip
@@ -0,0 +1,46 @@
+// qwebdatabase.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_5_0 -)
+
+class QWebDatabase
+{
+%TypeHeaderCode
+#include <qwebdatabase.h>
+%End
+
+public:
+    QWebDatabase(const QWebDatabase &other);
+    ~QWebDatabase();
+    QString name() const;
+    QString displayName() const;
+    qint64 expectedSize() const;
+    qint64 size() const;
+    QString fileName() const;
+    QWebSecurityOrigin origin() const;
+    static void removeDatabase(const QWebDatabase &db);
+%If (Qt_4_6_0 -)
+    static void removeAllDatabases();
+%End
+};
+
+%End
diff --git a/python/QtWebKit/qwebelement.sip b/python/QtWebKit/qwebelement.sip
new file mode 100644
index 0000000..bd158c5
--- /dev/null
+++ b/python/QtWebKit/qwebelement.sip
@@ -0,0 +1,144 @@
+// qwebelement.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_6_0 -)
+
+class QWebElement
+{
+%TypeHeaderCode
+#include <qwebelement.h>
+%End
+
+public:
+    QWebElement();
+    QWebElement(const QWebElement &);
+    ~QWebElement();
+    bool operator==(const QWebElement &o) const;
+    bool operator!=(const QWebElement &o) const;
+    bool isNull() const;
+    QWebElementCollection findAll(const QString &selectorQuery) const;
+    QWebElement findFirst(const QString &selectorQuery) const;
+    void setPlainText(const QString &text);
+    QString toPlainText() const;
+    void setOuterXml(const QString &markup);
+    QString toOuterXml() const;
+    void setInnerXml(const QString &markup);
+    QString toInnerXml() const;
+    void setAttribute(const QString &name, const QString &value);
+    void setAttributeNS(const QString &namespaceUri, const QString &name, const QString &value);
+    QString attribute(const QString &name, const QString &defaultValue = QString()) const;
+    QString attributeNS(const QString &namespaceUri, const QString &name, const QString &defaultValue = QString()) const;
+    bool hasAttribute(const QString &name) const;
+    bool hasAttributeNS(const QString &namespaceUri, const QString &name) const;
+    void removeAttribute(const QString &name);
+    void removeAttributeNS(const QString &namespaceUri, const QString &name);
+    bool hasAttributes() const;
+    QStringList attributeNames(const QString &namespaceUri = QString()) const;
+    QStringList classes() const;
+    bool hasClass(const QString &name) const;
+    void addClass(const QString &name);
+    void removeClass(const QString &name);
+    void toggleClass(const QString &name);
+    bool hasFocus() const;
+    void setFocus();
+    QRect geometry() const;
+    QString tagName() const;
+    QString prefix() const;
+    QString localName() const;
+    QString namespaceUri() const;
+    QWebElement parent() const;
+    QWebElement firstChild() const;
+    QWebElement lastChild() const;
+    QWebElement nextSibling() const;
+    QWebElement previousSibling() const;
+    QWebElement document() const;
+    QWebFrame *webFrame() const;
+    void appendInside(const QString &markup);
+    void appendInside(const QWebElement &element);
+    void prependInside(const QString &markup);
+    void prependInside(const QWebElement &element);
+    void appendOutside(const QString &markup);
+    void appendOutside(const QWebElement &element);
+    void prependOutside(const QString &markup);
+    void prependOutside(const QWebElement &element);
+    void encloseContentsWith(const QWebElement &element);
+    void encloseContentsWith(const QString &markup);
+    void encloseWith(const QString &markup);
+    void encloseWith(const QWebElement &element);
+    void replace(const QString &markup);
+    void replace(const QWebElement &element);
+    QWebElement clone() const;
+    QWebElement &takeFromDocument();
+    void removeFromDocument();
+    void removeAllChildren();
+    QVariant evaluateJavaScript(const QString &scriptSource);
+
+    enum StyleResolveStrategy
+    {
+        InlineStyle,
+        CascadedStyle,
+        ComputedStyle,
+    };
+
+    QString styleProperty(const QString &name, QWebElement::StyleResolveStrategy strategy) const;
+    void setStyleProperty(const QString &name, const QString &value);
+    void render(QPainter *painter);
+%If (Qt_4_8_0 -)
+    void render(QPainter *painter, const QRect &clip);
+%End
+};
+
+%End
+%If (Qt_4_6_0 -)
+
+class QWebElementCollection
+{
+%TypeHeaderCode
+#include <qwebelement.h>
+%End
+
+public:
+    QWebElementCollection();
+    QWebElementCollection(const QWebElement &contextElement, const QString &query);
+    QWebElementCollection(const QWebElementCollection &);
+    ~QWebElementCollection();
+    QWebElementCollection operator+(const QWebElementCollection &other) const;
+    QWebElementCollection &operator+=(const QWebElementCollection &other);
+    void append(const QWebElementCollection &collection);
+    int count() const /__len__/;
+    QWebElement at(int i) const;
+    QWebElement operator[](int i) const;
+%MethodCode
+        SIP_SSIZE_T idx = sipConvertFromSequenceIndex(a0, sipCpp->count());
+
+        if (idx < 0)
+            sipIsErr = 1;
+        else
+            sipRes = new QWebElement(sipCpp->operator[]((int)idx));
+%End
+
+    QWebElement first() const;
+    QWebElement last() const;
+    QList<QWebElement> toList() const;
+};
+
+%End
diff --git a/python/QtWebKit/qwebframe.sip b/python/QtWebKit/qwebframe.sip
new file mode 100644
index 0000000..30768a2
--- /dev/null
+++ b/python/QtWebKit/qwebframe.sip
@@ -0,0 +1,244 @@
+// qwebframe.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+%ModuleCode
+#include <qwebframe.h>
+%End
+%End
+
+%If (Qt_4_4_0 -)
+
+class QWebHitTestResult
+{
+%TypeHeaderCode
+#include <qwebframe.h>
+%End
+
+public:
+    QWebHitTestResult();
+    QWebHitTestResult(const QWebHitTestResult &other);
+    ~QWebHitTestResult();
+    bool isNull() const;
+    QPoint pos() const;
+    QString title() const;
+    QString linkText() const;
+    QUrl linkUrl() const;
+    QUrl linkTitle() const;
+    QWebFrame *linkTargetFrame() const;
+    QString alternateText() const;
+    QUrl imageUrl() const;
+    QPixmap pixmap() const;
+    bool isContentEditable() const;
+    bool isContentSelected() const;
+    QWebFrame *frame() const;
+%If (Qt_4_5_0 -)
+    QRect boundingRect() const;
+%End
+%If (Qt_4_6_0 -)
+    QWebElement enclosingBlockElement() const;
+%End
+%If (Qt_4_6_0 -)
+    QWebElement linkElement() const;
+%End
+%If (Qt_4_6_0 -)
+    QWebElement element() const;
+%End
+};
+
+%End
+%If (Qt_4_4_0 -)
+
+class QWebFrame : QObject /NoDefaultCtors/
+{
+%TypeHeaderCode
+#include <qwebframe.h>
+%End
+
+    virtual ~QWebFrame();
+
+public:
+    QWebPage *page() const;
+    void load(const QUrl &url);
+    void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray());
+    void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
+    void setContent(const QByteArray &data, const QString &mimeType /DocValue="Py_v3:''"/ = QString(), const QUrl &baseUrl = QUrl());
+%If (Qt_5_0_0 -)
+
+    enum ValueOwnership
+    {
+        QtOwnership,
+        ScriptOwnership,
+        AutoOwnership,
+    };
+
+%End
+%If (Qt_5_0_0 -)
+    void addToJavaScriptWindowObject(const QString &name, QObject *object, QWebFrame::ValueOwnership ownership = QWebFrame::QtOwnership);
+%End
+%If (- Qt_5_0_0)
+    void addToJavaScriptWindowObject(const QString &name, QObject *object);
+%End
+    QString toHtml() const;
+    QString toPlainText() const;
+%If (- Qt_5_0_0)
+    QString renderTreeDump() const;
+%End
+    QString title() const;
+    void setUrl(const QUrl &url);
+    QUrl url() const;
+    QIcon icon() const;
+    QString frameName() const;
+    QWebFrame *parentFrame() const;
+    QList<QWebFrame*> childFrames() const;
+    Qt::ScrollBarPolicy scrollBarPolicy(Qt::Orientation orientation) const;
+    void setScrollBarPolicy(Qt::Orientation orientation, Qt::ScrollBarPolicy policy);
+    void setScrollBarValue(Qt::Orientation orientation, int value);
+    int scrollBarValue(Qt::Orientation orientation) const;
+    int scrollBarMinimum(Qt::Orientation orientation) const;
+    int scrollBarMaximum(Qt::Orientation orientation) const;
+%If (- Qt_5_0_0)
+    void render(QPainter *painter, const QRegion &clip);
+%End
+%If (- Qt_5_0_0)
+    void render(QPainter *painter);
+%End
+    void setTextSizeMultiplier(qreal factor);
+    qreal textSizeMultiplier() const;
+    QPoint pos() const;
+    QRect geometry() const;
+    QSize contentsSize() const;
+    QWebHitTestResult hitTestContent(const QPoint &pos) const;
+    virtual bool event(QEvent *);
+
+public slots:
+    QVariant evaluateJavaScript(const QString &scriptSource);
+%If (PyQt_Printer)
+    void print(QPrinter *printer) const /PyName=print_/;
+%End
+%If (Py_v3)
+%If (PyQt_Printer)
+    void print(QPrinter *printer) const;
+%End
+%End
+
+signals:
+    void javaScriptWindowObjectCleared();
+    void titleChanged(const QString &title);
+    void urlChanged(const QUrl &url);
+    void initialLayoutCompleted();
+    void iconChanged();
+
+public:
+%If (Qt_4_5_0 -)
+    QMultiMap<QString, QString> metaData() const;
+%End
+%If (Qt_4_5_0 -)
+    void scroll(int, int);
+%End
+%If (Qt_4_5_0 -)
+    QPoint scrollPosition() const;
+%End
+%If (Qt_4_5_0 -)
+    void setScrollPosition(const QPoint &pos);
+%End
+%If (Qt_4_5_0 -)
+    qreal zoomFactor() const;
+%End
+%If (Qt_4_5_0 -)
+    void setZoomFactor(qreal factor);
+%End
+%If (Qt_4_5_0 -)
+    QWebSecurityOrigin securityOrigin() const;
+%End
+%If (Qt_4_6_0 -)
+    QUrl requestedUrl() const;
+%End
+%If (Qt_4_6_0 -)
+    QUrl baseUrl() const;
+%End
+%If (Qt_4_6_0 -)
+    QRect scrollBarGeometry(Qt::Orientation orientation) const;
+%End
+%If (Qt_4_6_0 -)
+
+    enum RenderLayer
+    {
+        ContentsLayer,
+        ScrollBarLayer,
+        PanIconLayer,
+        AllLayers,
+    };
+
+%End
+%If (Qt_5_0_0 -)
+    typedef QFlags<QWebFrame::RenderLayer> RenderLayers;
+%End
+%If (Qt_4_6_0 - Qt_5_0_0)
+    void render(QPainter *, QWebFrame::RenderLayer layer, const QRegion &clip = QRegion());
+%End
+%If (Qt_5_0_0 -)
+    void render(QPainter *, const QRegion &clip = QRegion());
+%End
+%If (Qt_5_0_0 -)
+    void render(QPainter *, QFlags<QWebFrame::RenderLayer> layer, const QRegion &clip = QRegion());
+%End
+%If (Qt_4_6_0 -)
+    bool hasFocus() const;
+%End
+%If (Qt_4_6_0 -)
+    void setFocus();
+%End
+%If (Qt_4_6_0 -)
+    QWebElement documentElement() const;
+%End
+%If (Qt_4_6_0 -)
+    QWebElementCollection findAllElements(const QString &selectorQuery) const;
+%End
+%If (Qt_4_6_0 -)
+    QWebElement findFirstElement(const QString &selectorQuery) const;
+%End
+
+signals:
+%If (Qt_4_6_0 -)
+    void contentsSizeChanged(const QSize &size);
+%End
+%If (Qt_4_6_0 -)
+    void loadStarted();
+%End
+%If (Qt_4_6_0 -)
+    void loadFinished(bool ok);
+%End
+%If (Qt_4_7_0 -)
+    void pageChanged();
+%End
+
+public:
+%If (Qt_4_7_0 -)
+    void scrollToAnchor(const QString &anchor);
+%End
+};
+
+%End
+%If (Qt_5_0_0 -)
+QFlags<QWebFrame::RenderLayer> operator|(QWebFrame::RenderLayer f1, QFlags<QWebFrame::RenderLayer> f2);
+%End
diff --git a/python/QtWebKit/qwebhistory.sip b/python/QtWebKit/qwebhistory.sip
new file mode 100644
index 0000000..59ddb3a
--- /dev/null
+++ b/python/QtWebKit/qwebhistory.sip
@@ -0,0 +1,104 @@
+// qwebhistory.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+%ModuleCode
+#include <qwebhistory.h>
+%End
+%End
+
+%If (Qt_4_4_0 -)
+
+class QWebHistoryItem
+{
+%TypeHeaderCode
+#include <qwebhistory.h>
+%End
+
+public:
+    QWebHistoryItem(const QWebHistoryItem &other);
+    ~QWebHistoryItem();
+    QUrl originalUrl() const;
+    QUrl url() const;
+    QString title() const;
+    QDateTime lastVisited() const;
+    QIcon icon() const;
+%If (Qt_4_5_0 -)
+    QVariant userData() const;
+%End
+%If (Qt_4_5_0 -)
+    void setUserData(const QVariant &userData);
+%End
+%If (Qt_4_5_0 -)
+    bool isValid() const;
+%End
+};
+
+%End
+%If (Qt_4_4_0 -)
+
+class QWebHistory
+{
+%TypeHeaderCode
+#include <qwebhistory.h>
+%End
+
+public:
+    void clear();
+    QList<QWebHistoryItem> items() const;
+    QList<QWebHistoryItem> backItems(int maxItems) const;
+    QList<QWebHistoryItem> forwardItems(int maxItems) const;
+    bool canGoBack() const;
+    bool canGoForward() const;
+    void back();
+    void forward();
+    void goToItem(const QWebHistoryItem &item);
+    QWebHistoryItem backItem() const;
+    QWebHistoryItem currentItem() const;
+    QWebHistoryItem forwardItem() const;
+    QWebHistoryItem itemAt(int i) const;
+    int count() const /__len__/;
+
+private:
+    QWebHistory();
+    QWebHistory(const QWebHistory &);
+    ~QWebHistory();
+
+public:
+%If (Qt_4_5_0 -)
+    int currentItemIndex() const;
+%End
+%If (Qt_4_5_0 -)
+    int maximumItemCount() const;
+%End
+%If (Qt_4_5_0 -)
+    void setMaximumItemCount(int count);
+%End
+};
+
+%End
+%If (Qt_4_6_0 -)
+QDataStream &operator<<(QDataStream &, const QWebHistory & /Constrained/);
+%End
+%If (Qt_4_6_0 -)
+QDataStream &operator>>(QDataStream &, QWebHistory & /Constrained/);
+%End
diff --git a/python/QtWebKit/qwebhistoryinterface.sip b/python/QtWebKit/qwebhistoryinterface.sip
new file mode 100644
index 0000000..7493a10
--- /dev/null
+++ b/python/QtWebKit/qwebhistoryinterface.sip
@@ -0,0 +1,40 @@
+// qwebhistoryinterface.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+
+class QWebHistoryInterface : QObject
+{
+%TypeHeaderCode
+#include <qwebhistoryinterface.h>
+%End
+
+public:
+    QWebHistoryInterface(QObject *parent /TransferThis/ = 0);
+    virtual ~QWebHistoryInterface();
+    static void setDefaultInterface(QWebHistoryInterface *defaultInterface /KeepReference/);
+    static QWebHistoryInterface *defaultInterface();
+    virtual bool historyContains(const QString &url) const = 0;
+    virtual void addHistoryEntry(const QString &url) = 0;
+};
+
+%End
diff --git a/python/QtWebKit/qwebinspector.sip b/python/QtWebKit/qwebinspector.sip
new file mode 100644
index 0000000..50405ed
--- /dev/null
+++ b/python/QtWebKit/qwebinspector.sip
@@ -0,0 +1,48 @@
+// qwebinspector.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_6_0 -)
+
+class QWebInspector : QWidget
+{
+%TypeHeaderCode
+#include <qwebinspector.h>
+%End
+
+public:
+    QWebInspector(QWidget *parent /TransferThis/ = 0);
+    virtual ~QWebInspector();
+    void setPage(QWebPage *page /KeepReference/);
+    QWebPage *page() const;
+    virtual QSize sizeHint() const;
+    virtual bool event(QEvent *);
+
+protected:
+    virtual void resizeEvent(QResizeEvent *event);
+    virtual void showEvent(QShowEvent *event);
+    virtual void hideEvent(QHideEvent *event);
+%If (Qt_4_7_0 -)
+    virtual void closeEvent(QCloseEvent *event);
+%End
+};
+
+%End
diff --git a/python/QtWebKit/qwebkitglobal.sip b/python/QtWebKit/qwebkitglobal.sip
new file mode 100644
index 0000000..f7dad16
--- /dev/null
+++ b/python/QtWebKit/qwebkitglobal.sip
@@ -0,0 +1,37 @@
+// qwebkitglobal.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_5_0_0 -)
+%ModuleCode
+#include <qwebkitglobal.h>
+%End
+%End
+
+%If (Qt_5_0_0 -)
+QString qWebKitVersion();
+%End
+%If (Qt_5_0_0 -)
+int qWebKitMajorVersion();
+%End
+%If (Qt_5_0_0 -)
+int qWebKitMinorVersion();
+%End
diff --git a/python/QtWebKit/qwebkitversion.sip b/python/QtWebKit/qwebkitversion.sip
new file mode 100644
index 0000000..63729ba
--- /dev/null
+++ b/python/QtWebKit/qwebkitversion.sip
@@ -0,0 +1,37 @@
+// qwebkitversion.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_6_0 - Qt_5_0_0)
+%ModuleCode
+#include <qwebkitversion.h>
+%End
+%End
+
+%If (Qt_4_6_0 - Qt_5_0_0)
+QString qWebKitVersion();
+%End
+%If (Qt_4_6_0 - Qt_5_0_0)
+int qWebKitMajorVersion();
+%End
+%If (Qt_4_6_0 - Qt_5_0_0)
+int qWebKitMinorVersion();
+%End
diff --git a/python/QtWebKit/qwebpage.sip b/python/QtWebKit/qwebpage.sip
new file mode 100644
index 0000000..88ddfd1
--- /dev/null
+++ b/python/QtWebKit/qwebpage.sip
@@ -0,0 +1,522 @@
+// qwebpage.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+%ModuleCode
+#include <qwebpage.h>
+%End
+%End
+
+%If (Qt_4_4_0 -)
+
+class QWebPage : QObject
+{
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+public:
+    enum NavigationType
+    {
+        NavigationTypeLinkClicked,
+        NavigationTypeFormSubmitted,
+        NavigationTypeBackOrForward,
+        NavigationTypeReload,
+        NavigationTypeFormResubmitted,
+        NavigationTypeOther,
+    };
+
+    enum WebAction
+    {
+        NoWebAction,
+        OpenLink,
+        OpenLinkInNewWindow,
+        OpenFrameInNewWindow,
+        DownloadLinkToDisk,
+        CopyLinkToClipboard,
+        OpenImageInNewWindow,
+        DownloadImageToDisk,
+        CopyImageToClipboard,
+        Back,
+        Forward,
+        Stop,
+        Reload,
+        Cut,
+        Copy,
+        Paste,
+        Undo,
+        Redo,
+        MoveToNextChar,
+        MoveToPreviousChar,
+        MoveToNextWord,
+        MoveToPreviousWord,
+        MoveToNextLine,
+        MoveToPreviousLine,
+        MoveToStartOfLine,
+        MoveToEndOfLine,
+        MoveToStartOfBlock,
+        MoveToEndOfBlock,
+        MoveToStartOfDocument,
+        MoveToEndOfDocument,
+        SelectNextChar,
+        SelectPreviousChar,
+        SelectNextWord,
+        SelectPreviousWord,
+        SelectNextLine,
+        SelectPreviousLine,
+        SelectStartOfLine,
+        SelectEndOfLine,
+        SelectStartOfBlock,
+        SelectEndOfBlock,
+        SelectStartOfDocument,
+        SelectEndOfDocument,
+        DeleteStartOfWord,
+        DeleteEndOfWord,
+        SetTextDirectionDefault,
+        SetTextDirectionLeftToRight,
+        SetTextDirectionRightToLeft,
+        ToggleBold,
+        ToggleItalic,
+        ToggleUnderline,
+        InspectElement,
+%If (Qt_4_5_0 -)
+        InsertParagraphSeparator,
+%End
+%If (Qt_4_5_0 -)
+        InsertLineSeparator,
+%End
+%If (Qt_4_5_0 -)
+        SelectAll,
+%End
+%If (Qt_4_6_0 -)
+        ReloadAndBypassCache,
+%End
+%If (Qt_4_6_0 -)
+        PasteAndMatchStyle,
+%End
+%If (Qt_4_6_0 -)
+        RemoveFormat,
+%End
+%If (Qt_4_6_0 -)
+        ToggleStrikethrough,
+%End
+%If (Qt_4_6_0 -)
+        ToggleSubscript,
+%End
+%If (Qt_4_6_0 -)
+        ToggleSuperscript,
+%End
+%If (Qt_4_6_0 -)
+        InsertUnorderedList,
+%End
+%If (Qt_4_6_0 -)
+        InsertOrderedList,
+%End
+%If (Qt_4_6_0 -)
+        Indent,
+%End
+%If (Qt_4_6_0 -)
+        Outdent,
+%End
+%If (Qt_4_6_0 -)
+        AlignCenter,
+%End
+%If (Qt_4_6_0 -)
+        AlignJustified,
+%End
+%If (Qt_4_6_0 -)
+        AlignLeft,
+%End
+%If (Qt_4_6_0 -)
+        AlignRight,
+%End
+%If (Qt_4_7_0 -)
+        StopScheduledPageRefresh,
+%End
+%If (Qt_4_8_0 -)
+        CopyImageUrlToClipboard,
+%End
+%If (Qt_5_0_0 -)
+        OpenLinkInThisWindow,
+%End
+    };
+
+    enum FindFlag
+    {
+        FindBackward,
+        FindCaseSensitively,
+        FindWrapsAroundDocument,
+%If (Qt_4_6_0 -)
+        HighlightAllOccurrences,
+%End
+    };
+
+    typedef QFlags<QWebPage::FindFlag> FindFlags;
+
+    enum LinkDelegationPolicy
+    {
+        DontDelegateLinks,
+        DelegateExternalLinks,
+        DelegateAllLinks,
+    };
+
+    enum WebWindowType
+    {
+        WebBrowserWindow,
+        WebModalDialog,
+    };
+
+    explicit QWebPage(QObject *parent /TransferThis/ = 0);
+    virtual ~QWebPage();
+    QWebFrame *mainFrame() const;
+    QWebFrame *currentFrame() const;
+    QWebHistory *history() const;
+    QWebSettings *settings() const;
+    void setView(QWidget *view /KeepReference/);
+    QWidget *view() const;
+    bool isModified() const;
+    QUndoStack *undoStack() const;
+    void setNetworkAccessManager(QNetworkAccessManager *manager /KeepReference/);
+    QNetworkAccessManager *networkAccessManager() const;
+    void setPluginFactory(QWebPluginFactory *factory /KeepReference/);
+    QWebPluginFactory *pluginFactory() const;
+    quint64 totalBytes() const;
+    quint64 bytesReceived() const;
+    QString selectedText() const;
+    QAction *action(QWebPage::WebAction action) const;
+    virtual void triggerAction(QWebPage::WebAction action, bool checked = false);
+    QSize viewportSize() const;
+    void setViewportSize(const QSize &size) const;
+    virtual bool event(QEvent *);
+    bool focusNextPrevChild(bool next);
+    QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+    bool findText(const QString &subString, QFlags<QWebPage::FindFlag> options = 0);
+    void setForwardUnsupportedContent(bool forward);
+    bool forwardUnsupportedContent() const;
+    void setLinkDelegationPolicy(QWebPage::LinkDelegationPolicy policy);
+    QWebPage::LinkDelegationPolicy linkDelegationPolicy() const;
+    void setPalette(const QPalette &palette);
+    QPalette palette() const;
+    bool swallowContextMenuEvent(QContextMenuEvent *event);
+    void updatePositionDependentActions(const QPoint &pos);
+
+    enum Extension
+    {
+%If (Qt_4_5_0 -)
+        ChooseMultipleFilesExtension,
+%End
+%If (Qt_4_6_0 -)
+        ErrorPageExtension,
+%End
+    };
+
+    class ExtensionOption
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+    };
+
+    class ExtensionReturn
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+    };
+
+    virtual bool extension(QWebPage::Extension extension, const QWebPage::ExtensionOption *option = 0, QWebPage::ExtensionReturn *output = 0);
+%VirtualCatcherCode
+        const sipTypeDef *option_type = sipType_QWebPage_ExtensionOption;
+        const sipTypeDef *return_type = sipType_QWebPage_ExtensionReturn;
+
+        #if QT_VERSION >= 0x040500
+        if (a0 == QWebPage::ChooseMultipleFilesExtension)
+        {
+            option_type = sipType_QWebPage_ChooseMultipleFilesExtensionOption;
+            return_type = sipType_QWebPage_ChooseMultipleFilesExtensionReturn;
+        }
+        #if QT_VERSION >= 0x040600
+        else if (a0 == QWebPage::ErrorPageExtension)
+        {
+            option_type = sipType_QWebPage_ErrorPageExtensionOption;
+            return_type = sipType_QWebPage_ErrorPageExtensionReturn;
+        }
+        #endif
+        #endif
+
+        PyObject *res_obj = sipCallMethod(&sipIsErr, sipMethod, "FDD",
+                a0, sipType_QWebPage_Extension,
+                a1, option_type, NULL,
+                a2, return_type, NULL);
+
+        if (res_obj)
+        {
+            sipParseResult(&sipIsErr, sipMethod, res_obj, "b", &sipRes);
+            Py_DECREF(res_obj);
+        }
+        else
+        {
+            sipIsErr = 1;
+        }
+%End
+
+    virtual bool supportsExtension(QWebPage::Extension extension) const;
+
+signals:
+    void loadFinished(bool ok);
+    void loadProgress(int progress);
+    void loadStarted();
+    void linkHovered(const QString &link, const QString &title, const QString &textContent);
+    void statusBarMessage(const QString &text);
+    void selectionChanged();
+    void frameCreated(QWebFrame *frame);
+    void geometryChangeRequested(const QRect &geom);
+    void repaintRequested(const QRect &dirtyRect);
+    void scrollRequested(int dx, int dy, const QRect &scrollViewRect);
+    void windowCloseRequested();
+    void printRequested(QWebFrame *frame);
+    void linkClicked(const QUrl &url);
+    void toolBarVisibilityChangeRequested(bool visible);
+    void statusBarVisibilityChangeRequested(bool visible);
+    void menuBarVisibilityChangeRequested(bool visible);
+    void unsupportedContent(QNetworkReply *reply);
+    void downloadRequested(const QNetworkRequest &request);
+    void microFocusChanged();
+
+protected:
+    virtual QWebPage *createWindow(QWebPage::WebWindowType type);
+    virtual QObject *createPlugin(const QString &classid, const QUrl &url, const QStringList &paramNames, const QStringList &paramValues);
+    virtual bool acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type);
+    virtual QString chooseFile(QWebFrame *originatingFrame, const QString &oldFile);
+    virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString &msg);
+    virtual bool javaScriptConfirm(QWebFrame *originatingFrame, const QString &msg);
+    virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Out/) /API=QString:2 - /;
+    virtual bool javaScriptPrompt(QWebFrame *originatingFrame, const QString &msg, const QString &defaultValue, QString *result /Constrained/) /API=QString: - 2/;
+    virtual void javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID);
+    virtual QString userAgentForUrl(const QUrl &url) const;
+
+public:
+%If (Qt_4_5_0 -)
+    void setContentEditable(bool editable);
+%End
+%If (Qt_4_5_0 -)
+    bool isContentEditable() const;
+%End
+%If (Qt_4_5_0 -)
+    QMenu *createStandardContextMenu() /Factory/;
+%End
+%If (Qt_4_5_0 -)
+
+    class ChooseMultipleFilesExtensionOption : QWebPage::ExtensionOption
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+    public:
+        QWebFrame *parentFrame;
+        QStringList suggestedFileNames;
+    };
+
+%End
+%If (Qt_4_5_0 -)
+
+    class ChooseMultipleFilesExtensionReturn : QWebPage::ExtensionReturn
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+    public:
+        QStringList fileNames;
+    };
+
+%End
+
+signals:
+%If (Qt_4_5_0 -)
+    void contentsChanged();
+%End
+%If (Qt_4_5_0 -)
+    void databaseQuotaExceeded(QWebFrame *frame, QString databaseName);
+%End
+%If (Qt_4_5_0 -)
+    void saveFrameStateRequested(QWebFrame *frame, QWebHistoryItem *item);
+%End
+%If (Qt_4_5_0 -)
+    void restoreFrameStateRequested(QWebFrame *frame);
+%End
+
+public:
+%If (Qt_4_6_0 -)
+    QWebFrame *frameAt(const QPoint &pos) const;
+%End
+%If (Qt_4_6_0 -)
+    QSize preferredContentsSize() const;
+%End
+%If (Qt_4_6_0 -)
+    void setPreferredContentsSize(const QSize &size) const;
+%End
+%If (Qt_4_6_0 -)
+
+    enum ErrorDomain
+    {
+        QtNetwork,
+        Http,
+        WebKit,
+    };
+
+%End
+%If (Qt_4_6_0 -)
+
+    class ErrorPageExtensionOption : QWebPage::ExtensionOption
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+    public:
+        QUrl url;
+        QWebFrame *frame;
+        QWebPage::ErrorDomain domain;
+        int error;
+        QString errorString;
+    };
+
+%End
+%If (Qt_4_6_0 -)
+
+    class ErrorPageExtensionReturn : QWebPage::ExtensionReturn
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+    public:
+        ErrorPageExtensionReturn();
+        QString contentType;
+        QString encoding;
+        QUrl baseUrl;
+        QByteArray content;
+    };
+
+%End
+%If (Qt_5_0_0 -)
+    virtual bool shouldInterruptJavaScript();
+%End
+
+public slots:
+%If (Qt_4_6_0 - Qt_5_0_0)
+    bool shouldInterruptJavaScript();
+%End
+
+public:
+%If (Qt_4_8_0 -)
+
+    enum PermissionPolicy
+    {
+        PermissionUnknown,
+        PermissionGrantedByUser,
+        PermissionDeniedByUser,
+    };
+
+%End
+%If (Qt_4_8_0 -)
+
+    enum Feature
+    {
+        Notifications,
+        Geolocation,
+    };
+
+%End
+%If (Qt_4_8_0 -)
+
+    class ViewportAttributes
+    {
+%TypeHeaderCode
+#include <qwebpage.h>
+%End
+
+    public:
+        ViewportAttributes();
+        ViewportAttributes(const QWebPage::ViewportAttributes &other);
+        ~ViewportAttributes();
+        qreal initialScaleFactor() const;
+        qreal minimumScaleFactor() const;
+        qreal maximumScaleFactor() const;
+        qreal devicePixelRatio() const;
+        bool isUserScalable() const;
+        bool isValid() const;
+%If (Qt_5_0_0 -)
+        QSizeF size() const;
+%End
+%If (- Qt_5_0_0)
+        QSize size() const;
+%End
+    };
+
+%End
+%If (Qt_4_8_0 -)
+    bool hasSelection() const;
+%End
+%If (Qt_4_8_0 -)
+    QString selectedHtml() const;
+%End
+%If (Qt_4_8_0 -)
+    QWebPage::ViewportAttributes viewportAttributesForSize(const QSize &availableSize) const;
+%End
+%If (Qt_4_8_0 -)
+    void setActualVisibleContentRect(const QRect &rect) const;
+%End
+%If (Qt_4_8_0 -)
+    void setFeaturePermission(QWebFrame *frame, QWebPage::Feature feature, QWebPage::PermissionPolicy policy);
+%End
+%If (Qt_4_8_0 -)
+    QStringList supportedContentTypes() const;
+%End
+%If (Qt_4_8_0 -)
+    bool supportsContentType(const QString &mimeType) const;
+%End
+
+signals:
+%If (Qt_5_0_0 -)
+    void applicationCacheQuotaExceeded(QWebSecurityOrigin *origin, quint64 defaultOriginQuota, quint64 totalSpaceNeeded);
+%End
+%If (Qt_4_8_0 - Qt_5_0_0)
+    void applicationCacheQuotaExceeded(QWebSecurityOrigin *origin, quint64 defaultOriginQuota);
+%End
+%If (Qt_4_8_0 -)
+    void viewportChangeRequested();
+%End
+%If (Qt_4_8_0 -)
+    void featurePermissionRequested(QWebFrame *frame, QWebPage::Feature feature);
+%End
+%If (Qt_4_8_0 -)
+    void featurePermissionRequestCanceled(QWebFrame *frame, QWebPage::Feature feature);
+%End
+};
+
+%End
+%If (Qt_4_4_0 -)
+QFlags<QWebPage::FindFlag> operator|(QWebPage::FindFlag f1, QFlags<QWebPage::FindFlag> f2);
+%End
diff --git a/python/QtWebKit/qwebpluginfactory.sip b/python/QtWebKit/qwebpluginfactory.sip
new file mode 100644
index 0000000..d6e9795
--- /dev/null
+++ b/python/QtWebKit/qwebpluginfactory.sip
@@ -0,0 +1,88 @@
+// qwebpluginfactory.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+
+class QWebPluginFactory : QObject
+{
+%TypeHeaderCode
+#include <qwebpluginfactory.h>
+%End
+
+public:
+    struct MimeType
+    {
+%TypeHeaderCode
+#include <qwebpluginfactory.h>
+%End
+
+        QString name;
+        QString description;
+        QStringList fileExtensions;
+%If (Qt_4_6_0 -)
+        bool operator==(const QWebPluginFactory::MimeType &other) const;
+%End
+%If (Qt_4_6_0 -)
+        bool operator!=(const QWebPluginFactory::MimeType &other) const;
+%End
+    };
+
+    struct Plugin
+    {
+%TypeHeaderCode
+#include <qwebpluginfactory.h>
+%End
+
+        QString name;
+        QString description;
+        QList<QWebPluginFactory::MimeType> mimeTypes;
+    };
+
+    explicit QWebPluginFactory(QObject *parent /TransferThis/ = 0);
+    virtual ~QWebPluginFactory();
+    virtual QList<QWebPluginFactory::Plugin> plugins() const = 0;
+    virtual void refreshPlugins();
+    virtual QObject *create(const QString &mimeType, const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) const = 0 /Factory/;
+
+    enum Extension
+    {
+    };
+
+    class ExtensionOption
+    {
+%TypeHeaderCode
+#include <qwebpluginfactory.h>
+%End
+    };
+
+    class ExtensionReturn
+    {
+%TypeHeaderCode
+#include <qwebpluginfactory.h>
+%End
+    };
+
+    virtual bool extension(QWebPluginFactory::Extension extension, const QWebPluginFactory::ExtensionOption *option = 0, QWebPluginFactory::ExtensionReturn *output = 0);
+    virtual bool supportsExtension(QWebPluginFactory::Extension extension) const;
+};
+
+%End
diff --git a/python/QtWebKit/qwebsecurityorigin.sip b/python/QtWebKit/qwebsecurityorigin.sip
new file mode 100644
index 0000000..b5eca42
--- /dev/null
+++ b/python/QtWebKit/qwebsecurityorigin.sip
@@ -0,0 +1,56 @@
+// qwebsecurityorigin.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_5_0 -)
+
+class QWebSecurityOrigin
+{
+%TypeHeaderCode
+#include <qwebsecurityorigin.h>
+%End
+
+public:
+    QWebSecurityOrigin(const QWebSecurityOrigin &other);
+    ~QWebSecurityOrigin();
+    static QList<QWebSecurityOrigin> allOrigins();
+    QString scheme() const;
+    QString host() const;
+    int port() const;
+    qint64 databaseUsage() const;
+    qint64 databaseQuota() const;
+    void setDatabaseQuota(qint64 quota);
+    QList<QWebDatabase> databases() const;
+%If (Qt_4_6_0 -)
+    static void addLocalScheme(const QString &scheme);
+%End
+%If (Qt_4_6_0 -)
+    static void removeLocalScheme(const QString &scheme);
+%End
+%If (Qt_4_6_0 -)
+    static QStringList localSchemes();
+%End
+%If (Qt_4_8_0 -)
+    void setApplicationCacheQuota(qint64 quota);
+%End
+};
+
+%End
diff --git a/python/QtWebKit/qwebsettings.sip b/python/QtWebKit/qwebsettings.sip
new file mode 100644
index 0000000..1aa3e17
--- /dev/null
+++ b/python/QtWebKit/qwebsettings.sip
@@ -0,0 +1,237 @@
+// qwebsettings.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+
+class QWebSettings
+{
+%TypeHeaderCode
+#include <qwebsettings.h>
+%End
+
+public:
+    enum FontFamily
+    {
+        StandardFont,
+        FixedFont,
+        SerifFont,
+        SansSerifFont,
+        CursiveFont,
+        FantasyFont,
+    };
+
+    enum WebAttribute
+    {
+        AutoLoadImages,
+        JavascriptEnabled,
+        JavaEnabled,
+        PluginsEnabled,
+        PrivateBrowsingEnabled,
+        JavascriptCanOpenWindows,
+%If (Qt_4_8_0 -)
+        JavascriptCanCloseWindows,
+%End
+        JavascriptCanAccessClipboard,
+        DeveloperExtrasEnabled,
+        LinksIncludedInFocusChain,
+%If (Qt_4_5_0 -)
+        ZoomTextOnly,
+%End
+%If (Qt_4_5_0 -)
+        PrintElementBackgrounds,
+%End
+%If (Qt_4_5_0 -)
+        OfflineStorageDatabaseEnabled,
+%End
+%If (Qt_4_5_0 -)
+        OfflineWebApplicationCacheEnabled,
+%End
+%If (Qt_4_5_0 -)
+        LocalStorageDatabaseEnabled,
+%End
+%If (Qt_4_6_0 -)
+        LocalStorageEnabled,
+%End
+%If (Qt_4_6_0 -)
+        LocalContentCanAccessRemoteUrls,
+%End
+%If (Qt_4_6_0 -)
+        DnsPrefetchEnabled,
+%End
+%If (Qt_4_7_0 -)
+        XSSAuditingEnabled,
+%End
+%If (Qt_4_7_0 -)
+        AcceleratedCompositingEnabled,
+%End
+%If (Qt_4_7_0 -)
+        SpatialNavigationEnabled,
+%End
+%If (Qt_4_7_0 -)
+        LocalContentCanAccessFileUrls,
+%End
+%If (Qt_4_7_0 -)
+        TiledBackingStoreEnabled,
+%End
+%If (Qt_4_7_0 -)
+        FrameFlatteningEnabled,
+%End
+%If (Qt_4_7_0 -)
+        SiteSpecificQuirksEnabled,
+%End
+%If (Qt_4_8_0 -)
+        WebGLEnabled,
+%End
+%If (Qt_4_8_0 -)
+        HyperlinkAuditingEnabled,
+%End
+%If (Qt_5_0_0 -)
+        CSSRegionsEnabled,
+%End
+%If (Qt_5_0_0 -)
+        CSSGridLayoutEnabled,
+%End
+%If (Qt_5_0_0 -)
+        ScrollAnimatorEnabled,
+%End
+%If (Qt_5_0_0 -)
+        CaretBrowsingEnabled,
+%End
+%If (Qt_5_0_0 -)
+        NotificationsEnabled,
+%End
+    };
+
+    enum WebGraphic
+    {
+        MissingImageGraphic,
+        MissingPluginGraphic,
+        DefaultFrameIconGraphic,
+        TextAreaSizeGripCornerGraphic,
+%If (Qt_4_8_0 -)
+        InputSpeechButtonGraphic,
+%End
+%If (Qt_4_8_0 -)
+        SearchCancelButtonGraphic,
+%End
+%If (Qt_4_8_0 -)
+        SearchCancelButtonPressedGraphic,
+%End
+    };
+
+    enum FontSize
+    {
+        MinimumFontSize,
+        MinimumLogicalFontSize,
+        DefaultFontSize,
+        DefaultFixedFontSize,
+    };
+
+    static QWebSettings *globalSettings();
+    void setFontFamily(QWebSettings::FontFamily which, const QString &family);
+    QString fontFamily(QWebSettings::FontFamily which) const;
+    void resetFontFamily(QWebSettings::FontFamily which);
+    void setFontSize(QWebSettings::FontSize type, int size);
+    int fontSize(QWebSettings::FontSize type) const;
+    void resetFontSize(QWebSettings::FontSize type);
+    void setAttribute(QWebSettings::WebAttribute attr, bool on);
+    bool testAttribute(QWebSettings::WebAttribute attr) const;
+    void resetAttribute(QWebSettings::WebAttribute attr);
+    void setUserStyleSheetUrl(const QUrl &location);
+    QUrl userStyleSheetUrl() const;
+    static void setIconDatabasePath(const QString &location);
+    static QString iconDatabasePath();
+    static void clearIconDatabase();
+    static QIcon iconForUrl(const QUrl &url);
+    static void setWebGraphic(QWebSettings::WebGraphic type, const QPixmap &graphic);
+    static QPixmap webGraphic(QWebSettings::WebGraphic type);
+    static void setMaximumPagesInCache(int pages);
+    static int maximumPagesInCache();
+    static void setObjectCacheCapacities(int cacheMinDeadCapacity, int cacheMaxDead, int totalCapacity);
+
+private:
+    QWebSettings();
+    QWebSettings(const QWebSettings &);
+    ~QWebSettings();
+
+public:
+%If (Qt_4_5_0 -)
+    static void setOfflineStoragePath(const QString &path);
+%End
+%If (Qt_4_5_0 -)
+    static QString offlineStoragePath();
+%End
+%If (Qt_4_5_0 -)
+    static void setOfflineStorageDefaultQuota(qint64 maximumSize);
+%End
+%If (Qt_4_5_0 -)
+    static qint64 offlineStorageDefaultQuota();
+%End
+%If (Qt_4_6_0 -)
+    void setDefaultTextEncoding(const QString &encoding);
+%End
+%If (Qt_4_6_0 -)
+    QString defaultTextEncoding() const;
+%End
+%If (Qt_4_6_0 -)
+    static void setOfflineWebApplicationCachePath(const QString &path);
+%End
+%If (Qt_4_6_0 -)
+    static QString offlineWebApplicationCachePath();
+%End
+%If (Qt_4_6_0 -)
+    static void setOfflineWebApplicationCacheQuota(qint64 maximumSize);
+%End
+%If (Qt_4_6_0 -)
+    static qint64 offlineWebApplicationCacheQuota();
+%End
+%If (Qt_4_6_0 -)
+    void setLocalStoragePath(const QString &path);
+%End
+%If (Qt_4_6_0 -)
+    QString localStoragePath() const;
+%End
+%If (Qt_4_6_0 -)
+    static void clearMemoryCaches();
+%End
+%If (Qt_4_6_0 -)
+    static void enablePersistentStorage(const QString &path = QString());
+%End
+%If (Qt_5_0_0 -)
+
+    enum ThirdPartyCookiePolicy
+    {
+        AlwaysAllowThirdPartyCookies,
+        AlwaysBlockThirdPartyCookies,
+        AllowThirdPartyWithExistingCookies,
+    };
+
+%End
+%If (Qt_5_0_0 -)
+    void setThirdPartyCookiePolicy(QWebSettings::ThirdPartyCookiePolicy);
+%End
+%If (Qt_5_0_0 -)
+    QWebSettings::ThirdPartyCookiePolicy thirdPartyCookiePolicy() const;
+%End
+};
+
+%End
diff --git a/python/QtWebKit/qwebview.sip b/python/QtWebKit/qwebview.sip
new file mode 100644
index 0000000..80318d4
--- /dev/null
+++ b/python/QtWebKit/qwebview.sip
@@ -0,0 +1,167 @@
+// qwebview.sip generated by MetaSIP
+//
+// This file is part of the QtWebKit Python extension module.
+//
+// Copyright (c) 2015 Riverbank Computing Limited <info at riverbankcomputing.com>
+//
+// This file is part of PyQt4.
+//
+// This file may be used under the terms of the GNU General Public License
+// version 3.0 as published by the Free Software Foundation and appearing in
+// the file LICENSE included in the packaging of this file.  Please review the
+// following information to ensure the GNU General Public License version 3.0
+// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+//
+// If you do not wish to use this file under the terms of the GPL version 3.0
+// then you may purchase a commercial license.  For more information contact
+// info at riverbankcomputing.com.
+//
+// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+
+%If (Qt_4_4_0 -)
+
+class QWebView : QWidget
+{
+%TypeHeaderCode
+#include <qwebview.h>
+%End
+
+%ConvertToSubClassCode
+    static struct class_graph {
+            const char *name;
+            sipTypeDef **type;
+            int yes, no;
+        } graph[] = {
+            {sipName_QWebPluginFactory, &sipType_QWebPluginFactory, -1, 1},
+            {sipName_QWebFrame, &sipType_QWebFrame, -1, 2},
+            {sipName_QWebPage, &sipType_QWebPage, -1, 3},
+            {sipName_QWebHistoryInterface, &sipType_QWebHistoryInterface, -1, 4},
+            {sipName_QWebView, &sipType_QWebView, -1, 5},
+    #if QT_VERSION >= 0x040600
+            {sipName_QWebInspector, &sipType_QWebInspector, -1, 6},
+            {sipName_QGraphicsWebView, &sipType_QGraphicsWebView, -1, -1},
+    #else
+            {0, 0, -1, 6},
+            {0, 0, -1, -1},
+    #endif
+        };
+
+        int i = 0;
+
+        sipType = 0;
+
+        do
+        {
+            struct class_graph *cg = &graph[i];
+
+            if (cg->name != NULL && sipCpp->inherits(cg->name))
+            {
+                sipType = *cg->type;
+                i = cg->yes;
+            }
+            else
+                i = cg->no;
+        }
+        while (i >= 0);
+%End
+
+public:
+    explicit QWebView(QWidget *parent /TransferThis/ = 0);
+    virtual ~QWebView();
+    QWebPage *page() const;
+    void setPage(QWebPage *page /KeepReference/);
+    void load(const QUrl &url) /ReleaseGIL/;
+    void load(const QNetworkRequest &request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray &body = QByteArray()) /ReleaseGIL/;
+    void setHtml(const QString &html, const QUrl &baseUrl = QUrl());
+    void setContent(const QByteArray &data, const QString &mimeType /DocValue="Py_v3:''"/ = QString(), const QUrl &baseUrl = QUrl());
+    QWebHistory *history() const;
+    QWebSettings *settings() const;
+    QString title() const;
+    void setUrl(const QUrl &url);
+    QUrl url() const;
+    QIcon icon() const;
+    QString selectedText() const;
+    QAction *pageAction(QWebPage::WebAction action) const;
+    void triggerPageAction(QWebPage::WebAction action, bool checked = false);
+    bool isModified() const;
+    virtual QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+    virtual QSize sizeHint() const;
+    void setTextSizeMultiplier(qreal factor);
+    qreal textSizeMultiplier() const;
+    bool findText(const QString &subString, QFlags<QWebPage::FindFlag> options = 0);
+    virtual bool event(QEvent *);
+
+public slots:
+    void stop();
+    void back();
+    void forward();
+    void reload();
+%If (PyQt_Printer)
+    void print(QPrinter *printer) const /PyName=print_/;
+%End
+%If (Py_v3)
+%If (PyQt_Printer)
+    void print(QPrinter *printer) const;
+%End
+%End
+
+signals:
+    void loadStarted();
+    void loadProgress(int progress);
+    void loadFinished(bool);
+    void titleChanged(const QString &title);
+    void statusBarMessage(const QString &text);
+    void linkClicked(const QUrl &url);
+    void selectionChanged();
+    void iconChanged();
+    void urlChanged(const QUrl &url);
+
+protected:
+    virtual QWebView *createWindow(QWebPage::WebWindowType type);
+    virtual void resizeEvent(QResizeEvent *e);
+    virtual void paintEvent(QPaintEvent *ev);
+    virtual void changeEvent(QEvent *);
+    virtual void mouseMoveEvent(QMouseEvent *);
+    virtual void mousePressEvent(QMouseEvent *);
+    virtual void mouseDoubleClickEvent(QMouseEvent *);
+    virtual void mouseReleaseEvent(QMouseEvent *);
+    virtual void contextMenuEvent(QContextMenuEvent *);
+    virtual void wheelEvent(QWheelEvent *);
+    virtual void keyPressEvent(QKeyEvent *);
+    virtual void keyReleaseEvent(QKeyEvent *);
+    virtual void dragEnterEvent(QDragEnterEvent *);
+    virtual void dragLeaveEvent(QDragLeaveEvent *);
+    virtual void dragMoveEvent(QDragMoveEvent *);
+    virtual void dropEvent(QDropEvent *);
+    virtual void focusInEvent(QFocusEvent *);
+    virtual void focusOutEvent(QFocusEvent *);
+    virtual void inputMethodEvent(QInputMethodEvent *);
+    virtual bool focusNextPrevChild(bool next);
+
+public:
+%If (Qt_4_5_0 -)
+    qreal zoomFactor() const;
+%End
+%If (Qt_4_5_0 -)
+    void setZoomFactor(qreal factor);
+%End
+%If (Qt_4_6_0 -)
+    QFlags<QPainter::RenderHint> renderHints() const;
+%End
+%If (Qt_4_6_0 -)
+    void setRenderHints(QFlags<QPainter::RenderHint> hints);
+%End
+%If (Qt_4_6_0 -)
+    void setRenderHint(QPainter::RenderHint hint, bool enabled = true);
+%End
+%If (Qt_4_8_0 -)
+    bool hasSelection() const;
+%End
+%If (Qt_4_8_0 -)
+    QString selectedHtml() const;
+%End
+};
+
+%End
diff --git a/python/core/qgsogcutils.sip b/python/core/qgsogcutils.sip
index 57fa848..b9177a1 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
+     */
+    static QDomElement expressionToOgcExpression( const QgsExpression& exp, QDomDocument& doc, QString* errorMessage = nullptr );
+
 };
 
diff --git a/python/core/qgsstringutils.sip b/python/core/qgsstringutils.sip
index a030161..7c133c7 100644
--- a/python/core/qgsstringutils.sip
+++ b/python/core/qgsstringutils.sip
@@ -10,6 +10,25 @@ class QgsStringUtils
 #include <qgsstringutils.h>
 %End
   public:
+
+
+    //! Capitalization options
+    enum Capitalization
+    {
+      MixedCase, //!< Mixed case, ie no change
+      AllUppercase, //!< Convert all characters to uppercase
+      AllLowercase,  //!< Convert all characters to lowercase
+      ForceFirstLetterToCapital, //!< Convert just the first letter of each word to uppercase, leave the rest untouched
+    };
+
+    /** Converts a string by applying capitalization rules to the string.
+     * @param string input string
+     * @param capitalization capitalization type to apply
+     * @return capitalized string
+     * @note added in QGIS 3.0
+     */
+    static QString capitalize( const QString& string, Capitalization capitalization );
+
     /** Returns the Levenshtein edit distance between two strings. This equates to the minimum
      * number of character edits (insertions, deletions or substitutions) required to change
      * one string to another.
diff --git a/python/core/qgsvectorlayer.sip b/python/core/qgsvectorlayer.sip
index 3a5fbbc..d0e983e 100644
--- a/python/core/qgsvectorlayer.sip
+++ b/python/core/qgsvectorlayer.sip
@@ -564,7 +564,23 @@ class QgsVectorLayer : QgsMapLayer
      */
     bool writeStyle( 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 );
 
     /**
@@ -1713,4 +1729,3 @@ class QgsVectorLayer : QgsMapLayer
 
 
 };
-
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 16eecec..5c871ee 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 9086be5..66c69ff 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 3ff0a3b..961e4ca 100644
--- a/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip
+++ b/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip
@@ -108,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 436fc50..ce4a8ec 100644
--- a/python/core/symbology-ng/qgsrendererv2.sip
+++ b/python/core/symbology-ng/qgsrendererv2.sip
@@ -212,6 +212,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
+    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
@@ -227,6 +230,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 7ab1b8d..38075c3 100644
--- a/python/core/symbology-ng/qgsrulebasedrendererv2.sip
+++ b/python/core/symbology-ng/qgsrulebasedrendererv2.sip
@@ -87,7 +87,7 @@ class QgsRuleBasedRendererV2 : QgsFeatureRendererV2
          */
         bool needsGeometry() const;
 
-	//! @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
@@ -203,7 +203,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 );
@@ -366,7 +371,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 7db1123..f374881 100644
--- a/python/core/symbology-ng/qgssymbollayerv2.sip
+++ b/python/core/symbology-ng/qgssymbollayerv2.sip
@@ -10,56 +10,56 @@ class QgsSymbolLayerV2
   {
     case QgsSymbolV2::Marker:
       if (dynamic_cast<QgsEllipseSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsEllipseSymbolLayerV2;
+    sipType = sipType_QgsEllipseSymbolLayerV2;
       else if (dynamic_cast<QgsFontMarkerSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsFontMarkerSymbolLayerV2;
+    sipType = sipType_QgsFontMarkerSymbolLayerV2;
       else if (dynamic_cast<QgsSimpleMarkerSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsSimpleMarkerSymbolLayerV2;
+    sipType = sipType_QgsSimpleMarkerSymbolLayerV2;
       else if (dynamic_cast<QgsFilledMarkerSymbolLayer*>(sipCpp) != NULL)
-	sipType = sipType_QgsFilledMarkerSymbolLayer;
+    sipType = sipType_QgsFilledMarkerSymbolLayer;
       else if (dynamic_cast<QgsSvgMarkerSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsSvgMarkerSymbolLayerV2;
+    sipType = sipType_QgsSvgMarkerSymbolLayerV2;
       else if (dynamic_cast<QgsVectorFieldSymbolLayer*>(sipCpp) != NULL)
-	sipType = sipType_QgsVectorFieldSymbolLayer;
+    sipType = sipType_QgsVectorFieldSymbolLayer;
       else
-	sipType = sipType_QgsMarkerSymbolLayerV2;
+    sipType = sipType_QgsMarkerSymbolLayerV2;
       break;
 
     case QgsSymbolV2::Line:
       if (dynamic_cast<QgsMarkerLineSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsMarkerLineSymbolLayerV2;
+    sipType = sipType_QgsMarkerLineSymbolLayerV2;
       else if (dynamic_cast<QgsSimpleLineSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsSimpleLineSymbolLayerV2;
+    sipType = sipType_QgsSimpleLineSymbolLayerV2;
       else if (dynamic_cast<QgsArrowSymbolLayer*>(sipCpp) != NULL)
-	sipType = sipType_QgsArrowSymbolLayer;
+    sipType = sipType_QgsArrowSymbolLayer;
       else
-	sipType = sipType_QgsLineSymbolLayerV2;
+    sipType = sipType_QgsLineSymbolLayerV2;
       break;
 
     case QgsSymbolV2::Fill:
       if (dynamic_cast<QgsSimpleFillSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsSimpleFillSymbolLayerV2;
+    sipType = sipType_QgsSimpleFillSymbolLayerV2;
       else if (dynamic_cast<QgsImageFillSymbolLayer*>(sipCpp) != NULL)
       {
-	if (dynamic_cast<QgsLinePatternFillSymbolLayer*>(sipCpp) != NULL)
-	  sipType = sipType_QgsLinePatternFillSymbolLayer;
-	else if (dynamic_cast<QgsPointPatternFillSymbolLayer*>(sipCpp) != NULL)
-	  sipType = sipType_QgsPointPatternFillSymbolLayer;
-	else if (dynamic_cast<QgsSVGFillSymbolLayer*>(sipCpp) != NULL)
-	  sipType = sipType_QgsSVGFillSymbolLayer;
-	else if (dynamic_cast<QgsRasterFillSymbolLayer*>(sipCpp) != NULL)
-	  sipType = sipType_QgsRasterFillSymbolLayer;
-	else
-	  sipType = sipType_QgsImageFillSymbolLayer;
+    if (dynamic_cast<QgsLinePatternFillSymbolLayer*>(sipCpp) != NULL)
+      sipType = sipType_QgsLinePatternFillSymbolLayer;
+    else if (dynamic_cast<QgsPointPatternFillSymbolLayer*>(sipCpp) != NULL)
+      sipType = sipType_QgsPointPatternFillSymbolLayer;
+    else if (dynamic_cast<QgsSVGFillSymbolLayer*>(sipCpp) != NULL)
+      sipType = sipType_QgsSVGFillSymbolLayer;
+    else if (dynamic_cast<QgsRasterFillSymbolLayer*>(sipCpp) != NULL)
+      sipType = sipType_QgsRasterFillSymbolLayer;
+    else
+      sipType = sipType_QgsImageFillSymbolLayer;
       }
       else if (dynamic_cast<QgsCentroidFillSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsCentroidFillSymbolLayerV2;
+    sipType = sipType_QgsCentroidFillSymbolLayerV2;
       else if (dynamic_cast<QgsGradientFillSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsGradientFillSymbolLayerV2;
+    sipType = sipType_QgsGradientFillSymbolLayerV2;
       else if (dynamic_cast<QgsShapeburstFillSymbolLayerV2*>(sipCpp) != NULL)
-	sipType = sipType_QgsShapeburstFillSymbolLayerV2;
+    sipType = sipType_QgsShapeburstFillSymbolLayerV2;
       else
-	sipType = sipType_QgsFillSymbolLayerV2;
+    sipType = sipType_QgsFillSymbolLayerV2;
       break;
 
     case QgsSymbolV2::Hybrid:
@@ -111,6 +111,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;
@@ -527,6 +528,7 @@ class QgsMarkerSymbolLayerV2 : QgsSymbolLayerV2
      */
     VerticalAnchorPoint verticalAnchorPoint() const;
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const;
 
     /** Writes the symbol layer definition as a SLD XML element.
diff --git a/python/core/symbology-ng/qgssymbollayerv2utils.sip b/python/core/symbology-ng/qgssymbollayerv2utils.sip
index 3ef316d..3f88173 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 );
 
@@ -424,4 +425,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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+      */
+    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 d97b684..0d5786d 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/gui/qgsmessagebar.sip b/python/gui/qgsmessagebar.sip
index ad3ba32..0d74447 100644
--- a/python/gui/qgsmessagebar.sip
+++ b/python/gui/qgsmessagebar.sip
@@ -48,9 +48,9 @@ class QgsMessageBar: QFrame
     static QgsMessageBarItem* createMessage( QWidget *widget, QWidget *parent = 0 ) /Factory/;
 
     //! convenience method for pushing a message to the bar
-    void pushMessage( const QString &text, MessageLevel level = INFO, int duration = 0 );
+    void pushMessage( const QString &text, MessageLevel level = INFO, int duration = 5 );
     //! convenience method for pushing a message with title to the bar
-    void pushMessage( const QString &title, const QString &text, MessageLevel level = INFO, int duration = 0 );
+    void pushMessage( const QString &title, const QString &text, MessageLevel level = INFO, int duration = 5 );
 
     QgsMessageBarItem *currentItem();
 
diff --git a/python/plugins/GdalTools/tools/widgetBatchBase.py b/python/plugins/GdalTools/tools/widgetBatchBase.py
index 48f2029..d8e1527 100644
--- a/python/plugins/GdalTools/tools/widgetBatchBase.py
+++ b/python/plugins/GdalTools/tools/widgetBatchBase.py
@@ -104,7 +104,7 @@ class GdalToolsBaseBatchWidget(BasePluginWidget):
             outFile = self.outFiles[index]
 
         args = self.getBatchArguments(self.inFiles[index], outFile)
-        self.base.refreshArgs.emit(args)
+        self.base.refreshArgs(args)
         BasePluginWidget.onRun(self)
 
     def onFinished(self, exitCode, status):
diff --git a/python/plugins/db_manager/db_plugins/spatialite/plugin.py b/python/plugins/db_manager/db_plugins/spatialite/plugin.py
index c03d86c..5c946bc 100644
--- a/python/plugins/db_manager/db_plugins/spatialite/plugin.py
+++ b/python/plugins/db_manager/db_plugins/spatialite/plugin.py
@@ -99,7 +99,7 @@ class SpatiaLiteDBPlugin(DBPlugin):
         uri = QgsDataSourceURI()
         uri.setDatabase(filename)
         self.addConnection(conn_name, uri)
-        index.internalPointer().itemChanged.emit()
+        index.internalPointer().itemChanged()
 
 
 class SLDatabase(Database):
diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithm.py b/python/plugins/processing/algs/gdal/GdalAlgorithm.py
index 2c5263f..a0a3f53 100644
--- a/python/plugins/processing/algs/gdal/GdalAlgorithm.py
+++ b/python/plugins/processing/algs/gdal/GdalAlgorithm.py
@@ -28,6 +28,7 @@ __copyright__ = '(C) 2012, Victor Olaya'
 __revision__ = '$Format:%H$'
 
 import os
+import re
 
 from qgis.PyQt.QtGui import QIcon
 
@@ -59,7 +60,9 @@ class GdalAlgorithm(GeoAlgorithm):
                     c = c.replace(layer.source(), exported)
                     if os.path.isfile(layer.source()):
                         fileName = os.path.splitext(os.path.split(layer.source())[1])[0]
-                        c = c.replace(fileName, exportedFileName)
+                        c = re.sub('[\s]{}[\s]'.format(fileName), ' ' + exportedFileName + ' ', c)
+                        c = re.sub('[\s]{}'.format(fileName), ' ' + exportedFileName, c)
+                        c = re.sub('["\']{}["\']'.format(fileName), "'" + exportedFileName + "'", c)
 
             commands[i] = c
         GdalUtils.runGdal(commands, progress)
diff --git a/python/plugins/processing/algs/gdal/ogr2ogronesidebuffer.py b/python/plugins/processing/algs/gdal/ogr2ogronesidebuffer.py
index a16cb51..d399cff 100644
--- a/python/plugins/processing/algs/gdal/ogr2ogronesidebuffer.py
+++ b/python/plugins/processing/algs/gdal/ogr2ogronesidebuffer.py
@@ -83,69 +83,49 @@ class Ogr2OgrOneSideBuffer(GdalAlgorithm):
 
     def getConsoleCommands(self):
         inLayer = self.getParameterValue(self.INPUT_LAYER)
-        ogrLayer = ogrConnectionString(inLayer)[1:-1]
-        layername = "'" + ogrLayerName(inLayer) + "'"
         operation = self.getParameterValue(self.OPERATION)
-        geometry = unicode(self.getParameterValue(self.GEOMETRY))
-        distance = unicode(self.getParameterValue(self.RADIUS))
-        leftright = self.LEFTRIGHTLIST[self.getParameterValue(self.LEFTRIGHT)]
+        geometry = self.getParameterValue(self.GEOMETRY)
+        distance = self.getParameterValue(self.RADIUS)
+        leftright = self.getParameterValue(self.LEFTRIGHT)
         dissolveall = self.getParameterValue(self.DISSOLVEALL)
-        field = unicode(self.getParameterValue(self.FIELD))
+        field = self.getParameterValue(self.FIELD)
         multi = self.getParameterValue(self.MULTI)
+        options = self.getParameterValue(self.OPTIONS)
+
+        ogrLayer = ogrConnectionString(inLayer)[1:-1]
+        layername = "'" + ogrLayerName(inLayer) + "'"
 
         output = self.getOutputFromName(self.OUTPUT_LAYER)
         outFile = output.value
-
         output = ogrConnectionString(outFile)
-        options = unicode(self.getParameterValue(self.OPTIONS))
+
+        layername = ogrLayerName(inLayer)
 
         arguments = []
         arguments.append(output)
         arguments.append(ogrLayer)
-        arguments.append(ogrLayerName(inLayer))
-        if dissolveall or field != 'None':
+        arguments.append(layername)
+        arguments.append('-dialect')
+        arguments.append('sqlite')
+        arguments.append('-sql')
+
+        if dissolveall or field is not None:
             if operation == 0:
-                arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_SingleSidedBuffer(')
+                sql = "SELECT ST_Union(ST_SingleSidedBuffer({}, {}, {})), * FROM '{}'".format(geometry, distance, leftright, layername)
             else:
-                arguments.append('-dialect sqlite -sql "SELECT ST_Union(ST_OffsetCurve(')
+                sql = "SELECT ST_Union(ST_OffsetCurve({}, {}, {})) * FROM '{}'".format(geometry, distance, leftright, layername)
         else:
             if operation == 0:
-                arguments.append('-dialect sqlite -sql "SELECT ST_SingleSidedBuffer(')
-            else:
-                arguments.append('-dialect sqlite -sql "SELECT ST_OffsetCurve(')
-        arguments.append(geometry)
-        arguments.append(',')
-        arguments.append(distance)
-        if dissolveall or field != 'None':
-            if leftright == 'Left':
-                if operation == 0:
-                    arguments.append(',0)),*')
-                else:
-                    arguments.append(')),*')
-            else:
-                if operation == 0:
-                    arguments.append(',1)),*')
-                else:
-                    arguments.append(')),*')
-        else:
-            if leftright == 'Left':
-                if operation == 0:
-                    arguments.append(',0),*')
-                else:
-                    arguments.append('),*')
+                sql = "SELECT ST_SingleSidedBuffer({},{},{}), * FROM '{}'".format(geometry, distance, leftright, layername)
             else:
-                if operation == 0:
-                    arguments.append(',1),*')
-                else:
-                    arguments.append('),*')
-        arguments.append('FROM')
-        arguments.append(layername)
-        if field != 'None':
-            arguments.append('GROUP')
-            arguments.append('BY')
-            arguments.append(field)
-        arguments.append('"')
-        if field != 'None' and multi:
+                sql = "SELECT ST_OffsetCurve({}, {}, {}), * FROM '{}'".format(geometry, distance, leftright, layername)
+
+        if field is not None:
+            sql = '"{} GROUP BY {}"'.format(sql, field)
+
+        arguments.append(sql)
+
+        if field is not None and multi:
             arguments.append('-explodecollections')
 
         if len(options) > 0:
@@ -161,4 +141,4 @@ class Ogr2OgrOneSideBuffer(GdalAlgorithm):
         return commands
 
     def commandName(self):
-        return "ogr2ogr"
+        return 'ogr2ogr'
diff --git a/python/plugins/processing/algs/qgis/ConcaveHull.py b/python/plugins/processing/algs/qgis/ConcaveHull.py
index 36df1eb..73be49f 100644
--- a/python/plugins/processing/algs/qgis/ConcaveHull.py
+++ b/python/plugins/processing/algs/qgis/ConcaveHull.py
@@ -66,7 +66,7 @@ class ConcaveHull(GeoAlgorithm):
 
         # Delaunay triangulation from input point layer
         progress.setText(self.tr('Creating Delaunay triangles...'))
-        delone_triangles = processing.runalg("qgis:delaunaytriangulation", layer, None, progress=None)['OUTPUT']
+        delone_triangles = processing.runalg("qgis:delaunaytriangulation", layer, None)['OUTPUT']
         delaunay_layer = processing.getObject(delone_triangles)
 
         # Get max edge length from Delaunay triangles
@@ -103,7 +103,7 @@ class ConcaveHull(GeoAlgorithm):
         # Dissolve all Delaunay triangles
         progress.setText(self.tr('Dissolving Delaunay triangles...'))
         dissolved = processing.runalg("qgis:dissolve", delaunay_layer,
-                                      True, None, None, progress=None)['OUTPUT']
+                                      True, None, None)['OUTPUT']
         dissolved_layer = processing.getObject(dissolved)
 
         # Save result
diff --git a/python/plugins/processing/algs/qgis/Dissolve.py b/python/plugins/processing/algs/qgis/Dissolve.py
index c471553..1b12e14 100644
--- a/python/plugins/processing/algs/qgis/Dissolve.py
+++ b/python/plugins/processing/algs/qgis/Dissolve.py
@@ -85,7 +85,7 @@ class Dissolve(GeoAlgorithm):
                 progress.setPercentage(int(current * total))
                 if first:
                     attrs = inFeat.attributes()
-                    tmpInGeom = QgsGeometry(inFeat.geometry())
+                    tmpInGeom = inFeat.geometry()
                     if tmpInGeom.isGeosEmpty():
                         continue
                     errors = tmpInGeom.validateGeometry()
@@ -101,8 +101,10 @@ class Dissolve(GeoAlgorithm):
                     outFeat.setGeometry(tmpInGeom)
                     first = False
                 else:
-                    tmpInGeom = QgsGeometry(inFeat.geometry())
-                    if tmpInGeom.isGeosEmpty():
+                    tmpInGeom = inFeat.geometry()
+                    if tmpInGeom is None or tmpInGeom.isGeosEmpty():
+                        ProcessingLog.addToLog(ProcessingLog.LOG_ERROR,
+                                               self.tr('Skipped feature %i, which has a null geometry' % current))
                         continue
                     tmpOutGeom = QgsGeometry(outFeat.geometry())
                     errors = tmpInGeom.validateGeometry()
@@ -116,11 +118,27 @@ class Dissolve(GeoAlgorithm):
                                                    + error.what())
                         continue
                     try:
-                        tmpOutGeom = QgsGeometry(tmpOutGeom.combine(tmpInGeom))
+                        tmpOutGeom = tmpOutGeom.combine(tmpInGeom)
+                        if tmpOutGeom is None or tmpOutGeom.isGeosEmpty():
+                            ProcessingLog.addToLog(ProcessingLog.LOG_ERROR,
+                                                   self.tr('Skipped feature %i. Dissolve resulted in null geometry' % current))
+                            continue
+                        errors = tmpOutGeom.validateGeometry()
+                        if errors:
+                            for error in errors:
+                                ProcessingLog.addToLog(ProcessingLog.LOG_ERROR,
+                                                       self.tr('ValidateGeometry()'
+                                                               'error:One or more input'
+                                                               'features have invalid '
+                                                               'geometry: ')
+                                                       + error.what())
+                            continue
                         outFeat.setGeometry(tmpOutGeom)
                     except:
+                        raise
                         raise GeoAlgorithmExecutionException(
                             self.tr('Geometry exception while dissolving'))
+            print outFeat.geometry().exportToWkt()
             outFeat.setAttributes(attrs)
             writer.addFeature(outFeat)
         else:
@@ -135,12 +153,13 @@ class Dissolve(GeoAlgorithm):
 
             unique = None
 
-            for inFeat in features:
+            for current, inFeat in enumerate(features):
                 attrs = inFeat.attributes()
                 tempItem = attrs[fieldIdx]
-                tmpInGeom = QgsGeometry(inFeat.geometry())
-                if tmpInGeom.isGeosEmpty():
-                    continue
+                tmpInGeom = inFeat.geometry()
+                if tmpInGeom is None or tmpInGeom.isGeosEmpty():
+                    ProcessingLog.addToLog(ProcessingLog.LOG_ERROR,
+                                           self.tr('Skipped feature %i, which has a null geometry' % current))
                 errors = tmpInGeom.validateGeometry()
                 if len(errors) != 0:
                     for error in errors:
diff --git a/python/plugins/processing/algs/qgis/Intersection.py b/python/plugins/processing/algs/qgis/Intersection.py
index f774c30..f74375a 100644
--- a/python/plugins/processing/algs/qgis/Intersection.py
+++ b/python/plugins/processing/algs/qgis/Intersection.py
@@ -96,8 +96,10 @@ class Intersection(GeoAlgorithm):
                     int_geom = QgsGeometry(geom.intersection(tmpGeom))
                     if int_geom.wkbType() == QGis.WKBUnknown or QgsWKBTypes.flatType(int_geom.geometry().wkbType()) == QgsWKBTypes.GeometryCollection:
                         int_com = geom.combine(tmpGeom)
-                        int_sym = geom.symDifference(tmpGeom)
-                        int_geom = QgsGeometry(int_com.difference(int_sym))
+                        int_geom = QgsGeometry()
+                        if int_com is not None:
+                            int_sym = geom.symDifference(tmpGeom)
+                            int_geom = QgsGeometry(int_com.difference(int_sym))
                     if int_geom.isGeosEmpty() or not int_geom.isGeosValid():
                         ProcessingLog.addToLog(ProcessingLog.LOG_ERROR,
                                                self.tr('GEOS geoprocessing error: One or '
diff --git a/python/plugins/processing/algs/qgis/MeanCoords.py b/python/plugins/processing/algs/qgis/MeanCoords.py
index 8822911..605caad 100644
--- a/python/plugins/processing/algs/qgis/MeanCoords.py
+++ b/python/plugins/processing/algs/qgis/MeanCoords.py
@@ -59,11 +59,14 @@ class MeanCoords(GeoAlgorithm):
         self.addParameter(ParameterVector(self.POINTS,
                                           self.tr('Input layer'), [ParameterVector.VECTOR_TYPE_ANY]))
         self.addParameter(ParameterTableField(self.WEIGHT,
-                                              self.tr('Weight field'), MeanCoords.POINTS,
-                                              ParameterTableField.DATA_TYPE_NUMBER, optional=True))
+                                              self.tr('Weight field'),
+                                              MeanCoords.POINTS,
+                                              ParameterTableField.DATA_TYPE_NUMBER,
+                                              optional=True))
         self.addParameter(ParameterTableField(self.UID,
-                                              self.tr('Unique ID field'), MeanCoords.POINTS,
-                                              ParameterTableField.DATA_TYPE_NUMBER, optional=True))
+                                              self.tr('Unique ID field'),
+                                              MeanCoords.POINTS,
+                                              optional=True))
 
         self.addOutput(OutputVector(MeanCoords.OUTPUT, self.tr('Mean coordinates')))
 
diff --git a/python/plugins/processing/algs/qgis/SinglePartsToMultiparts.py b/python/plugins/processing/algs/qgis/SinglePartsToMultiparts.py
index e563201..f202da8 100644
--- a/python/plugins/processing/algs/qgis/SinglePartsToMultiparts.py
+++ b/python/plugins/processing/algs/qgis/SinglePartsToMultiparts.py
@@ -108,7 +108,9 @@ class SinglePartsToMultiparts(GeoAlgorithm):
 
             del writer
         else:
-            raise GeoAlgorithmExecutionException(self.tr('Invalid unique ID field'))
+            raise GeoAlgorithmExecutionException(
+                self.tr('At least two features must have same attribute '
+                        'value! Please choose another field...'))
 
     def singleToMultiGeom(self, wkbType):
         try:
diff --git a/python/plugins/processing/core/Processing.py b/python/plugins/processing/core/Processing.py
index ac06a62..2e5e21a 100644
--- a/python/plugins/processing/core/Processing.py
+++ b/python/plugins/processing/core/Processing.py
@@ -193,10 +193,6 @@ class Processing:
         return algList.getAlgorithm(name)
 
     @staticmethod
-    def getAlgorithmFromFullName(name):
-        return algList.getAlgorithmFromFullName(name)
-
-    @staticmethod
     def getObject(uri):
         """Returns the QGIS object identified by the given URI."""
         return dataobjects.getObjectFromUri(uri)
diff --git a/python/plugins/processing/core/alglist.py b/python/plugins/processing/core/alglist.py
index f76b9f2..dd3dd5b 100644
--- a/python/plugins/processing/core/alglist.py
+++ b/python/plugins/processing/core/alglist.py
@@ -72,10 +72,5 @@ class AlgorithmList(QObject):
             if name in provider:
                 return provider[name]
 
-    def getAlgorithmFromFullName(self, name):
-        for provider in self.algs.values():
-            for alg in provider.values():
-                if alg.name == name:
-                    return alg
 
 algList = AlgorithmList()
diff --git a/python/plugins/processing/core/parameters.py b/python/plugins/processing/core/parameters.py
index 9d8442c..c71d105 100644
--- a/python/plugins/processing/core/parameters.py
+++ b/python/plugins/processing/core/parameters.py
@@ -1079,7 +1079,7 @@ class ParameterGeometryPredicate(Parameter):
             self.enabledPredicates = self.predicates
 
     def getValueAsCommandLineParameter(self):
-        return '"' + unicode(self.value) + '"'
+        return unicode(self.value)
 
     def setValue(self, value):
         if value is None:
diff --git a/python/plugins/processing/gui/AlgorithmDialogBase.py b/python/plugins/processing/gui/AlgorithmDialogBase.py
index 94775e8..c4e02db 100644
--- a/python/plugins/processing/gui/AlgorithmDialogBase.py
+++ b/python/plugins/processing/gui/AlgorithmDialogBase.py
@@ -171,9 +171,6 @@ class AlgorithmDialogBase(BASE, WIDGET):
         self.setInfo(text, False)
         QCoreApplication.processEvents()
 
-    def error(self, text):
-        self.setInfo(text, error=True)
-
     def setParamValues(self):
         pass
 
diff --git a/python/plugins/processing/gui/CommanderWindow.py b/python/plugins/processing/gui/CommanderWindow.py
index 11cdd66..180c4e7 100644
--- a/python/plugins/processing/gui/CommanderWindow.py
+++ b/python/plugins/processing/gui/CommanderWindow.py
@@ -31,7 +31,6 @@ from qgis.PyQt.QtCore import Qt, QSize
 from qgis.PyQt.QtWidgets import QDialog, QLabel, QSpacerItem, QHBoxLayout, QVBoxLayout, QSizePolicy, QComboBox, QCompleter
 from qgis.PyQt.QtCore import QSortFilterProxyModel
 from qgis.utils import iface
-from processing.core.Processing import Processing
 from processing.core.alglist import algList
 from processing.gui.MessageDialog import MessageDialog
 from processing.gui.AlgorithmDialog import AlgorithmDialog
@@ -100,9 +99,9 @@ class CommanderWindow(QDialog):
         self.combo.clear()
 
         # Add algorithms
-        for algs in algList.algs.values():
-            for alg in algs:
-                self.combo.addItem('Processing algorithm: ' + alg.name)
+        for provider in algList.algs.values():
+            for alg in provider:
+                self.combo.addItem('Processing algorithm: ' + alg)
 
         # Add functions
         for command in dir(self.commands):
@@ -153,7 +152,7 @@ class CommanderWindow(QDialog):
         s = unicode(self.combo.currentText())
         if s.startswith('Processing algorithm: '):
             algName = s[len('Processing algorithm: '):]
-            alg = Processing.getAlgorithmFromFullName(algName)
+            alg = algList.getAlgorithm(algName)
             if alg is not None:
                 self.close()
                 self.runAlgorithm(alg)
diff --git a/python/plugins/processing/gui/menus.py b/python/plugins/processing/gui/menus.py
index e64a97b..881a320 100644
--- a/python/plugins/processing/gui/menus.py
+++ b/python/plugins/processing/gui/menus.py
@@ -1,6 +1,6 @@
 import os
 from qgis.PyQt.QtWidgets import QAction, QMenu
-from PyQt4.QtGui import QIcon
+from PyQt4.QtGui import QIcon, QApplication
 from processing.core.alglist import algList
 from processing.core.ProcessingConfig import ProcessingConfig, Setting
 from processing.gui.MessageDialog import MessageDialog
@@ -15,7 +15,7 @@ algorithmsToolbar = None
 menusSettingsGroup = 'Menus'
 
 defaultMenuEntries = {}
-vectorMenu = Processing.tr('Vect&or')
+vectorMenu = QApplication.translate('MainWindow', 'Vect&or')
 analysisToolsMenu = vectorMenu + "/" + Processing.tr('&Analysis Tools')
 defaultMenuEntries.update({'qgis:distancematrix': analysisToolsMenu,
                            'qgis:sumlinelengths': analysisToolsMenu,
diff --git a/python/plugins/processing/tools/system.py b/python/plugins/processing/tools/system.py
index a2f64c9..fa77d82 100644
--- a/python/plugins/processing/tools/system.py
+++ b/python/plugins/processing/tools/system.py
@@ -46,7 +46,7 @@ def userFolder():
 
 
 def defaultOutputFolder():
-    folder = os.path.join(userFolder(), "outputs")
+    folder = os.path.join(userFolder(), 'outputs')
     if not QDir(folder).exists():
         QDir().mkpath(folder)
 
@@ -60,7 +60,7 @@ def isWindows():
 def isMac():
     return sys.platform == 'darwin'
 
-_tempFolderSuffix = unicode(uuid.uuid4()).replace('-', '')
+_tempFolderSuffix = uuid.uuid4().hex
 
 
 def tempFolder():
@@ -96,7 +96,7 @@ def getTempFilenameInTempFolder(basename):
     """
 
     path = tempFolder()
-    path = os.path.join(path, unicode(uuid.uuid4()).replace('-', ''))
+    path = os.path.join(path, uuid.uuid4().hex)
     mkdir(path)
     basename = removeInvalidChars(basename)
     filename = os.path.join(path, basename)
@@ -108,7 +108,7 @@ def getTempDirInTempFolder():
     """
 
     path = tempFolder()
-    path = os.path.join(path, unicode(uuid.uuid4()).replace('-', ''))
+    path = os.path.join(path, uuid.uuid4().hex)
     mkdir(path)
     return path
 
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 5b69f7e..1010493 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -106,46 +106,57 @@ typedef SInt32 SRefCon;
 
 /** Print usage text
  */
-void usage( std::string const & appName )
+void usage( QString appName )
 {
-  std::cerr << "QGIS - " << VERSION << " '" << RELEASE_NAME << "' ("
-            << QGSVERSION << ")\n"
-            << "QGIS is a user friendly Open Source Geographic Information System.\n"
-            << "Usage: " << appName <<  " [OPTION] [FILE]\n"
-            << "  OPTION:\n"
-            << "\t[--snapshot filename]\temit snapshot of loaded datasets to given file\n"
-            << "\t[--width width]\twidth of snapshot to emit\n"
-            << "\t[--height height]\theight of snapshot to emit\n"
-            << "\t[--lang language]\tuse language for interface text\n"
-            << "\t[--project projectfile]\tload the given QGIS project\n"
-            << "\t[--extent xmin,ymin,xmax,ymax]\tset initial map extent\n"
-            << "\t[--nologo]\thide splash screen\n"
-            << "\t[--noversioncheck]\tdon't check for new version of QGIS at startup\n"
-            << "\t[--noplugins]\tdon't restore plugins on startup\n"
-            << "\t[--nocustomization]\tdon't apply GUI customization\n"
-            << "\t[--customizationfile]\tuse the given ini file as GUI customization\n"
-            << "\t[--optionspath path]\tuse the given QSettings path\n"
-            << "\t[--configpath path]\tuse the given path for all user configuration\n"
-            << "\t[--authdbdirectory path] use the given directory for authentication database\n"
-            << "\t[--code path]\trun the given python file on load\n"
-            << "\t[--defaultui]\tstart by resetting user ui settings to default\n"
-            << "\t[--dxf-export filename.dxf]\temit dxf output of loaded datasets to given file\n"
-            << "\t[--dxf-extent xmin,ymin,xmax,ymax]\tset extent to export to dxf\n"
-            << "\t[--dxf-symbology-mode none|symbollayer|feature]\tsymbology mode for dxf output\n"
-            << "\t[--dxf-scale-denom scale]\tscale for dxf output\n"
-            << "\t[--dxf-encoding encoding]\tencoding to use for dxf output\n"
-            << "\t[--dxf-preset visiblity-preset]\tlayer visibility preset to use for dxf output\n"
-            << "\t[--help]\t\tthis text\n"
-            << "\t[--]\t\ttreat all following arguments as FILEs\n\n"
-            << "  FILE:\n"
-            << "    Files specified on the command line can include rasters,\n"
-            << "    vectors, and QGIS project files (.qgs): \n"
-            << "     1. Rasters - supported formats include GeoTiff, DEM \n"
-            << "        and others supported by GDAL\n"
-            << "     2. Vectors - supported formats include ESRI Shapefiles\n"
-            << "        and others supported by OGR and PostgreSQL layers using\n"
-            << "        the PostGIS extension\n"  ; // OK
+  QStringList msg;
+
+  msg
+  << "QGIS - " << VERSION << " '" << RELEASE_NAME << "' ("
+  << QGSVERSION << ")\n"
+  << "QGIS is a user friendly Open Source Geographic Information System.\n"
+  << "Usage: " << appName <<  " [OPTION] [FILE]\n"
+  << "  OPTION:\n"
+  << "\t[--snapshot filename]\temit snapshot of loaded datasets to given file\n"
+  << "\t[--width width]\twidth of snapshot to emit\n"
+  << "\t[--height height]\theight of snapshot to emit\n"
+  << "\t[--lang language]\tuse language for interface text\n"
+  << "\t[--project projectfile]\tload the given QGIS project\n"
+  << "\t[--extent xmin,ymin,xmax,ymax]\tset initial map extent\n"
+  << "\t[--nologo]\thide splash screen\n"
+  << "\t[--noversioncheck]\tdon't check for new version of QGIS at startup\n"
+  << "\t[--noplugins]\tdon't restore plugins on startup\n"
+  << "\t[--nocustomization]\tdon't apply GUI customization\n"
+  << "\t[--customizationfile]\tuse the given ini file as GUI customization\n"
+  << "\t[--optionspath path]\tuse the given QSettings path\n"
+  << "\t[--configpath path]\tuse the given path for all user configuration\n"
+  << "\t[--authdbdirectory path] use the given directory for authentication database\n"
+  << "\t[--code path]\trun the given python file on load\n"
+  << "\t[--defaultui]\tstart by resetting user ui settings to default\n"
+  << "\t[--dxf-export filename.dxf]\temit dxf output of loaded datasets to given file\n"
+  << "\t[--dxf-extent xmin,ymin,xmax,ymax]\tset extent to export to dxf\n"
+  << "\t[--dxf-symbology-mode none|symbollayer|feature]\tsymbology mode for dxf output\n"
+  << "\t[--dxf-scale-denom scale]\tscale for dxf output\n"
+  << "\t[--dxf-encoding encoding]\tencoding to use for dxf output\n"
+  << "\t[--dxf-preset visiblity-preset]\tlayer visibility preset to use for dxf output\n"
+  << "\t[--help]\t\tthis text\n"
+  << "\t[--]\t\ttreat all following arguments as FILEs\n\n"
+  << "  FILE:\n"
+  << "    Files specified on the command line can include rasters,\n"
+  << "    vectors, and QGIS project files (.qgs): \n"
+  << "     1. Rasters - supported formats include GeoTiff, DEM \n"
+  << "        and others supported by GDAL\n"
+  << "     2. Vectors - supported formats include ESRI Shapefiles\n"
+  << "        and others supported by OGR and PostgreSQL layers using\n"
+  << "        the PostGIS extension\n"  ; // OK
 
+#ifdef Q_OS_WIN
+  MessageBox( nullptr,
+              msg.join( QString() ).toLocal8Bit().constData(),
+              "QGIS command line options",
+              MB_OK );
+#else
+  std::cerr << msg.join( QString() ).toLocal8Bit().constData();
+#endif
 
 } // usage()
 
@@ -409,6 +420,11 @@ void myMessageOutput( QtMsgType type, const char *msg )
   }
 }
 
+#if(ANDROID)
+// On Android, there there is a libqgis.so instead of a qgis executable.
+// The main method symbol of this library needs to be exported so it can be called by java
+APP_EXPORT
+#endif
 int main( int argc, char *argv[] )
 {
 #ifdef Q_OS_MACX
@@ -558,7 +574,7 @@ int main( int argc, char *argv[] )
 
       if ( arg == "--help" || arg == "-?" )
       {
-        usage( args[0].toStdString() );
+        usage( args[0] );
         return 2;
       }
       else if ( arg == "--nologo" || arg == "-n" )
diff --git a/src/app/qgsidentifyresultsdialog.cpp b/src/app/qgsidentifyresultsdialog.cpp
index 9b24011..8d36af2 100644
--- a/src/app/qgsidentifyresultsdialog.cpp
+++ b/src/app/qgsidentifyresultsdialog.cpp
@@ -70,6 +70,7 @@ QgsIdentifyResultsWebView::QgsIdentifyResultsWebView( QWidget *parent ) : QgsWeb
   page()->setLinkDelegationPolicy( QWebPage::DontDelegateLinks );
   settings()->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls, true );
   settings()->setAttribute( QWebSettings::JavascriptCanOpenWindows, true );
+  settings()->setAttribute( QWebSettings::PluginsEnabled, true );
 #ifdef QGISDEBUG
   settings()->setAttribute( QWebSettings::DeveloperExtrasEnabled, true );
 #endif
@@ -110,6 +111,7 @@ QgsWebView *QgsIdentifyResultsWebView::createWindow( QWebPage::WebWindowType typ
   wv->page()->setNetworkAccessManager( QgsNetworkAccessManager::instance() );
   wv->settings()->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls, true );
   wv->settings()->setAttribute( QWebSettings::JavascriptCanOpenWindows, true );
+  wv->settings()->setAttribute( QWebSettings::PluginsEnabled, true );
 #ifdef QGISDEBUG
   wv->settings()->setAttribute( QWebSettings::DeveloperExtrasEnabled, true );
 #endif
diff --git a/src/app/qgssnappingdialog.cpp b/src/app/qgssnappingdialog.cpp
index dc90fda..53d44bd 100644
--- a/src/app/qgssnappingdialog.cpp
+++ b/src/app/qgssnappingdialog.cpp
@@ -310,7 +310,7 @@ void QgsSnappingDialog::addLayer( QgsMapLayer *theMapLayer )
   bool myDockFlag = myQsettings.value( "/qgis/dockSnapping", false ).toBool();
   double defaultSnappingTolerance = myQsettings.value( "/qgis/digitizing/default_snapping_tolerance", 0 ).toDouble();
   int defaultSnappingUnit = myQsettings.value( "/qgis/digitizing/default_snapping_tolerance_unit", QgsTolerance::ProjectUnits ).toInt();
-  QString defaultSnappingString = myQsettings.value( "/qgis/digitizing/default_snap_mode", "to vertex" ).toString();
+  QString defaultSnappingString = myQsettings.value( "/qgis/digitizing/default_snap_mode", "off" ).toString();
 
   int defaultSnappingStringIdx = 0;
   if ( defaultSnappingString == "to vertex" )
diff --git a/src/core/auth/qgsauthmanager.cpp b/src/core/auth/qgsauthmanager.cpp
index cb7ec4b..7ee1cb3 100644
--- a/src/core/auth/qgsauthmanager.cpp
+++ b/src/core/auth/qgsauthmanager.cpp
@@ -1365,8 +1365,8 @@ bool QgsAuthManager::updateNetworkRequest( QNetworkRequest &request, const QStri
   {
     if ( !( authmethod->supportedExpansions() & QgsAuthMethod::NetworkRequest ) )
     {
-      QgsDebugMsg( QString( "Data source URI updating not supported by authcfg: %1" ).arg( authcfg ) );
-      return false;
+      QgsDebugMsg( QString( "Network request updating not supported by authcfg: %1" ).arg( authcfg ) );
+      return true;
     }
 
     if ( !authmethod->updateNetworkRequest( request, authcfg, dataprovider.toLower() ) )
@@ -1392,7 +1392,7 @@ bool QgsAuthManager::updateNetworkReply( QNetworkReply *reply, const QString& au
     if ( !( authmethod->supportedExpansions() & QgsAuthMethod::NetworkReply ) )
     {
       QgsDebugMsg( QString( "Network reply updating not supported by authcfg: %1" ).arg( authcfg ) );
-      return false;
+      return true;
     }
 
     if ( !authmethod->updateNetworkReply( reply, authcfg, dataprovider.toLower() ) )
@@ -1418,7 +1418,7 @@ bool QgsAuthManager::updateDataSourceUriItems( QStringList &connectionItems, con
     if ( !( authmethod->supportedExpansions() & QgsAuthMethod::DataSourceURI ) )
     {
       QgsDebugMsg( QString( "Data source URI updating not supported by authcfg: %1" ).arg( authcfg ) );
-      return false;
+      return true;
     }
 
     if ( !authmethod->updateDataSourceUriItems( connectionItems, authcfg, dataprovider.toLower() ) )
diff --git a/src/core/dxf/qgsdxfexport.cpp b/src/core/dxf/qgsdxfexport.cpp
index 8a8fc42..fcae555 100644
--- a/src/core/dxf/qgsdxfexport.cpp
+++ b/src/core/dxf/qgsdxfexport.cpp
@@ -449,11 +449,12 @@ void QgsDxfExport::writeGroup( const QColor& color, int exactMatchCode, int rgbC
     minDist = dist;
   }
 
-  if ( minDist == 0 && color.alpha() == 255 && minDistAt != 7 )
+  if ( minDist == 0 && minDistAt != 7 )
   {
     // exact full opaque match, not black/white
     writeGroup( exactMatchCode, minDistAt );
-    return;
+    if ( color.alpha() == 255 )
+      return;
   }
 
   int c = ( color.red() & 0xff ) * 0x10000 + ( color.green() & 0xff ) * 0x100 + ( color.blue() & 0xff );
@@ -3435,21 +3436,24 @@ void QgsDxfExport::writePolyline( const QgsPointSequenceV2 &line, const QString&
   else
   {
     writeGroup( 0, "POLYLINE" );
-    writeHandle();
-    writeGroup( 8, layer );
+    int plHandle = writeHandle();
+    writeGroup( 330, mBlockHandle );
     writeGroup( 100, "AcDbEntity" );
-    writeGroup( 100, "AcDb3dPolyline" );
+    writeGroup( 8, layer );
     writeGroup( 6, lineStyleName );
-    writeGroup( 0, QgsPointV2( QgsWKBTypes::PointZ ) );
     writeGroup( color );
+    writeGroup( 100, "AcDb3dPolyline" );
+    writeGroup( 0, QgsPointV2( QgsWKBTypes::PointZ ) );
     writeGroup( 70, 8 );
 
     for ( int i = 0; i < n; i++ )
     {
       writeGroup( 0, "VERTEX" );
       writeHandle();
-      writeGroup( 8, layer );
+      writeGroup( 330, plHandle );
       writeGroup( 100, "AcDbEntity" );
+      writeGroup( 8, layer );
+      writeGroup( color );
       writeGroup( 100, "AcDbVertex" );
       writeGroup( 100, "AcDb3dPolylineVertex" );
       writeGroup( 0, line[i] );
@@ -3458,8 +3462,10 @@ void QgsDxfExport::writePolyline( const QgsPointSequenceV2 &line, const QString&
 
     writeGroup( 0, "SEQEND" );
     writeHandle();
-    writeGroup( 8, layer );
+    writeGroup( 330, plHandle );
     writeGroup( 100, "AcDbEntity" );
+    writeGroup( 8, layer );
+    writeGroup( color );
   }
 }
 
diff --git a/src/core/qgsaggregatecalculator.cpp b/src/core/qgsaggregatecalculator.cpp
index 5e634d0..55973db 100644
--- a/src/core/qgsaggregatecalculator.cpp
+++ b/src/core/qgsaggregatecalculator.cpp
@@ -103,7 +103,7 @@ QVariant QgsAggregateCalculator::calculate( QgsAggregateCalculator::Aggregate ag
       //no matching features
       if ( ok )
         *ok = true;
-      return QVariant();
+      return defaultValue( aggregate );
     }
 
     if ( context )
@@ -458,6 +458,41 @@ QVariant QgsAggregateCalculator::concatenateStrings( QgsFeatureIterator& fit, in
   return result;
 }
 
+QVariant QgsAggregateCalculator::defaultValue( QgsAggregateCalculator::Aggregate aggregate ) const
+{
+  // value to return when NO features are aggregated:
+  switch ( aggregate )
+  {
+      // sensible values:
+    case Count:
+    case CountDistinct:
+    case CountMissing:
+      return 0;
+
+    case StringConcatenate:
+      return ""; // zero length string - not null!
+
+      // undefined - nothing makes sense here
+    case Sum:
+    case Min:
+    case Max:
+    case Mean:
+    case Median:
+    case StDev:
+    case StDevSample:
+    case Range:
+    case Minority:
+    case Majority:
+    case FirstQuartile:
+    case ThirdQuartile:
+    case InterQuartileRange:
+    case StringMinimumLength:
+    case StringMaximumLength:
+      return QVariant();
+  }
+  return QVariant();
+}
+
 QVariant QgsAggregateCalculator::calculateDateTimeAggregate( QgsFeatureIterator& fit, int attr, QgsExpression* expression,
     QgsExpressionContext* context, QgsDateTimeStatisticalSummary::Statistic stat )
 {
diff --git a/src/core/qgsaggregatecalculator.h b/src/core/qgsaggregatecalculator.h
index f03992a..6b972af 100644
--- a/src/core/qgsaggregatecalculator.h
+++ b/src/core/qgsaggregatecalculator.h
@@ -169,6 +169,8 @@ class CORE_EXPORT QgsAggregateCalculator
                                QgsExpressionContext* context, bool* ok = nullptr );
     static QVariant concatenateStrings( QgsFeatureIterator& fit, int attr, QgsExpression* expression,
                                         QgsExpressionContext* context, const QString& delimiter );
+
+    QVariant defaultValue( Aggregate aggregate ) const;
 };
 
 #endif //QGSAGGREGATECALCULATOR_H
diff --git a/src/core/qgsexpression.cpp b/src/core/qgsexpression.cpp
index dbbe336..4d4be85 100644
--- a/src/core/qgsexpression.cpp
+++ b/src/core/qgsexpression.cpp
@@ -50,6 +50,8 @@
 #include "qgsexpressionprivate.h"
 #include "qgsexpressionsorter.h"
 #include "qgscrscache.h"
+#include "qgsmessagelog.h"
+#include "qgscsexception.h"
 
 #if QT_VERSION < 0x050000
 #include <qtextdocument.h>
@@ -2974,8 +2976,16 @@ static QVariant fcnTransformGeometry( const QVariantList& values, const QgsExpre
     return QVariant::fromValue( fGeom );
 
   QgsCoordinateTransform t( s, d );
-  if ( fGeom.transform( t ) == 0 )
-    return QVariant::fromValue( fGeom );
+  try
+  {
+    if ( fGeom.transform( t ) == 0 )
+      return QVariant::fromValue( fGeom );
+  }
+  catch ( QgsCsException &cse )
+  {
+    QgsMessageLog::logMessage( QString( "Transform error caught in transform() function: %1" ).arg( cse.what() ) );
+    return QVariant();
+  }
   return QVariant();
 }
 
diff --git a/src/core/qgslegendrenderer.cpp b/src/core/qgslegendrenderer.cpp
index 74cbd35..8d49139 100644
--- a/src/core/qgslegendrenderer.cpp
+++ b/src/core/qgslegendrenderer.cpp
@@ -266,17 +266,12 @@ void QgsLegendRenderer::setColumns( QList<Atom>& atomList )
 
   // Divide atoms to columns
   double totalHeight = 0;
-  // bool first = true;
   qreal maxAtomHeight = 0;
   Q_FOREACH ( const Atom& atom, atomList )
   {
-    //if ( !first )
-    //{
     totalHeight += spaceAboveAtom( atom );
-    //}
     totalHeight += atom.size.height();
     maxAtomHeight = qMax( atom.size.height(), maxAtomHeight );
-    // first  = false;
   }
 
   // We know height of each atom and we have to split them into columns
@@ -284,31 +279,36 @@ void QgsLegendRenderer::setColumns( QList<Atom>& atomList )
   // We are using simple heuristic, brute fore appeared to be to slow,
   // the number of combinations is N = n!/(k!*(n-k)!) where n = atomsCount-1
   // and k = columnsCount-1
-
-  double avgColumnHeight = totalHeight / mSettings.columnCount();
+  double maxColumnHeight = 0;
   int currentColumn = 0;
   int currentColumnAtomCount = 0; // number of atoms in current column
   double currentColumnHeight = 0;
-  double maxColumnHeight = 0;
   double closedColumnsHeight = 0;
-  // first = true; // first in column
+
   for ( int i = 0; i < atomList.size(); i++ )
   {
-    Atom atom = atomList[i];
+    // Recalc average height for remaining columns including current
+    double avgColumnHeight = ( totalHeight - closedColumnsHeight ) / ( mSettings.columnCount() - currentColumn );
+
+    Atom atom = atomList.at( i );
     double currentHeight = currentColumnHeight;
-    //if ( !first )
-    //{
-    currentHeight += spaceAboveAtom( atom );
-    //}
+    if ( currentColumnAtomCount > 0 )
+      currentHeight += spaceAboveAtom( atom );
     currentHeight += atom.size.height();
 
-    // Recalc average height for remaining columns including current
-    avgColumnHeight = ( totalHeight - closedColumnsHeight ) / ( mSettings.columnCount() - currentColumn );
-    if (( currentHeight - avgColumnHeight ) > atom.size.height() / 2 // center of current atom is over average height
-        && currentColumnAtomCount > 0 // do not leave empty column
-        && currentHeight > maxAtomHeight  // no sense to make smaller columns than max atom height
-        && currentHeight > maxColumnHeight  // no sense to make smaller columns than max column already created
-        && currentColumn < mSettings.columnCount() - 1 ) // must not exceed max number of columns
+    bool canCreateNewColumn = ( currentColumnAtomCount > 0 )  // do not leave empty column
+                              && ( currentColumn < mSettings.columnCount() - 1 ); // must not exceed max number of columns
+
+    bool shouldCreateNewColumn = ( currentHeight - avgColumnHeight ) > atom.size.height() / 2  // center of current atom is over average height
+                                 && currentColumnAtomCount > 0 // do not leave empty column
+                                 && currentHeight > maxAtomHeight  // no sense to make smaller columns than max atom height
+                                 && currentHeight > maxColumnHeight; // no sense to make smaller columns than max column already created
+
+    // also should create a new column if the number of items left < number of columns left
+    // in this case we should spread the remaining items out over the remaining columns
+    shouldCreateNewColumn |= ( atomList.size() - i < mSettings.columnCount() - currentColumn );
+
+    if ( canCreateNewColumn && shouldCreateNewColumn )
     {
       // New column
       currentColumn++;
@@ -323,11 +323,9 @@ void QgsLegendRenderer::setColumns( QList<Atom>& atomList )
     atomList[i].column = currentColumn;
     currentColumnAtomCount++;
     maxColumnHeight = qMax( currentColumnHeight, maxColumnHeight );
-
-    // first  = false;
   }
 
-  // Alling labels of symbols for each layr/column to the same labelXOffset
+  // Align labels of symbols for each layr/column to the same labelXOffset
   QMap<QString, qreal> maxSymbolWidth;
   for ( int i = 0; i < atomList.size(); i++ )
   {
diff --git a/src/core/qgsmaplayer.cpp b/src/core/qgsmaplayer.cpp
index 22ca275..0b0fbd9 100644
--- a/src/core/qgsmaplayer.cpp
+++ b/src/core/qgsmaplayer.cpp
@@ -1460,7 +1460,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" );
@@ -1480,7 +1479,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 bc5ea61..d026b13 100644
--- a/src/core/qgsogcutils.cpp
+++ b/src/core/qgsogcutils.cpp
@@ -2045,6 +2045,12 @@ QDomElement QgsOgcUtils::expressionToOgcFilter( const QgsExpression& exp, QDomDo
                                 "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,
@@ -2082,6 +2088,45 @@ QDomElement QgsOgcUtils::expressionToOgcFilter( const QgsExpression& exp,
   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();
+
+      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 QgsOgcUtils::SQLStatementToOgcFilter( const QgsSQLStatement& statement,
     QDomDocument& doc,
     GMLVersion gmlVersion,
diff --git a/src/core/qgsogcutils.h b/src/core/qgsogcutils.h
index 2020566..7da907b 100644
--- a/src/core/qgsogcutils.h
+++ b/src/core/qgsogcutils.h
@@ -161,6 +161,27 @@ class CORE_EXPORT QgsOgcUtils
         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
+     */
+    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 );
+
     /** \ingroup core
      * Layer properties. Used by SQLStatementToOgcFilter().
      * @note Added in QGIS 2.16
diff --git a/src/core/qgspallabeling.cpp b/src/core/qgspallabeling.cpp
index 6aeba76..6772e7a 100644
--- a/src/core/qgspallabeling.cpp
+++ b/src/core/qgspallabeling.cpp
@@ -18,6 +18,7 @@
 #include "qgspallabeling.h"
 #include "qgstextlabelfeature.h"
 #include "qgsunittypes.h"
+#include "qgsstringutils.h"
 
 #include <list>
 
@@ -2283,6 +2284,7 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
 
   // calculate rest of font attributes and store any data defined values
   // this is done here for later use in making label backgrounds part of collision management (when implemented)
+  labelFont.setCapitalization( QFont::MixedCase ); // reset this - we don't use QFont's handling as it breaks with curved labels
   parseTextStyle( labelFont, fontunits, context );
   parseTextFormatting( context );
   parseTextBuffer( context );
@@ -2316,6 +2318,41 @@ void QgsPalLayerSettings::registerFeature( QgsFeature& f, QgsRenderContext &cont
     labelText = v.isNull() ? "" : v.toString();
   }
 
+  // apply capitalization
+  QgsStringUtils::Capitalization capitalization = QgsStringUtils::MixedCase;
+  // maintain API - capitalization may have been set in textFont
+  if ( textFont.capitalization() != QFont::MixedCase )
+  {
+    capitalization = static_cast< QgsStringUtils::Capitalization >( textFont.capitalization() );
+  }
+  // data defined font capitalization?
+  if ( dataDefinedEvaluate( QgsPalLayerSettings::FontCase, exprVal, &context.expressionContext() ) )
+  {
+    QString fcase = exprVal.toString().trimmed();
+    QgsDebugMsgLevel( QString( "exprVal FontCase:%1" ).arg( fcase ), 4 );
+
+    if ( !fcase.isEmpty() )
+    {
+      if ( fcase.compare( "NoChange", Qt::CaseInsensitive ) == 0 )
+      {
+        capitalization = QgsStringUtils::MixedCase;
+      }
+      else if ( fcase.compare( "Upper", Qt::CaseInsensitive ) == 0 )
+      {
+        capitalization = QgsStringUtils::AllUppercase;
+      }
+      else if ( fcase.compare( "Lower", Qt::CaseInsensitive ) == 0 )
+      {
+        capitalization = QgsStringUtils::AllLowercase;
+      }
+      else if ( fcase.compare( "Capitalize", Qt::CaseInsensitive ) == 0 )
+      {
+        capitalization = QgsStringUtils::ForceFirstLetterToCapital;
+      }
+    }
+  }
+  labelText = QgsStringUtils::capitalize( labelText, capitalization );
+
   // data defined format numbers?
   bool formatnum = formatNumbers;
   if ( dataDefinedEvaluate( QgsPalLayerSettings::NumFormat, exprVal, &context.expressionContext(), formatNumbers ) )
@@ -3356,7 +3393,6 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
     // copy over existing font settings
     //newFont = newFont.resolve( labelFont ); // should work, but let's be sure what's being copied
     newFont.setPixelSize( labelFont.pixelSize() );
-    newFont.setCapitalization( labelFont.capitalization() );
     newFont.setUnderline( labelFont.underline() );
     newFont.setStrikeOut( labelFont.strikeOut() );
     newFont.setWordSpacing( labelFont.wordSpacing() );
@@ -3393,39 +3429,6 @@ void QgsPalLayerSettings::parseTextStyle( QFont& labelFont,
   }
   labelFont.setLetterSpacing( QFont::AbsoluteSpacing, scaleToPixelContext( letterspace, context, fontunits, false, fontSizeMapUnitScale ) );
 
-  // data defined font capitalization?
-  QFont::Capitalization fontcaps = labelFont.capitalization();
-  if ( dataDefinedEvaluate( QgsPalLayerSettings::FontCase, exprVal, &context.expressionContext() ) )
-  {
-    QString fcase = exprVal.toString().trimmed();
-    QgsDebugMsgLevel( QString( "exprVal FontCase:%1" ).arg( fcase ), 4 );
-
-    if ( !fcase.isEmpty() )
-    {
-      if ( fcase.compare( "NoChange", Qt::CaseInsensitive ) == 0 )
-      {
-        fontcaps = QFont::MixedCase;
-      }
-      else if ( fcase.compare( "Upper", Qt::CaseInsensitive ) == 0 )
-      {
-        fontcaps = QFont::AllUppercase;
-      }
-      else if ( fcase.compare( "Lower", Qt::CaseInsensitive ) == 0 )
-      {
-        fontcaps = QFont::AllLowercase;
-      }
-      else if ( fcase.compare( "Capitalize", Qt::CaseInsensitive ) == 0 )
-      {
-        fontcaps = QFont::Capitalize;
-      }
-
-      if ( fontcaps != labelFont.capitalization() )
-      {
-        labelFont.setCapitalization( fontcaps );
-      }
-    }
-  }
-
   // data defined strikeout font style?
   if ( dataDefinedEvaluate( QgsPalLayerSettings::Strikeout, exprVal, &context.expressionContext(), labelFont.strikeOut() ) )
   {
diff --git a/src/core/qgspointlocator.cpp b/src/core/qgspointlocator.cpp
index 56fe1f0..3cda556 100644
--- a/src/core/qgspointlocator.cpp
+++ b/src/core/qgspointlocator.cpp
@@ -628,6 +628,7 @@ QgsPointLocator::QgsPointLocator( QgsVectorLayer* layer, const QgsCoordinateRefe
   connect( mLayer, SIGNAL( featureAdded( QgsFeatureId ) ), this, SLOT( onFeatureAdded( QgsFeatureId ) ) );
   connect( mLayer, SIGNAL( featureDeleted( QgsFeatureId ) ), this, SLOT( onFeatureDeleted( QgsFeatureId ) ) );
   connect( mLayer, SIGNAL( geometryChanged( QgsFeatureId, QgsGeometry& ) ), this, SLOT( onGeometryChanged( QgsFeatureId, QgsGeometry& ) ) );
+  connect( mLayer, SIGNAL( dataChanged() ), this, SLOT( destroyIndex() ) );
 }
 
 
diff --git a/src/core/qgspointlocator.h b/src/core/qgspointlocator.h
index 9ecdf3b..6621760 100644
--- a/src/core/qgspointlocator.h
+++ b/src/core/qgspointlocator.h
@@ -207,8 +207,8 @@ class CORE_EXPORT QgsPointLocator : public QObject
 
   protected:
     bool rebuildIndex( int maxFeaturesToIndex = -1 );
+  protected slots:
     void destroyIndex();
-
   private slots:
     void onFeatureAdded( QgsFeatureId fid );
     void onFeatureDeleted( QgsFeatureId fid );
diff --git a/src/core/qgsstringutils.cpp b/src/core/qgsstringutils.cpp
index 1d84445..0ed5e7c 100644
--- a/src/core/qgsstringutils.cpp
+++ b/src/core/qgsstringutils.cpp
@@ -15,6 +15,56 @@
 
 #include "qgsstringutils.h"
 #include <QVector>
+#include <QRegExp>
+#include <QStringList>
+#include <QTextBoundaryFinder>
+
+QString QgsStringUtils::capitalize( const QString& string, QgsStringUtils::Capitalization capitalization )
+{
+  if ( string.isEmpty() )
+    return QString();
+
+  switch ( capitalization )
+  {
+    case MixedCase:
+      return string;
+
+    case AllUppercase:
+      return string.toUpper();
+
+    case AllLowercase:
+      return string.toLower();
+
+    case ForceFirstLetterToCapital:
+    {
+      QString temp = string;
+
+      QTextBoundaryFinder wordSplitter( QTextBoundaryFinder::Word, string.constData(), string.length(), 0, 0 );
+      QTextBoundaryFinder letterSplitter( QTextBoundaryFinder::Grapheme, string.constData(), string.length(), 0, 0 );
+
+      wordSplitter.setPosition( 0 );
+      bool first = true;
+#if QT_VERSION >= 0x050000
+      while (( first && wordSplitter.boundaryReasons() & QTextBoundaryFinder::StartOfItem )
+             || wordSplitter.toNextBoundary() >= 0 )
+#else
+      while (( first && wordSplitter.boundaryReasons() & QTextBoundaryFinder::StartWord )
+             || wordSplitter.toNextBoundary() >= 0 )
+#endif
+      {
+        first = false;
+        letterSplitter.setPosition( wordSplitter.position() );
+        letterSplitter.toNextBoundary();
+        QString substr = string.mid( wordSplitter.position(), letterSplitter.position() - wordSplitter.position() );
+        temp.replace( wordSplitter.position(), substr.length(), substr.toUpper() );
+      }
+      return temp;
+    }
+
+  }
+  // no warnings
+  return string;
+}
 
 int QgsStringUtils::levenshteinDistance( const QString& string1, const QString& string2, bool caseSensitive )
 {
diff --git a/src/core/qgsstringutils.h b/src/core/qgsstringutils.h
index 4335870..5120aba 100644
--- a/src/core/qgsstringutils.h
+++ b/src/core/qgsstringutils.h
@@ -14,6 +14,7 @@
  ***************************************************************************/
 
 #include <QString>
+#include <QFont> // for enum values
 
 #ifndef QGSSTRINGUTILS_H
 #define QGSSTRINGUTILS_H
@@ -28,6 +29,23 @@ class CORE_EXPORT QgsStringUtils
 {
   public:
 
+    //! Capitalization options
+    enum Capitalization
+    {
+      MixedCase = QFont::MixedCase, //!< Mixed case, ie no change
+      AllUppercase = QFont::AllUppercase, //!< Convert all characters to uppercase
+      AllLowercase = QFont::AllLowercase,  //!< Convert all characters to lowercase
+      ForceFirstLetterToCapital = QFont::Capitalize, //!< Convert just the first letter of each word to uppercase, leave the rest untouched
+    };
+
+    /** Converts a string by applying capitalization rules to the string.
+     * @param string input string
+     * @param capitalization capitalization type to apply
+     * @return capitalized string
+     * @note added in QGIS 3.0
+     */
+    static QString capitalize( const QString& string, Capitalization capitalization );
+
     /** Returns the Levenshtein edit distance between two strings. This equates to the minimum
      * number of character edits (insertions, deletions or substitutions) required to change
      * one string to another.
diff --git a/src/core/qgsvectordataprovider.cpp b/src/core/qgsvectordataprovider.cpp
index e94a891..a39a7d1 100644
--- a/src/core/qgsvectordataprovider.cpp
+++ b/src/core/qgsvectordataprovider.cpp
@@ -393,7 +393,7 @@ void QgsVectorDataProvider::uniqueValues( int index, QList<QVariant> &values, in
   QgsFeature f;
   QgsAttributeList keys;
   keys.append( index );
-  QgsFeatureIterator fi = getFeatures( QgsFeatureRequest().setSubsetOfAttributes( keys ) );
+  QgsFeatureIterator fi = getFeatures( QgsFeatureRequest().setSubsetOfAttributes( keys ).setFlags( QgsFeatureRequest::NoGeometry ) );
 
   QSet<QString> set;
   values.clear();
@@ -461,7 +461,8 @@ void QgsVectorDataProvider::fillMinMaxCache()
 
   QgsFeature f;
   QgsAttributeList keys = mCacheMinValues.keys();
-  QgsFeatureIterator fi = getFeatures( QgsFeatureRequest().setSubsetOfAttributes( keys ) );
+  QgsFeatureIterator fi = getFeatures( QgsFeatureRequest().setSubsetOfAttributes( keys )
+                                       .setFlags( QgsFeatureRequest::NoGeometry ) );
 
   while ( fi.nextFeature( f ) )
   {
diff --git a/src/core/qgsvectorlayer.cpp b/src/core/qgsvectorlayer.cpp
index 1071b65..5068d13 100644
--- a/src/core/qgsvectorlayer.cpp
+++ b/src/core/qgsvectorlayer.cpp
@@ -2177,8 +2177,11 @@ bool QgsVectorLayer::writeStyle( QDomNode &node, QDomDocument &doc, QString &err
 
   if ( hasGeometryType() )
   {
-    QDomElement rendererElement = mRendererV2->save( doc );
-    node.appendChild( rendererElement );
+    if ( mRendererV2 )
+    {
+      QDomElement rendererElement = mRendererV2->save( doc );
+      node.appendChild( rendererElement );
+    }
 
     if ( mLabeling )
     {
@@ -2295,9 +2298,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
@@ -2305,9 +2312,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 6bad318..0505afb 100644
--- a/src/core/qgsvectorlayer.h
+++ b/src/core/qgsvectorlayer.h
@@ -935,7 +935,33 @@ class CORE_EXPORT QgsVectorLayer : public QgsMapLayer
      */
     bool writeStyle( 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/qgsvectorlayerlabelprovider.h b/src/core/qgsvectorlayerlabelprovider.h
index f01d928..81ac4e9 100644
--- a/src/core/qgsvectorlayerlabelprovider.h
+++ b/src/core/qgsvectorlayerlabelprovider.h
@@ -118,6 +118,8 @@ class CORE_EXPORT QgsVectorLayerLabelProvider : public QgsAbstractLabelProvider
 
     //! List of generated
     QList<QgsLabelFeature*> mLabels;
+
+    friend class TestQgsLabelingEngineV2;
 };
 
 #endif // QGSVECTORLAYERLABELPROVIDER_H
diff --git a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp
index 68ebfc1..aeaf748 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 );
 }
 
@@ -519,17 +522,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 9dd2df4..5c97159 100644
--- a/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
+++ b/src/core/symbology-ng/qgscategorizedsymbolrendererv2.h
@@ -58,7 +58,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;
@@ -99,7 +104,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 3d8a203..70328d3 100644
--- a/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsellipsesymbollayerv2.cpp
@@ -409,12 +409,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 );
@@ -452,6 +449,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 e9b02a6..e673031 100644
--- a/src/core/symbology-ng/qgsellipsesymbollayerv2.h
+++ b/src/core/symbology-ng/qgsellipsesymbollayerv2.h
@@ -40,6 +40,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 6ac334f..b9b490e 100644
--- a/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsfillsymbollayerv2.cpp
@@ -352,11 +352,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
@@ -1778,6 +1780,7 @@ void QgsSVGFillSymbolLayer::setOutputUnit( QgsSymbolV2::OutputUnit unit )
   mPatternWidthUnit = unit;
   mSvgOutlineWidthUnit = unit;
   mOutlineWidthUnit = unit;
+  mOutline->setOutputUnit( unit );
 }
 
 QgsSymbolV2::OutputUnit QgsSVGFillSymbolLayer::outputUnit() const
@@ -2088,7 +2091,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
   {
@@ -2099,7 +2103,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>
@@ -2887,7 +2892,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;
@@ -2905,6 +2912,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 );
 }
 
@@ -3064,6 +3072,11 @@ void QgsPointPatternFillSymbolLayer::setOutputUnit( QgsSymbolV2::OutputUnit unit
   mDistanceYUnit = unit;
   mDisplacementXUnit = unit;
   mDisplacementYUnit = unit;
+  if ( mMarkerSymbol )
+  {
+    mMarkerSymbol->setOutputUnit( unit );
+  }
+
 }
 
 QgsSymbolV2::OutputUnit QgsPointPatternFillSymbolLayer::outputUnit() const
@@ -3306,7 +3319,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 6692e47..dad6414 100644
--- a/src/core/symbology-ng/qgsfillsymbollayerv2.h
+++ b/src/core/symbology-ng/qgsfillsymbollayerv2.h
@@ -63,6 +63,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;
@@ -809,6 +810,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
@@ -899,6 +901,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;
@@ -995,6 +998,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;
@@ -1099,6 +1103,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 b282ad9..b755b63 100644
--- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp
@@ -561,19 +561,24 @@ 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 );
+    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 0370eff..3ea1587 100644
--- a/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
+++ b/src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h
@@ -152,7 +152,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 4fb192c..051f626 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( qgsDoubleToString( mOffset ) ) );
+    double offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+    perpOffsetElem.appendChild( doc.createTextNode( qgsDoubleToString( offset ) ) );
     symbolizerElem.appendChild( perpOffsetElem );
   }
 }
@@ -1413,7 +1416,8 @@ void QgsMarkerLineSymbolLayerV2::toSld( QDomDocument &doc, QDomElement &element,
         symbolizerElem.appendChild( QgsSymbolLayerV2Utils::createVendorOptionElement( doc, "placement", "points" ) );
         break;
       default:
-        gap = qgsDoubleToString( mInterval );
+        double interval = QgsSymbolLayerV2Utils::rescaleUom( mInterval, mIntervalUnit, props );
+        gap = qgsDoubleToString( interval );
         break;
     }
 
@@ -1446,14 +1450,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( qgsDoubleToString( mOffset ) ) );
+      double offset = QgsSymbolLayerV2Utils::rescaleUom( mOffset, mOffsetUnit, props );
+      perpOffsetElem.appendChild( doc.createTextNode( qgsDoubleToString( offset ) ) );
       symbolizerElem.appendChild( perpOffsetElem );
     }
   }
@@ -1554,6 +1559,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 1481aeb..2a05ab5 100644
--- a/src/core/symbology-ng/qgslinesymbollayerv2.h
+++ b/src/core/symbology-ng/qgslinesymbollayerv2.h
@@ -61,6 +61,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;
@@ -196,6 +197,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 147a170..a575ed1 100644
--- a/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
+++ b/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
@@ -1123,7 +1123,9 @@ void QgsSimpleMarkerSymbolLayerV2::writeSldMarker( QDomDocument &doc, QDomElemen
   QDomElement graphicElem = doc.createElement( "se:Graphic" );
   element.appendChild( graphicElem );
 
-  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, encodeShape( mShape ), mColor, mBorderColor, mOutlineStyle, mOutlineWidth, mSize );
+  double outlineWidth = QgsSymbolLayerV2Utils::rescaleUom( mOutlineWidth, mOutlineWidthUnit, props );
+  double size = QgsSymbolLayerV2Utils::rescaleUom( mSize, mSizeUnit, props );
+  QgsSymbolLayerV2Utils::wellKnownMarkerToSld( doc, graphicElem, encodeShape( mShape ), mColor, mBorderColor, mOutlineStyle, outlineWidth, size );
 
   // <Rotation>
   QString angleFunc;
@@ -1140,7 +1142,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
@@ -2225,7 +2228,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;
@@ -2243,7 +2247,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 )
@@ -2847,7 +2852,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;
@@ -2864,7 +2870,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 7ead4a6..7d344eb 100644
--- a/src/core/symbology-ng/qgspointdisplacementrenderer.cpp
+++ b/src/core/symbology-ng/qgspointdisplacementrenderer.cpp
@@ -89,7 +89,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 4530545..ab19449 100644
--- a/src/core/symbology-ng/qgspointdisplacementrenderer.h
+++ b/src/core/symbology-ng/qgspointdisplacementrenderer.h
@@ -47,7 +47,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 658e633..e2e950a 100644
--- a/src/core/symbology-ng/qgsrendererv2.cpp
+++ b/src/core/symbology-ng/qgsrendererv2.cpp
@@ -340,10 +340,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" );
 
@@ -352,7 +353,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 4cc30b9..48cca85 100644
--- a/src/core/symbology-ng/qgsrendererv2.h
+++ b/src/core/symbology-ng/qgsrendererv2.h
@@ -238,7 +238,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
+    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
@@ -254,7 +260,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 ea86c94..e95df6b 100644
--- a/src/core/symbology-ng/qgsrulebasedrendererv2.cpp
+++ b/src/core/symbology-ng/qgsrulebasedrendererv2.cpp
@@ -334,39 +334,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 )
   {
@@ -397,32 +380,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 );
   }
 }
 
@@ -979,7 +950,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 69b8be7..4a34fd6 100644
--- a/src/core/symbology-ng/qgsrulebasedrendererv2.h
+++ b/src/core/symbology-ng/qgsrulebasedrendererv2.h
@@ -257,7 +257,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;
@@ -437,7 +442,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 89093e6..99f7d1a 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.cpp
@@ -207,11 +207,16 @@ QgsSingleSymbolRendererV2* QgsSingleSymbolRendererV2::clone() const
 
 void QgsSingleSymbolRendererV2::toSld( QDomDocument& doc, QDomElement &element ) const
 {
-  QgsStringMap props;
+  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 );
@@ -220,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 fa6f20a..51b772e 100644
--- a/src/core/symbology-ng/qgssinglesymbolrendererv2.h
+++ b/src/core/symbology-ng/qgssinglesymbolrendererv2.h
@@ -61,7 +61,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 2e1ad56..549f264 100644
--- a/src/core/symbology-ng/qgssymbollayerv2.h
+++ b/src/core/symbology-ng/qgssymbollayerv2.h
@@ -92,6 +92,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() ) ) ); }
 
@@ -592,6 +593,7 @@ class CORE_EXPORT QgsMarkerSymbolLayerV2 : public QgsSymbolLayerV2
      */
     VerticalAnchorPoint verticalAnchorPoint() const { return mVerticalAnchorPoint; }
 
+    //! Writes the SLD element following the SLD v1.1 specs
     virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const override;
 
     /** Writes the symbol layer definition as a SLD XML element.
diff --git a/src/core/symbology-ng/qgssymbollayerv2utils.cpp b/src/core/symbology-ng/qgssymbollayerv2utils.cpp
index 48c2983..3c12908 100644
--- a/src/core/symbology-ng/qgssymbollayerv2utils.cpp
+++ b/src/core/symbology-ng/qgssymbollayerv2utils.cpp
@@ -455,7 +455,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();
@@ -2308,7 +2308,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 );
   }
 }
@@ -2329,7 +2329,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 );
   }
 }
@@ -2533,7 +2533,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 )
@@ -2545,6 +2545,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
@@ -4081,3 +4096,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 49b7fb2..e9e48cb 100644
--- a/src/core/symbology-ng/qgssymbollayerv2utils.h
+++ b/src/core/symbology-ng/qgssymbollayerv2utils.h
@@ -259,6 +259,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 );
 
@@ -479,6 +487,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
+     */
+    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
+     */
+    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
+     */
+    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
+     */
+    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
+      */
+    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 9587aca..46e33e1 100644
--- a/src/core/symbology-ng/qgssymbolv2.cpp
+++ b/src/core/symbology-ng/qgssymbolv2.cpp
@@ -624,16 +624,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 ) ? qgsDoubleToString( 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 2e5ecc1..38bc64f 100644
--- a/src/core/symbology-ng/qgssymbolv2.h
+++ b/src/core/symbology-ng/qgssymbolv2.h
@@ -191,7 +191,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/qgsvectorcolorrampv2.cpp b/src/core/symbology-ng/qgsvectorcolorrampv2.cpp
index 61fe3ec..313577a 100644
--- a/src/core/symbology-ng/qgsvectorcolorrampv2.cpp
+++ b/src/core/symbology-ng/qgsvectorcolorrampv2.cpp
@@ -313,8 +313,11 @@ double QgsVectorRandomColorRampV2::value( int index ) const
 
 QColor QgsVectorRandomColorRampV2::color( double value ) const
 {
+  if ( value < 0 || value > 1 )
+    return QColor();
+
   int colorCnt = mColors.count();
-  int colorIdx = static_cast< int >( value * ( colorCnt - 1 ) );
+  int colorIdx = qMin( static_cast< int >( value * colorCnt ), colorCnt - 1 );
 
   if ( colorIdx >= 0 && colorIdx < colorCnt )
     return mColors.at( colorIdx );
diff --git a/src/core/symbology-ng/qgsvectorfieldsymbollayer.h b/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
index 1e60865..c33dcf7 100644
--- a/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
+++ b/src/core/symbology-ng/qgsvectorfieldsymbollayer.h
@@ -65,6 +65,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/qgsdatetimeeditwrapper.cpp b/src/gui/editorwidgets/qgsdatetimeeditwrapper.cpp
index ff7c1c6..b59647a 100644
--- a/src/gui/editorwidgets/qgsdatetimeeditwrapper.cpp
+++ b/src/gui/editorwidgets/qgsdatetimeeditwrapper.cpp
@@ -66,7 +66,7 @@ void QgsDateTimeEditWrapper::initWidget( QWidget *editor )
 
   const bool calendar = config( "calendar_popup", false ).toBool();
   mQDateTimeEdit->setCalendarPopup( calendar );
-  if ( calendar )
+  if ( calendar && mQDateTimeEdit->calendarWidget() )
   {
     // highlight today's date
     QTextCharFormat todayFormat;
diff --git a/src/gui/editorwidgets/qgsdatetimesearchwidgetwrapper.cpp b/src/gui/editorwidgets/qgsdatetimesearchwidgetwrapper.cpp
index 2a1f7b4..c814184 100644
--- a/src/gui/editorwidgets/qgsdatetimesearchwidgetwrapper.cpp
+++ b/src/gui/editorwidgets/qgsdatetimesearchwidgetwrapper.cpp
@@ -156,7 +156,7 @@ void QgsDateTimeSearchWidgetWrapper::initWidget( QWidget* editor )
 
     const bool calendar = config( "calendar_popup", false ).toBool();
     mDateTimeEdit->setCalendarPopup( calendar );
-    if ( calendar )
+    if ( calendar && mDateTimeEdit->calendarWidget() )
     {
       // highlight today's date
       QTextCharFormat todayFormat;
diff --git a/src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp b/src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp
index bf46d7a..aec4950 100644
--- a/src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp
+++ b/src/gui/editorwidgets/qgswebviewwidgetwrapper.cpp
@@ -125,6 +125,7 @@ void QgsWebViewWidgetWrapper::initWidget( QWidget* editor )
     mWebView->page()->setNetworkAccessManager( QgsNetworkAccessManager::instance() );
     mWebView->settings()->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls, true );
     mWebView->settings()->setAttribute( QWebSettings::JavascriptCanOpenWindows, true );
+    mWebView->settings()->setAttribute( QWebSettings::PluginsEnabled, true );
 #ifdef QGISDEBUG
     mWebView->settings()->setAttribute( QWebSettings::DeveloperExtrasEnabled, true );
 #endif
diff --git a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
index 23a288f..9e5f1b9 100644
--- a/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
+++ b/src/gui/symbology-ng/qgsrulebasedrendererv2widget.cpp
@@ -608,6 +608,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRendererV2::
     , mMapCanvas( mapCanvas )
 {
   setupUi( this );
+  layout()->setMargin( 0 );
+  layout()->setContentsMargins( 0, 0, 0, 0 );
 
   editFilter->setText( mRule->filterExpression() );
   editFilter->setToolTip( mRule->filterExpression() );
@@ -649,8 +651,8 @@ QgsRendererRulePropsWidget::QgsRendererRulePropsWidget( QgsRuleBasedRendererV2::
   connect( btnExpressionBuilder, SIGNAL( clicked() ), this, SLOT( buildExpression() ) );
   connect( btnTestFilter, SIGNAL( clicked() ), this, SLOT( testFilter() ) );
   connect( editFilter, SIGNAL( textChanged( QString ) ), this, SIGNAL( widgetChanged() ) );
-  connect( editLabel, SIGNAL( textChanged( QString ) ), this, SIGNAL( widgetChanged() ) );
-  connect( editDescription, SIGNAL( textChanged( QString ) ), this, SIGNAL( widgetChanged() ) );
+  connect( editLabel, SIGNAL( editingFinished() ), this, SIGNAL( widgetChanged() ) );
+  connect( editDescription, SIGNAL( editingFinished() ), this, SIGNAL( widgetChanged() ) );
   connect( groupSymbol, SIGNAL( toggled( bool ) ), this, SIGNAL( widgetChanged() ) );
   connect( groupScale, SIGNAL( toggled( bool ) ), this, SIGNAL( widgetChanged() ) );
   connect( mScaleRangeWidget, SIGNAL( rangeChanged( double, double ) ), this, SIGNAL( widgetChanged() ) );
diff --git a/src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp b/src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp
index 55a45a5..a144711 100644
--- a/src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp
+++ b/src/providers/delimitedtext/qgsdelimitedtextfeatureiterator.cpp
@@ -502,8 +502,16 @@ QgsDelimitedTextFeatureSource::QgsDelimitedTextFeatureSource( const QgsDelimited
     , mXyDms( p->mXyDms )
     , attributeColumns( p->attributeColumns )
 {
+  QUrl url = p->mFile->url();
+
+  // make sure watcher not created when using iterator (e.g. for rendering, see issue #15558)
+  if ( url.hasQueryItem( "watchFile" ) )
+  {
+    url.removeQueryItem( "watchFile" );
+  }
+
   mFile = new QgsDelimitedTextFile();
-  mFile->setFromUrl( p->mFile->url() );
+  mFile->setFromUrl( url );
 
   mExpressionContext << QgsExpressionContextUtils::globalScope()
   << QgsExpressionContextUtils::projectScope();
diff --git a/src/providers/delimitedtext/qgsdelimitedtextfile.cpp b/src/providers/delimitedtext/qgsdelimitedtextfile.cpp
index a68bc44..8b37fe6 100644
--- a/src/providers/delimitedtext/qgsdelimitedtextfile.cpp
+++ b/src/providers/delimitedtext/qgsdelimitedtextfile.cpp
@@ -35,7 +35,7 @@ QgsDelimitedTextFile::QgsDelimitedTextFile( const QString& url )
     , mEncoding( "UTF-8" )
     , mFile( nullptr )
     , mStream( nullptr )
-    , mUseWatcher( true )
+    , mUseWatcher( false )
     , mWatcher( nullptr )
     , mDefinitionValid( false )
     , mUseHeader( true )
@@ -158,9 +158,9 @@ bool QgsDelimitedTextFile::setFromUrl( const QUrl &url )
   }
 
   //
-  if ( url.hasQueryItem( "useWatcher" ) )
+  if ( url.hasQueryItem( "watchFile" ) )
   {
-    mUseWatcher = ! url.queryItemValue( "useWatcher" ).toUpper().startsWith( 'N' );
+    mUseWatcher = url.queryItemValue( "watchFile" ).toUpper().startsWith( 'Y' );
   }
 
   // The default type is csv, to be consistent with the
@@ -269,9 +269,9 @@ QUrl QgsDelimitedTextFile::url()
     url.addQueryItem( "encoding", mEncoding );
   }
 
-  if ( !mUseWatcher )
+  if ( mUseWatcher )
   {
-    url.addQueryItem( "useWatcher", "no" );
+    url.addQueryItem( "watchFile", "yes" );
   }
 
   url.addQueryItem( "type", type() );
diff --git a/src/providers/ogr/qgsogrconnpool.h b/src/providers/ogr/qgsogrconnpool.h
index 28b8c4e..b020f9c 100644
--- a/src/providers/ogr/qgsogrconnpool.h
+++ b/src/providers/ogr/qgsogrconnpool.h
@@ -17,6 +17,7 @@
 #define QGSOGRCONNPOOL_H
 
 #include "qgsconnectionpool.h"
+#include "qgsogrprovider.h"
 #include <ogr_api.h>
 
 
@@ -43,7 +44,7 @@ inline void qgsConnectionPool_ConnectionCreate( QString connInfo, QgsOgrConn*& c
 
 inline void qgsConnectionPool_ConnectionDestroy( QgsOgrConn* c )
 {
-  OGR_DS_Destroy( c->ds );
+  QgsOgrProviderUtils::OGRDestroyWrapper( c->ds );
   delete c;
 }
 
diff --git a/src/providers/ogr/qgsogrfeatureiterator.cpp b/src/providers/ogr/qgsogrfeatureiterator.cpp
index 04a0bc7..4dd6a33 100644
--- a/src/providers/ogr/qgsogrfeatureiterator.cpp
+++ b/src/providers/ogr/qgsogrfeatureiterator.cpp
@@ -254,6 +254,12 @@ bool QgsOgrFeatureIterator::close()
 
   iteratorClosed();
 
+  // Will for example release SQLite3 statements
+  if ( ogrLayer )
+  {
+    OGR_L_ResetReading( ogrLayer );
+  }
+
   if ( mSubsetStringSet )
   {
     OGR_DS_ReleaseResultSet( mConn->ds, ogrLayer );
@@ -263,6 +269,7 @@ bool QgsOgrFeatureIterator::close()
     QgsOgrConnPool::instance()->releaseConnection( mConn );
 
   mConn = nullptr;
+  ogrLayer = nullptr;
 
   mClosed = true;
   return true;
diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp
index 122a52d..b5fb39a 100644
--- a/src/providers/ogr/qgsogrprovider.cpp
+++ b/src/providers/ogr/qgsogrprovider.cpp
@@ -49,6 +49,13 @@ email                : sherman at mrcc.com
 #include "qgsvectorlayerimport.h"
 #include "qgslocalec.h"
 
+#ifdef Q_OS_WIN
+#include <windows.h>
+#endif
+#ifdef Q_OS_LINUX
+#include <sys/vfs.h>
+#endif
+
 static const QString TEXT_PROVIDER_KEY = "ogr";
 static const QString TEXT_PROVIDER_DESCRIPTION =
   QString( "OGR data provider" )
@@ -384,11 +391,14 @@ QgsOgrProvider::QgsOgrProvider( QString const & uri )
 
 QgsOgrProvider::~QgsOgrProvider()
 {
-  close();
   QgsOgrConnPool::instance()->unref( dataSourceUri() );
   // We must also make sure to flush unusef cached connections so that
   // the file can be removed (#15137)
   QgsOgrConnPool::instance()->invalidateConnections( dataSourceUri() );
+
+  // Do that as last step for final cleanup that might be prevented by
+  // still opened datasets.
+  close();
 }
 
 QgsAbstractFeatureSource* QgsOgrProvider::featureSource() const
@@ -2905,6 +2915,125 @@ OGRDataSourceH QgsOgrProviderUtils::OGROpenWrapper( const char* pszPath, bool bU
   return hDS;
 }
 
+static bool IsLocalFile( const QString& path )
+{
+  QString dirName( QFileInfo( path ).absolutePath() );
+  // Start with the OS specific methods since the QT >= 5.4 method just
+  // return a string and not an enumerated type.
+#if defined(Q_OS_WIN)
+  if ( dirName.startsWith( "\\\\" ) )
+    return false;
+  if ( dirName.length() >= 3 && dirName[1] == ':' &&
+       ( dirName[2] == '\\' || dirName[2] == '/' ) )
+  {
+    dirName.resize( 3 );
+    return GetDriveType( dirName.toAscii().constData() ) != DRIVE_REMOTE;
+  }
+  return true;
+#elif defined(Q_OS_LINUX)
+  struct statfs sStatFS;
+  if ( statfs( dirName.toAscii().constData(), &sStatFS ) == 0 )
+  {
+    // Codes from http://man7.org/linux/man-pages/man2/statfs.2.html
+    if ( sStatFS.f_type == 0x6969 /* NFS */ ||
+         sStatFS.f_type == 0x517b /* SMB */ ||
+         sStatFS.f_type == 0xff534d42 /* CIFS */ )
+    {
+      return false;
+    }
+  }
+  return true;
+#elif QT_VERSION >= QT_VERSION_CHECK(5, 4, 0)
+  QStorageInfo info( dirName );
+  QString fileSystem( info.fileSystemType() );
+  QgsDebugMsg( QString( "Filesystem for %1 is %2" ).arg( path ).arg( fileSystem ) );
+  return path != "nfs" && path != "smbfs";
+#else
+  return true;
+#endif
+}
+
+void QgsOgrProviderUtils::OGRDestroyWrapper( OGRDataSourceH ogrDataSource )
+{
+  if ( !ogrDataSource )
+    return;
+  OGRSFDriverH ogrDriver = OGR_DS_GetDriver( ogrDataSource );
+  QString ogrDriverName = OGR_Dr_GetName( ogrDriver );
+  QString datasetName( FROM8( OGR_DS_GetName( ogrDataSource ) ) );
+  if ( ogrDriverName == "GPKG" &&
+       IsLocalFile( datasetName ) &&
+       !CPLGetConfigOption( "OGR_SQLITE_JOURNAL", NULL ) )
+  {
+    // We need to reset all iterators on layers, otherwise we will not
+    // be able to change journal_mode.
+    int layerCount = OGR_DS_GetLayerCount( ogrDataSource );
+    for ( int i = 0; i < layerCount; i ++ )
+    {
+      OGR_L_ResetReading( OGR_DS_GetLayer( ogrDataSource, i ) );
+    }
+
+    CPLPushErrorHandler( CPLQuietErrorHandler );
+    QgsDebugMsg( "GPKG: Trying to return to delete mode" );
+    bool bSuccess = false;
+    OGRLayerH hSqlLyr = OGR_DS_ExecuteSQL( ogrDataSource,
+                                           "PRAGMA journal_mode = delete",
+                                           NULL, NULL );
+    if ( hSqlLyr != NULL )
+    {
+      OGRFeatureH hFeat = OGR_L_GetNextFeature( hSqlLyr );
+      if ( hFeat != NULL )
+      {
+        const char* pszRet = OGR_F_GetFieldAsString( hFeat, 0 );
+        bSuccess = EQUAL( pszRet, "delete" );
+        QgsDebugMsg( QString( "Return: %1" ).arg( pszRet ) );
+        OGR_F_Destroy( hFeat );
+      }
+    }
+    else if ( CPLGetLastErrorType() != CE_None )
+    {
+      QgsDebugMsg( QString( "Return: %1" ).arg( CPLGetLastErrorMsg() ) );
+    }
+    OGR_DS_ReleaseResultSet( ogrDataSource, hSqlLyr );
+    CPLPopErrorHandler();
+    OGR_DS_Destroy( ogrDataSource );
+
+    // This may have not worked if the file was opened in read-only mode,
+    // so retry in update mode
+    if ( !bSuccess )
+    {
+      QgsDebugMsg( "GPKG: Trying again" );
+      CPLSetThreadLocalConfigOption( "OGR_SQLITE_JOURNAL", "DELETE" );
+      ogrDataSource = OGROpen( TO8F( datasetName ), TRUE, NULL );
+      CPLSetThreadLocalConfigOption( "OGR_SQLITE_JOURNAL", NULL );
+      if ( ogrDataSource )
+      {
+#ifdef QGISDEBUG
+        CPLPushErrorHandler( CPLQuietErrorHandler );
+        OGRLayerH hSqlLyr = OGR_DS_ExecuteSQL( ogrDataSource,
+                                               "PRAGMA journal_mode",
+                                               NULL, NULL );
+        CPLPopErrorHandler();
+        if ( hSqlLyr != NULL )
+        {
+          OGRFeatureH hFeat = OGR_L_GetNextFeature( hSqlLyr );
+          if ( hFeat != NULL )
+          {
+            const char* pszRet = OGR_F_GetFieldAsString( hFeat, 0 );
+            QgsDebugMsg( QString( "Return: %1" ).arg( pszRet ) );
+            OGR_F_Destroy( hFeat );
+          }
+          OGR_DS_ReleaseResultSet( ogrDataSource, hSqlLyr );
+        }
+#endif
+        OGR_DS_Destroy( ogrDataSource );
+      }
+    }
+  }
+  else
+  {
+    OGR_DS_Destroy( ogrDataSource );
+  }
+}
 
 QByteArray QgsOgrProviderUtils::quotedIdentifier( QByteArray field, const QString& ogrDriverName )
 {
@@ -3140,7 +3269,22 @@ void QgsOgrProvider::open( OpenMode mode )
 
   // first try to open in update mode (unless specified otherwise)
   if ( !openReadOnly )
+  {
+    if ( QFileInfo( mFilePath ).suffix().compare( "gpkg", Qt::CaseInsensitive ) == 0 &&
+         IsLocalFile( mFilePath ) &&
+         !CPLGetConfigOption( "OGR_SQLITE_JOURNAL", NULL ) &&
+         QSettings().value( "/qgis/walForSqlite3", true ).toBool() )
+    {
+      // For GeoPackage, we force opening of the file in WAL (Write Ahead Log)
+      // mode so as to avoid readers blocking writer(s), and vice-versa.
+      // https://www.sqlite.org/wal.html
+      // But only do that on a local file since WAL is advertized not to work
+      // on network shares
+      CPLSetThreadLocalConfigOption( "OGR_SQLITE_JOURNAL", "WAL" );
+    }
     ogrDataSource = QgsOgrProviderUtils::OGROpenWrapper( TO8F( mFilePath ), true, &ogrDriver );
+    CPLSetThreadLocalConfigOption( "OGR_SQLITE_JOURNAL", NULL );
+  }
 
   mValid = false;
   if ( ogrDataSource )
@@ -3270,7 +3414,7 @@ void QgsOgrProvider::close()
 
   if ( ogrDataSource )
   {
-    OGR_DS_Destroy( ogrDataSource );
+    QgsOgrProviderUtils::OGRDestroyWrapper( ogrDataSource );
   }
   ogrDataSource = nullptr;
   ogrLayer = nullptr;
diff --git a/src/providers/ogr/qgsogrprovider.h b/src/providers/ogr/qgsogrprovider.h
index 1b6cea5..6b2b534 100644
--- a/src/providers/ogr/qgsogrprovider.h
+++ b/src/providers/ogr/qgsogrprovider.h
@@ -15,6 +15,9 @@ email                : sherman at mrcc.com
  *                                                                         *
  ***************************************************************************/
 
+#ifndef QGSOGRPROVIDER_H
+#define QGSOGRPROVIDER_H
+
 #include "QTextCodec"
 
 #include "qgsrectangle.h"
@@ -393,4 +396,7 @@ class QgsOgrProviderUtils
     static QString quotedValue( const QVariant& value );
 
     static OGRDataSourceH OGROpenWrapper( const char* pszPath, bool bUpdate, OGRSFDriverH *phDriver );
+    static void OGRDestroyWrapper( OGRDataSourceH ogrDataSource );
 };
+
+#endif // QGSOGRPROVIDER_H
diff --git a/src/providers/postgres/qgspostgresdataitems.cpp b/src/providers/postgres/qgspostgresdataitems.cpp
index 36813d4..cf42e3d 100644
--- a/src/providers/postgres/qgspostgresdataitems.cpp
+++ b/src/providers/postgres/qgspostgresdataitems.cpp
@@ -691,9 +691,13 @@ bool QgsPGSchemaItem::handleDrop( const QMimeData * data, Qt::DropAction )
 {
   QgsPGConnectionItem *conn = qobject_cast<QgsPGConnectionItem *>( parent() );
   if ( !conn )
-    return 0;
+    return false;
+
+  bool result = conn->handleDrop( data, mName );
+  if ( result )
+    refresh();
 
-  return conn->handleDrop( data, mName );
+  return result;
 }
 
 // ---------------------------------------------------------------------------
diff --git a/src/providers/spatialite/qgsspatialitesourceselect.cpp b/src/providers/spatialite/qgsspatialitesourceselect.cpp
index c16ece1..e09e0ea 100644
--- a/src/providers/spatialite/qgsspatialitesourceselect.cpp
+++ b/src/providers/spatialite/qgsspatialitesourceselect.cpp
@@ -461,6 +461,10 @@ void QgsSpatiaLiteSourceSelect::on_btnConnect_clicked()
         QMessageBox::critical( this, tr( "SpatiaLite getTableInfo Error" ),
                                tr( "Failure exploring tables from: %1\n\n%2" ).arg( mSqlitePath, errCause ) );
         break;
+      case QgsSpatiaLiteConnection::FailedToCheckMetadata:
+        QMessageBox::critical( this, tr( "SpatiaLite metadata check failed" ),
+                               tr( "Failure getting table metadata ... is this really a SpatialLite database? %1\n\n%2" ).arg( mSqlitePath, errCause ) );
+        break;
       default:
         QMessageBox::critical( this, tr( "SpatiaLite Error" ),
                                tr( "Unexpected error when working with: %1\n\n%2" ).arg( mSqlitePath, errCause ) );
diff --git a/src/providers/virtual/qgsvirtuallayerqueryparser.cpp b/src/providers/virtual/qgsvirtuallayerqueryparser.cpp
index ee5a5ba..0193258 100644
--- a/src/providers/virtual/qgsvirtuallayerqueryparser.cpp
+++ b/src/providers/virtual/qgsvirtuallayerqueryparser.cpp
@@ -39,8 +39,8 @@ namespace QgsVirtualLayerQueryParser
     while ( true )
     {
       char *errMsg = nullptr;
-      int r = sqlite3_exec( db.get(), query.toLocal8Bit().constData(), nullptr, nullptr, &errMsg );
-      QString err = errMsg;
+      int r = sqlite3_exec( db.get(), query.toUtf8().constData(), nullptr, nullptr, &errMsg );
+      QString err = QString::fromUtf8( errMsg );
       if ( r && err.startsWith( noSuchError ) )
       {
         QString tableName = err.mid( noSuchError.size() );
@@ -48,7 +48,7 @@ namespace QgsVirtualLayerQueryParser
 
         // create a dummy table to skip this error
         QString createStr = QString( "CREATE TABLE \"%1\" (id int)" ).arg( tableName.replace( "\"", "\"\"" ) );
-        ( void )sqlite3_exec( db.get(), createStr.toLocal8Bit().constData(), nullptr, NULL, NULL );
+        ( void )sqlite3_exec( db.get(), createStr.toUtf8().constData(), nullptr, NULL, NULL );
       }
       else
       {
diff --git a/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp b/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp
index 3b9676c..c971620 100644
--- a/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp
+++ b/src/providers/virtual/qgsvirtuallayersqlitemodule.cpp
@@ -327,11 +327,11 @@ int vtableCreateConnect( sqlite3* sql, void* aux, int argc, const char* const* a
   Q_UNUSED( isCreated );
 
 #define RETURN_CSTR_ERROR(err) if (outErr) {size_t s = strlen(err); *outErr=reinterpret_cast<char*>(sqlite3_malloc( static_cast<int>( s ) +1)); strncpy(*outErr, err, s);}
-#define RETURN_CPPSTR_ERROR(err) if (outErr) {*outErr=reinterpret_cast<char*>(sqlite3_malloc( static_cast<int>( err.size() )+1)); strncpy(*outErr, err.c_str(), err.size());}
+#define RETURN_CPPSTR_ERROR(err) if (outErr) {*outErr=reinterpret_cast<char*>(sqlite3_malloc( static_cast<int>( err.toUtf8().size() )+1)); strncpy(*outErr, err.toUtf8().constData(), err.toUtf8().size());}
 
   if ( argc < 4 )
   {
-    std::string err( "Missing arguments: layer_id | provider, source" );
+    QString err( "Missing arguments: layer_id | provider, source" );
     RETURN_CPPSTR_ERROR( err );
     return SQLITE_ERROR;
   }
@@ -344,7 +344,7 @@ int vtableCreateConnect( sqlite3* sql, void* aux, int argc, const char* const* a
     // CREATE VIRTUAL TABLE vtab USING QgsVLayer(layer_id)
     // vtab = argv[2]
     // layer_id = argv[3]
-    QString layerid( argv[3] );
+    QString layerid = QString::fromUtf8( argv[3] );
     if ( layerid.size() >= 1 && layerid[0] == '\'' )
     {
       layerid = layerid.mid( 1, layerid.size() - 2 );
@@ -354,8 +354,8 @@ int vtableCreateConnect( sqlite3* sql, void* aux, int argc, const char* const* a
     {
       if ( outErr )
       {
-        std::string err( "Cannot find layer " );
-        err += argv[3];
+        QString err( "Cannot find layer " );
+        err += QString::fromUtf8( argv[3] );
         RETURN_CPPSTR_ERROR( err );
       }
       return SQLITE_ERROR;
@@ -371,7 +371,7 @@ int vtableCreateConnect( sqlite3* sql, void* aux, int argc, const char* const* a
     // source = argv[4]
     // encoding = argv[5]
     QString provider = argv[3];
-    QString source = argv[4];
+    QString source = QString::fromUtf8( argv[4] );
     QString encoding = "UTF-8";
     if ( argc == 6 )
     {
@@ -389,17 +389,16 @@ int vtableCreateConnect( sqlite3* sql, void* aux, int argc, const char* const* a
     }
     try
     {
-      newVtab.reset( new VTable( sql, provider, source, argv[2], encoding ) );
+      newVtab.reset( new VTable( sql, provider, source, QString::fromUtf8( argv[2] ), encoding ) );
     }
     catch ( std::runtime_error& e )
     {
-      std::string err( e.what() );
-      RETURN_CPPSTR_ERROR( err );
+      RETURN_CSTR_ERROR( e.what() );
       return SQLITE_ERROR;
     }
   }
 
-  r = sqlite3_declare_vtab( sql, newVtab->creationString().toLocal8Bit().constData() );
+  r = sqlite3_declare_vtab( sql, newVtab->creationString().toUtf8().constData() );
   if ( r )
   {
     RETURN_CSTR_ERROR( sqlite3_errmsg( sql ) );
diff --git a/src/server/qgswmsprojectparser.cpp b/src/server/qgswmsprojectparser.cpp
index 4448aad..cc5808c 100644
--- a/src/server/qgswmsprojectparser.cpp
+++ b/src/server/qgswmsprojectparser.cpp
@@ -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" );
diff --git a/tests/src/core/testqgsexpression.cpp b/tests/src/core/testqgsexpression.cpp
index 7a0332e..b5ab69d 100644
--- a/tests/src/core/testqgsexpression.cpp
+++ b/tests/src/core/testqgsexpression.cpp
@@ -748,6 +748,7 @@ class TestQgsExpression: public QObject
       QTest::newRow( "shortest_line geom" ) << "geom_to_wkt(shortest_line( geom_from_wkt('LineString( 1 1, 5 1, 5 5 )'),geom_from_wkt('Point( 6 3 )')))" << false << QVariant( "LineString (5 3, 6 3)" );
       QTest::newRow( "shortest_line not geom" ) << "shortest_line('g','a')" << true << QVariant();
       QTest::newRow( "shortest_line null" ) << "shortest_line(NULL,NULL)" << false << QVariant();
+      QTest::newRow( "transform invalid" ) << "transform(make_point(0,0),'EPSG:4326','EPSG:28356')" << false << QVariant();
 
       // string functions
       QTest::newRow( "lower" ) << "lower('HeLLo')" << false << QVariant( "hello" );
diff --git a/tests/src/core/testqgslabelingenginev2.cpp b/tests/src/core/testqgslabelingenginev2.cpp
index 6966ef0..2a1fc76 100644
--- a/tests/src/core/testqgslabelingenginev2.cpp
+++ b/tests/src/core/testqgslabelingenginev2.cpp
@@ -43,6 +43,7 @@ class TestQgsLabelingEngineV2 : public QObject
     void testRuleBased();
     void zOrder(); //test that labels are stacked correctly
     void testEncodeDecodePositionOrder();
+    void testCapitalization();
 
   private:
     QgsVectorLayer* vl;
@@ -413,6 +414,65 @@ void TestQgsLabelingEngineV2::testEncodeDecodePositionOrder()
   QCOMPARE( decoded, expected );
 }
 
+void TestQgsLabelingEngineV2::testCapitalization()
+{
+  QgsFeature f( vl->fields(), 1 );
+  f.setGeometry( QgsGeometry::fromPoint( QgsPoint( 1, 2 ) ) );
+
+  // make a fake render context
+  QSize size( 640, 480 );
+  QgsMapSettings mapSettings;
+  mapSettings.setOutputSize( size );
+  mapSettings.setExtent( vl->extent() );
+  mapSettings.setLayers( QStringList() << vl->id() );
+  mapSettings.setOutputDpi( 96 );
+  QgsRenderContext context = QgsRenderContext::fromMapSettings( mapSettings );
+  QStringList attributes;
+  QgsLabelingEngineV2 engine;
+  engine.setMapSettings( mapSettings );
+
+  // no change
+  QgsPalLayerSettings settings;
+  QFont font = settings.textFont;
+  font.setCapitalization( QFont::MixedCase );
+  settings.textFont = font;
+  settings.fieldName = QString( "'a teSt LABEL'" );
+  settings.isExpression = true;
+
+  QgsVectorLayerLabelProvider* provider = new QgsVectorLayerLabelProvider( vl, "test", true, &settings );
+  engine.addProvider( provider );
+  provider->prepare( context, attributes );
+  provider->registerFeature( f, context );
+  QCOMPARE( provider->mLabels.at( 0 )->labelText(), QString( "a teSt LABEL" ) );
+
+  //uppercase
+  font.setCapitalization( QFont::AllUppercase );
+  settings.textFont = font;
+  QgsVectorLayerLabelProvider* provider2 = new QgsVectorLayerLabelProvider( vl, "test2", true, &settings );
+  engine.addProvider( provider2 );
+  provider2->prepare( context, attributes );
+  provider2->registerFeature( f, context );
+  QCOMPARE( provider2->mLabels.at( 0 )->labelText(), QString( "A TEST LABEL" ) );
+
+  //lowercase
+  font.setCapitalization( QFont::AllLowercase );
+  settings.textFont = font;
+  QgsVectorLayerLabelProvider* provider3 = new QgsVectorLayerLabelProvider( vl, "test3", true, &settings );
+  engine.addProvider( provider3 );
+  provider3->prepare( context, attributes );
+  provider3->registerFeature( f, context );
+  QCOMPARE( provider3->mLabels.at( 0 )->labelText(), QString( "a test label" ) );
+
+  //first letter uppercase
+  font.setCapitalization( QFont::Capitalize );
+  settings.textFont = font;
+  QgsVectorLayerLabelProvider* provider4 = new QgsVectorLayerLabelProvider( vl, "test4", true, &settings );
+  engine.addProvider( provider4 );
+  provider4->prepare( context, attributes );
+  provider4->registerFeature( f, context );
+  QCOMPARE( provider4->mLabels.at( 0 )->labelText(), QString( "A TeSt LABEL" ) );
+}
+
 bool TestQgsLabelingEngineV2::imageCheck( const QString& testName, QImage &image, int mismatchCount )
 {
   //draw background
diff --git a/tests/src/core/testqgslegendrenderer.cpp b/tests/src/core/testqgslegendrenderer.cpp
index 25d33e3..38acd4d 100644
--- a/tests/src/core/testqgslegendrenderer.cpp
+++ b/tests/src/core/testqgslegendrenderer.cpp
@@ -119,6 +119,8 @@ class TestQgsLegendRenderer : public QObject
     void testThreeColumns();
     void testFilterByMap();
     void testFilterByMapSameSymbol();
+    void testColumns_data();
+    void testColumns();
     void testRasterBorder();
     void testFilterByPolygon();
     void testFilterByExpression();
@@ -132,6 +134,7 @@ class TestQgsLegendRenderer : public QObject
     QgsVectorLayer* mVL3; // point
     QgsRasterLayer* mRL;
     QString mReport;
+    bool _testLegendColumns( int itemCount, int columnCount, const QString& testName );
 };
 
 
@@ -454,6 +457,65 @@ void TestQgsLegendRenderer::testFilterByMapSameSymbol()
   QgsMapLayerRegistry::instance()->removeMapLayer( vl4 );
 }
 
+bool TestQgsLegendRenderer::_testLegendColumns( int itemCount, int columnCount, const QString& testName )
+{
+  QgsFillSymbolV2* sym = new QgsFillSymbolV2();
+  sym->setColor( Qt::cyan );
+
+  QgsLayerTreeGroup* root = new QgsLayerTreeGroup();
+
+  QList< QgsVectorLayer* > layers;
+  for ( int i = 1; i <= itemCount; ++i )
+  {
+    QgsVectorLayer* vl = new QgsVectorLayer( "Polygon", QString( "Layer %1" ).arg( i ), "memory" );
+    QgsMapLayerRegistry::instance()->addMapLayer( vl );
+    vl->setRendererV2( new QgsSingleSymbolRendererV2( sym->clone() ) );
+    root->addLayer( vl );
+    layers << vl;
+  }
+  delete sym;
+
+  QgsLayerTreeModel legendModel( root );
+  QgsLegendSettings settings;
+  settings.setColumnCount( columnCount );
+  _setStandardTestFont( settings, "Bold" );
+  _renderLegend( testName, &legendModel, settings );
+  bool result = _verifyImage( testName, mReport );
+
+  Q_FOREACH ( QgsVectorLayer* l, layers )
+  {
+    QgsMapLayerRegistry::instance()->removeMapLayer( l );
+  }
+  return result;
+}
+
+void TestQgsLegendRenderer::testColumns_data()
+{
+  QTest::addColumn<QString>( "testName" );
+  QTest::addColumn<int>( "items" );
+  QTest::addColumn<int>( "columns" );
+
+  QTest::newRow( "2 items, 2 columns" ) << "legend_2_by_2" << 2 << 2;
+  QTest::newRow( "3 items, 2 columns" ) << "legend_3_by_2" << 3 << 2;
+  QTest::newRow( "4 items, 2 columns" ) << "legend_4_by_2" << 4 << 2;
+  QTest::newRow( "5 items, 2 columns" ) << "legend_5_by_2" << 5 << 2;
+  QTest::newRow( "3 items, 3 columns" ) << "legend_3_by_3" << 3 << 3;
+  QTest::newRow( "4 items, 3 columns" ) << "legend_4_by_3" << 4 << 3;
+  QTest::newRow( "5 items, 3 columns" ) << "legend_5_by_3" << 5 << 3;
+  QTest::newRow( "6 items, 3 columns" ) << "legend_6_by_3" << 6 << 3;
+  QTest::newRow( "7 items, 3 columns" ) << "legend_7_by_3" << 7 << 3;
+}
+
+void TestQgsLegendRenderer::testColumns()
+{
+  //test rendering legend with different combinations of columns and items
+
+  QFETCH( QString, testName );
+  QFETCH( int, items );
+  QFETCH( int, columns );
+  QVERIFY( _testLegendColumns( items, columns, testName ) );
+}
+
 void TestQgsLegendRenderer::testRasterBorder()
 {
   QString testName = "legend_raster_border";
diff --git a/tests/src/python/CMakeLists.txt b/tests/src/python/CMakeLists.txt
index eb6d877..bd4ca14 100644
--- a/tests/src/python/CMakeLists.txt
+++ b/tests/src/python/CMakeLists.txt
@@ -87,6 +87,7 @@ ADD_PYTHON_TEST(PyQgsSpatialiteProvider test_provider_spatialite.py)
 ADD_PYTHON_TEST(PyQgsSQLStatement test_qgssqlstatement.py)
 ADD_PYTHON_TEST(PyQgsStringStatisticalSummary test_qgsstringstatisticalsummary.py)
 ADD_PYTHON_TEST(PyQgsSymbolLayerV2 test_qgssymbollayerv2.py)
+ADD_PYTHON_TEST(PyQgsSymbolLayerV2CreateSld test_qgssymbollayerv2_createsld.py)
 ADD_PYTHON_TEST(PyQgsArrowSymbolLayer test_qgsarrowsymbollayer.py)
 ADD_PYTHON_TEST(PyQgsSymbolExpressionVariables test_qgssymbolexpressionvariables.py)
 ADD_PYTHON_TEST(PyQgsSyntacticSugar test_syntactic_sugar.py)
diff --git a/tests/src/python/test_provider_ogr_gpkg.py b/tests/src/python/test_provider_ogr_gpkg.py
index d1b3415..94e1155 100644
--- a/tests/src/python/test_provider_ogr_gpkg.py
+++ b/tests/src/python/test_provider_ogr_gpkg.py
@@ -31,6 +31,15 @@ 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 TestPyQgsOGRProviderGpkg(unittest.TestCase):
 
     @classmethod
@@ -80,5 +89,72 @@ class TestPyQgsOGRProviderGpkg(unittest.TestCase):
         # The geometries must be binarily identical
         self.assertEqual(got_geom.asWkb(), reference.asWkb(), 'Expected {}, got {}'.format(reference.exportToWkt(), got_geom.exportToWkt()))
 
+    def internalTestBug15351(self, orderClosing):
+
+        tmpfile = os.path.join(self.basetestpath, 'testBug15351.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 = None
+        ds = None
+
+        vl = QgsVectorLayer(u'{}'.format(tmpfile), u'test', u'ogr')
+        self.assertTrue(vl.startEditing())
+        self.assertTrue(vl.changeGeometry(1, QgsGeometry.fromWkt('Point (3 50)')))
+
+        # Iterate over features (will open a new OGR connection), but do not
+        # close the iterator for now
+        it = vl.getFeatures()
+        f = QgsFeature()
+        it.nextFeature(f)
+
+        if orderClosing == 'closeIter_commit_closeProvider':
+            it = None
+
+        # Commit changes
+        cbk = ErrorReceiver()
+        vl.dataProvider().raiseError.connect(cbk.receiveError)
+        self.assertTrue(vl.commitChanges())
+        self.assertIsNone(cbk.msg)
+
+        # Close layer and iterator in different orders
+        if orderClosing == 'closeIter_commit_closeProvider':
+            vl = None
+        elif orderClosing == 'commit_closeProvider_closeIter':
+            vl = None
+            it = None
+        else:
+            assert orderClosing == 'commit_closeIter_closeProvider'
+            it = None
+            vl = None
+
+        # Test that we succeeded restoring default journal mode, and we
+        # are not let in WAL mode.
+        ds = ogr.Open(tmpfile)
+        lyr = ds.ExecuteSQL('PRAGMA journal_mode')
+        f = lyr.GetNextFeature()
+        res = f.GetField(0)
+        ds.ReleaseResultSet(lyr)
+        ds = None
+        self.assertEqual(res, 'delete')
+
+    @unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 0, 0))
+    # We need GDAL 2.0 to issue PRAGMA journal_mode
+    # Note: for that case, we don't strictly need turning on WAL
+    def testBug15351_closeIter_commit_closeProvider(self):
+        self.internalTestBug15351('closeIter_commit_closeProvider')
+
+    @unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 0, 0))
+    # We need GDAL 2.0 to issue PRAGMA journal_mode
+    def testBug15351_closeIter_commit_closeProvider(self):
+        self.internalTestBug15351('closeIter_commit_closeProvider')
+
+    @unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 0, 0))
+    # We need GDAL 2.0 to issue PRAGMA journal_mode
+    def testBug15351_commit_closeIter_closeProvider(self):
+        self.internalTestBug15351('commit_closeIter_closeProvider')
+
 if __name__ == '__main__':
     unittest.main()
diff --git a/tests/src/python/test_provider_virtual.py b/tests/src/python/test_provider_virtual.py
index 707bc6f..f27d46a 100644
--- a/tests/src/python/test_provider_virtual.py
+++ b/tests/src/python/test_provider_virtual.py
@@ -733,6 +733,21 @@ class TestQgsVirtualLayerProvider(unittest.TestCase, ProviderTestCase):
         ids = [f.id() for f in vl2.getFeatures()]
         self.assertEqual(ids, [])
 
+    def test_layer_with_accents(self):
+        l1 = QgsVectorLayer(os.path.join(self.testDataDir, "france_parts.shp"), u"françéà", "ogr", False)
+        self.assertEqual(l1.isValid(), True)
+        QgsMapLayerRegistry.instance().addMapLayer(l1)
+
+        df = QgsVirtualLayerDefinition()
+        df.setQuery(u'select * from "françéà"')
+
+        vl = QgsVectorLayer(df.toString(), "testq", "virtual")
+        self.assertEqual(vl.isValid(), True)
+        ids = [f.id() for f in vl.getFeatures()]
+        self.assertEqual(len(ids), 4)
+
+        QgsMapLayerRegistry.instance().removeMapLayer(l1.id())
+
     def test_joined_layers_conversion(self):
         v1 = QgsVectorLayer("Point?field=id:integer&field=b_id:integer&field=c_id:integer&field=name:string", "A", "memory")
         self.assertEqual(v1.isValid(), True)
diff --git a/tests/src/python/test_qgsaggregatecalculator.py b/tests/src/python/test_qgsaggregatecalculator.py
index 40692d2..b4820f3 100644
--- a/tests/src/python/test_qgsaggregatecalculator.py
+++ b/tests/src/python/test_qgsaggregatecalculator.py
@@ -351,6 +351,36 @@ class TestQgsAggregateCalculator(unittest.TestCase):
         self.assertTrue(ok)
         self.assertEqual(val, 5)
 
+    def testExpressionNoMatch(self):
+        """ test aggregate calculation using an expression with no features """
+
+        # no features
+        layer = QgsVectorLayer("Point?field=fldint:integer", "layer", "memory")
+
+        # sum
+        agg = QgsAggregateCalculator(layer)
+        val, ok = agg.calculate(QgsAggregateCalculator.Sum, 'fldint * 2')
+        self.assertTrue(ok)
+        self.assertEqual(val, None)
+
+        # count
+        agg = QgsAggregateCalculator(layer)
+        val, ok = agg.calculate(QgsAggregateCalculator.Count, 'fldint * 2')
+        self.assertTrue(ok)
+        self.assertEqual(val, 0)
+
+        # count distinct
+        agg = QgsAggregateCalculator(layer)
+        val, ok = agg.calculate(QgsAggregateCalculator.CountDistinct, 'fldint * 2')
+        self.assertTrue(ok)
+        self.assertEqual(val, 0)
+
+        # count missing
+        agg = QgsAggregateCalculator(layer)
+        val, ok = agg.calculate(QgsAggregateCalculator.CountMissing, 'fldint * 2')
+        self.assertTrue(ok)
+        self.assertEqual(val, 0)
+
     def testStringToAggregate(self):
         """ test converting strings to aggregate types """
 
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/legend/expected_legend_2_by_2/expected_legend_2_by_2.png b/tests/testdata/control_images/legend/expected_legend_2_by_2/expected_legend_2_by_2.png
new file mode 100644
index 0000000..33fce22
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_2_by_2/expected_legend_2_by_2.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_2_by_2/expected_legend_2_by_2_mask.png b/tests/testdata/control_images/legend/expected_legend_2_by_2/expected_legend_2_by_2_mask.png
new file mode 100644
index 0000000..b2f5f23
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_2_by_2/expected_legend_2_by_2_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2.png b/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2.png
new file mode 100644
index 0000000..925aa73
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2_mask.png b/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2_mask.png
new file mode 100644
index 0000000..26a6e24
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_3_by_2/expected_legend_3_by_2_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3.png b/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3.png
new file mode 100644
index 0000000..0273549
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3_mask.png b/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3_mask.png
new file mode 100644
index 0000000..619c13d
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_3_by_3/expected_legend_3_by_3_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2.png b/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2.png
new file mode 100644
index 0000000..a3e7fb3
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2_mask.png b/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2_mask.png
new file mode 100644
index 0000000..5f83169
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_4_by_2/expected_legend_4_by_2_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3.png b/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3.png
new file mode 100644
index 0000000..c1e72c6
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3_mask.png b/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3_mask.png
new file mode 100644
index 0000000..eb17139
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_4_by_3/expected_legend_4_by_3_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2.png b/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2.png
new file mode 100644
index 0000000..e61cb2f
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2_mask.png b/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2_mask.png
new file mode 100644
index 0000000..b7c9aa4
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_5_by_2/expected_legend_5_by_2_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3.png b/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3.png
new file mode 100644
index 0000000..56f1db3
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3_mask.png b/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3_mask.png
new file mode 100644
index 0000000..8fabd8d
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_5_by_3/expected_legend_5_by_3_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3.png b/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3.png
new file mode 100644
index 0000000..26155b3
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3_mask.png b/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3_mask.png
new file mode 100644
index 0000000..0228bfc
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_6_by_3/expected_legend_6_by_3_mask.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3.png b/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3.png
new file mode 100644
index 0000000..bae0e2f
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3.png differ
diff --git a/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3_mask.png b/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3_mask.png
new file mode 100644
index 0000000..63ef7e9
Binary files /dev/null and b/tests/testdata/control_images/legend/expected_legend_7_by_3/expected_legend_7_by_3_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