[josm] 01/06: Imported Upstream version 0.0.svn11639+dfsg

Bas Couwenberg sebastic at debian.org
Tue Feb 28 07:10:42 UTC 2017


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

sebastic pushed a commit to branch master
in repository josm.

commit df9eb86993d04e9eb4f56bfbbb827981efd497ff
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Feb 28 07:41:08 2017 +0100

    Imported Upstream version 0.0.svn11639+dfsg
---
 .classpath                                         |   2 +-
 REVISION                                           |   8 +-
 build.xml                                          |   9 +-
 data/boundaries.osm                                |   6 +-
 data/defaultpresets.xml                            |  27 +-
 data/maps.xsd                                      |   4 +-
 data/validator/combinations.mapcss                 |  14 +-
 data/validator/deprecated.mapcss                   |  16 +
 data/validator/ignoretags.cfg                      |  10 +
 data/validator/opening_hours.js                    |  29 +-
 data_nodist/trans/fr.lang                          | Bin 11395 -> 12280 bytes
 data_nodist/trans/pt.lang                          | Bin 13588 -> 13690 bytes
 i18n/build.xml                                     |   7 +-
 i18n/convtag2link.pl                               |  46 ++
 i18n/i18n.pl                                       |   8 +-
 i18n/launchpad.pl                                  |  10 +-
 i18n/po/af.po                                      | 307 ++++++++--
 i18n/po/am.po                                      | 307 ++++++++--
 i18n/po/ar.po                                      | 307 ++++++++--
 i18n/po/ast.po                                     | 344 +++++++++--
 i18n/po/az.po                                      | 307 ++++++++--
 i18n/po/be.po                                      | 324 +++++++++--
 i18n/po/bg.po                                      | 312 ++++++++--
 i18n/po/bn.po                                      | 307 ++++++++--
 i18n/po/br.po                                      | 307 ++++++++--
 i18n/po/bs.po                                      | 307 ++++++++--
 i18n/po/ca.po                                      | 314 ++++++++--
 i18n/po/ca at valencia.po                             | 311 ++++++++--
 i18n/po/cs.po                                      | 335 +++++++++--
 i18n/po/cy.po                                      | 307 ++++++++--
 i18n/po/da.po                                      | 320 ++++++++--
 i18n/po/de.po                                      | 404 ++++++++++---
 i18n/po/de_DE.po                                   | 307 ++++++++--
 i18n/po/el.po                                      | 307 ++++++++--
 i18n/po/en_AU.po                                   | 307 ++++++++--
 i18n/po/en_CA.po                                   | 307 ++++++++--
 i18n/po/en_GB.po                                   | 316 ++++++++--
 i18n/po/eo.po                                      | 307 ++++++++--
 i18n/po/es.po                                      | 536 +++++++++++++----
 i18n/po/et.po                                      | 337 +++++++++--
 i18n/po/eu.po                                      | 307 ++++++++--
 i18n/po/fa.po                                      | 307 ++++++++--
 i18n/po/fi.po                                      | 307 ++++++++--
 i18n/po/fil.po                                     | 307 ++++++++--
 i18n/po/fo.po                                      | 307 ++++++++--
 i18n/po/fr.po                                      | 469 +++++++++++----
 i18n/po/ga.po                                      | 307 ++++++++--
 i18n/po/gl.po                                      | 307 ++++++++--
 i18n/po/he.po                                      | 307 ++++++++--
 i18n/po/hi.po                                      | 307 ++++++++--
 i18n/po/hr.po                                      | 307 ++++++++--
 i18n/po/ht.po                                      | 307 ++++++++--
 i18n/po/hu.po                                      | 597 +++++++++++++------
 i18n/po/hy.po                                      | 307 ++++++++--
 i18n/po/ia.po                                      | 307 ++++++++--
 i18n/po/id.po                                      | 311 ++++++++--
 i18n/po/is.po                                      | 307 ++++++++--
 i18n/po/it.po                                      | 332 +++++++++--
 i18n/po/ja.po                                      | 314 ++++++++--
 i18n/po/ka.po                                      | 307 ++++++++--
 i18n/po/km.po                                      | 307 ++++++++--
 i18n/po/ko.po                                      | 405 ++++++++++---
 i18n/po/ku.po                                      | 309 ++++++++--
 i18n/po/ky.po                                      | 307 ++++++++--
 i18n/po/lb.po                                      | 307 ++++++++--
 i18n/po/lo.po                                      | 307 ++++++++--
 i18n/po/lt.po                                      | 310 ++++++++--
 i18n/po/lv.po                                      | 307 ++++++++--
 i18n/po/mk.po                                      | 307 ++++++++--
 i18n/po/mr.po                                      | 307 ++++++++--
 i18n/po/ms.po                                      | 307 ++++++++--
 i18n/po/nb.po                                      | 335 +++++++++--
 i18n/po/nds.po                                     | 307 ++++++++--
 i18n/po/nl.po                                      | 341 +++++++++--
 i18n/po/nn.po                                      | 307 ++++++++--
 i18n/po/oc.po                                      | 307 ++++++++--
 i18n/po/pa.po                                      | 307 ++++++++--
 i18n/po/pl.po                                      | 319 ++++++++--
 i18n/po/pt.po                                      | 604 +++++++++++++------
 i18n/po/pt_BR.po                                   | 415 ++++++++++---
 i18n/po/rm.po                                      | 307 ++++++++--
 i18n/po/ro.po                                      | 307 ++++++++--
 i18n/po/ru.po                                      | 330 +++++++++--
 i18n/po/sk.po                                      | 369 ++++++++++--
 i18n/po/sl.po                                      | 307 ++++++++--
 i18n/po/sq.po                                      | 307 ++++++++--
 i18n/po/sr.po                                      | 307 ++++++++--
 i18n/po/sv.po                                      | 641 ++++++++++++++-------
 i18n/po/ta.po                                      | 307 ++++++++--
 i18n/po/te.po                                      | 307 ++++++++--
 i18n/po/th.po                                      | 307 ++++++++--
 i18n/po/tr.po                                      | 313 ++++++++--
 i18n/po/ug.po                                      | 307 ++++++++--
 i18n/po/uk.po                                      | 386 ++++++++++---
 i18n/po/ur.po                                      | 307 ++++++++--
 i18n/po/vi.po                                      | 314 ++++++++--
 i18n/po/wae.po                                     | 307 ++++++++--
 i18n/po/zh_CN.po                                   | 309 ++++++++--
 i18n/po/zh_TW.po                                   | 360 ++++++++++--
 images/presets/service/internet_cafe.svg           |  97 ++++
 images/presets/service/photo_booth.svg             | 220 +++++++
 ...eryIndex.groovy => SyncEditorLayerIndex.groovy} | 230 +++++---
 src/org/apache/commons/jcs/JCS.java                |  16 +
 .../utils/servlet/JCSServletContextListener.java   |  28 +-
 .../josm/actions/AbstractPasteAction.java          |   2 +-
 .../josm/actions/AddImageryLayerAction.java        |   1 +
 .../josm/actions/CombineWayAction.java             |   6 +-
 .../openstreetmap/josm/actions/DownloadAction.java |   5 +-
 src/org/openstreetmap/josm/actions/HelpAction.java |   7 +-
 .../josm/actions/JoinAreasAction.java              |  15 +-
 src/org/openstreetmap/josm/actions/JosmAction.java |   6 +-
 .../openstreetmap/josm/actions/JumpToAction.java   |   4 +-
 .../josm/actions/MergeNodesAction.java             |   7 +-
 .../josm/actions/OpenLocationAction.java           |   2 +-
 .../openstreetmap/josm/actions/PurgeAction.java    |  30 +-
 .../josm/actions/ShowStatusReportAction.java       |   4 +-
 .../openstreetmap/josm/actions/SplitWayAction.java |   6 +-
 .../josm/actions/UpdateDataAction.java             |   2 +-
 .../josm/actions/UpdateSelectionAction.java        |  12 +-
 .../openstreetmap/josm/actions/ValidateAction.java |  14 +-
 .../AbstractChangesetDownloadTask.java             |   1 +
 .../actions/downloadtasks/DownloadOsmTask.java     |   8 +-
 .../josm/actions/mapmode/DrawAction.java           |  92 +--
 .../josm/actions/mapmode/DrawSnapHelper.java       |  10 +-
 .../josm/actions/mapmode/ExtrudeAction.java        |   4 +-
 .../actions/mapmode/ImproveWayAccuracyAction.java  |   5 +-
 .../josm/actions/mapmode/ParallelWayAction.java    |   7 +-
 .../josm/actions/mapmode/SelectAction.java         |   4 +-
 .../actions/relation/AbstractRelationAction.java   |   4 +-
 .../actions/relation/RecentRelationsAction.java    |  53 +-
 .../josm/actions/search/SearchCompiler.java        |  22 +-
 .../josm/command/AddPrimitivesCommand.java         |  79 ++-
 .../josm/command/ChangePropertyKeyCommand.java     |   4 +-
 .../openstreetmap/josm/command/DeleteCommand.java  |   4 +-
 src/org/openstreetmap/josm/data/Bounds.java        |  15 +-
 .../josm/data/CustomConfigurator.java              |   1 +
 src/org/openstreetmap/josm/data/DataSource.java    |   7 +-
 src/org/openstreetmap/josm/data/Preferences.java   |  29 +-
 .../josm/data/SystemOfMeasurement.java             |   7 +-
 .../openstreetmap/josm/data/UndoRedoHandler.java   |   9 +-
 .../josm/data/cache/HostLimitQueue.java            |   8 +-
 .../josm/data/cache/JCSCachedTileLoaderJob.java    |   1 +
 .../josm/data/gpx/ImmutableGpxTrack.java           |   5 +-
 .../josm/data/gpx/ImmutableGpxTrackSegment.java    |   5 +-
 .../josm/data/imagery/ImageryInfo.java             | 114 +++-
 .../josm/data/imagery/ImageryLayerInfo.java        |  80 ++-
 .../josm/data/imagery/TMSCachedTileLoaderJob.java  |  18 +-
 .../josm/data/imagery/WMTSTileSource.java          |  31 +-
 .../josm/data/osm/AbstractPrimitive.java           |  58 +-
 src/org/openstreetmap/josm/data/osm/DataSet.java   |  82 ++-
 .../openstreetmap/josm/data/osm/OsmPrimitive.java  |  17 +-
 .../openstreetmap/josm/data/osm/QuadBuckets.java   |   7 +-
 src/org/openstreetmap/josm/data/osm/Relation.java  |   7 +-
 .../josm/data/osm/RelationMember.java              |   9 +-
 src/org/openstreetmap/josm/data/osm/TagMap.java    |   9 +-
 src/org/openstreetmap/josm/data/osm/Tagged.java    |  14 +-
 .../openstreetmap/josm/data/osm/TigerUtils.java    |  68 ---
 .../josm/data/osm/event/DataChangedEvent.java      |  17 +-
 .../josm/data/osm/history/HistoryNode.java         |   5 +-
 .../josm/data/osm/history/HistoryOsmPrimitive.java | 105 +++-
 .../josm/data/osm/history/HistoryRelation.java     |   5 +-
 .../josm/data/osm/history/HistoryWay.java          |   5 +-
 .../data/osm/visitor/paint/MapRendererFactory.java |  20 +-
 .../josm/data/osm/visitor/paint/PaintColors.java   |  11 +-
 .../data/osm/visitor/paint/StyledMapRenderer.java  |   5 +-
 .../osm/visitor/paint/relations/Multipolygon.java  |   8 +-
 .../josm/data/preferences/AbstractProperty.java    |   8 +-
 .../josm/data/preferences/ColorProperty.java       |   4 +-
 .../josm/data/preferences/PreferencesReader.java   |   8 +-
 .../josm/data/preferences/PreferencesWriter.java   |   6 +-
 .../josm/data/projection/CustomProjection.java     |  43 +-
 .../josm/data/projection/datum/NTV2SubGrid.java    |   2 +-
 .../projection/proj/LambertAzimuthalEqualArea.java |  96 +--
 .../data/projection/proj/TransverseMercator.java   |  35 +-
 .../josm/data/validation/OsmValidator.java         |  11 +-
 .../openstreetmap/josm/data/validation/Test.java   |  12 +-
 .../data/validation/routines/DomainValidator.java  |   4 +-
 .../josm/data/validation/routines/package.html     |   2 +-
 .../josm/data/validation/tests/Addresses.java      |   4 +-
 .../josm/data/validation/tests/Coastlines.java     |   2 +-
 .../josm/data/validation/tests/CrossingWays.java   |  12 +-
 .../josm/data/validation/tests/DuplicateNode.java  |   5 +-
 .../data/validation/tests/DuplicateRelation.java   |  10 +-
 .../josm/data/validation/tests/DuplicateWay.java   |  30 +-
 .../josm/data/validation/tests/Highways.java       |   8 +-
 .../josm/data/validation/tests/LongSegment.java    |   2 +-
 .../data/validation/tests/MapCSSTagChecker.java    |  10 +-
 .../data/validation/tests/MultipolygonTest.java    |   6 +-
 .../data/validation/tests/OverlappingWays.java     |  10 +-
 .../josm/data/validation/tests/PowerLines.java     |   6 +-
 .../data/validation/tests/TurnrestrictionTest.java |   4 +-
 .../data/validation/tests/UnconnectedWays.java     |  20 +-
 .../data/validation/tests/WayConnectedToArea.java  |   3 +-
 .../data/validation/util/MultipleNameVisitor.java  |   6 +-
 .../josm/gui/DefaultNameFormatter.java             |  39 +-
 .../openstreetmap/josm/gui/IconToggleButton.java   |   6 +-
 src/org/openstreetmap/josm/gui/MainPanel.java      |   6 +-
 src/org/openstreetmap/josm/gui/MapFrame.java       |   5 +-
 src/org/openstreetmap/josm/gui/MapMover.java       |  11 +-
 src/org/openstreetmap/josm/gui/MapScaler.java      |   3 +-
 src/org/openstreetmap/josm/gui/MapStatus.java      |  11 +-
 src/org/openstreetmap/josm/gui/MapViewState.java   |   7 +-
 .../josm/gui/NavigatableComponent.java             |   1 +
 .../josm/gui/conflict/pair/AbstractListMerger.java |   4 +-
 .../tags/CombinePrimitiveResolverDialog.java       |  56 +-
 .../tags/MultiValueResolutionDecision.java         |   7 +-
 .../tags/RelationMemberConflictDecision.java       |   6 +-
 .../tags/RelationMemberConflictResolverModel.java  |  46 +-
 .../conflict/tags/TagConflictResolutionUtil.java   | 428 +++++++++++++-
 .../conflict/tags/TagConflictResolverModel.java    |  39 +-
 .../josm/gui/datatransfer/ClipboardUtils.java      |   1 +
 .../josm/gui/datatransfer/OsmTransferHandler.java  |   4 +-
 .../josm/gui/dialogs/ChangesetDialog.java          |   1 +
 .../josm/gui/dialogs/LatLonDialog.java             |  11 +-
 .../josm/gui/dialogs/RelationListDialog.java       |   4 +
 .../josm/gui/dialogs/ToggleDialog.java             |   2 +-
 .../dialogs/changeset/ChangesetCacheManager.java   |   2 +-
 .../dialogs/properties/PropertiesCellRenderer.java |  12 +-
 .../gui/dialogs/properties/PropertiesDialog.java   |  12 +-
 .../gui/dialogs/relation/ChildRelationBrowser.java |   4 +-
 .../relation/ParentRelationLoadingTask.java        |   9 +-
 .../dialogs/relation/RelationDialogManager.java    |  15 +-
 .../relation/actions/PasteMembersAction.java       |   2 +-
 .../dialogs/relation/sort/RelationSortUtils.java   |  36 +-
 .../josm/gui/download/BoundingBoxSelection.java    |   2 +-
 .../josm/gui/help/ContextSensitiveHelpAction.java  |   5 +-
 .../josm/gui/history/HistoryBrowserModel.java      |  25 +-
 .../josm/gui/history/HistoryLoadTask.java          |   5 +-
 .../josm/gui/io/ActionFlagsTableCell.java          |   3 +-
 .../josm/gui/io/ChangesetCellRenderer.java         |  10 +-
 .../josm/gui/io/CloseChangesetTask.java            |   6 +-
 .../openstreetmap/josm/gui/io/SaveLayerTask.java   |   7 +-
 .../josm/gui/io/SaveLayersDialog.java              |   8 +-
 .../josm/gui/io/TagSettingsPanel.java              |   6 +-
 .../openstreetmap/josm/gui/io/UploadDialog.java    |   6 +-
 .../openstreetmap/josm/gui/io/UploadLayerTask.java |  11 +-
 .../josm/gui/io/UploadNoteLayerTask.java           |   7 +-
 .../josm/gui/io/UploadParameterSummaryPanel.java   |   5 +-
 .../josm/gui/io/UploadPrimitivesTask.java          |  69 +--
 .../josm/gui/io/UploadedObjectsSummaryPanel.java   |   7 +-
 .../josm/gui/layer/AbstractTileSourceLayer.java    |  18 +-
 .../openstreetmap/josm/gui/layer/ImageryLayer.java |   1 -
 src/org/openstreetmap/josm/gui/layer/Layer.java    |   7 +-
 .../openstreetmap/josm/gui/layer/OsmDataLayer.java |  25 +-
 .../gui/layer/geoimage/CorrelateGpxWithImages.java |  19 +-
 .../josm/gui/layer/geoimage/ImageDisplay.java      |  57 +-
 .../josm/gui/layer/geoimage/ImageEntry.java        |   4 +-
 .../josm/gui/layer/geoimage/ThumbsLoader.java      |   4 +-
 .../gui/layer/gpx/ChooseTrackVisibilityAction.java |   7 +-
 .../josm/gui/layer/gpx/DateFilterPanel.java        |   8 +-
 .../gui/layer/gpx/DownloadWmsAlongTrackAction.java |   1 +
 .../josm/gui/layer/gpx/GpxDrawHelper.java          | 225 ++++++--
 .../josm/gui/layer/gpx/ImportAudioAction.java      |  23 +-
 .../gui/layer/imagery/ColorfulImageProcessor.java  |   6 +-
 .../josm/gui/layer/markerlayer/Marker.java         |   7 +-
 .../josm/gui/mappaint/ElemStyles.java              |   2 +-
 .../josm/gui/mappaint/MapPaintStyles.java          |   2 +-
 .../josm/gui/mappaint/StyleCache.java              |   7 +-
 .../josm/gui/mappaint/mapcss/ConditionFactory.java |  12 +-
 .../josm/gui/mappaint/mapcss/MapCSSException.java  |  33 +-
 .../josm/gui/mappaint/mapcss/MapCSSParser.jj       |   3 +-
 .../styleelement/LabelCompositionStrategy.java     |  38 +-
 .../gui/mappaint/styleelement/LineElement.java     |  12 +-
 .../gui/mappaint/styleelement/NodeElement.java     |   7 +-
 .../gui/oauth/FullyAutomaticAuthorizationUI.java   |   8 +-
 .../josm/gui/oauth/RetrieveAccessTokenTask.java    |   4 +-
 .../josm/gui/oauth/RetrieveRequestTokenTask.java   |   4 +-
 .../josm/gui/preferences/ToolbarPreferences.java   |  16 +-
 .../josm/gui/preferences/advanced/PrefEntry.java   |   4 +-
 .../gui/preferences/display/GPXSettingsPanel.java  |  83 ++-
 .../gui/preferences/imagery/ImageryPreference.java |   8 +-
 .../gui/preferences/plugin/PluginPreference.java   |   5 +-
 .../plugin/PluginUpdatePolicyPanel.java            |  23 +-
 .../projection/AbstractProjectionChoice.java       |   8 +-
 .../preferences/server/OsmApiUrlInputPanel.java    |   4 +-
 .../preferences/server/ProxyPreferencesPanel.java  |  12 +-
 .../tagging/presets/items/ComboMultiSelect.java    |   5 +-
 .../josm/gui/tagging/presets/items/Link.java       |   5 +-
 .../josm/gui/tagging/presets/items/Text.java       |   2 +-
 .../openstreetmap/josm/gui/util/CursorManager.java |   5 +-
 .../josm/gui/widgets/ButtonColumn.java             |  11 +-
 .../openstreetmap/josm/gui/widgets/HtmlPanel.java  |  19 +-
 .../openstreetmap/josm/io/DiffResultProcessor.java |   6 +-
 src/org/openstreetmap/josm/io/FileWatcher.java     |   5 +-
 src/org/openstreetmap/josm/io/GpxExporter.java     |  33 +-
 src/org/openstreetmap/josm/io/NameFinder.java      |  12 +-
 src/org/openstreetmap/josm/io/NmeaReader.java      |  11 +-
 src/org/openstreetmap/josm/io/NoteReader.java      |  15 +-
 src/org/openstreetmap/josm/io/OsmApi.java          |  14 +-
 src/org/openstreetmap/josm/io/OsmConnection.java   |  21 +-
 src/org/openstreetmap/josm/io/OsmReader.java       |   2 +-
 src/org/openstreetmap/josm/io/OsmWriter.java       |   2 +-
 .../josm/io/OverpassDownloadReader.java            |  15 +-
 .../openstreetmap/josm/io/ProgressInputStream.java |   7 +-
 .../josm/io/StreamProgressUpdater.java             |   6 +-
 .../josm/io/UTFInputStreamReader.java              |   7 +-
 .../josm/io/XmlStreamParsingException.java         |   7 +-
 .../josm/io/imagery/ImageryReader.java             |   8 +
 .../openstreetmap/josm/io/imagery/WMSImagery.java  |  18 +-
 .../io/remotecontrol/RemoteControlHttpServer.java  |   4 +-
 .../io/remotecontrol/RemoteControlHttpsServer.java |   4 +-
 .../josm/io/remotecontrol/RequestProcessor.java    |   6 +-
 .../io/remotecontrol/handler/FeaturesHandler.java  |   2 +-
 .../io/remotecontrol/handler/RequestHandler.java   |   4 +-
 .../io/remotecontrol/handler/VersionHandler.java   |   2 +-
 .../josm/io/session/SessionReader.java             |   4 +-
 .../openstreetmap/josm/plugins/PluginHandler.java  |   1 +
 .../josm/plugins/PluginInformation.java            |   6 +-
 .../plugins/ReadRemotePluginInformationTask.java   |   6 +-
 .../openstreetmap/josm/tools/ExceptionUtil.java    |  11 +-
 src/org/openstreetmap/josm/tools/HttpClient.java   |  12 +-
 .../openstreetmap/josm/tools/ImageProvider.java    |   6 +-
 src/org/openstreetmap/josm/tools/Logging.java      |   2 +-
 .../openstreetmap/josm/tools/OsmUrlToBounds.java   |   8 +-
 src/org/openstreetmap/josm/tools/Pair.java         |   2 +-
 .../openstreetmap/josm/tools/PlatformHookOsx.java  |   1 +
 .../josm/tools/PlatformHookUnixoid.java            |   2 +-
 .../josm/tools/RightAndLefthandTraffic.java        |   4 +-
 src/org/openstreetmap/josm/tools/Shortcut.java     |   5 +-
 .../josm/tools/bugreport/BugReportQueue.java       |   1 +
 .../openstreetmap/josm/tools/date/DateUtils.java   |   7 +-
 styles/standard/elemstyles.mapcss                  |  25 +-
 .../josm/actions/AddImageryLayerActionTest.java    |   4 +-
 .../josm/command/AddPrimitivesCommandTest.java     |  39 ++
 .../openstreetmap/josm/data/PreferencesTest.java   |   2 +-
 .../org/openstreetmap/josm/data/osm/NodeTest.java  |   2 +-
 .../validation/routines/DomainValidatorTest.java   |   8 +-
 .../validation/routines/DomainValidatorTestIT.java |   9 +-
 .../josm/data/validation/routines/ResultPair.java  |   2 +-
 .../data/validation/routines/UrlValidatorTest.java |  21 -
 .../tags/TagConflictResolutionUtilTest.java        | 444 ++++++++++++++
 .../josm/gui/layer/geoimage/ImageDisplayTest.java  |  44 ++
 .../gui/mappaint/mapcss/ConditionFactoryTest.java  |  32 +
 .../remotecontrol/handler/RequestHandlerTest.java  |   5 +-
 tools/checkstyle/josm_checks.xml                   |   7 +
 335 files changed, 27307 insertions(+), 5303 deletions(-)

diff --git a/.classpath b/.classpath
index 62f7e4b..5e1eb37 100644
--- a/.classpath
+++ b/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry excluding="org/apache/commons/compress/compressors/CompressorException.java|org/apache/commons/compress/compressors/CompressorStreamFactory.java|org/apache/commons/compress/compressors/FileNameUtil.java|org/apache/commons/compress/compressors/bzip2/BZip2Utils.java|org/apache/commons/compress/compressors/deflate/|org/apache/commons/compress/compressors/gzip/|org/apache/commons/compress/compressors/lzma/|org/apache/commons/compress/compressors/lzw/|org/apache/commons/compr [...]
+	<classpathentry excluding="org/apache/commons/compress/compressors/CompressorException.java|org/apache/commons/compress/compressors/CompressorStreamFactory.java|org/apache/commons/compress/compressors/FileNameUtil.java|org/apache/commons/compress/compressors/bzip2/BZip2Utils.java|org/apache/commons/compress/compressors/deflate/|org/apache/commons/compress/compressors/gzip/|org/apache/commons/compress/compressors/lzma/|org/apache/commons/compress/compressors/lzw/|org/apache/commons/compr [...]
 	<classpathentry including="data/|images/|resources/|styles/" kind="src" path=""/>
 	<classpathentry kind="src" path="test/unit"/>
 	<classpathentry kind="src" path="test/functional"/>
diff --git a/REVISION b/REVISION
index cc30862..cf8860f 100644
--- a/REVISION
+++ b/REVISION
@@ -3,7 +3,7 @@
 <entry
    kind="dir"
    path="trunk"
-   revision="11526">
+   revision="11639">
 <url>https://josm.openstreetmap.de/svn/trunk</url>
 <relative-url>^/trunk</relative-url>
 <repository>
@@ -11,9 +11,9 @@
 <uuid>0c6e7542-c601-0410-84e7-c038aed88b3b</uuid>
 </repository>
 <commit
-   revision="11526">
-<author>Don-vip</author>
-<date>2017-02-02T00:22:52.193200Z</date>
+   revision="11639">
+<author>stoecker</author>
+<date>2017-02-26T22:10:22.403379Z</date>
 </commit>
 </entry>
 </info>
diff --git a/build.xml b/build.xml
index 4c9436c..d68849e 100644
--- a/build.xml
+++ b/build.xml
@@ -240,6 +240,7 @@ Build-Date: ${build.tstamp}
             <exclude name="org/apache/commons/compress/compressors/pack200/**"/>
             <exclude name="org/apache/commons/compress/compressors/snappy/**"/>
             <exclude name="org/apache/commons/compress/compressors/z/**"/>
+            <exclude name="org/apache/commons/compress/utils/ArchiveUtils.java"/>
             <exclude name="org/apache/commons/jcs/JCS.java"/>
             <exclude name="org/apache/commons/jcs/access/GroupCacheAccess.java"/>
             <exclude name="org/apache/commons/jcs/access/PartitionedCacheAccess.java"/>
@@ -339,6 +340,10 @@ Build-Date: ${build.tstamp}
             <link href="http://docs.oracle.com/javase/8/docs/api"/>
             <doctitle><![CDATA[<h2>JOSM - Javadoc</h2>]]></doctitle>
             <bottom><![CDATA[<a href="https://josm.openstreetmap.de/">JOSM</a>]]></bottom>
+            <arg value="--add-exports" if:set="isJava9" />
+            <arg value="java.base/sun.security.util=ALL-UNNAMED" if:set="isJava9" />
+            <arg value="--add-exports" if:set="isJava9" />
+            <arg value="java.base/sun.security.x509=ALL-UNNAMED" if:set="isJava9" />
         </javadoc>
     </target>
     <target name="clean" depends="init-properties">
@@ -690,8 +695,8 @@ Build-Date: ${build.tstamp}
     <target name="imageryindex" depends="init-properties">
         <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpath="${groovy.jar};tools/commons-cli-1.3.1.jar"/>
         <echo message="Checking editor imagery difference"/>
-        <groovy src="scripts/SyncEditorImageryIndex.groovy" classpath="${dist.dir}/josm-custom.jar">
-                <!--<arg value="-nomissingeii"/>-->
+        <groovy src="scripts/SyncEditorLayerIndex.groovy" classpath="${dist.dir}/josm-custom.jar">
+                <!--<arg value="-nomissingeli"/>-->
         </groovy>
     </target>
 
diff --git a/data/boundaries.osm b/data/boundaries.osm
index 5ff325e..3b35423 100644
--- a/data/boundaries.osm
+++ b/data/boundaries.osm
@@ -7831,7 +7831,7 @@
   <node id='-46173' lat='50.13434' lon='12.1917' />
   <node id='-46175' lat='50.09831' lon='12.20988' />
   <node id='-46177' lat='50.0771' lon='12.27433' />
-  <node id='-46179' lat='50.41002' lon='12.94363' />
+  <node id='-46179' lat='50.4043' lon='12.955' />
   <node id='-46181' lat='50.45738' lon='12.82465' />
   <node id='-46183' lat='50.39694' lon='12.51356' />
   <node id='-46185' lat='50.39948' lon='12.70731' />
@@ -7865,12 +7865,12 @@
   <node id='-46241' lat='50.74142' lon='13.89444' />
   <node id='-46243' lat='50.60527' lon='13.46311' />
   <node id='-46245' lat='50.50237' lon='13.19043' />
-  <node id='-46247' lat='50.50868' lon='13.03343' />
+  <node id='-46247' lat='50.50944' lon='13.0312' />
   <node id='-46249' lat='50.59268' lon='13.25158' />
   <node id='-46251' lat='50.65035' lon='13.37717' />
   <node id='-46253' lat='50.67654' lon='13.53748' />
   <node id='-46255' lat='50.73096' lon='13.65977' />
-  <node id='-46257' lat='50.44873' lon='13.02021' />
+  <node id='-46257' lat='50.44261' lon='13.01856' />
   <node id='-46259' lat='50.57904' lon='13.29454' />
   <node id='-46261' lat='50.58009' lon='13.32594' />
   <node id='-46263' lat='50.60317' lon='13.32264' />
diff --git a/data/defaultpresets.xml b/data/defaultpresets.xml
index df54325..0d66000 100644
--- a/data/defaultpresets.xml
+++ b/data/defaultpresets.xml
@@ -123,10 +123,10 @@
         <combo key="layer" text="Layer" values="5,4,3,2,1,0,-1,-2,-3,-4,-5" length="3" />
     </chunk>
     <chunk id="service_times">
-        <combo key="service_times" text="Service Times" delimiter="|" values="18:00|sunset,sunrise|Su 09:30,11:00|Sa,Su,PH 09:00|Sa 18:00; Su 10:45|Fr 08:00-18:00; Apr 10-15 off; Jun 07:00-20:00; Aug off; Dec 24 08:00-24:00|Sa 10:00+|week 1-53/2 Fr 09:00-12:00; week 2-52/2 We 09:00-12:00" values_no_i18n="true" />
+        <combo key="service_times" text="Service Times" delimiter="|" values="18:00|sunset,sunrise|Su 09:30,11:00|Sa,Su,PH 09:00|Sa 18:00; Su 10:45|Fr 08:00-18:00; Apr 10-15 off; Jun 07:00-20:00; Aug off; Dec 24 08:00-24:00|Sa 10:00+|week 01-53/2 Fr 09:00-12:00; week 02-52/2 We 09:00-12:00" values_no_i18n="true" />
     </chunk>
     <chunk id="oh">
-        <combo key="opening_hours" text="Opening Hours" delimiter="|" values="24/7|08:30-12:30,15:30-20:00|Sa-Su 00:00-24:00|Mo-Fr 08:30-20:00; Sa,Su 08:00-15:00; PH off|Mo-Fr 08:30-20:00, Tu-Su 08:00-15:00; Sa 08:00-12:00|Mo-Su 08:00-18:00; Apr 10-15 off; Jun 08:00-14:00; Aug off; Dec 25 off|sunrise-sunset|Su 10:00+|week 1-53/2 Fr 09:00-12:00; week 2-52/2 We 09:00-12:00" values_no_i18n="true" />
+        <combo key="opening_hours" text="Opening Hours" delimiter="|" values="24/7|08:30-12:30,15:30-20:00|Sa-Su 00:00-24:00|Mo-Fr 08:30-20:00; Sa,Su 08:00-15:00; PH off|Mo-Fr 08:30-20:00, Tu-Su 08:00-15:00; Sa 08:00-12:00|Mo-Su 08:00-18:00; Apr 10-15 off; Jun 08:00-14:00; Aug off; Dec 25 off|sunrise-sunset|Su 10:00+|week 01-53/2 Fr 09:00-12:00; week 02-52/2 We 09:00-12:00" values_no_i18n="true" />
     </chunk>
     <chunk id="wheelchair">
         <combo key="wheelchair" text="Wheelchairs" values="yes,limited,no" />
@@ -5199,12 +5199,18 @@
             <key key="amenity" value="shower" />
             <combo key="access" text="Access rights" values="yes,permissive,customers" />
             <optional>
+                <checkgroup columns="3">
+                    <check key="female" text="Female" text_context="restroom" />
+                    <check key="male" text="Male" text_context="restroom" />
+                    <check key="unisex" text="Unisex" text_context="restroom" />
+                </checkgroup>
                 <text key="description" text="Description" />
                 <combo key="fee" text="Fee" values="yes,no" />
                 <text key="operator" text="Operator" />
                 <reference ref="oh_wheelchair" />
             </optional>
         </item> <!-- Shower -->
+        <separator/>
         <item name="Post Box" icon="presets/service/post_box.svg" type="node" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=post_box"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=post_box"
@@ -5237,6 +5243,13 @@
             <check key="payment:telephone_cards" text="Telephone cards" />
             <preset_link preset_name="Payment Methods" />
         </item> <!-- Telephone -->
+        <item name="Internet Cafe" icon="presets/service/internet_cafe.svg" type="node,closedway,multipolygon" preset_name_label="true">
+            <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=internet_cafe" />
+            <space />
+            <key key="amenity" value="internet_cafe" />
+            <reference ref="name_operator_oh_wheelchair" />
+            <reference ref="link_contact_address_payment" />
+        </item> <!-- Internet Cafe -->
         <item name="Internet Access" icon="presets/service/network-wireless.svg" type="node,closedway,multipolygon,relation" preset_name_label="true">
             <link href="http://wiki.openstreetmap.org/wiki/Key:internet_access"
                   cs.href="http://wiki.openstreetmap.org/wiki/Cs:Key:internet_access"
@@ -5266,6 +5279,13 @@
                 <check key="hygrometer" text="Shows humidity" />
             </optional>
         </item> <!-- Clock -->
+        <item name="Photo booth" icon="presets/service/photo_booth.svg" type="node" preset_name_label="true">
+            <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=photo_booth" />
+            <space />
+            <key key="amenity" value="photo_booth" />
+            <reference ref="name_operator_oh_wheelchair" />
+        </item> <!-- Photo booth -->
+        <separator/>
         <item name="Recycling Container" icon="presets/service/recycling/recycling_container.svg" type="node,closedway" preset_name_label="true">
            <link href="http://wiki.openstreetmap.org/wiki/Tag:amenity=recycling"
                   de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=recycling"
@@ -7114,6 +7134,7 @@
                   ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:historic=castle" />
             <space />
             <key key="historic" value="castle" />
+            <combo key="castle_type" text="Type" values="stately,defensive,fortress,manor,palace" />
             <reference ref="name_wikipedia" />
             <check key="ruins" text="Ruins" />
             <reference ref="link_contact_address_payment" />
@@ -8252,7 +8273,7 @@
               ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:amenity=vending_machine" />
         <space />
         <key key="amenity" value="vending_machine" />
-        <multiselect key="vending" text="Vending products" values="admission_tickets;animal_feed;bicycle_tube;cigarettes;condoms;drinks;elongated_coin;excrement_bags;food;milk;newspapers;parking_tickets;parcel_pickup;parcel_mail_in;photos;public_transport_plans;public_transport_tickets;SIM_cards;stamps;sweets;telephone_vouchers;toys" values_searchable="true" />
+        <multiselect key="vending" text="Vending products" values="admission_tickets;animal_feed;bicycle_tube;cigarettes;coffee;condoms;drinks;elongated_coin;excrement_bags;food;milk;newspapers;parking_tickets;parcel_pickup;parcel_mail_in;photos;public_transport_tickets;SIM_cards;stamps;sweets;telephone_vouchers;toys" values_searchable="true" />
         <text key="operator" text="Operator" />
         <text key="ref" text="Reference number" />
         <preset_link preset_name="Payment Methods" />
diff --git a/data/maps.xsd b/data/maps.xsd
index 1645ff8..a40235b 100644
--- a/data/maps.xsd
+++ b/data/maps.xsd
@@ -29,7 +29,6 @@
 			<xs:enumeration value="wms_endpoint" />
 			<xs:enumeration value="wmts" />
 			<xs:enumeration value="tms" />
-			<xs:enumeration value="html" />
 			<xs:enumeration value="bing" />
 			<xs:enumeration value="scanex" />
 		</xs:restriction>
@@ -660,6 +659,8 @@
 							<xs:element name="country-code" minOccurs="0" maxOccurs="1" type="tns:iso3166" />
 							<!-- A base64-encoded image that is displayed as menu/toolbar icon -->
 							<xs:element name="icon" minOccurs="0" maxOccurs="1" type="xs:string" />
+							<!-- Date in form YYYY-MM-DD;YYYY-MM-DD (each element after first year is optional, a single - marks an unknown or open timespan like -;2015) -->
+							<xs:element name="date" minOccurs="0" maxOccurs="1" type="xs:string" />
 							<xs:element name="mirror" minOccurs="0">
 								<xs:complexType>
 									<xs:all>
@@ -702,6 +703,7 @@
 						</xs:choice>
 					</xs:sequence>
 					<xs:attribute name="last-check" type="xs:date" use="optional" />
+					<xs:attribute name="eli-best" type="xs:boolean" use="optional" />
 				</xs:complexType>
 			</xs:element>
 		</xs:sequence>
diff --git a/data/validator/combinations.mapcss b/data/validator/combinations.mapcss
index ea1d54d..0b707b3 100644
--- a/data/validator/combinations.mapcss
+++ b/data/validator/combinations.mapcss
@@ -259,12 +259,16 @@ way[waterway=weir][bridge=yes][highway] {
   group: tr("missing tag");
 }
 
-/* #9811, #11491, #12865 */
-*[place][place!=farm][/^addr:/],
+/* #9811, #11491, #12865, #14310 */
+*[place][place!=farm][/^(addr:housenumber|addr:housename|addr:flats|addr:conscriptionnumber|addr:street|addr:place|addr:city|addr:country|addr:full|addr:hamlet|addr:suburb|addr:subdistrict|addr:district|addr:province|addr:state|addr:interpolation|addr:interpolation|addr:inclusion)$/],
+/* addr:postcode is used together with place in some countries */
 *[boundary][/^addr:/],
 *[highway][/^addr:/][highway!=services][highway!=rest_area][!"addr:postcode"] {
   throwWarning: tr("{0} together with addr:*", "{0.key}");
   group: tr("suspicious tag combination");
+  assertMatch: "node place=foo addr:housenumber=5";
+  assertMatch: "node place=foo addr:housenumber=5 addr:postcode=12345";
+  assertNoMatch: "node place=foo  addr:postcode=12345";
 }
 *[!highway][postal_code]["addr:postcode"][postal_code=*"addr:postcode"] {
   throwWarning: tr("{0} together with {1}", "{1.key}", "{2.key}");
@@ -332,7 +336,7 @@ way[highway][natural][natural!=ridge],
 }
 
 /* #9593, #11183, #12418, #12761 */
-*[sport][sport!=skiing][!building][!club][tourism != hotel][highway != raceway][leisure !~ /^(sports_centre|stadium|track|pitch|golf_course|water_park|swimming_pool|recreation_ground|ice_rink|horse_riding|fitness_station)$/][natural !~ /^(beach|bare_rock|cliff|peak|water)$/][amenity !~ /^(pub|restaurant|swimming_pool)$/][landuse !~ /^(recreation_ground|piste|farm|farmland)$/][barrier !~ /^(wall|retaining_wall)$/][!"piste:type"][shop!=sports] {
+*[sport][sport!=skiing][!building][!club][tourism != hotel][highway != raceway][leisure !~ /^(sports_centre|stadium|track|pitch|golf_course|water_park|swimming_pool|recreation_ground|ice_rink|horse_riding|fitness_station|bowling_alley)$/][natural !~ /^(beach|bare_rock|cliff|peak|water)$/][amenity !~ /^(pub|restaurant|swimming_pool)$/][landuse !~ /^(recreation_ground|piste|farm|farmland)$/][barrier !~ /^(wall|retaining_wall)$/][!"piste:type"][shop!=sports] {
     throwWarning: tr("sport without physical feature");
     group: tr("missing tag");
     assertMatch: "node sport=tennis";
@@ -472,8 +476,8 @@ way["addr:housenumber"][!building][!"building:part"][!"demolished:building"][!no
   group: tr("missing tag");
 }
 
-/* #14125 */
-way[highway][lanes][!lanes:forward][!lanes:backward][oneway!=yes][oneway!=-1][lanes>2][get(split(".", tag(lanes)/2), 1)=5] {
+/* #14125, #14323 */
+way[highway][lanes][!lanes:forward][!lanes:backward][oneway!=yes][oneway!=-1][junction!=roundabout][lanes>2][get(split(".", tag(lanes)/2), 1)=5] {
   throwWarning: tr("street with odd number of {0}, but without {1} and {2} or {3}", "{1.key}", "{2.key}", "{3.key}", "{4.key}");
   group: tr("missing tag");
   assertNoMatch: "way highway=primary lanes=2";
diff --git a/data/validator/deprecated.mapcss b/data/validator/deprecated.mapcss
index 3d5a176..34a0060 100644
--- a/data/validator/deprecated.mapcss
+++ b/data/validator/deprecated.mapcss
@@ -1046,6 +1046,22 @@ area[landuse=pond] {
   fixAdd: "vending=animal_feed";
 }
 
+/* #14376 */
+node[vending=photos][amenity=vending_machine],
+node[vending=photo][amenity=vending_machine] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "amenity=photo_booth";
+  group: tr("deprecated tagging");
+  fixRemove: "vending";
+  fixAdd: "amenity=photo_booth";
+
+}
+node[vending=photos][amenity!=vending_machine] {
+  throwWarning: tr("{0} is deprecated", "{0.tag}");
+  suggestAlternative: "amenity=photo_booth";
+  group: tr("deprecated tagging");
+}
+
 /* #13653 */
 node[highway=emergency_access_point][phone][!emergency_telephone_code],
 way[highway=emergency_access_point][phone][!emergency_telephone_code] {
diff --git a/data/validator/ignoretags.cfg b/data/validator/ignoretags.cfg
index 9015bed..53f541c 100644
--- a/data/validator/ignoretags.cfg
+++ b/data/validator/ignoretags.cfg
@@ -12,6 +12,7 @@ S:opengeodb
 S:openGeoDB
 S:name:
 S:note:
+S:description:
 S:ref:
 S:CLC:
 S:tiger:
@@ -152,6 +153,7 @@ K:toilets:wheelchair=yes
 K:toilets:wheelchair=no
 K:locality=townland
 K:place=allotments
+K:building=bunker
 K:building=civic
 K:building=houseboat
 K:building=static_caravan
@@ -165,6 +167,8 @@ K:glacier:type=rock
 K:glacier:type=mountain
 K:glacier:type=ice_tongue
 K:glacier:type=icecap
+K:place=city_block
+K:waterway=drystream
 ;
 ; Highway Key/Value Pairs
 ;
@@ -183,6 +187,12 @@ K:lanes=7
 K:lanes=8
 K:lanes=9
 K:oneway=-1
+K:traffic_signals=blinker
+K:traffic_signals=blink_mode
+K:traffic_signals=emergency
+K:traffic_signals=ramp_meter
+K:traffic_signals=signal
+K:traffic_signals=crossing
 ;
 ; Amenity Key/Value Pairs
 ;
diff --git a/data/validator/opening_hours.js b/data/validator/opening_hours.js
index 5d7f2dc..6a2acfe 100644
--- a/data/validator/opening_hours.js
+++ b/data/validator/opening_hours.js
@@ -1,16 +1,17 @@
-require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){if(typ [...]
+require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){(funct [...]
  (c) 2011-2015, Vladimir Agafonkin
  SunCalc is a JavaScript library for calculating sun/moon position and light phases.
  https://github.com/mourner/suncalc
 */
-(function(){"use strict";var PI=Math.PI,sin=Math.sin,cos=Math.cos,tan=Math.tan,asin=Math.asin,atan=Math.atan2,acos=Math.acos,rad=PI/180;var dayMs=1e3*60*60*24,J1970=2440588,J2000=2451545;function toJulian(date){return date.valueOf()/dayMs-.5+J1970}function fromJulian(j){return new Date((j+.5-J1970)*dayMs)}function toDays(date){return toJulian(date)-J2000}var e=rad*23.4397;function rightAscension(l,b){return atan(sin(l)*cos(e)-tan(b)*sin(e),cos(l))}function declination(l,b){return asin(si [...]
-var getXhr=function(callback){if(window.XMLHttpRequest){return callback(null,new XMLHttpRequest)}else if(window.ActiveXObject){try{return callback(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(e){return callback(null,new ActiveXObject("Microsoft.XMLHTTP"))}}return callback(new Error)};var encodeUsingUrlEncoding=function(data){if(typeof data==="string"){return data}var result=[];for(var dataItem in data){if(data.hasOwnProperty(dataItem)){result.push(encodeURIComponent(dataItem)+"="+enco [...]
-var _rulesPluralsTypes={1:function(n){return Number(n>1)},2:function(n){return Number(n!=1)},3:function(n){return 0},4:function(n){return Number(n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2)},5:function(n){return Number(n===0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5)},6:function(n){return Number(n==1?0:n>=2&&n<=4?1:2)},7:function(n){return Number(n==1?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2)},8:function(n){return Number(n==1?0:n==2?1:n!=8&&n!=11?2:3)} [...]
-return typeof sth==="function"&&Object.prototype.toString.call(sth)==="[object Function]"}function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token))}return regexes[token](config._strict,config._locale)}function unescapeFormat(s){return s.replace("\\","").replace(/\\(\[)|\\(\])|\[ [...]
-c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function local__createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var other=local__createLocal.apply(null,arguments);return other<this?this:other});var prototypeMax=deprecate("mom [...]
-return-Math.round(m._d.getTimezoneOffset()/15)*15}utils_hooks__hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime){var offset=this._offset||0,localAdjust;if(input!=null){if(typeof input==="string"){input=offsetFromString(input)}if(Math.abs(input)<16){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,"m")}if(offset!==input){if(!keepLocalTime||this._changeInPro [...]
-if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60);data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFl [...]
-var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds;var total=this.asSeconds();if(!total){return"P0D"}return(total<0?"-":"")+"P"+(Y?Y+"Y":"")+(M?M+"M":"")+(D?D+"D":"")+(h||m||s?"T":"")+(h?h+"H":"")+(m?m+"M":"")+(s?s+"S":"")}var duration_prototype__proto=Duration.prototype;duration_prototype__proto.abs=duration_abs__abs;duration_prototype__proto.add=duration_add_subtract__add;duration_prototype__proto.subtract=duration_add_subtract__subtract;duration_prototype__pro [...]
+(function(){"use strict";var PI=Math.PI,sin=Math.sin,cos=Math.cos,tan=Math.tan,asin=Math.asin,atan=Math.atan2,acos=Math.acos,rad=PI/180;var dayMs=1e3*60*60*24,J1970=2440588,J2000=2451545;function toJulian(date){return date.valueOf()/dayMs-.5+J1970}function fromJulian(j){return new Date((j+.5-J1970)*dayMs)}function toDays(date){return toJulian(date)-J2000}var e=rad*23.4397;function rightAscension(l,b){return atan(sin(l)*cos(e)-tan(b)*sin(e),cos(l))}function declination(l,b){return asin(si [...]
+var getXhr=function(callback){if(window.XMLHttpRequest){return callback(null,new XMLHttpRequest)}else if(window.ActiveXObject){try{return callback(null,new ActiveXObject("Msxml2.XMLHTTP"))}catch(e){return callback(null,new ActiveXObject("Microsoft.XMLHTTP"))}}return callback(new Error)};var encodeUsingUrlEncoding=function(data){if(typeof data==="string"){return data}var result=[];for(var dataItem in data){if(data.hasOwnProperty(dataItem)){result.push(encodeURIComponent(dataItem)+"="+enco [...]
+var _rulesPluralsTypes={1:function(n){return Number(n>1)},2:function(n){return Number(n!=1)},3:function(n){return 0},4:function(n){return Number(n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2)},5:function(n){return Number(n===0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5)},6:function(n){return Number(n==1?0:n>=2&&n<=4?1:2)},7:function(n){return Number(n==1?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2)},8:function(n){return Number(n==1?0:n==2?1:n!=8&&n!=11?2:3)} [...]
+if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2e3,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,"").toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,"").toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,"").toLocaleLowerCase()}}if(strict){if(format==="dddd"){ii=indexOf$1.call(this._weekdaysParse,llc);return ii!==-1?ii:null}else if(format==="ddd"){ii=indexOf [...]
+c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c)}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false)}var prototypeMin=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other}else{retu [...]
+this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){if(number<0){return Math.round(-1*number)*-1}else{return Math.round(number)}}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset();var sign="+";if(offset<0){offset=-offset;sign="-"}return sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset% [...]
+return-Math.round(m._d.getTimezoneOffset()/15)*15}hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN}if(input!=null){if(typeof input==="string"){input=offsetFromString(matchShortOffset,input);if(input===null){return this}}else if(Math.abs(input)<16){input=input*60}if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this)}this._offset=input;this._isUTC=true;if(localAdjust!= [...]
+if(!(milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0)){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0}data.milliseconds=milliseconds%1e3;seconds=absFloor(milliseconds/1e3);data.seconds=seconds%60;minutes=absFloor(seconds/60);data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFl [...]
+var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds;var total=this.asSeconds();if(!total){return"P0D"}return(total<0?"-":"")+"P"+(Y?Y+"Y":"")+(M?M+"M":"")+(D?D+"D":"")+(h||m||s?"T":"")+(h?h+"H":"")+(m?m+"M":"")+(s?s+"S":"")}var proto$2=Duration.prototype;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDa [...]
  * @source: https://github.com/opening-hours/opening_hours.js/blob/master/opening_hours.js
  * @source: ./opening_hours.js
  * @license: LGPL-3.0
@@ -39,8 +40,8 @@ var Y=years;var M=months;var D=days;var h=hours;var m=minutes;var s=seconds;var
  * All work done by Dmitry Marakasov is additionally published under the New (2-clause) BSD license.
  * Refer to the README.md and the reversion control history for more details.
  */
-(function(root,factory){"use strict";var holiday_definitions={nl:{PH:{Nieuwjaarsdag:[1,1],"Goede vrijdag":["easter",-2],"Tweede Paasdag":["easter",1],Koningsdag:[4,27],Bevreidingsdag:[5,5],Hemelvaartsdag:["easter",39],"Tweede Pinksterdag":["easter",50],"Eerste Kerstdag":[12,25],"Tweede Kerstdag":[12,26]}},be:{PH:{"Nieuwjaar - Jour de l'an":[1,1],"Paasmaandag - Lundi de Pâques":["easter",1],"Dag van de Arbeid - Fête du Travail":[5,1],"Onze-Lieve-Heer-Hemelvaart - Jeudi de l'Ascensionn":[" [...]
-var word_error_correction={wrong_words:{'Assuming "<ok>" for "<ko>".':{daytime:"sunrise-sunset",spring:"Mar-May",summer:"Jun-Aug",autumn:"Sep-Nov",winter:"Dec-Feb",_:"-","=":"-"},'"<ko>" wird als "<ok>" interpertiert.':{"frühling":"Mar-May","frühjahr":"Mar-May",sommer:"Jun-Aug",herbst:"Sep-Nov"},'Bitte benutze die englische Schreibweise "<ok>" für "<ko>".':{"werktags?":"Mo-Fr"},'Bitte benutze "<ok>" für "<ko>". Beispiel: "Mo-Fr 08:00-12:00; Tu off".':{"ruhetage?":"off",geschlossen:"off", [...]
-return val}else{var correct_abbr;for(correct_abbr in word_error_correction[token_name]["default"]){if(word_error_correction[token_name]["default"][correct_abbr]===val)break}if(typeof correct_abbr==="undefined"){throw formatLibraryBugMessage("Please also include the stacktrace.")}if(token_name!=="timevar"){correct_abbr=correct_abbr.charAt(0).toUpperCase()+correct_abbr.slice(1)}if(!done_with_warnings)parsing_warnings.push([-1,value_length-word.length,comment.replace(/<ko>/,word).replace(/< [...]
-var last_holiday_last_year_num=getValueForDate(last_holiday_last_year[0],true);if(date_num<last_holiday_last_year_num){return[false,last_holiday_last_year[0]]}else if(date_num===last_holiday_last_year_num){return[true,dateAtDayMinutes(last_holiday_last_year[0],minutes_in_day),"Day after "+last_holiday_last_year[1]]}}return[false,holidays[i][0]]}else if(date_num===next_holiday_date_num){return[true,new Date(date.getFullYear(),date.getMonth(),date.getDate()+1),(add_days[0]>0?"Day after ":a [...]
-else if(prevstate)open+=it.getDate().getTime()-prevdate.getTime()}prevdate=it.getDate();prevstate=it.getState();prevunknown=it.getUnknown()}else{if(typeof prevdate==="object"){if(prevunknown)unknown+=it.getDate().getTime()-prevdate.getTime();else open+=it.getDate().getTime()-prevdate.getTime();prevdate=undefined}}}if(typeof prevdate==="object"){if(prevunknown)unknown+=to.getTime()-prevdate.getTime();else open+=to.getTime()-prevdate.getTime()}return[open,unknown]};this.getIterator=functio [...]
\ No newline at end of file
+(function(root,factory){"use strict";var holiday_definitions={nl:{PH:{Nieuwjaarsdag:[1,1],"Goede vrijdag":["easter",-2],"Tweede Paasdag":["easter",1],Koningsdag:[4,27],Bevreidingsdag:[5,5],Hemelvaartsdag:["easter",39],"Tweede Pinksterdag":["easter",50],"Eerste Kerstdag":[12,25],"Tweede Kerstdag":[12,26]}},be:{PH:{"Nieuwjaar - Jour de l'an":[1,1],"Paasmaandag - Lundi de Pâques":["easter",1],"Dag van de Arbeid - Fête du Travail":[5,1],"Onze-Lieve-Heer-Hemelvaart - Jeudi de l'Ascensionn":[" [...]
+var word_error_correction={wrong_words:{'Assuming "<ok>" for "<ko>".':{daytime:"sunrise-sunset",spring:"Mar-May",summer:"Jun-Aug",autumn:"Sep-Nov",winter:"Dec-Feb",_:"-","=":"-"},'"<ko>" wird als "<ok>" interpertiert.':{"frühling":"Mar-May","frühjahr":"Mar-May",sommer:"Jun-Aug",herbst:"Sep-Nov"},'Bitte benutze die englische Schreibweise "<ok>" für "<ko>".':{"werktags?":"Mo-Fr"},'Bitte benutze "<ok>" für "<ko>". Beispiel: "Mo-Fr 08:00-12:00; Tu off".':{"ruhetage?":"off",geschlossen:"off", [...]
+return all_tokens}function returnCorrectWordOrToken(word,value_length){for(var token_name in word_error_correction){for(var comment in word_error_correction[token_name]){for(var old_val in word_error_correction[token_name][comment]){if(word.match(new RegExp("^"+old_val+"$"))){var val=word_error_correction[token_name][comment][old_val];if(comment==="default"){return[val,token_name]}else if(token_name==="wrong_words"&&!done_with_warnings){parsing_warnings.push([-1,value_length-word.length, [...]
+var add_days=getMoveDays(tokens,at+1,1,"public holiday");var selector=function(applying_holidays,add_days){return function(date){var holidays=getApplyingHolidaysForYear(applying_holidays,date.getFullYear(),add_days);var date_num=getValueForDate(date,true);for(var i=0;i<holidays.length;i++){var next_holiday_date_num=getValueForDate(holidays[i][0],true);if(date_num<next_holiday_date_num){if(add_days[0]>0){var holidays_last_year=getApplyingHolidaysForYear(applying_holidays,date.getFullYear( [...]
+}}return[true]};this.getOpenIntervals=function(from,to){var res=[];var it=this.getIterator(from);if(it.getState()||it.getUnknown()){res.push([from,undefined,it.getUnknown(),it.getComment()])}while(it.advance(to)){if(it.getState()||it.getUnknown()){if(res.length!==0&&typeof res[res.length-1][1]==="undefined"){res[res.length-1][1]=it.getDate()}res.push([it.getDate(),undefined,it.getUnknown(),it.getComment()])}else{if(res.length!==0&&typeof res[res.length-1][1]==="undefined"){res[res.length [...]
\ No newline at end of file
diff --git a/data_nodist/trans/fr.lang b/data_nodist/trans/fr.lang
index 305181a..65648a8 100644
Binary files a/data_nodist/trans/fr.lang and b/data_nodist/trans/fr.lang differ
diff --git a/data_nodist/trans/pt.lang b/data_nodist/trans/pt.lang
index b436d88..54d9da8 100644
Binary files a/data_nodist/trans/pt.lang and b/data_nodist/trans/pt.lang differ
diff --git a/i18n/build.xml b/i18n/build.xml
index f6dc0b8..06d4881 100644
--- a/i18n/build.xml
+++ b/i18n/build.xml
@@ -7,6 +7,7 @@
     <property name="maps.srcfile" value="http://josm.openstreetmap.de/maps"/>
     <property name="wiki.srcfile" value="http://josm.openstreetmap.de/josmfile?mode=en"/>
     <property name="surveyor.srcfile" value="${plugin.dir}/surveyor/resources/surveyor.xml"/>
+    <property name="tag2link.srcfile" value="${plugin.dir}/tag2link/resources/tag2link_sources.xml"/>
     <property name="i18n.build.dir" value="build"/>
     <property name="i18n.install.dir" value="${josm.build.dir}/data"/>
     <property name="i18n_data.install.dir" value="${josm.build.dir}/data_nodist/trans"/>
@@ -32,6 +33,9 @@
         <exec executable="perl" failonerror="true" logError="true" output="${i18n.build.dir}/trans_surveyor.java">
             <arg line="convsurveyor.pl ${surveyor.srcfile}"/>
         </exec>
+        <exec executable="perl" failonerror="true" logError="true" output="${i18n.build.dir}/trans_tag2link.java">
+            <arg line="convtag2link.pl ${tag2link.srcfile}"/>
+        </exec>
         <exec executable="perl" failonerror="true" logError="true" output="${i18n.build.dir}/trans_plugins.java">
             <arg line="convplugins.pl ${plugin.dir}/*/build.xml"/>
         </exec>
@@ -84,6 +88,7 @@
         <gettext-extract keysFile="plugins.raw.pot" poDirectory="${i18n.build.dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
             <fileset dir="${plugin.dir}" includes="**/*.java"/>
             <fileset dir="${i18n.build.dir}" includes="trans_surveyor.java"/>
+            <fileset dir="${i18n.build.dir}" includes="trans_tag2link.java"/>
         </gettext-extract>
         <copy todir="${po.build.dir}">
             <fileset dir="po" includes="core.pot"/>
@@ -135,7 +140,7 @@
         <gettext-extract keysFile="josm.pot" poDirectory="${po.build.dir}/plugin_${dir}" keywords="-k -ktrc:1c,2 -kmarktrc:1c,2 -ktr -kmarktr -ktrn:1,2 -ktrnc:1c,2,3">
             <fileset dir="${plugin.dir}/${dir}" includes="**/*.java"/>
             <fileset dir="${po.build.dir}/plugin_${dir}" includes="trans_*.java"/>
-            <fileset dir="${i18n.build.dir}" includes="trans_${dir}.java"/>
+            <fileset dir="${i18n.build.dir}" includes="trans_${dir}.java"/> <!-- include plugin specific translation -->
         </gettext-extract>
         <if>
             <available file="${po.build.dir}/plugin_${dir}/josm.pot"/>
diff --git a/i18n/convtag2link.pl b/i18n/convtag2link.pl
new file mode 100644
index 0000000..a13c31f
--- /dev/null
+++ b/i18n/convtag2link.pl
@@ -0,0 +1,46 @@
+#! /usr/bin/perl -w
+
+# Written by Dirk Stöcker <openstreetmap at dstoecker.de>
+# Public domain, no rights reserved.
+
+use strict;
+
+my $item;
+my $src = "";
+my $country = "";
+my $comment = 0;
+
+# This is a simple conversion and in no way a complete XML parser
+# but it works with a default Perl installation
+
+# Print a header to write valid Java code.  No line break,
+# so that the input and output line numbers will match.
+print "class trans_tag2link { void tr(String s){} void f() {";
+
+while(my $line = <>)
+{
+  chomp($line);
+  print "tr(\"---DUMMY-MARKER---\"); ";
+  if($line =~ /<link name="([^"]+)" /)
+  {
+    print "tr(\"$1\") /* src $src country code $country */\n";
+  }
+  elsif($line =~ /^$/)
+  {
+    print "\n";
+  }
+  else
+  {
+    if($line =~ /<src name="([^"]+)"  country-code="([^"]+)"/)
+    {
+      $src = $1; $country = $2;
+    }
+    elsif($line =~ /<\/src/)
+    {
+      $src = ""; $country = ""
+    }
+    print "/* $line */\n";
+  }
+}
+
+print "}}\n";
diff --git a/i18n/i18n.pl b/i18n/i18n.pl
index a27fa59..ef853d3 100755
--- a/i18n/i18n.pl
+++ b/i18n/i18n.pl
@@ -276,9 +276,13 @@ sub checkstring
   my $fmte;
   my $fmte1 = "";
   my $trt = $tr; $trt =~ s/'[{}]'//g;
-  while($trt =~ /\{(.*?)\}/g) {push @fmt,$1}; $fmt = join("_", sort @fmt); @fmt = ();
+  while($trt =~ /\{(.*?)\}/g) {push @fmt,$1};
+  while($trt =~ /\%([a-z]+)\%/g) {push @fmt,$1};
+  $fmt = join("_", sort @fmt); @fmt = ();
   my $ent = $en; $ent =~ s/'[{}]'//g;
-  while($ent =~ /\{(.*?)\}/g) {push @fmt,$1}; $fmte = join("_", sort @fmt); @fmt = ();
+  while($ent =~ /\{(.*?)\}/g) {push @fmt,$1};
+  while($ent =~ /\%([a-z]+)\%/g) {push @fmt,$1};
+  $fmte = join("_", sort @fmt); @fmt = ();
   if($en1)
   {
      my $en1t = $en1; $en1t =~ s/'[{}]'//g;
diff --git a/i18n/launchpad.pl b/i18n/launchpad.pl
index 0848f73..33ab480 100755
--- a/i18n/launchpad.pl
+++ b/i18n/launchpad.pl
@@ -8,7 +8,8 @@ my ($user, $pwd);
 
 # Three ways to handle login data:
   # Enter data directly in these two lines (Be careful witn svn checkin later!)
-  # create a file "launchpad.pl_credits" containing the two lines with proper values
+  # create a file "launchpad.pl_credits" or ~/.josm_i18n_launchpad.pl_credits
+  # containing the two lines with proper values
   # leave credits empty and enter them on runtime
 $user = '';
 $pwd = '';
@@ -21,7 +22,7 @@ my %lang = map {$_ => 1} (
 "sv", "uk", "vi", "zh_CN", "zh_TW"
 );
 
-my $revision = '$Revision: 31724 $';
+my $revision = '$Revision: 33169 $';
 $revision =~ s/^.*?(\d+).*$/$1/;
 my $agent = "JOSM_Launchpad/1.$revision";
 
@@ -291,6 +292,11 @@ sub getcredits
             eval <FILE>;
             close FILE;
         }
+        elsif(open FILE, "$ENV{HOME}/.josm_i18n_launchpad.pl_credits")
+        {
+            eval <FILE>;
+            close FILE;
+        }
 
         if(!$user)
         {
diff --git a/i18n/po/af.po b/i18n/po/af.po
index bdd9127..9ee6cb9 100644
--- a/i18n/po/af.po
+++ b/i18n/po/af.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-10-13 02:39+0000\n"
 "Last-Translator: Grant Slater <Unknown>\n"
 "Language-Team: Afrikaans <af at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:33+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:34+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: af\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/am.po b/i18n/po/am.po
index 9af9ea6..477ff85 100644
--- a/i18n/po/am.po
+++ b/i18n/po/am.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2010-03-30 12:09+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Amharic <am at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:35+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:35+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: am\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ar.po b/i18n/po/ar.po
index c7be01f..e550b15 100644
--- a/i18n/po/ar.po
+++ b/i18n/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-10-08 23:09+0000\n"
 "Last-Translator: mourad101ee <mourad101ee at gmail.com>\n"
 "Language-Team: Arabic <ar at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
 "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:35+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:36+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ar\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3274,9 +3274,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "ش."
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10861,7 +10879,15 @@ msgid "Foot"
 msgstr "المشي"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10880,6 +10906,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10991,6 +11020,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "تلوين الأثر و النقطة"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14937,6 +14982,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15204,9 +15252,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15222,6 +15267,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15257,10 +15326,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15411,7 +15476,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15426,6 +15494,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15960,6 +16034,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20593,6 +20670,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "بطاقات هاتفية"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20638,6 +20718,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22562,6 +22645,21 @@ msgstr "مواقع تاريخية"
 msgid "Castle"
 msgstr "قلعة"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "موقع أثري"
 
@@ -22917,6 +23015,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "سجائر"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "مانع الحمل"
 
@@ -22950,9 +23051,6 @@ msgstr ""
 msgid "photos"
 msgstr "صور"
 
-msgid "public_transport_plans"
-msgstr "خرائط_النقل_العام"
-
 msgid "public_transport_tickets"
 msgstr "تذاكر_النقل_العام"
 
@@ -24415,6 +24513,99 @@ msgstr "مخيم"
 msgid "Test"
 msgstr "إختبار"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25525,18 +25716,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25699,19 +25878,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25732,6 +25911,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29859,7 +30094,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29883,6 +30118,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ast.po b/i18n/po/ast.po
index feca895..3cfc2bd 100644
--- a/i18n/po/ast.po
+++ b/i18n/po/ast.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-08-09 15:33+0000\n"
-"Last-Translator: Don-vip <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-27 10:21+0000\n"
+"Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Asturian <ast at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:36+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-28 04:34+0000\n"
+"X-Generator: Launchpad (build 18329)\n"
 "Language: ast\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -65,13 +65,13 @@ msgid "Help"
 msgstr "Ayuda"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "Aniciando datos internos de llendes"
 
 msgid "Initializing OSM API"
 msgstr "Aniciando API d''OSM"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "Aniciando datos internos de tráficu"
 
 msgid "Initializing validator"
 msgstr "Aniciando validador"
@@ -495,10 +495,10 @@ msgid "Download notes in current view"
 msgstr "Baxa les notes de la vista actual"
 
 msgid "Download in current view"
-msgstr ""
+msgstr "Descargar na vista actual"
 
 msgid "Download map data from the OSM server in current view"
-msgstr ""
+msgstr "Descargar datos del mapa dende’l sirvidor d’OSM na vista actual"
 
 msgid "Download object..."
 msgstr "Descargar oxetu..."
@@ -2692,7 +2692,7 @@ msgid "objects"
 msgstr "oxetos"
 
 msgid "all nodes"
-msgstr ""
+msgstr "tolos nudos"
 
 msgid "all ways"
 msgstr "toles víes"
@@ -2767,7 +2767,7 @@ msgid "all incomplete objects"
 msgstr "tolos oxetos incompletos"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
-msgstr ""
+msgstr "tolos oxetos desaniciaos (tien de tar activáu el caxellu <b>{0}</b>)"
 
 msgid "related objects"
 msgstr "Oxetos rellacionaos"
@@ -2779,10 +2779,10 @@ msgid "all parents of objects matching the expression"
 msgstr "tolos padres de los oxetos coincidentes cola espresión"
 
 msgid "relation containing a member of role <i>stop</i>"
-msgstr ""
+msgstr "rellación que contien un miembru del rol <i>parada</i>"
 
 msgid "objects being part of a relation as role <i>stop</i>"
-msgstr ""
+msgstr "oxetos que son parte d’una rellación como rol parada (<i>stop</i>)"
 
 msgid "n-th member of relation and/or n-th node of way"
 msgstr "n-ésimu miembru de la rellación y/o n-ésimu nudu de la vía"
@@ -2873,10 +2873,10 @@ msgstr ""
 "{1}"
 
 msgid "Cannot parse timestamp ''{0}''"
-msgstr ""
+msgstr "Nun puede analizase la marca de tiempu ''{0}''"
 
 msgid "Expecting {0} after {1}"
-msgstr ""
+msgstr "Esperábase {0} después de {1}"
 
 msgid "Range of primitive ids expected"
 msgstr "Rangu de ids primitivos esperáu"
@@ -2907,7 +2907,7 @@ msgid "Unexpected token. Expected {0}, found {1}"
 msgstr "Elementu ensin esperar. Esperábase {0} pero atopóse {1}"
 
 msgid "Failed to parse MapCSS selector"
-msgstr ""
+msgstr "Nun pudo analizase’l selector de MapCSS"
 
 msgid "Unexpected token: {0}"
 msgstr "Credencial d`autentificación inesperada: {0}"
@@ -3042,7 +3042,7 @@ msgid "Change relation {0}"
 msgstr "Camudar rellación {0}"
 
 msgid "Change nodes of {0}"
-msgstr ""
+msgstr "Cambiar los nudos de {0}"
 
 msgid "Remove \"{0}\" for node ''{1}''"
 msgstr "Desaniciar \"{0}\" pal nudu ''{1}''"
@@ -3509,7 +3509,7 @@ msgid "UNKNOWN"
 msgstr "DESCONOCÍU"
 
 msgid "Error reading revision info from revision file: {0}"
-msgstr ""
+msgstr "Error al lleer la info de revisión del ficheru de revisión: {0}"
 
 msgid "Unexpected JOSM version number in revision file, value is ''{0}''"
 msgstr ""
@@ -3550,9 +3550,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr "Data de les imaxes: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr "Esta imaxen ta marcada como la meyor d’esta rexón notros editores."
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Nun s`atopa la proyección ''{0}'', el marcador ''{1}'' yá nun puede ser "
@@ -11882,7 +11900,15 @@ msgid "Foot"
 msgstr "Pie"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11901,6 +11927,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Crear marcadores al lleer l''arquivu GPX"
 
@@ -12030,6 +12059,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Coloriáu de traza y puntu"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Colorea puntos y segmentos de traza por llendes de fecha."
 
@@ -16454,6 +16499,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16724,9 +16772,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16742,6 +16787,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16777,10 +16846,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -16931,7 +16996,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16946,6 +17014,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17480,6 +17554,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -22257,6 +22334,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Tarxetes telefóniques"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Accesu a Internet"
 
@@ -22302,6 +22382,9 @@ msgstr "Amuesa la presión barométrica"
 msgid "Shows humidity"
 msgstr "Amuesa''l mugor"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -24228,6 +24311,21 @@ msgstr "Llugares históricos"
 msgid "Castle"
 msgstr "Castiellu"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Xacimientu arqueolóxicu"
 
@@ -24583,6 +24681,9 @@ msgstr "neumáticu de bicicleta"
 msgid "cigarettes"
 msgstr "Estancu"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condones"
 
@@ -24616,9 +24717,6 @@ msgstr ""
 msgid "photos"
 msgstr "semeyes"
 
-msgid "public_transport_plans"
-msgstr "abonos de tresporte públicu"
-
 msgid "public_transport_tickets"
 msgstr "billetes de de tresporte públicu"
 
@@ -26105,6 +26203,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Prueba"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -27258,18 +27449,6 @@ msgstr "Averar a la imaxe seleicionada"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Averar a la imaxe de Mapillary seleicionada actualmente"
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27432,12 +27611,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Aniciar sesión"
-
-msgid "Logout"
-msgstr "Pesllar sesión"
-
 msgid "Download mode"
 msgstr ""
 
@@ -27447,6 +27620,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr "Aniciar sesión"
+
+msgid "Logout"
+msgstr "Pesllar sesión"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -27465,6 +27644,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31969,8 +32204,8 @@ msgstr "Falló la carga´l ficheru: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
-msgstr "Cargar la Calibración del Arquivu Mundial..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Cargar datos de calibración dende un arquivu mundial"
@@ -31993,6 +32228,12 @@ msgstr "Guardar la calibración de datos a un ficheru"
 msgid "Saving file failed: {0}"
 msgstr "Fallu al grabar ficheru: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nueva capa d''imaxes dende''l portapapeles"
 
@@ -35628,6 +35869,3 @@ msgstr "Dir a conducir"
 
 msgid "Drive a race car on this layer"
 msgstr "Conduz un coche de carreres nesta capa"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/az.po b/i18n/po/az.po
index c8c8692..f4a0b40 100644
--- a/i18n/po/az.po
+++ b/i18n/po/az.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-12-17 13:38+0000\n"
 "Last-Translator: iAZISS <iss-sash at mail.ru>\n"
 "Language-Team: Azerbaijani <az at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:37+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:37+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/be.po b/i18n/po/be.po
index 717835d..62340d7 100644
--- a/i18n/po/be.po
+++ b/i18n/po/be.po
@@ -10,17 +10,17 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-31 12:27+0000\n"
-"Last-Translator: Viktar Palsciuk <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-19 15:59+0000\n"
+"Last-Translator: Darafei Praliaskouski <komzpa at gmail.com>\n"
 "Language-Team: Belarusian <i18n at mova.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:38+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:39+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: be\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3596,9 +3596,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "У"
 
+msgid "Date of imagery: {0}"
+msgstr "Дата здымка: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr "Гэтыя здымкі адмечаныя, як найлепшыя для гэтага рэгіёна."
+
+msgid "{0} mirror server {1}"
+msgstr "{1} люстэрка {0}"
+
+msgid "{0} mirror server"
+msgstr "люстэрка {0}"
+
 msgid "Update default entries"
 msgstr "Абнавіць даступныя па змаўчанні падкладкі"
 
+msgid "Update imagery ''{0}''"
+msgstr "Абнавіць здымкі \"{0}\""
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Выдаліць састарэлыя выявы \"{0}\""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Праекцыя ''{0}'' не знойдзена, закладка ''{1}'' непрыдатная да выкарыстання"
@@ -11961,8 +11979,16 @@ msgid "Foot"
 msgstr "Пешшу"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Карыстальнік"
+msgid "User Normal"
+msgstr "Звычайная, па карыстальніках"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Светлая, па карыстальніках"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Светлафор"
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11980,6 +12006,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Тэмпература"
 
+msgid "Use points instead of lines for heat map"
+msgstr "Выкарыстоўваць кропкі замест ліній на цеплавой карце"
+
 msgid "Create markers when reading GPX"
 msgstr "Стварыць маркеры пры чытанні GPX"
 
@@ -12107,6 +12136,24 @@ msgstr "Выбар колеравай схемы для цеплавой кар
 msgid "Track and Point Coloring"
 msgstr "Размаляваць трэкі і пункты"
 
+msgid "Overlay gain adjustment"
+msgstr "Узмецненне пры накладанні"
+
+msgid "Lower limit of visibility"
+msgstr "Не паказваць бліжэй маштабу"
+
+msgid "Adjust the gain of overlay blending."
+msgstr "Наладзіць узмацненне пры змешванні з ніжэйшымі слаямі."
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Паказваць усе GPX-трэкі, што перавышаюць гэты ліміт."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"Рухваік адмалёўкі будзе маляваць кропкі з вылічанай памылкай "
+"месцазнаходжання замест ліній. "
+
 msgid "Colors points and track segments by data limits."
 msgstr "Размаляваць пункты і сегменты трэка па межах дадзеных."
 
@@ -16597,6 +16644,9 @@ msgstr "URBIS 2015 - аэрафотаздымка"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW (allonie) лічбавыя выявы PICC"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW(allonie) найнавейшыя здымкі"
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 аэрафотаздымка"
 
@@ -16865,9 +16915,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: лічбавая базавая карта 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Тапаграфічная карта 1:10000"
 
@@ -16887,6 +16934,30 @@ msgstr ""
 "imagico.de - здымкі OSM для картаграфіі: узбярэжныя водмелі Паўночнай "
 "Германіі (інфрачырвоныя здымкі)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "Здымкі з imagico.de: Касігіянгуіт"
 
@@ -16924,10 +16995,6 @@ msgstr "Здымкі з imagico.de: поўнач Грэнландыі (ASTER)"
 msgid "Drone Imagery (Haiti)"
 msgstr "Здымкі дронаў (Гаіці)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr "Часова недаступнае (меркавана, да студзеня 2017) з-за змены сервера."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Здымкі з дрону 2014 (Гаіці)"
 
@@ -17079,8 +17146,11 @@ msgstr "1.cikla артафотакарта - Латвія"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Літва)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Люксембург Inspire Чыгунка"
@@ -17094,6 +17164,12 @@ msgstr "Люксембург Inspire Воды"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Дэльта Нігера, кастрычнік 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr "Аэрафотаздымкі PDOK 25 см (WMS)"
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr "Аэрафотаздымкі PDOK 25 см (WMTS)"
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Шпіцберген - артафота 2009/2011 EPSG: 25833"
 
@@ -17631,6 +17707,9 @@ msgstr "Планы гарадоў ад OS, Эдынбург 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "Планы гарадоў ад OS, Эдынбург 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Town Plans, Эдзінбург 1940-1960 (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "Планы гарадоў ад OS, Элгін 1868 (NLS)"
 
@@ -22438,6 +22517,9 @@ msgstr "Банкноты"
 msgid "Telephone cards"
 msgstr "Тэлефонныя карты"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Доступ у інтэрнэт"
 
@@ -22483,6 +22565,9 @@ msgstr "Паказваюць атмасферны ціск"
 msgid "Shows humidity"
 msgstr "Паказваюць вільготнасць"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Кантэйнер для перапрацоўваемых адкідаў"
 
@@ -24409,6 +24494,21 @@ msgstr "Гістарычныя месцы"
 msgid "Castle"
 msgstr "Замак"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr "палац"
+
 msgid "Archaeological Site"
 msgstr "Археалагічныя раскопкі"
 
@@ -24764,6 +24864,9 @@ msgstr "веласіпедная шына"
 msgid "cigarettes"
 msgstr "цыгарэты"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "прэзерватывы"
 
@@ -24797,9 +24900,6 @@ msgstr "адпраўка пасылак"
 msgid "photos"
 msgstr "фатаграфіі"
 
-msgid "public_transport_plans"
-msgstr "схемы грамадскага транспарта"
-
 msgid "public_transport_tickets"
 msgstr "квіткі на грамадскі транспарт"
 
@@ -26281,6 +26381,99 @@ msgstr "Кемпінг"
 msgid "Test"
 msgstr "Тэст"
 
+msgid "View website"
+msgstr "Прагледзець вэб-старонку"
+
+msgid "View URL"
+msgstr "Адкрыць URL"
+
+msgid "Send Email"
+msgstr "Даслаць ліст"
+
+msgid "View image"
+msgstr "Прагледзець выяву"
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr "Пабачыць старонку Вікідадзеных"
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Цотны нумар дома ў інтэрпаляцыі няцотных адрасоў."
 
@@ -27473,18 +27666,6 @@ msgstr "Маштабаваць да вылучанага здымка"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Наблізіцца да бягучага вылучанага здымка Mapillary"
 
-msgid "View in website"
-msgstr "Паглядзець на вэб-сайце"
-
-msgid "Copy key"
-msgstr "Капіяваць ключ"
-
-msgid "Copy key tag"
-msgstr "Капіяваць тэг"
-
-msgid "Edit on website"
-msgstr "Рэдагаваць на сайце"
-
 msgid "Current Mapillary changeset"
 msgstr "Бягучы пакет правак Mapillary"
 
@@ -27648,12 +27829,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Перадпрагляд выявы пры навядзенні на яго значок"
 
-msgid "Login"
-msgstr "Увайсці"
-
-msgid "Logout"
-msgstr "Выйсці"
-
 msgid "Download mode"
 msgstr "Рэжым спампоўкі"
 
@@ -27663,6 +27838,12 @@ msgstr "Вы ўвайшлі як ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Вы не выканалі ўваход."
 
+msgid "Login"
+msgstr "Увайсці"
+
+msgid "Logout"
+msgstr "Выйсці"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Перайсці да налад і ўвайсці ў Mapillary перад адпраўкай дадзеных."
 
@@ -27681,6 +27862,62 @@ msgstr "Прытрымлівацца вылучанага здымка"
 msgid "Go forward"
 msgstr "Ісці наперад"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr "Канфлікт у тэгах"
+
+msgid "Key copied to clipboard"
+msgstr "Ключ скапіраваны ў буфер"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr "Мне гэта зразумела, зачыніце."
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Выдалена {0} выява"
@@ -32180,8 +32417,8 @@ msgstr "Загрузка файла не атрымалася:  {0}"
 msgid "Problem occurred"
 msgstr "Паўстала праблема"
 
-msgid "Load World File Calibration..."
-msgstr "Загрузіць калібравальныя дадзеныя з world-файла..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Загружае калібравальныя дадзеныя з world-файла"
@@ -32204,6 +32441,12 @@ msgstr "Захоўвае дадзеныя каліброўкі ў файл"
 msgid "Saving file failed: {0}"
 msgstr "Не атрымалася захаваць файл: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Новы пласт малюнка з буфера абмену"
 
@@ -35865,6 +36108,3 @@ msgstr "Прыступіць да кіравання"
 
 msgid "Drive a race car on this layer"
 msgstr "Весці гоначны аўтамабіль на гэтым пласце"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Атлас: Аэрафотаздымкі"
diff --git a/i18n/po/bg.po b/i18n/po/bg.po
index 65f76fe..da06b0c 100644
--- a/i18n/po/bg.po
+++ b/i18n/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-08-05 14:02+0000\n"
 "Last-Translator: pl <Unknown>\n"
 "Language-Team: Bulgarian <bg at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:41+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:41+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: bg\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3389,9 +3389,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "И"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -11054,7 +11072,15 @@ msgid "Foot"
 msgstr "Пеш"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11073,6 +11099,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11196,6 +11225,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Оцветяване на следата"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15164,6 +15209,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15433,9 +15481,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -15451,6 +15496,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15486,10 +15555,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -15640,7 +15705,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15655,6 +15723,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16189,6 +16263,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -20837,6 +20914,9 @@ msgstr "Бележки"
 msgid "Telephone cards"
 msgstr "Телефонни карти"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Интернет достъп"
 
@@ -20882,6 +20962,9 @@ msgstr "Показва атм. налягане"
 msgid "Shows humidity"
 msgstr "Показва влажност"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22806,6 +22889,21 @@ msgstr "Исторически места"
 msgid "Castle"
 msgstr "Замък"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Архиологични разкопки"
 
@@ -23161,6 +23259,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "цигари"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "презервативи"
 
@@ -23194,9 +23295,6 @@ msgstr ""
 msgid "photos"
 msgstr "фотографии"
 
-msgid "public_transport_plans"
-msgstr "карта на обществен транспорт"
-
 msgid "public_transport_tickets"
 msgstr "билети за обществен транспорт"
 
@@ -24661,6 +24759,99 @@ msgstr "Къмпинг"
 msgid "Test"
 msgstr "Тест"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25773,18 +25964,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25947,12 +26126,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr ""
-
-msgid "Logout"
-msgstr "Отписване"
-
 msgid "Download mode"
 msgstr ""
 
@@ -25962,6 +26135,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr ""
+
+msgid "Logout"
+msgstr "Отписване"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -25980,6 +26159,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30155,7 +30390,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30179,6 +30414,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
@@ -33553,6 +33794,3 @@ msgstr ""
 
 msgid "Drive a race car on this layer"
 msgstr ""
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/bn.po b/i18n/po/bn.po
index 3ea61a8..7e02280 100644
--- a/i18n/po/bn.po
+++ b/i18n/po/bn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-04-03 09:24+0000\n"
 "Last-Translator: Md Alamgir <alamgircu at hotmail.com>\n"
 "Language-Team: Bengali <bn at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:39+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:39+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: bn\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3258,9 +3258,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10819,7 +10837,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10838,6 +10864,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10948,6 +10977,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14888,6 +14933,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15155,9 +15203,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15173,6 +15218,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15208,10 +15277,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15362,7 +15427,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15377,6 +15445,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15911,6 +15985,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20544,6 +20621,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20589,6 +20669,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22513,6 +22596,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22868,6 +22966,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22901,9 +23002,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24366,6 +24464,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25476,18 +25667,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25650,19 +25829,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25683,6 +25862,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29810,7 +30045,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29834,6 +30069,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/br.po b/i18n/po/br.po
index 4c0440d..b5c4733 100644
--- a/i18n/po/br.po
+++ b/i18n/po/br.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-10-17 12:11+0000\n"
 "Last-Translator: Fulup <Unknown>\n"
 "Language-Team: Breton <br at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:40+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:41+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: br\n"
 
 msgid "License"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/bs.po b/i18n/po/bs.po
index bb6763a..d75d755 100644
--- a/i18n/po/bs.po
+++ b/i18n/po/bs.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2012-11-03 23:07+0000\n"
 "Last-Translator: Alen Mahovic <eyeofthestorm at windowslive.com>\n"
 "Language-Team: Bosnian <bs at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:39+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:40+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: bs\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3258,9 +3258,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10819,7 +10837,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10838,6 +10864,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10948,6 +10977,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14888,6 +14933,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15155,9 +15203,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15173,6 +15218,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15208,10 +15277,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15362,7 +15427,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15377,6 +15445,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15911,6 +15985,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20544,6 +20621,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20589,6 +20669,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22513,6 +22596,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22868,6 +22966,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22901,9 +23002,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24366,6 +24464,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25476,18 +25667,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25650,19 +25829,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25683,6 +25862,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29810,7 +30045,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29834,6 +30069,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ca.po b/i18n/po/ca.po
index 52218cf..6035d1d 100644
--- a/i18n/po/ca.po
+++ b/i18n/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-11-15 23:48+0000\n"
 "Last-Translator: Don-vip <Unknown>\n"
 "Language-Team: el_libre - - www.catmidia.cat\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:41+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:42+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ca\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3568,9 +3568,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Actualitza les entrades predeterminades"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "No s''ha trobat la projecció ''{0}'', el favorit ''{1}'' no pot ser "
@@ -11956,7 +11974,15 @@ msgid "Foot"
 msgstr "Peu"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11975,6 +12001,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Crear marcadors en llegir un fitxer GPX"
 
@@ -12103,6 +12132,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Acoloriment de recorreguts i punts"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Acoloreix els punts i els segments del track segons els límits de les dades."
@@ -16567,6 +16612,9 @@ msgstr "URBIS 2015 imatgeria aèria"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW (Valònia) PICC imatgeria digital"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW (Valònia) 2015 imatgeria aèria"
 
@@ -16837,9 +16885,6 @@ msgstr "NRW-Atles: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16855,6 +16900,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16890,10 +16959,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Imatgeria de drones (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Imatgeria de drones 2014 (Haiti)"
 
@@ -17044,7 +17109,10 @@ msgstr "1.cikla ortofotokarte - Letònia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lituània)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -17059,6 +17127,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta del Níger Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Ortofoto Svalbard 2009/2011 EPSG:25833"
 
@@ -17593,6 +17667,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -22399,6 +22476,9 @@ msgstr "Notes"
 msgid "Telephone cards"
 msgstr "Targetes telefòniques"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Accés a Internet"
 
@@ -22444,6 +22524,9 @@ msgstr "Mostra la pressió atmosfèrica"
 msgid "Shows humidity"
 msgstr "Mostra la humitat"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Contenidor de reciclatge"
 
@@ -24370,6 +24453,21 @@ msgstr "Llocs Històrics"
 msgid "Castle"
 msgstr "Castell"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Jaciment arqueològic"
 
@@ -24725,6 +24823,9 @@ msgstr "Cambres d''aire per bicicletes"
 msgid "cigarettes"
 msgstr "tabac"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condons"
 
@@ -24758,9 +24859,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotos"
 
-msgid "public_transport_plans"
-msgstr "plànols_transport_public"
-
 msgid "public_transport_tickets"
 msgstr "bitllets_transport_public"
 
@@ -26244,6 +26342,99 @@ msgstr "Càmping"
 msgid "Test"
 msgstr "Prova"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -27415,18 +27606,6 @@ msgstr "Amplia la imatge seleccionada"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Amplia la imatge seleccionada de Mapillary"
 
-msgid "View in website"
-msgstr "Veure-ho al lloc web"
-
-msgid "Copy key"
-msgstr "Copia clau"
-
-msgid "Copy key tag"
-msgstr "Copia l''etiqueta de la clau"
-
-msgid "Edit on website"
-msgstr "Modifica al lloc web"
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27589,12 +27768,6 @@ msgstr "Mou a la ubicació de les fotografies amb els botons següent/previ"
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Inici de sessió"
-
-msgid "Logout"
-msgstr "Tanca la sessió"
-
 msgid "Download mode"
 msgstr "Mode de descàrrega"
 
@@ -27604,6 +27777,12 @@ msgstr "Esteu connectat com ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Ara no esteu connectat."
 
+msgid "Login"
+msgstr "Inici de sessió"
+
+msgid "Logout"
+msgstr "Tanca la sessió"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Aneu a la configuració i inicieu una sessió de Mapillary abans de fer la "
@@ -27624,6 +27803,62 @@ msgstr "Segueix la imatge seleccionada"
 msgid "Go forward"
 msgstr "Vés endavant"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Suprimida {0} imatge"
@@ -32178,8 +32413,8 @@ msgstr "Ha fallat la càrrega del fitxer: {0}"
 msgid "Problem occurred"
 msgstr "Ha hagut un problema"
 
-msgid "Load World File Calibration..."
-msgstr "Carrega l''arxiu de calibració mundial"
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Carrega les dades de calibració d''un fitxer en format world"
@@ -32202,6 +32437,12 @@ msgstr "Desa les dades de calibratge a un fitxer"
 msgid "Saving file failed: {0}"
 msgstr "No s''ha pogut desar el fitxer : {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nova capa de fotografia del portaretalls"
 
@@ -35870,6 +36111,3 @@ msgstr "Anar en cotxe"
 
 msgid "Drive a race car on this layer"
 msgstr "Conduir un cotxe de carreres sobre aquesta capa"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/ca at valencia.po b/i18n/po/ca at valencia.po
index 22b5683..a5496ea 100644
--- a/i18n/po/ca at valencia.po
+++ b/i18n/po/ca at valencia.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-04-25 18:52+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: el_libre - - www.catmidia.cat\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:25+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:27+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ca at valencia\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3527,9 +3527,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "No s''ha trobat la projecció ''{0}'', el favorit ''{1}'' no pot ser "
@@ -11790,7 +11808,15 @@ msgid "Foot"
 msgstr "Peu"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11809,6 +11835,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Crear marcadors en llegir un fitxer GPX"
 
@@ -11936,6 +11965,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Acoloriment de recorreguts i punts"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Acoloreix els punts i els segments del track segons els límits de les dades."
@@ -16357,6 +16402,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16624,9 +16672,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16642,6 +16687,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16677,10 +16746,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16831,7 +16896,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16846,6 +16914,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17380,6 +17454,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -22124,6 +22201,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Targetes telefòniques"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -22169,6 +22249,9 @@ msgstr "Mostra la pressió atmosfèrica"
 msgid "Shows humidity"
 msgstr "Mostra la humitat"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -24093,6 +24176,21 @@ msgstr "Llocs Històrics"
 msgid "Castle"
 msgstr "Castell"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Jaciment arqueològic"
 
@@ -24448,6 +24546,9 @@ msgstr "Cambres d''aire per bicicletes"
 msgid "cigarettes"
 msgstr "tabac"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condons"
 
@@ -24481,9 +24582,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotos"
 
-msgid "public_transport_plans"
-msgstr "plànols_transport_public"
-
 msgid "public_transport_tickets"
 msgstr "bitllets_transport_public"
 
@@ -25946,6 +26044,99 @@ msgstr "Càmping"
 msgid "Test"
 msgstr "Prova"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -27085,18 +27276,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27259,12 +27438,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Inici de sessió"
-
-msgid "Logout"
-msgstr "Tanca la sessió"
-
 msgid "Download mode"
 msgstr ""
 
@@ -27274,6 +27447,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr "Inici de sessió"
+
+msgid "Logout"
+msgstr "Tanca la sessió"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -27292,6 +27471,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31813,8 +32048,8 @@ msgstr "Ha fallat la càrrega del fitxer: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
-msgstr "Carrega l''arxiu de calibració mundial"
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Carrega les dades de calibració d''un fitxer en format world"
@@ -31837,6 +32072,12 @@ msgstr "Guarda les dades de calibratge a un fitxer"
 msgid "Saving file failed: {0}"
 msgstr "No s''ha pogut guardar el fitxer : {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nova capa de fotografia del portaretalls"
 
diff --git a/i18n/po/cs.po b/i18n/po/cs.po
index 7e502e6..83f817e 100644
--- a/i18n/po/cs.po
+++ b/i18n/po/cs.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-26 14:43+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-16 06:25+0000\n"
 "Last-Translator: Dalibor Jelínek <launchpad.net at dalibor.cz>\n"
 "Language-Team: Czech <kde-i18n-doc at kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:42+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:43+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: cs\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3570,9 +3570,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "V"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Aktualizovat výchozí položky"
 
+msgid "Update imagery ''{0}''"
+msgstr "Aktualizovat letecké snímky ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Zahodit staré letecké snímky ''{0}''"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projekce ''{0}'' nenalezena, záložku ''{1}'' nelze použít"
 
@@ -11851,8 +11869,16 @@ msgid "Foot"
 msgstr "Pěší"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Uživatel"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11870,6 +11896,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Heat"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Vytvořit časové značky v průběhu čtení GPX"
 
@@ -11995,6 +12024,22 @@ msgstr "Vybrat barevné schéma heat mapy."
 msgid "Track and Point Coloring"
 msgstr "Barvy tras a bodů"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Měnit barvu bodů a částí trasy v závislosti na velikosti hodnot dat."
 
@@ -16421,6 +16466,9 @@ msgstr "URBIS 2015 aerial imagery"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aerial imagery"
 
@@ -16692,9 +16740,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16713,6 +16758,30 @@ msgstr ""
 "imagico.de OSM images for mapping: Northern German west coast tidalflats "
 "(infrared)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de OSM images for mapping: Qasigiannguit"
 
@@ -16753,10 +16822,6 @@ msgstr "imagico.de OSM images for mapping: Northern Greenland ASTER"
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr "Dočasně nedostupné asi do ledna 2017 kvůli změně serveru."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -16907,8 +16972,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Railway"
@@ -16922,6 +16990,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -17460,6 +17534,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS"
 
@@ -21124,7 +21201,7 @@ msgid "Free bicycle pump"
 msgstr "Pumpa pro kola zdarma"
 
 msgid "Tools for do-it-yourself repair (may be a bike co-operative)"
-msgstr "Nástroje pro opravu svépomocí (může to být cyklistické družstvo)"
+msgstr "Nástroje pro opravu svépomocí"
 
 msgid "Bicycles are washed (for a fee)"
 msgstr "Mytí jízdních kol (za poplatek)"
@@ -22247,6 +22324,9 @@ msgstr "Bankovky"
 msgid "Telephone cards"
 msgstr "Telefonní karty"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Přístup k Internetu"
 
@@ -22292,6 +22372,9 @@ msgstr "Zobrazen barometrický tlak"
 msgid "Shows humidity"
 msgstr "Zobrazena vlhkost vzduchu"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Recyklační kontejner"
 
@@ -24218,6 +24301,21 @@ msgstr "Historická místa"
 msgid "Castle"
 msgstr "Zámek/Hrad"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Archeologické naleziště"
 
@@ -24568,11 +24666,14 @@ msgid "animal_feed"
 msgstr "krmení pro zvířata"
 
 msgid "bicycle_tube"
-msgstr "duše na bicykle"
+msgstr "duše pro jízdní kola"
 
 msgid "cigarettes"
 msgstr "cigarety"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomy"
 
@@ -24606,11 +24707,8 @@ msgstr "posílání balíčků"
 msgid "photos"
 msgstr "fotografie"
 
-msgid "public_transport_plans"
-msgstr "plány městské hromadné dopravy"
-
 msgid "public_transport_tickets"
-msgstr "lístky na městskou hromadnou dopravu"
+msgstr "lístky na hromadnou dopravu"
 
 msgid "SIM_cards"
 msgstr "SIM karty"
@@ -25424,7 +25522,7 @@ msgid "Construction Area"
 msgstr "Stavební území"
 
 msgid "Brownfield"
-msgstr "Stará zátěž, městské ruiny (Brownfield)"
+msgstr "Nedostatečně využívané zanedbané území (brownfield)"
 
 msgid "Greenfield"
 msgstr "Zastavitelné území (Greenfield)"
@@ -26089,6 +26187,99 @@ msgstr "Tábořiště"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Sudé číslo domu v interpolaci lichých adres."
 
@@ -27273,18 +27464,6 @@ msgstr "Zvětšit na zvolený obrázek"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zvětšit na aktuálně zvolený obrázek Mapillary"
 
-msgid "View in website"
-msgstr "Zobrazit na webové stránce"
-
-msgid "Copy key"
-msgstr "Kopírovat klíč"
-
-msgid "Copy key tag"
-msgstr "Kopírovat hodnotu klíče"
-
-msgid "Edit on website"
-msgstr "Upravit na webu"
-
 msgid "Current Mapillary changeset"
 msgstr "Aktuální sada změn Mapillary"
 
@@ -27447,12 +27626,6 @@ msgstr "Přesunout se na umístění obrázku tlačítky další/předchozí"
 msgid "Preview images when hovering its icon"
 msgstr "Nahlédnout obrázek při ukázání na jeho ikonu"
 
-msgid "Login"
-msgstr "Přihlásit se"
-
-msgid "Logout"
-msgstr "Odhlásit se"
-
 msgid "Download mode"
 msgstr "Režim stahování"
 
@@ -27462,6 +27635,12 @@ msgstr "Jste přihlášen jako ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Momentálně nejste přihlášen."
 
+msgid "Login"
+msgstr "Přihlásit se"
+
+msgid "Logout"
+msgstr "Odhlásit se"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Jděte do nastavení a před nahráváním se přihlašte na Mapillary."
 
@@ -27480,6 +27659,69 @@ msgstr "Následovat vybraný obrázek"
 msgid "Go forward"
 msgstr "Vpřed"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr "Značka s klíčem <i>{0}</i> je již na vybraném objektu OSM přítomna."
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"Opravdu chcete nahradit současnou hodnotu <i>{0}</i> novou hodnotou "
+"<i>{1}</i>?"
+
+msgid "Tag conflict"
+msgstr "Konflikt značek"
+
+msgid "Key copied to clipboard"
+msgstr "Klíč zkopírován do schránky"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"Doplněk Mapillary nyní používá zvláštní panel pro zobrazení dodatečných "
+"informací (jako třeba klíče image) a akcí s aktuálně zvoleným obrázkem z "
+"Mapillary (jako třeba zobrazení v prohlížeči)."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Lze ho aktivovat kliknutím levým tlačítkem na spodek této zprávy nebo "
+"tlačítkem na panelu nástrojů vlevo, které má stejnou ikonu."
+
+msgid "I got it, close this."
+msgstr "Rozumím, zavřít."
+
+msgid "Image info"
+msgstr "Informace o obrázku"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr "Zobrazí podrobné informace o aktuálně zvoleném obrázku Mapillary."
+
+msgid "Add Mapillary tag"
+msgstr "Přidat značku Mapillary"
+
+msgid "Image actions"
+msgstr "Akce s obrázkem"
+
+msgid "Image key"
+msgstr "Klíč obrázku"
+
+msgid "Sequence key"
+msgstr "Klíč sekvence"
+
+msgid "image has no key"
+msgstr "obrázek nemá žádný klíč"
+
+msgid "sequence has no key"
+msgstr "sekvence nemá žádný klíč"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Nemohu otevřít URL {0} v prohlížeči"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Smazán {0} obrázek"
@@ -31981,8 +32223,8 @@ msgstr "Nahrávání souboru selhalo: {0}"
 msgid "Problem occurred"
 msgstr "Nastal problém"
 
-msgid "Load World File Calibration..."
-msgstr "Načíst kalibraci World File..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Načíst kalibrační data se souboru World File"
@@ -32005,6 +32247,12 @@ msgstr "Kalibrační údaje uložené do souboru"
 msgid "Saving file failed: {0}"
 msgstr "Uložení souboru selhalo: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nová vrstva s obrázkem ze schránky"
 
@@ -35640,6 +35888,3 @@ msgstr "Vyjet"
 
 msgid "Drive a race car on this layer"
 msgstr "Řídit závodní speciál na této vrstvě"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/cy.po b/i18n/po/cy.po
index 0f736f4..266fedf 100644
--- a/i18n/po/cy.po
+++ b/i18n/po/cy.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-07-17 21:45+0000\n"
 "Last-Translator: iggy23 <Unknown>\n"
 "Language-Team: Welsh <cy at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
 "2 : 3;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:19+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:21+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: cy\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3256,9 +3256,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10817,7 +10835,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10836,6 +10862,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10946,6 +10975,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14886,6 +14931,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15153,9 +15201,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15171,6 +15216,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15206,10 +15275,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15360,7 +15425,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15375,6 +15443,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15909,6 +15983,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20542,6 +20619,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20587,6 +20667,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22511,6 +22594,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22866,6 +22964,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22899,9 +23000,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24364,6 +24462,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25474,18 +25665,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25648,19 +25827,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25681,6 +25860,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29808,7 +30043,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29832,6 +30067,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/da.po b/i18n/po/da.po
index 7ec89f3..06546e6 100644
--- a/i18n/po/da.po
+++ b/i18n/po/da.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2017-01-21 11:14+0000\n"
 "Last-Translator: Jørn <joern.map at gmail.com>\n"
 "Language-Team: Dansk <kde-i18n-doc at kde.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:43+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:44+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: da_DK\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
@@ -3515,9 +3515,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "Ø"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Opdater standard emne"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Projektionen \"{0}\" blev ikke fundet, bogmærket \"{1}\" er ikke brugbart"
@@ -11730,8 +11748,16 @@ msgid "Foot"
 msgstr "Gående"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Bruger"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11749,6 +11775,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Varme"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Opret markører ved indlæsning af GPX"
 
@@ -11875,6 +11904,22 @@ msgstr "Vælger farveskema for heat map."
 msgid "Track and Point Coloring"
 msgstr "Farvelægning af spor og punkter"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Farvelægger punkter og sporsegmenter efter databegrænsninger."
 
@@ -16251,6 +16296,9 @@ msgstr "URBIS 2015 aerial imagery"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aerial imagery"
 
@@ -16522,9 +16570,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16543,6 +16588,30 @@ msgstr ""
 "imagico.de OSM images for mapping: Northern German west coast tidalflats "
 "(infrared)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de OSM images for mapping: Qasigiannguit"
 
@@ -16583,12 +16652,6 @@ msgstr "imagico.de OSM images for mapping: Northern Greenland ASTER"
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-"Midlertidig utilgængelig indtil formentlig januar 2017 på grund af server "
-"udskiftning."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -16739,8 +16802,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Railway"
@@ -16754,6 +16820,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -17292,6 +17364,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -22096,6 +22171,9 @@ msgstr "Sedler"
 msgid "Telephone cards"
 msgstr "Telefonkort"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Internet adgang"
 
@@ -22141,6 +22219,9 @@ msgstr "Viser barometrisk tryk"
 msgid "Shows humidity"
 msgstr "Viser fugtighed"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Genbrugscontainer"
 
@@ -24067,6 +24148,21 @@ msgstr "Historiske steder"
 msgid "Castle"
 msgstr "Borg"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arkæologisk sted"
 
@@ -24422,6 +24518,9 @@ msgstr "cykelslange"
 msgid "cigarettes"
 msgstr "cigaretter"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomer"
 
@@ -24455,9 +24554,6 @@ msgstr "aflevere pakker"
 msgid "photos"
 msgstr "billeder"
 
-msgid "public_transport_plans"
-msgstr "køreplaner"
-
 msgid "public_transport_tickets"
 msgstr "transportbilletter"
 
@@ -25941,6 +26037,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Lige husnummer i ulige adresse interpolation."
 
@@ -27116,18 +27305,6 @@ msgstr "Zoom til valgt billede"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zoom til det aktuelt valgt Mapillary billede"
 
-msgid "View in website"
-msgstr "Se på hjemmesiden"
-
-msgid "Copy key"
-msgstr "Kopier nøgle"
-
-msgid "Copy key tag"
-msgstr "Kopier nøgle tag"
-
-msgid "Edit on website"
-msgstr "Rediger på hjemmesiden"
-
 msgid "Current Mapillary changeset"
 msgstr "Aktuelt Mapillary rettesæt"
 
@@ -27290,12 +27467,6 @@ msgstr "Flyt til billedets placering med næste/forrige knapper"
 msgid "Preview images when hovering its icon"
 msgstr "Forhåndsvis billeder når markør er over dets ikon"
 
-msgid "Login"
-msgstr "Log ind"
-
-msgid "Logout"
-msgstr "Log ud"
-
 msgid "Download mode"
 msgstr "Download tilstand"
 
@@ -27305,6 +27476,12 @@ msgstr "Du er logget ind som ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Du er i øjeblikket ikke logget ind."
 
+msgid "Login"
+msgstr "Log ind"
+
+msgid "Logout"
+msgstr "Log ud"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Gå til indstilling og log på Mapillary før upload."
 
@@ -27323,6 +27500,62 @@ msgstr "Følg valgt billede"
 msgid "Go forward"
 msgstr "Gå frem"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Slettede {0} billede"
@@ -31786,8 +32019,8 @@ msgstr "Indlæsning af filen fejlede: {0}"
 msgid "Problem occurred"
 msgstr "Problem opstået"
 
-msgid "Load World File Calibration..."
-msgstr "Indlæs verdens kalibrerings fil..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Indlæser kalibrerings data fra en verdens fil"
@@ -31810,6 +32043,12 @@ msgstr "Gem kalibrerings data til en fil"
 msgid "Saving file failed: {0}"
 msgstr "Kunne ikke gemme fil: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nyt billedlag fra udklipsholder"
 
@@ -35415,6 +35654,3 @@ msgstr "Kør afsted"
 
 msgid "Drive a race car on this layer"
 msgstr "Kør en racerbil på dette lag"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/de.po b/i18n/po/de.po
index 8a8159a..8f4378d 100644
--- a/i18n/po/de.po
+++ b/i18n/po/de.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-27 08:23+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-25 19:22+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: JOSM\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:48+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:50+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: de\n"
 "X-Poedit-SearchPath-0: .\n"
 "X-Poedit-Basepath: /home/simon/src/josm.all/i18n\n"
@@ -487,7 +487,7 @@ msgstr ""
 "* Drei Punkte."
 
 msgid "Download from OSM..."
-msgstr "Von OSM herunterladen…"
+msgstr "Von OSM herunterladen …"
 
 msgid "Download map data from the OSM server."
 msgstr "Kartendaten vom OSM-Server herunterladen."
@@ -512,13 +512,13 @@ msgid "Download map data from the OSM server in current view"
 msgstr "Kartendaten vom OSM-Server in aktueller Ansicht herunterladen"
 
 msgid "Download object..."
-msgstr "Objekt herunterladen…"
+msgstr "Objekt herunterladen …"
 
 msgid "Download OSM object by ID."
 msgstr "OSM-Objekt mittels Kennung herunterladen."
 
 msgid "Download parent ways/relations..."
-msgstr "Elternrelationen, -linien herunterladen…"
+msgstr "Elternrelationen, -linien herunterladen …"
 
 msgid "Download objects referring to one of the selected objects"
 msgstr "Objekte mit Bezug auf eins der ausgewählten Objekte herunterladen"
@@ -3614,9 +3614,29 @@ msgctxt "compass"
 msgid "E"
 msgstr "O"
 
+msgid "Date of imagery: {0}"
+msgstr "Datum des Hintergrundbildes: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"In anderen Editoren ist dieses Hintergrundbild als das beste in dieser "
+"Region  gekennzeichnet."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} Spiegelserver {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} Spiegelserver"
+
 msgid "Update default entries"
 msgstr "Standardeinträge aktualisieren"
 
+msgid "Update imagery ''{0}''"
+msgstr "Hintergrundbild aktualisieren: ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Altes Hintergrundbild löschen: ''{0}''"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Projektion ''{0}'' nicht gefunden, Lesezeichen ''{1}'' kann nicht verwendet "
@@ -9884,8 +9904,8 @@ msgstr ""
 
 msgid "Uploading {0} object..."
 msgid_plural "Uploading {0} objects..."
-msgstr[0] "{0} Objekt wird hochgeladen..."
-msgstr[1] "{0} Objekte werden hochgeladen…"
+msgstr[0] "{0} Objekt wird hochgeladen …"
+msgstr[1] "{0} Objekte werden hochgeladen …"
 
 msgid ""
 "Ignoring caught exception because upload is canceled. Exception is: {0}"
@@ -10880,7 +10900,7 @@ msgid "Select the map painting styles"
 msgstr "Wählen Sie den Kartenstil"
 
 msgid "loading style ''{0}''..."
-msgstr "Stil ''{0}'' wird geladen…"
+msgstr "Stil ''{0}'' wird geladen …"
 
 msgid ""
 "There was an error when loading this style. Select ''Info'' from the right "
@@ -12058,8 +12078,16 @@ msgid "Foot"
 msgstr "Zu Fuß"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Nutzer"
+msgid "User Normal"
+msgstr "Nutzer normal"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Nutzer hell"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Ampel"
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -12077,6 +12105,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Hitze"
 
+msgid "Use points instead of lines for heat map"
+msgstr "Punkte anstatt von Linien für Heatmap verwenden"
+
 msgid "Create markers when reading GPX"
 msgstr "Beim Einlesen von GPX Markierungen erzeugen"
 
@@ -12210,6 +12241,24 @@ msgstr "Wählt das Farbschema der Heatmap aus."
 msgid "Track and Point Coloring"
 msgstr "Färbung von Spuren und Punkten"
 
+msgid "Overlay gain adjustment"
+msgstr "Anpassung Überlagerungsintensität"
+
+msgid "Lower limit of visibility"
+msgstr "Untere Grenze der Sichtbarkeit"
+
+msgid "Adjust the gain of overlay blending."
+msgstr "Intensität der Überlagerungs-Überblendung anpassen."
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Zeichne alle GPX-Spuren, die diesen Schwellwert überschreiten."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"Renderer verwendet Punkte mit simuliertem Positionsfehler anstelle von "
+"Linien. "
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Färbung der Punkte und Spurabschnitte mittels der Datengrenzwerte anpassen."
@@ -12383,7 +12432,7 @@ msgid "4. Verify generated WMS URL"
 msgstr "4. Generierte WMS-URL überprüfen"
 
 msgid "5. Enter name for this layer"
-msgstr "5. Diese Ebene benennen"
+msgstr "Name für diese Ebene eingeben"
 
 msgid "Show Bounds"
 msgstr "Bereichsgrenzen anzeigen"
@@ -12395,7 +12444,7 @@ msgid "1. Enter getCapabilities URL"
 msgstr "1. URL für getCapabilities eingeben"
 
 msgid "2. Enter name for this layer"
-msgstr "2. Geben Sie den Namen für diese Ebene ein"
+msgstr "Name für diese Ebene eingeben"
 
 msgid "{0} cache, total cache size: {1} bytes"
 msgstr "{0} Cache, Gesamte Cachegröße: {1} Bytes"
@@ -13966,10 +14015,10 @@ msgid "All Formats"
 msgstr "Alle Formate"
 
 msgid "Downloading points {0} to {1}..."
-msgstr "Punkte {0} bis {1} werden heruntergeladen…"
+msgstr "Punkte {0} bis {1} werden heruntergeladen …"
 
 msgid "Contacting OSM Server..."
-msgstr "Kontaktaufnahme mit OSM-Server…"
+msgstr "Kontaktaufnahme mit OSM-Server …"
 
 msgid "Downloading notes"
 msgstr "OSM-Notizen herunterladen"
@@ -14249,7 +14298,7 @@ msgstr ""
 "individuellen Anfrage für jedes Objekt."
 
 msgid "Downloading OSM data..."
-msgstr "OSM-Daten werden heruntergeladen…"
+msgstr "OSM-Daten werden heruntergeladen …"
 
 msgid "Fetching node with id {0} from ''{1}''"
 msgstr "Knotenpunkt mit der Kennung {0} von \"{1}\" wird abgerufen"
@@ -14604,7 +14653,7 @@ msgid "Parsing OSM data..."
 msgstr "OSM-Daten einlesen …"
 
 msgid "Preparing data set..."
-msgstr "Datensatz wird vorbereitet…"
+msgstr "Datensatz wird vorbereitet …"
 
 msgid "Line {0} column {1}: "
 msgstr "Zeile {0} Spalte {1}: "
@@ -14697,8 +14746,8 @@ msgstr "Hochladen in Blöcken wird gestartet …"
 
 msgid "({0}/{1}) Uploading {2} object..."
 msgid_plural "({0}/{1}) Uploading {2} objects..."
-msgstr[0] "({0}/{1}) {2} Objekt wird hochgeladen…"
-msgstr[1] "({0}/{1}) {2} Objekte werden hochgeladen…"
+msgstr[0] "({0}/{1}) {2} Objekt wird hochgeladen …"
+msgstr[1] "({0}/{1}) {2} Objekte werden hochgeladen …"
 
 msgid "Uploading data ..."
 msgstr "Daten werden hochgeladen …"
@@ -14710,7 +14759,7 @@ msgid "Failed to evaluate {0}"
 msgstr "Fehler beim Auswerten von {0}"
 
 msgid "Downloading data..."
-msgstr "Daten werden heruntergeladen…"
+msgstr "Daten werden heruntergeladen …"
 
 msgid "WMS Files (*.wms)"
 msgstr "WMS-Dateien (*.wms)"
@@ -15230,7 +15279,7 @@ msgid "Loading plugins ..."
 msgstr "Erweiterung werden geladen …"
 
 msgid "Checking plugin preconditions..."
-msgstr "Erweiterungsanforderungen werden geprüft…"
+msgstr "Erweiterungsanforderungen werden geprüft …"
 
 msgid "Loading plugin ''{0}''..."
 msgstr "Erweiterung {0} wird geladen …"
@@ -15400,7 +15449,7 @@ msgstr "Lokale Erweiterungsinformationen werden eingelesen..."
 
 msgid "Processing plugin site cache files..."
 msgstr ""
-"Zwischengespeicherte Dateien der Erweiterungsquellen werden verarbeitet..."
+"Zwischengespeicherte Dateien der Erweiterungsquellen werden verarbeitet …"
 
 msgid "Processing file ''{0}''"
 msgstr "Datei »{0}« wird verarbeitet …"
@@ -16763,14 +16812,17 @@ msgstr "URBIS 2015 Luftbilder"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW (Wallonie) PICC-Zahlenbild"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW (Wallonie) neueste Luftbilder"
+
 msgid "SPW(allonie) 2015 aerial imagery"
-msgstr "SPW(allonie) 2015 Luftaufnahmen"
+msgstr "SPW (Wallonie) 2015 Luftbilder"
 
 msgid "SPW(allonie) 2012-2013 aerial imagery"
-msgstr "SPW(allonie) 2012-2013 Luftaufnahmen"
+msgstr "SPW (Wallonie) 2012-2013 Luftbilder"
 
 msgid "SPW(allonie) 2009-2010 aerial imagery"
-msgstr "SPW(allonie) 2009-2010 Luftaufnahmen"
+msgstr "SPW (Wallonie) 2009-2010 Luftbilder"
 
 msgid "TEC bus lines (2014)"
 msgstr "TEC-Buslinien (2014)"
@@ -17036,9 +17088,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topografische Karte 1:10000"
 
@@ -17058,6 +17107,30 @@ msgstr ""
 "imagico.de OSM Bilder für die Kartierung: Nördliches deutsches Westküsten-"
 "Watt (Infrarot)"
 
+msgid "Saxony latest aerial imagery"
+msgstr "Sachsen neueste Luftbilder"
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr "Sachsen neueste Luftbilder Infrarot"
+
+msgid "Saxony aerial imagery 2005"
+msgstr "Sachsen Luftbilder 2005"
+
+msgid "Saxony WebAtlasSN"
+msgstr "Sachsen WebAtlasSN"
+
+msgid "Saxony topographic map"
+msgstr "Sachsen topografische Karte"
+
+msgid "Saxony digital terrain model"
+msgstr "Sachsen digitales Geländemodell"
+
+msgid "Mainz all aerial imageries"
+msgstr "Mainz alle Luftbilder"
+
+msgid "Mainz latest aerial imagery"
+msgstr "Mainz aktuelles Luftbild"
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de OSM Bilder für die Kartierung: Qasigiannguit"
 
@@ -17103,11 +17176,6 @@ msgstr "imagico.de OSM Bilder für die Kartierung: Nördliches Grönland ASTER"
 msgid "Drone Imagery (Haiti)"
 msgstr "Dronenbilder (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-"Bis vermutlich Januar 2017 zeitweise nicht verfügbar wegen Serverumzug."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Dronenbilder 2014 (Haiti)"
 
@@ -17258,8 +17326,11 @@ msgstr "1. Version Orthophoto - Litauen"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Litauen)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr "geoportail.lu alle Ebenen"
+
+msgid "geoportail.lu ortho 2016"
+msgstr "geoportail.lu Orthophoto 2016"
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Railway"
@@ -17273,6 +17344,12 @@ msgstr "Luxemburg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Nigerdelta Okt 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr "PDOK Luftbild 25cm (WMS)"
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr "PDOK Luftbild 25cm (WMTS)"
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Spitzbergen - Orthofoto 2009/2011 EPSG:25833"
 
@@ -17816,6 +17893,9 @@ msgstr "OS Stadtpläne, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Stadtpläne, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Stadtpläne, Edinburgh 1940er-1960er (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Stadtpläne, Elgin 1868 (NLS)"
 
@@ -22649,6 +22729,9 @@ msgstr "Geldscheine"
 msgid "Telephone cards"
 msgstr "Telefonkarten"
 
+msgid "Internet Cafe"
+msgstr "Internetcafé"
+
 msgid "Internet Access"
 msgstr "Internetzugang"
 
@@ -22694,6 +22777,9 @@ msgstr "Luftdruckanzeige"
 msgid "Shows humidity"
 msgstr "Feuchtigkeitsanzeige"
 
+msgid "Photo booth"
+msgstr "Fotoautomat"
+
 msgid "Recycling Container"
 msgstr "Recycling-Container"
 
@@ -24620,6 +24706,21 @@ msgstr "Historische Stätten"
 msgid "Castle"
 msgstr "Burg/Schloss"
 
+msgid "stately"
+msgstr "Schloss"
+
+msgid "defensive"
+msgstr "Burg"
+
+msgid "fortress"
+msgstr "Festung"
+
+msgid "manor"
+msgstr "Herrenhaus"
+
+msgid "palace"
+msgstr "Palast"
+
 msgid "Archaeological Site"
 msgstr "Ausgrabungsstelle"
 
@@ -24975,6 +25076,9 @@ msgstr "Fahrradschlauch"
 msgid "cigarettes"
 msgstr "Zigaretten"
 
+msgid "coffee"
+msgstr "Kaffee"
+
 msgid "condoms"
 msgstr "Kondome"
 
@@ -25008,9 +25112,6 @@ msgstr "Pakete abgeben"
 msgid "photos"
 msgstr "Fotos"
 
-msgid "public_transport_plans"
-msgstr "Pläne des öffentlichen Nahverkehrs"
-
 msgid "public_transport_tickets"
 msgstr "Fahrscheine"
 
@@ -26501,6 +26602,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr "Internetseite anzeigen"
+
+msgid "View URL"
+msgstr "URL anzeigen"
+
+msgid "Send Email"
+msgstr "E-Mail senden"
+
+msgid "View image"
+msgstr "Bild anzeigen"
+
+msgid "View %name% article"
+msgstr "Artikel %name% anzeigen"
+
+msgid "View Wikidata page"
+msgstr "Wikidata-Seite anzeigen"
+
+msgid "View UNESCO sheet"
+msgstr "UNESCO-Daten anzeigen"
+
+msgid "View %name% image"
+msgstr "Bild %name% anzeigen"
+
+msgid "View %name% sheet of river"
+msgstr "Fluß-Daten für %name% anzeigen"
+
+msgid "View %name% municipality sheet"
+msgstr "Gemeinde-Daten für %name% anzeigen"
+
+msgid "View %name% sheet on osm.fr"
+msgstr "Daten auf osm.fr für %name% anzeigen"
+
+msgid "View %name% map of municipalities"
+msgstr "Gemeindekarte %name% anzeigen"
+
+msgid "View %name% list of municipalities"
+msgstr "Gemeindeliste %name% anzeigen"
+
+msgid "View %name% map of cantons"
+msgstr "Kantonskarte %name% anzeigen"
+
+msgid "View %name% list of cantons"
+msgstr "Kantonsliste %name% anzeigen"
+
+msgid "View %name% map of arrondissements"
+msgstr "Arrondissements-Karte %name% anzeigen"
+
+msgid "View %name% list of arrondissements"
+msgstr "Arrondissements-Liste %name% anzeigen"
+
+msgid "View %name% map of departments"
+msgstr "Gebietskarte %name% anzeigen"
+
+msgid "View %name% list of departments"
+msgstr "Gebietsliste %name% anzeigen"
+
+msgid "View %name% map of regions"
+msgstr "Regionenkarte %name% anzeigen"
+
+msgid "View %name% list of regions"
+msgstr "Regionenliste %name% anzeigen"
+
+msgid "View %name% sheet of church"
+msgstr "Kirchendaten für %name% anzeigen"
+
+msgid "View Mérimée sheet of monument"
+msgstr "Mérimée-Seite des Denkmales anzeigen"
+
+msgid "View Mérimée list for this municipality"
+msgstr "Mérimée-Liste dieses Stadtbezirkes anzeigen"
+
+msgid "View %name% sheet of geodesic site"
+msgstr "Daten für geodätischen Ort %name% anzeigen"
+
+msgid "View UAI sheet of school/college"
+msgstr "UAI-Seite von Schule/Hochschule anzeigen"
+
+msgid "View %name% sheet of hospital/home"
+msgstr "Krankenhaus/Heim-Daten für %name% anzeigen"
+
+msgid "View explanation of %name% code"
+msgstr "Erklärung von %name%-Wert anzeigen"
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr "Kennkarte (PDF) für diese Einrichtung abrufen"
+
+msgid "View %name% page of this post office"
+msgstr "%name%-Seite dieses Postamtes anzeigen"
+
+msgid "View %name% sheet of memorial"
+msgstr "Denkmaldaten für %name% anzeigen"
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Gerade Hausnummer in einer ungeraden Adressinterpolation."
 
@@ -27041,7 +27235,7 @@ msgstr ""
 "Fehler: {0}"
 
 msgid "Processing..."
-msgstr "Verarbeitung…"
+msgstr "Verarbeitung …"
 
 msgid "Aborted"
 msgstr "Abgebrochen"
@@ -27698,18 +27892,6 @@ msgstr "Auf ausgewähltes Bild zoomen"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Auf das aktuell ausgewählte Mapillary-Bild zoomen"
 
-msgid "View in website"
-msgstr "Auf Internetseite ansehen"
-
-msgid "Copy key"
-msgstr "Mapillary-Schlüssel kopieren"
-
-msgid "Copy key tag"
-msgstr "Mapillary-Tag kopieren"
-
-msgid "Edit on website"
-msgstr "Auf Webseite bearbeiten"
-
 msgid "Current Mapillary changeset"
 msgstr "Aktueller Mapillary-Änderungssatz"
 
@@ -27873,12 +28055,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Beim Überfahren des Symbols Vorschaubilder anzeigen"
 
-msgid "Login"
-msgstr "Anmelden"
-
-msgid "Logout"
-msgstr "Abmelden"
-
 msgid "Download mode"
 msgstr "Herunterlademodus"
 
@@ -27888,6 +28064,12 @@ msgstr "Sie sind als ''{0}'' angemeldet."
 msgid "You are currently not logged in."
 msgstr "Sie sind momentan nicht angemeldet."
 
+msgid "Login"
+msgstr "Anmelden"
+
+msgid "Logout"
+msgstr "Abmelden"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Gehen Sie in die Einstellung und melden Sie sich vor dem Hochladen bei "
@@ -27908,6 +28090,75 @@ msgstr "Ausgewähltem Bild folgen"
 msgid "Go forward"
 msgstr "Vorwärts gehen"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+"Ein Tag mit dem Schlüssel <i>{0}</i> ist bereits bei dem ausgewählten OSM-"
+"Objekt vorhanden."
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"Möchten Sie wirklich den jetzigen Wert <i>{0}</i> mit dem neuen Wert "
+"<i>{1}</i> ersetzen?"
+
+msgid "Tag conflict"
+msgstr "Tag-Konflikt"
+
+msgid "Key copied to clipboard"
+msgstr "Schlüssel wurde in die Zwischenablage kopiert"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"Das Mapillary-Plugin verwendet nun ein separates Fenster, um zusätzliche "
+"Informationen (z.B. den Schlüssel des Bildes) sowie Aktionen für das "
+"momentan ausgewählte Bild (z.B. das Bild in einem Browser anzuzeigen) "
+"anzuzeigen."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Es kann durch klicken auf den Knopf links unten in dieser Nachricht oder auf "
+"den Knopf mit dem selben Symbol in der Werkzeugleiste am linken Rand des "
+"JOSM-Fensters aktiviert werden."
+
+msgid "I got it, close this."
+msgstr "Ich habe verstanden, Nachricht schließen."
+
+msgid "Image info"
+msgstr "Bildinformationen"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+"Angeige von detaillierten Informationen über das momentan ausgewählte "
+"Mapillary-Bild"
+
+msgid "Add Mapillary tag"
+msgstr "Mapillary-Tag hinzufügen"
+
+msgid "Image actions"
+msgstr "Bildaktionen"
+
+msgid "Image key"
+msgstr "Bildschlüssel"
+
+msgid "Sequence key"
+msgstr "Sequenzschlüssel"
+
+msgid "image has no key"
+msgstr "Bild hat keinen Schlüssel"
+
+msgid "sequence has no key"
+msgstr "Sequenz hat keinen Schlüssel"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Konnte die URL {0} nicht in einem Browser öffnen"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} Bild gelöscht"
@@ -29361,7 +29612,7 @@ msgid "Get a new cookie (session timeout)"
 msgstr "Einen neuen Cookie holen (Sitzung abgelaufen)"
 
 msgid "Save image as..."
-msgstr "BIld speichern als…"
+msgstr "Bild speichern als …"
 
 msgid "PNG files (*.png)"
 msgstr "PNG-Bilder (*.png)"
@@ -30553,7 +30804,7 @@ msgstr ""
 "hochladen."
 
 msgid "Loading imagery offsets..."
-msgstr "Bildversätze werden geladen…"
+msgstr "Bildversätze werden geladen …"
 
 msgid "Error processing XML response: {0}"
 msgstr "Fehler beim Bearbeiten der XML-Antwort: {0}"
@@ -30694,7 +30945,7 @@ msgstr ""
 "beschreiben Sie das Objekt und seine Lage."
 
 msgid "Uploading a new offset..."
-msgstr "Neuer Versatz wird hochgeladen…"
+msgstr "Neuer Versatz wird hochgeladen …"
 
 msgid "This string should be 3 to 200 letters long."
 msgstr "Der Text sollte 3 bis 200 Zeichen lang sein."
@@ -31063,7 +31314,7 @@ msgid "Tracing"
 msgstr "Abzeichnen"
 
 msgid "checking cache..."
-msgstr "Zwischenspeicher wird überprüft…"
+msgstr "Zwischenspeicher wird überprüft …"
 
 msgid "Running vertex reduction..."
 msgstr "Stützpunktreduktion durchführen …"
@@ -31227,7 +31478,7 @@ msgid "Data source text. Default is Landsat."
 msgstr "Name der Datenquelle. Standardeinstellung ist Landsat."
 
 msgid "Downloading image tile..."
-msgstr "Bildkachel wird heruntergeladen…"
+msgstr "Bildkachel wird heruntergeladen …"
 
 msgid "Could not acquire image"
 msgstr "Bild kann nicht geladen werden"
@@ -31911,7 +32162,7 @@ msgid "Checking module preconditions..."
 msgstr "Modulvoraussetzungen werden geprüft …"
 
 msgid "Loading module ''{0}''..."
-msgstr "Modul ''{0}'' wird geladen…"
+msgstr "Modul ''{0}'' wird geladen …"
 
 msgid "JOSM could not find information about the following module:"
 msgid_plural "JOSM could not find information about the following modules:"
@@ -31992,7 +32243,7 @@ msgid "Reading local module information.."
 msgstr "Lokale Modulinformation wird gelesen …"
 
 msgid "Processing module site cache files..."
-msgstr "Modulseiten-Zwischenspeicherdateien werden verarbeitet…"
+msgstr "Modulseiten-Zwischenspeicherdateien werden verarbeitet …"
 
 msgid ""
 "Warning: Failed to scan file ''{0}'' for module information. Skipping."
@@ -32001,10 +32252,10 @@ msgstr ""
 "fehlgschlagen. Überspringe."
 
 msgid "Processing module site cache icon files..."
-msgstr "Modulseiten-Zwischenspeichersymboldateien werden verarbeitet…"
+msgstr "Modulseiten-Zwischenspeichersymboldateien werden verarbeitet …"
 
 msgid "Processing module files..."
-msgstr "Moduldateien werden verarbeitet…"
+msgstr "Moduldateien werden verarbeitet …"
 
 msgid "Download module list..."
 msgstr "Modulliste herunterladen …"
@@ -32173,7 +32424,7 @@ msgstr ""
 "Dialog schließen und Änderungen der Projektionseinstellungen verwerfen"
 
 msgid "Loading..."
-msgstr "Ladevorgang…"
+msgstr "Ladevorgang …"
 
 msgid "PDF file preview"
 msgstr "PDF-Dateivorschau"
@@ -32456,8 +32707,8 @@ msgstr "Laden der Datei ist fehlgeschlagen: {0}"
 msgid "Problem occurred"
 msgstr "Problem aufgetreten"
 
-msgid "Load World File Calibration..."
-msgstr "Weltdatei-Kalibrierung laden …"
+msgid "Import World File Calibration..."
+msgstr "Weltdatei-Kalibrierung importieren …"
 
 msgid "Loads calibration data from a world file"
 msgstr "Lädt Kalibrierungsdaten aus einer Weltdatei"
@@ -32472,7 +32723,7 @@ msgid "Calibration reset"
 msgstr "Kalibrierung zurücksetzen"
 
 msgid "Save Picture Calibration..."
-msgstr "Bildeinstellungen speichern…"
+msgstr "Bildeinstellungen speichern …"
 
 msgid "Saves calibration data to a file"
 msgstr "Bildeinstellungen in einer Datei speichern"
@@ -32480,6 +32731,12 @@ msgstr "Bildeinstellungen in einer Datei speichern"
 msgid "Saving file failed: {0}"
 msgstr "Datei speichern fehlgeschlagen: {0}"
 
+msgid "Export World file Calibration..."
+msgstr "Weltdatei-Kalibrierung exportieren …"
+
+msgid "Saves calibration data to a world file"
+msgstr "Kalibrierdaten in einer Weltdatei speichern"
+
 msgid "New picture layer from clipboard"
 msgstr "Neue Bildebene aus der Zwischenablage"
 
@@ -33351,7 +33608,7 @@ msgid "Tool: Display objects history dialog"
 msgstr "Werkzeug: Objektechronikdialog anzeigen"
 
 msgid "Preparing history data..."
-msgstr "Chronikdaten werden vorbereitet…"
+msgstr "Chronikdaten werden vorbereitet …"
 
 msgid "Remote Control has been asked to revert a changeset."
 msgstr ""
@@ -36195,6 +36452,3 @@ msgstr "Losfahren"
 
 msgid "Drive a race car on this layer"
 msgstr "Ein Rennauto auf dieser Ebene fahren"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/de_DE.po b/i18n/po/de_DE.po
index 1f818e6..b68cfba 100644
--- a/i18n/po/de_DE.po
+++ b/i18n/po/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-07-10 12:32+0000\n"
 "Last-Translator: ralekuja <Unknown>\n"
 "Language-Team: German (Germany) <de_DE at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:23+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:25+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3264,9 +3264,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10825,7 +10843,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10844,6 +10870,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10954,6 +10983,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14897,6 +14942,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15164,9 +15212,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15182,6 +15227,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15217,10 +15286,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15371,7 +15436,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15386,6 +15454,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15920,6 +15994,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20553,6 +20630,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20598,6 +20678,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22522,6 +22605,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22877,6 +22975,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22910,9 +23011,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24375,6 +24473,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25485,18 +25676,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25659,19 +25838,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25692,6 +25871,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29823,7 +30058,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29847,6 +30082,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/el.po b/i18n/po/el.po
index e35bce6..221f94e 100644
--- a/i18n/po/el.po
+++ b/i18n/po/el.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-01-25 09:17+0000\n"
 "Last-Translator: Aggelos Arnaoutis <angelosarn at hotmail.com>\n"
 "Language-Team: Greek <el at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:50+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:52+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: el\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3435,9 +3435,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "Α"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -11147,7 +11165,15 @@ msgid "Foot"
 msgstr "Πεζοί"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11166,6 +11192,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11281,6 +11310,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Χρωματισμός Ιχνών και Σημείων"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15278,6 +15323,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15545,9 +15593,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15563,6 +15608,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15598,10 +15667,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15752,7 +15817,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15767,6 +15835,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16301,6 +16375,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20937,6 +21014,9 @@ msgstr "Χαρτονομίσματα"
 msgid "Telephone cards"
 msgstr "Τηλεκάρτες"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20982,6 +21062,9 @@ msgstr "Δείχνει τη βαρομετρική πίεση"
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22906,6 +22989,21 @@ msgstr "Ιστορικά Σημεία"
 msgid "Castle"
 msgstr "Κάστρο"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Αρχαιολογικός Χώρος"
 
@@ -23261,6 +23359,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "τσιγάρα"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "Προφυλακτικά"
 
@@ -23294,9 +23395,6 @@ msgstr ""
 msgid "photos"
 msgstr "φωτογραφίες"
 
-msgid "public_transport_plans"
-msgstr "χάρτες Μέσων Μαζικής Μεταφοράς"
-
 msgid "public_transport_tickets"
 msgstr "εισητήρια Μέσων Μαζικής Μεταφοράς"
 
@@ -24759,6 +24857,99 @@ msgstr "Κάμπιγκ"
 msgid "Test"
 msgstr "Δοκιμή"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25871,18 +26062,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26045,19 +26224,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -26078,6 +26257,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30234,7 +30469,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30258,6 +30493,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/en_AU.po b/i18n/po/en_AU.po
index 8cbd78b..67f015f 100644
--- a/i18n/po/en_AU.po
+++ b/i18n/po/en_AU.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-06-08 12:52+0000\n"
 "Last-Translator: Mark Pulley <mrpulley at lizzy.com.au>\n"
 "Language-Team: English (Australia) <en_AU at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:21+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:23+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3488,9 +3488,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 
@@ -11586,7 +11604,15 @@ msgid "Foot"
 msgstr "Foot"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11605,6 +11631,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11728,6 +11757,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Track and Point Colouring"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15828,6 +15873,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16095,9 +16143,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16113,6 +16158,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16148,10 +16217,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16302,7 +16367,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16317,6 +16385,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16851,6 +16925,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21514,6 +21591,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Telephone cards"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -21559,6 +21639,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -23483,6 +23566,21 @@ msgstr "Historic Places"
 msgid "Castle"
 msgstr "Castle"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Archaeological Site"
 
@@ -23838,6 +23936,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "cigarettes"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condoms"
 
@@ -23871,9 +23972,6 @@ msgstr ""
 msgid "photos"
 msgstr "photos"
 
-msgid "public_transport_plans"
-msgstr "public_transport_plans"
-
 msgid "public_transport_tickets"
 msgstr "public_transport_tickets"
 
@@ -25336,6 +25434,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26450,18 +26641,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26624,19 +26803,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -26657,6 +26836,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30851,7 +31086,7 @@ msgstr "Loading file failed: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30875,6 +31110,12 @@ msgstr "Saves calibration data to a file"
 msgid "Saving file failed: {0}"
 msgstr "Saving file failed: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "New picture layer from clipboard"
 
diff --git a/i18n/po/en_CA.po b/i18n/po/en_CA.po
index 5f10566..2d1f394 100644
--- a/i18n/po/en_CA.po
+++ b/i18n/po/en_CA.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2010-09-24 17:25+0000\n"
 "Last-Translator: Johann Beda <Unknown>\n"
 "Language-Team: English (Canada) <en_CA at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:23+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:26+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3261,9 +3261,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10822,7 +10840,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10841,6 +10867,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10951,6 +10980,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14891,6 +14936,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15158,9 +15206,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15176,6 +15221,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15211,10 +15280,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15365,7 +15430,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15380,6 +15448,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15914,6 +15988,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20547,6 +20624,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20592,6 +20672,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22516,6 +22599,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22871,6 +22969,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22904,9 +23005,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24369,6 +24467,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25479,18 +25670,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25653,19 +25832,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25686,6 +25865,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29813,7 +30048,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29837,6 +30072,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/en_GB.po b/i18n/po/en_GB.po
index c0316f1..e56ad2f 100644
--- a/i18n/po/en_GB.po
+++ b/i18n/po/en_GB.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: JOSM\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-11-01 11:03+0000\n"
 "Last-Translator: Andi Chandler <Unknown>\n"
 "Language-Team: German <josm-dev at openstreetmap.org>\n"
@@ -18,8 +18,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:20+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:23+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: de\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3495,9 +3495,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Update default entries"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 
@@ -11647,7 +11665,15 @@ msgid "Foot"
 msgstr "Foot"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11666,6 +11692,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Create markers when reading GPX"
 
@@ -11790,6 +11819,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Track and Point Colouring"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Colours points and track segments by data limits."
 
@@ -16145,6 +16190,9 @@ msgstr "URBIS 2015 aerial imagery"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aerial imagery"
 
@@ -16414,9 +16462,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16432,6 +16477,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16467,10 +16536,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -16621,8 +16686,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Railway"
@@ -16636,6 +16704,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -17170,6 +17244,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -21949,6 +22026,9 @@ msgstr "Notes"
 msgid "Telephone cards"
 msgstr "Telephone cards"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Internet access"
 
@@ -21994,6 +22074,9 @@ msgstr "Shows barometric pressure"
 msgid "Shows humidity"
 msgstr "Shows humidity"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Recycling Container"
 
@@ -23920,6 +24003,21 @@ msgstr "Historic Places"
 msgid "Castle"
 msgstr "Castle"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Archaeological Site"
 
@@ -24275,6 +24373,9 @@ msgstr "bicycle_tube"
 msgid "cigarettes"
 msgstr "cigarettes"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condoms"
 
@@ -24308,9 +24409,6 @@ msgstr ""
 msgid "photos"
 msgstr "photos"
 
-msgid "public_transport_plans"
-msgstr "public_transport_plans"
-
 msgid "public_transport_tickets"
 msgstr "public_transport_tickets"
 
@@ -25795,6 +25893,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Even housenumber in odd address interpolation."
 
@@ -26960,18 +27151,6 @@ msgstr "Zoom to selected image"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zoom to the currently selected Mapillary image"
 
-msgid "View in website"
-msgstr "View in website"
-
-msgid "Copy key"
-msgstr "Copy key"
-
-msgid "Copy key tag"
-msgstr "Copy key tag"
-
-msgid "Edit on website"
-msgstr "Edit on website"
-
 msgid "Current Mapillary changeset"
 msgstr "Current Mapillary changeset"
 
@@ -27134,12 +27313,6 @@ msgstr "Move to picture''s location with next/previous buttons"
 msgid "Preview images when hovering its icon"
 msgstr "Preview images when hovering its icon"
 
-msgid "Login"
-msgstr "Login"
-
-msgid "Logout"
-msgstr "Logout"
-
 msgid "Download mode"
 msgstr "Download mode"
 
@@ -27149,6 +27322,12 @@ msgstr "You are logged in as ''{0}''."
 msgid "You are currently not logged in."
 msgstr "You are currently not logged in."
 
+msgid "Login"
+msgstr "Login"
+
+msgid "Logout"
+msgstr "Logout"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Go to setting and log in to Mapillary before uploading."
 
@@ -27167,6 +27346,62 @@ msgstr "Follow selected image"
 msgid "Go forward"
 msgstr "Go forward"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Deleted {0} image"
@@ -31607,8 +31842,8 @@ msgstr "Loading file failed: {0}"
 msgid "Problem occurred"
 msgstr "Problem occurred"
 
-msgid "Load World File Calibration..."
-msgstr "Load World File Calibration..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Loads calibration data from a world file"
@@ -31631,6 +31866,12 @@ msgstr "Saves calibration data to a file"
 msgid "Saving file failed: {0}"
 msgstr "Saving file failed: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "New picture layer from clipboard"
 
@@ -35223,6 +35464,3 @@ msgstr "Go driving"
 
 msgid "Drive a race car on this layer"
 msgstr "Drive a race car on this layer"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/eo.po b/i18n/po/eo.po
index 7d7a994..e9a36c0 100644
--- a/i18n/po/eo.po
+++ b/i18n/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-09-21 04:23+0000\n"
 "Last-Translator: Yuri Tretyakov <Unknown>\n"
 "Language-Team: Esperanto <eo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:44+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:45+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: eo\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3262,9 +3262,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10823,7 +10841,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10842,6 +10868,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10952,6 +10981,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14896,6 +14941,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15163,9 +15211,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15181,6 +15226,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15216,10 +15285,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15370,7 +15435,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15385,6 +15453,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15919,6 +15993,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20552,6 +20629,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20597,6 +20677,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22521,6 +22604,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22876,6 +22974,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomoj"
 
@@ -22909,9 +23010,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24374,6 +24472,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25484,18 +25675,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25658,19 +25837,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25691,6 +25870,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29818,7 +30053,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29842,6 +30077,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/es.po b/i18n/po/es.po
index 5e9f7c7..88bad82 100644
--- a/i18n/po/es.po
+++ b/i18n/po/es.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-26 21:21+0000\n"
-"Last-Translator: mor <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-26 09:44+0000\n"
+"Last-Translator: Omar Vega <ovruni at gnu.org.pe>\n"
 "Language-Team: Spanish <es at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:13+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:15+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: es\n"
 "X-Language: es_ES\n"
 "X-Source-Language: C\n"
@@ -67,13 +67,13 @@ msgid "Help"
 msgstr "Ayuda"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "Inicializando datos internos de límites"
 
 msgid "Initializing OSM API"
 msgstr "Inicializando API de OSM"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "Inicializando datos internos de tráfico"
 
 msgid "Initializing validator"
 msgstr "Inicializando validador"
@@ -2719,7 +2719,7 @@ msgid "objects"
 msgstr "objetos"
 
 msgid "all nodes"
-msgstr ""
+msgstr "todos los nodos"
 
 msgid "all ways"
 msgstr "todas las vías"
@@ -2795,6 +2795,7 @@ msgstr "todos los objetos incompletos"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
 msgstr ""
+"todos los objetos eliminados (la casilla <b>{0}</b> debe estar habilitada)"
 
 msgid "related objects"
 msgstr "Objetos relacionados"
@@ -3581,9 +3582,28 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr "Fecha de la imagen: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Esta imagen está marcada como la mejor de esta región en otros editores."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} servidor espejo {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} servidor espejo"
+
 msgid "Update default entries"
 msgstr "Actualizar las entradas por defecto"
 
+msgid "Update imagery ''{0}''"
+msgstr "Actualizar imagen ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Eliminar imágenes antiguas \"{0}\""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "No se encuentra la proyección ''{0}'', el marcador ''{1}'' ya no puede ser "
@@ -4396,13 +4416,13 @@ msgid "Multipolygon is not closed"
 msgstr "El multipolígono no está cerrado"
 
 msgid "Multipolygon rings share node(s)"
-msgstr ""
+msgstr "Anillos de multipolígono comparten nodo(s)"
 
 msgid "Intersection between multipolygon ways"
 msgstr "Intersección entre vías multipolígono"
 
 msgid "Multipolygon rings are equal"
-msgstr ""
+msgstr "Anillos de multipolígono son iguales"
 
 msgid "Role for ''{0}'' should be ''{1}''"
 msgstr "El rol para ''{0}'' debería ser ''{1}''"
@@ -4414,7 +4434,7 @@ msgid "Multipolygon ring contains segments twice"
 msgstr "El anillo multipolígono contiene segmentos dos veces"
 
 msgid "Multipolygon outer way shares segment(s) with other ring"
-msgstr ""
+msgstr "Vía exterior del multipolígono comparte segmento(s) con otro anillo"
 
 msgid "No useful role for multipolygon member"
 msgstr "Miembro de multipolígono no tiene un rol útil"
@@ -4560,29 +4580,33 @@ msgstr "La relación está vacía"
 msgid ""
 "Role of relation member does not match expression ''{0}'' in template {1}"
 msgstr ""
+"Rol del miembro de la relación no coincide con la expresión ''{0}'' de la "
+"plantilla {1}"
 
 msgid ""
 "Type ''{0}'' of relation member with role ''{1}'' does not match accepted "
 "types ''{2}'' in template {3}"
 msgstr ""
+"Tipo ''{0}'' del miembro de la relación con el rol ''{1}'' no coincide con "
+"los tipos aceptados ''{2}'' de la plantilla {3}"
 
 msgid "<empty>"
 msgstr "<vacío>"
 
 msgid "Role ''{0}'' unknown in templates ''{1}''"
-msgstr ""
+msgstr "Rol ''{0}'' desconocido en las plantillas ''{1}''"
 
 msgid "Empty role type found when expecting one of ''{0}''"
-msgstr ""
+msgstr "Tipo de rol vacío encontrado al esperar uno de ''{0}''"
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "Falta el rol \"{0}\""
 
 msgid "Number of ''{0}'' roles too low ({1})"
-msgstr ""
+msgstr "Número de ''{0}'' roles demasiado bajo ({1})"
 
 msgid "Number of ''{0}'' roles too high ({1})"
-msgstr ""
+msgstr "Número de ''{0}'' roles demasiado alto ({1})"
 
 msgid "Self-intersecting ways"
 msgstr "Vías que se interseccionan ellas mismas"
@@ -5172,6 +5196,8 @@ msgid ""
 "Set the preferences+data+cache directory (cache directory will be "
 "josm.home/cache)"
 msgstr ""
+"Establecer el directorio de preferencias+datos+caché (el directorio de caché "
+"será josm.home/cache)"
 
 msgid ""
 "-Djosm.home has lower precedence, i.e. the specific setting overrides the "
@@ -6016,6 +6042,8 @@ msgstr "Primitiva"
 
 msgid "Merged members not frozen yet. Cannot build resolution command"
 msgstr ""
+"Los miembros fusionados aún no están congelados. No se puede crear el "
+"comando de resolución"
 
 msgid "<undefined>"
 msgstr "<indefinido>"
@@ -12023,7 +12051,7 @@ msgid "Track date"
 msgstr "Fecha de la traza"
 
 msgid "Heat Map (dark = few, bright = many)"
-msgstr ""
+msgstr "Mapa de calor (oscuro = pocos, brillante = muchos)"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Color único (puede ser personalizado para las capas seleccionadas)"
@@ -12038,24 +12066,35 @@ msgid "Foot"
 msgstr "A pie"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr ""
+msgid "User Normal"
+msgstr "Usuario Normal"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Luz de usuario"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Luces de tráfico"
 
 msgctxt "Heat map"
 msgid "Inferno"
-msgstr ""
+msgstr "Infierno"
 
 msgctxt "Heat map"
 msgid "Viridis"
-msgstr ""
+msgstr "Viridis"
 
 msgctxt "Heat map"
 msgid "Wood"
-msgstr ""
+msgstr "Madera"
 
 msgctxt "Heat map"
 msgid "Heat"
-msgstr ""
+msgstr "Calor"
+
+msgid "Use points instead of lines for heat map"
+msgstr "Utilizar puntos en lugar de líneas para el mapa de calor"
 
 msgid "Create markers when reading GPX"
 msgstr "Crear marcadores al leer el archivo GPX"
@@ -12070,7 +12109,7 @@ msgid "Smooth GPX graphics (antialiasing)"
 msgstr "Gráficos GPX suavizados (antialiasing)"
 
 msgid "Draw with Opacity (alpha blending) "
-msgstr ""
+msgstr "Dibujar con opacidad (mezcla alfa) "
 
 msgid ""
 "Automatically make a marker layer from any waypoints when opening a GPX "
@@ -12149,6 +12188,8 @@ msgid ""
 "Apply dynamic alpha-blending and adjust width based on zoom level for all "
 "GPX lines."
 msgstr ""
+"Aplicar mezcla alfa dinámica y ajustar el ancho basado en el nivel de zoom "
+"para todas las líneas GPX."
 
 msgid ""
 "All points and track segments will have the same color. Can be customized in "
@@ -12177,6 +12218,8 @@ msgstr "Puntos de color y segmentos de rutas por su fecha y hora."
 msgid ""
 "Collected points and track segments for a position and displayed as heat map."
 msgstr ""
+"Puntos y segmentos de traza recogidos para una posición y mostrados como "
+"mapa de calor."
 
 msgid "Allows to tune the track coloring for different average speeds."
 msgstr ""
@@ -12189,6 +12232,24 @@ msgstr "Selecciona el esquema de color para el mapa de calor"
 msgid "Track and Point Coloring"
 msgstr "Coloreado de traza y punto"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr "Límite inferior de visibilidad"
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Dibuja todas las trazas GPX que exceden este umbral."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"El motor de renderizado utiliza puntos con error de posición simulado en "
+"lugar de líneas. "
+
 msgid "Colors points and track segments by data limits."
 msgstr "Colorea puntos y segmentos de traza por límites de fecha."
 
@@ -13517,7 +13578,7 @@ msgid "Territories"
 msgstr "Territorios"
 
 msgid "Checks for territories-specific features"
-msgstr ""
+msgstr "Comprueba características específicas de los territorios"
 
 msgid "Unnecessary tags"
 msgstr "Etiquetas innecesarias"
@@ -15927,7 +15988,7 @@ msgid "Silent shortcut conflict: ''{0}'' moved by ''{1}'' to ''{2}''."
 msgstr "Conflicto de atajo silencioso: ''{0}'' movido por ''{1}'' a ''{2}''."
 
 msgid "Unknown territory id: {0}"
-msgstr ""
+msgstr "ID del territorio desconocido: {0}"
 
 msgid "There was {0} tag found in the buffer, it is suspicious!"
 msgid_plural "There were {0} tags found in the buffer, it is suspicious!"
@@ -16463,13 +16524,13 @@ msgid "OpenCycleMap"
 msgstr "OpenCycleMap"
 
 msgid "Thunderforest Landscape"
-msgstr ""
+msgstr "Paisaje de Thunderforest"
 
 msgid "OpenSeaMap"
 msgstr "OpenSeaMap"
 
 msgid "OpenStreetMap Carto (Standard)"
-msgstr ""
+msgstr "OpenStreetMap Carto (Estandar)"
 
 msgid "OpenStreetMap (Standard Black & White)"
 msgstr "OpenStreetMap (Blanco y Negro Estandar)"
@@ -16550,7 +16611,7 @@ msgid "OSM Inspector: Highways"
 msgstr "OSM Inspector: Caminos"
 
 msgid "OSM Inspector: Area"
-msgstr ""
+msgstr "OSM Inspector: Área"
 
 msgid "OSM Inspector: Routing"
 msgstr "OSM Inspector: Enrutamiento"
@@ -16559,7 +16620,7 @@ msgid "OSM Inspector: Addresses"
 msgstr "OSM Inspector: Direcciones"
 
 msgid "OSM Inspector: Coastline (EU)"
-msgstr ""
+msgstr "OSM Inspector: Línea costera (EU)"
 
 msgid "imagico.de OSM images for mapping: Prokletije Mountains"
 msgstr ""
@@ -16693,6 +16754,9 @@ msgstr "Imágenes aéreas de URBIS 2015"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "Imágenes aéreas SPW(allonie) PICC numéricas"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(slitario) 2015 imágenes aéreas"
 
@@ -16733,10 +16797,10 @@ msgid "Rio Mosaic 2015"
 msgstr ""
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Londrina Ortofoto 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
-msgstr ""
+msgstr "SIG Santa Catarina OrtoRGB 2012"
 
 msgid "Geobase Hydrography"
 msgstr "Hidrografía Geobase"
@@ -16963,9 +17027,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Mapa topográfico 1:10000"
 
@@ -16981,6 +17042,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr "Sajonia últimas imágenes aéreas"
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr "Sajonia últimas imágenes aéreas de infrarrojos"
+
+msgid "Saxony aerial imagery 2005"
+msgstr "Sajonia imágenes aéreas 2005"
+
+msgid "Saxony WebAtlasSN"
+msgstr "Sajonia WebAtlasSN"
+
+msgid "Saxony topographic map"
+msgstr "Sajonia Mapa topográfico"
+
+msgid "Saxony digital terrain model"
+msgstr "Sajonia modelo de terreno digital"
+
+msgid "Mainz all aerial imageries"
+msgstr "Mainz todas las imágenes aéreas"
+
+msgid "Mainz latest aerial imagery"
+msgstr "Mainz últimas imágenes aéreas"
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -17016,10 +17101,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Imágenes aéreas de drones (Haití)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Avión no tripulado Imágenes 2014 (Haití)"
 
@@ -17170,8 +17251,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lituania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Ferrocarril Inspire Luxemburgo"
@@ -17185,6 +17269,12 @@ msgstr "Inspire Water Luxemburgo"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta del Níger Oct 2012"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard - Ortofoto de 2009/2011 EPSG:25833"
 
@@ -17574,10 +17664,10 @@ msgid "WA Vector Streetmap for San Juan County"
 msgstr ""
 
 msgid "Texas Orthophoto"
-msgstr ""
+msgstr "Texas Ortofoto"
 
 msgid "Philadelphia 2015 Imagery"
-msgstr ""
+msgstr "Philadelphia 2015 Imágenes"
 
 msgid "MD 2014 6 Inch Aerial Imagery"
 msgstr ""
@@ -17589,7 +17679,7 @@ msgid "MD Transportation Basemap"
 msgstr ""
 
 msgid "Delaware 2012 Orthophotography"
-msgstr ""
+msgstr "Ortofotografía de Delaware 2012"
 
 msgid "imagico.de OSM images for mapping: Rwenzori Mountains"
 msgstr ""
@@ -17601,7 +17691,7 @@ msgid "Ukraine - Orthophotomaps 2012"
 msgstr "Ucrania - Ortofotomapas 2012"
 
 msgid "Works only from within Ukraine or with an Ukrainian proxy server."
-msgstr ""
+msgstr "Sólo funciona desde Ucrania o con un servidor proxy ucraniano."
 
 msgid "Ukraine - Kyiv 2014 (DZK)"
 msgstr "Ucrania - Kiev 2014 (DZK)"
@@ -17720,6 +17810,9 @@ msgstr "Planos urbanos OS, Edimburgo 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "Planos urbanos OS, Edimburgo 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "Planos urbanos OS, Elgin 1868 (NLS)"
 
@@ -17976,7 +18069,7 @@ msgid "Create a grid of ways."
 msgstr "Crea una cuadrícula de viales"
 
 msgid "Customization of public public transport stops."
-msgstr ""
+msgstr "Personalización de paradas de transporte público."
 
 msgid ""
 "Creating and handling address nodes and buildings within Czech Republic."
@@ -18091,6 +18184,8 @@ msgstr "Genera imágenes XML a partir de los límites de un multipolígono"
 
 msgid "Export tiles from the imagery layer cache into the file system."
 msgstr ""
+"Exportar teselas desde la caché de la capa de imágenes en el sistema de "
+"archivos."
 
 msgid ""
 "Database of imagery offsets: share and aquire imagery offsets with one "
@@ -22574,6 +22669,9 @@ msgstr "Notas"
 msgid "Telephone cards"
 msgstr "Tarjetas telefónicas"
 
+msgid "Internet Cafe"
+msgstr "Internet Cafe"
+
 msgid "Internet Access"
 msgstr "Acceso a Internet"
 
@@ -22619,6 +22717,9 @@ msgstr "Muestra la presión barométrica"
 msgid "Shows humidity"
 msgstr "Muestra la humedad"
 
+msgid "Photo booth"
+msgstr "Cabina fotográfica"
+
 msgid "Recycling Container"
 msgstr "Contenedor de reciclado"
 
@@ -22729,7 +22830,7 @@ msgid "Hide"
 msgstr "Apostadero"
 
 msgid "Lockable"
-msgstr ""
+msgstr "Bloqueable"
 
 msgid "Water Point"
 msgstr "Punto de agua"
@@ -24467,13 +24568,13 @@ msgid "Pole"
 msgstr "Poste"
 
 msgid "Pole with Transformer"
-msgstr "Polo con transformador"
+msgstr "Poste con transformador"
 
 msgid "Pole Attributes:"
-msgstr "Polo de atributos"
+msgstr "Atributos del poste:"
 
 msgid "Transformer Attributes:"
-msgstr "Transformador de Atributos:"
+msgstr "Atributos del transformador:"
 
 msgid "Insulator"
 msgstr "Aislante"
@@ -24545,6 +24646,21 @@ msgstr "Lugares históricos"
 msgid "Castle"
 msgstr "Castillo"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr "defensivo"
+
+msgid "fortress"
+msgstr "fortaleza"
+
+msgid "manor"
+msgstr "casa solariega"
+
+msgid "palace"
+msgstr "palacio"
+
 msgid "Archaeological Site"
 msgstr "Yacimiento arqueológico"
 
@@ -24582,7 +24698,7 @@ msgstr "piedra"
 
 msgctxt "memorial"
 msgid "war_memorial"
-msgstr "war_memorial"
+msgstr "Memorial de guerra"
 
 msgid "Inscription"
 msgstr "Inscripción"
@@ -24823,7 +24939,7 @@ msgid "Medical Supply"
 msgstr "Aparatos ortopédicos"
 
 msgid "Jewellery"
-msgstr "Joyas"
+msgstr "Joyería"
 
 msgid "Erotic"
 msgstr "Erótico"
@@ -24889,7 +25005,7 @@ msgid "Vending products"
 msgstr "Expendedor automático de productos"
 
 msgid "admission_tickets"
-msgstr "billete de admisión"
+msgstr "entradas"
 
 msgid "animal_feed"
 msgstr "comida para animales"
@@ -24898,7 +25014,10 @@ msgid "bicycle_tube"
 msgstr "neumático de bicicleta"
 
 msgid "cigarettes"
-msgstr "Estanco"
+msgstr "tabaco"
+
+msgid "coffee"
+msgstr "café"
 
 msgid "condoms"
 msgstr "condones"
@@ -24933,9 +25052,6 @@ msgstr "depósito de paquete postal"
 msgid "photos"
 msgstr "fotos"
 
-msgid "public_transport_plans"
-msgstr "abonos de transporte público"
-
 msgid "public_transport_tickets"
 msgstr "billetes de de transporte público"
 
@@ -25169,7 +25285,7 @@ msgid "Photographer"
 msgstr "Fotógrafo"
 
 msgid "Metal construction"
-msgstr "Construcción de metal"
+msgstr "Carpintería metálica"
 
 msgid "Electrician"
 msgstr "Electricista"
@@ -25196,16 +25312,16 @@ msgid "Painter"
 msgstr "Pintor"
 
 msgid "Stonemason"
-msgstr "Albañil"
+msgstr "Cantero"
 
 msgid "Handicraft"
 msgstr "Artesanía"
 
 msgid "Pottery"
-msgstr "Cerámica"
+msgstr "Alfarería"
 
 msgid "Key cutter"
-msgstr "Cortador de llave"
+msgstr "Copiador de llaves"
 
 msgid "Caterer"
 msgstr "Servicio de catering"
@@ -25244,7 +25360,7 @@ msgid "Administrative level"
 msgstr "Nivel administrativo"
 
 msgid "Maritime"
-msgstr "Marítimo"
+msgstr "Marítima"
 
 msgid "Political"
 msgstr "Política"
@@ -25259,7 +25375,7 @@ msgid "linguistic_community"
 msgstr "comunidad lingüística"
 
 msgid "ward"
-msgstr "Distrito"
+msgstr "distrito"
 
 msgid "National Park"
 msgstr "Parque Nacional"
@@ -25277,7 +25393,7 @@ msgid "Border type"
 msgstr "Tipo de frontera"
 
 msgid "baseline"
-msgstr "en línea"
+msgstr "línea de base"
 
 msgid "territorial"
 msgstr "territorial"
@@ -25305,7 +25421,7 @@ msgid "Region"
 msgstr "Región"
 
 msgid "County"
-msgstr "Municipio"
+msgstr "Condado, provincia, departamento"
 
 msgid "City"
 msgstr "Ciudad (>100.000 hab.)"
@@ -25363,8 +25479,8 @@ msgid ""
 "A persistent body of dense ice that is constantly moving under its own "
 "weight."
 msgstr ""
-"Un cuerpo persistente de hielo denso que está constantemente moviéndose "
-"hacia abajo producto de su propio peso."
+"Un cuerpo persistente de hielo denso que está constantemente deslizándose "
+"bajo su propio peso."
 
 msgid "Volcano"
 msgstr "Volcán"
@@ -25438,7 +25554,7 @@ msgid "rock"
 msgstr "roca"
 
 msgid "Nature"
-msgstr "Natural"
+msgstr "Naturaleza"
 
 msgid "Tree"
 msgstr "Árbol"
@@ -25456,7 +25572,7 @@ msgid "Wood"
 msgstr "Bosque natural"
 
 msgid "Woodland where timber production does not dominate use."
-msgstr "Área forestada donde la producción de leña no domina el uso."
+msgstr "Área forestal donde la producción de madera no es el uso dominante."
 
 msgid "Forest"
 msgstr "Explotación forestal"
@@ -25499,7 +25615,7 @@ msgid ""
 "Where vegetation is dominated by grasses (Poaceae) and other herbaceous (non-"
 "woody) plants. Excludes cultivated areas and wetlands."
 msgstr ""
-"Donde la vegetación es dominada por gramíneas (Poaceae) y otras plantas "
+"Donde la vegetación dominante son gramíneas (Poaceae) y otras plantas "
 "herbáceas (no leñosas). Excluye áreas cultivadas y humedales."
 
 msgid "pampas"
@@ -25509,7 +25625,7 @@ msgid "prairie"
 msgstr "pradera"
 
 msgid "puszta"
-msgstr "puszta"
+msgstr "puszta (llanura esteparia húngara)"
 
 msgid "savanna"
 msgstr "sabana"
@@ -25534,7 +25650,7 @@ msgstr "Guijarros"
 
 msgid "An accumulation of loose rounded rocks on a beach or riverbed."
 msgstr ""
-"Una acumulación de rocas redondeadas sueltos en una playa o lecho del río."
+"Una acumulación de rocas redondeadas sueltas en una playa o lecho de río."
 
 msgid "Fell"
 msgstr "Braña"
@@ -25570,7 +25686,7 @@ msgid "Sand"
 msgstr "Arena"
 
 msgid "Large area covered with sand."
-msgstr "Gran área cubierta con arena."
+msgstr "Gran área cubierta de arena."
 
 msgid "Bare Rock"
 msgstr "Roquedo"
@@ -25602,7 +25718,7 @@ msgid ""
 "of the terrain it lies in."
 msgstr ""
 "Una roca única y notable, puede diferir su composición de la del terreno en "
-"la cual descansa."
+"el cual descansa."
 
 msgid "Land use"
 msgstr "Uso del suelo"
@@ -25658,7 +25774,7 @@ msgid "orange_trees"
 msgstr "plantación de naranjos"
 
 msgid "almond_trees"
-msgstr "árboles de almendro"
+msgstr "almendros"
 
 msgid "banana_plants"
 msgstr "bananal"
@@ -25670,19 +25786,19 @@ msgid "hazel_plants"
 msgstr "plantas de avellanos"
 
 msgid "cherry_trees"
-msgstr "árboles de cerezo"
+msgstr "cerezos"
 
 msgid "persimmon_trees"
 msgstr "árboles de persimón"
 
 msgid "walnut_trees"
-msgstr "árboles de nogal"
+msgstr "nogales"
 
 msgid "plum_trees"
-msgstr "árboles de ciruelos"
+msgstr "ciruelos"
 
 msgid "peach_trees"
-msgstr "duraznal"
+msgstr "duraznal, melocotonar"
 
 msgid "tea_plants"
 msgstr "plantación de té"
@@ -25766,7 +25882,7 @@ msgid "Construction Area"
 msgstr "Área de construcción"
 
 msgid "Brownfield"
-msgstr "Terrenos abandonados (anteriormente desarrollados)"
+msgstr "Solar (parcela anteriormente edificada)"
 
 msgid "Greenfield"
 msgstr "Suelo urbanizable (no construido con anteriordad)"
@@ -25826,7 +25942,7 @@ msgid "Country code"
 msgstr "Código del país"
 
 msgid "Unit/Suite"
-msgstr ""
+msgstr "Unidad/Suite"
 
 msgid "House name"
 msgstr "Nombre del edificio"
@@ -26432,6 +26548,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Prueba"
 
+msgid "View website"
+msgstr "Ver sitio web"
+
+msgid "View URL"
+msgstr "Ver URL"
+
+msgid "Send Email"
+msgstr "Enviar Email"
+
+msgid "View image"
+msgstr "Ver imagen"
+
+msgid "View %name% article"
+msgstr "Ver %name% del articulo"
+
+msgid "View Wikidata page"
+msgstr "Ver la página en Wikidata"
+
+msgid "View UNESCO sheet"
+msgstr "Ver hoja de la UNESCO"
+
+msgid "View %name% image"
+msgstr "Ver %name% de la imagen"
+
+msgid "View %name% sheet of river"
+msgstr "Ver hoja %name% del río"
+
+msgid "View %name% municipality sheet"
+msgstr "Ver hoja %name% de la municipalidad"
+
+msgid "View %name% sheet on osm.fr"
+msgstr "Ver hoja %name% en osm.fr"
+
+msgid "View %name% map of municipalities"
+msgstr "Ver mapa %name% de municipalidades"
+
+msgid "View %name% list of municipalities"
+msgstr "Ver lista %name% de municipalidades"
+
+msgid "View %name% map of cantons"
+msgstr "Ver mapa %name% de cantones"
+
+msgid "View %name% list of cantons"
+msgstr "Ver lista %name% de cantones"
+
+msgid "View %name% map of arrondissements"
+msgstr "Ver mapa %name% de distritos"
+
+msgid "View %name% list of arrondissements"
+msgstr "Ver lista %name% de distritos"
+
+msgid "View %name% map of departments"
+msgstr "Ver mapa %name% de departamentos"
+
+msgid "View %name% list of departments"
+msgstr "Ver lista %name% de departamentos"
+
+msgid "View %name% map of regions"
+msgstr "Ver mapa %name% de regiones"
+
+msgid "View %name% list of regions"
+msgstr "Ver lista %name% de regiones"
+
+msgid "View %name% sheet of church"
+msgstr "Ver hoja %name% de la iglesia"
+
+msgid "View Mérimée sheet of monument"
+msgstr "Ver la hoja Mérimée del monumento"
+
+msgid "View Mérimée list for this municipality"
+msgstr "Ver la lista Mérimée para esta municipalidad"
+
+msgid "View %name% sheet of geodesic site"
+msgstr "Ver hoja %name% de sitio geodésico"
+
+msgid "View UAI sheet of school/college"
+msgstr "Ver la hoja UAI de la escuela/facultad"
+
+msgid "View %name% sheet of hospital/home"
+msgstr "Ver hoja %name% de hospital/casa"
+
+msgid "View explanation of %name% code"
+msgstr "Ver explicación del código %name%"
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr "Obtener la tarjeta de identificación (pdf) de este establecimiento"
+
+msgid "View %name% page of this post office"
+msgstr "Ver página %name% de esta oficina postal"
+
+msgid "View %name% sheet of memorial"
+msgstr "Ver hoja %name% del monumento conmemorativo"
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Número de portal par en interpolación de direcciones impares."
 
@@ -26537,7 +26746,7 @@ msgid "possibly missing {0} tag"
 msgstr "posible etiqueta {0} faltante"
 
 msgid "street with odd number of {0}, but without {1} and {2} or {3}"
-msgstr ""
+msgstr "calle con número impar de {0}, pero sin {1} y {2} o {3}"
 
 msgid "{0} is deprecated"
 msgstr "{0} está obsoleto"
@@ -26650,7 +26859,7 @@ msgid "The key {0} has an uncommon value."
 msgstr "La clave {0} tiene un valor poco común."
 
 msgid "misspelled value"
-msgstr ""
+msgstr "valor mal escrito"
 
 msgid "wrong value: {0}"
 msgstr "valor incorrecto: {0}"
@@ -26662,7 +26871,7 @@ msgid "{0} on a node. Should be drawn as an area."
 msgstr "{0} sobre un nodo. Debería ser dibujado como un área."
 
 msgid "{0} on a node. Should be used in a relation"
-msgstr ""
+msgstr "{0} en un nodo. Se debe utilizar en una relación"
 
 msgid "{0} on a way. Should be used on a node."
 msgstr "{0} sobre una vía. Debería ser utilizado en un nodo."
@@ -26739,6 +26948,8 @@ msgid ""
 "{0} is the tag for the linear waterway. To tag the water area use {1} + {2} "
 "instead."
 msgstr ""
+"{0} es la etiqueta para la navegación lineal. Para etiquetar el área de agua "
+"utilice {1} + {2}."
 
 msgid "abbreviated street name"
 msgstr "nombre de calle abreviado"
@@ -26763,6 +26974,8 @@ msgstr "{0} se utiliza con {1}"
 
 msgid "{0} is deprecated, use {1} instead. Also check similar tags like {2}"
 msgstr ""
+"{0} está obsoleto, utilice {1} en su lugar. También compruebe etiquetas "
+"similares como {2}"
 
 msgid ""
 "Value of ''{0}'' should either be ''{1}'' or ''{2}''. For sidewalks use "
@@ -27599,6 +27812,10 @@ msgid ""
 "appears for the first time, simply try it again. This might have been an "
 "issue with the internet connection."
 msgstr ""
+"Se produjo una excepción al intentar enviar un conjunto de cambios. Si esto "
+"ocurre repetidamente, considerar reportar un error a través mediante el menú "
+"Ayuda. Si este mensaje aparece por primera vez, simplemente inténtelo de "
+"nuevo. Esto podría haber sido un problema con la conexión de Internet."
 
 msgid "Upload pictures"
 msgstr "Subir fotos"
@@ -27621,18 +27838,6 @@ msgstr "Zoom dentro de la imagen seleccionada"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Acercar a la imagen seleccionada de Mapillary"
 
-msgid "View in website"
-msgstr "Ver en la página web"
-
-msgid "Copy key"
-msgstr "Copiar llave"
-
-msgid "Copy key tag"
-msgstr "Copiar etiqueta de llave"
-
-msgid "Edit on website"
-msgstr "Editar en página web"
-
 msgid "Current Mapillary changeset"
 msgstr "Conjunto de cambios de Mapillary actual"
 
@@ -27643,7 +27848,7 @@ msgid "Mapillary changeset"
 msgstr "Conjunto de cambios de Mapillary"
 
 msgid "Submitting changeset to server…"
-msgstr ""
+msgstr "Enviando conjunto de cambios al servidor..."
 
 msgid "Export all images"
 msgstr "Exportar todas las imágenes"
@@ -27797,12 +28002,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Vista previa de imágenes cuando el cursor se sitúa sobre el icono"
 
-msgid "Login"
-msgstr "Acceder"
-
-msgid "Logout"
-msgstr "Cerrar sesión"
-
 msgid "Download mode"
 msgstr "Modo de descarga"
 
@@ -27812,6 +28011,12 @@ msgstr "Está registrado como ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Actualmente no se encuentra registrado"
 
+msgid "Login"
+msgstr "Acceder"
+
+msgid "Logout"
+msgstr "Cerrar sesión"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Ir a las preferencias y acceder a Mapillary antes de comenzar con la subida."
@@ -27831,6 +28036,73 @@ msgstr "Seguir la imágen seleccionada"
 msgid "Go forward"
 msgstr "Avanzar"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+"Una etiqueta con la clave <i>{0}</i> ya está presente en el objeto de OSM "
+"seleccionado."
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"¿Desea realmente reemplazar el valor actual de <i>{0}</i> con el nuevo valor "
+"<i>{1}</i>?"
+
+msgid "Tag conflict"
+msgstr "Conflicto de etiquetas"
+
+msgid "Key copied to clipboard"
+msgstr "Clave copiada al portapapeles"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"El complemento Mapillary ahora utiliza un panel separado para mostrar "
+"información adicional (como la clave de la imagen) y acciones para la imagen "
+"de Mapillary seleccionada actualmente (como verla en un navegador web)."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Se puede activar haciendo clic en el botón izquierdo en la parte inferior de "
+"este mensaje o en el botón de la barra de herramientas a la izquierda, que "
+"utiliza el mismo icono."
+
+msgid "I got it, close this."
+msgstr "Lo tengo, cerrar esto."
+
+msgid "Image info"
+msgstr "Información de la imagen"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+"Muestra la información detallada sobre la imagen de Mapillary seleccionada"
+
+msgid "Add Mapillary tag"
+msgstr "Añadir etiqueta mapillary"
+
+msgid "Image actions"
+msgstr "acciones de imagen"
+
+msgid "Image key"
+msgstr "clave de imagen"
+
+msgid "Sequence key"
+msgstr "clave de secuencia"
+
+msgid "image has no key"
+msgstr "la imagen no tiene clave"
+
+msgid "sequence has no key"
+msgstr "la secuencia no tiene clave"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "No se pudo abrir la URL {0} en un navegador"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Eliminada {0} imágen"
@@ -28573,7 +28845,7 @@ msgid "Area Selector"
 msgstr "Selector de Área"
 
 msgid "Trying to detect an area at:"
-msgstr ""
+msgstr "Tratando de detectar un área en:"
 
 msgid "Created area"
 msgstr "Área creada"
@@ -28625,6 +28897,8 @@ msgid ""
 "Maximum distance in meters between a point and the line to be considered as "
 "a member of this line (Default: {0})."
 msgstr ""
+"Distancia máxima en metros entre un punto y la línea para ser considerado "
+"como un miembro de esta linea (Por defecto: {0})."
 
 msgid "Distance Tolerance"
 msgstr "Distancia de tolerancia"
@@ -30368,63 +30642,65 @@ msgid "Open Imagery XML file"
 msgstr "Abrir archivo de XML de imagen aérea"
 
 msgid "Export tiles"
-msgstr ""
+msgstr "Exportar teselas"
 
 msgid "Export cached tiles to file system."
-msgstr ""
+msgstr "Exportar teselas del caché al sistema de archivos."
 
 msgid "Exporting cached tiles"
-msgstr ""
+msgstr "Exportando teselas del caché."
 
 msgid "Failed to write image file {0}: {1}"
-msgstr ""
+msgstr "Error al escribir el archivo de imagen {0}: {1}"
 
 msgid "Failed to write image file {0}."
-msgstr ""
+msgstr "Error al escribir el archivo de imagen {0}."
 
 msgid "Exported {0} tile from layer {1}."
 msgid_plural "Exported {0} tiles from layer {1}."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} tesela de la capa {1} exportada."
+msgstr[1] "{0} teselas de la capa {1} exportadas."
 
 msgid "Export file system path already exists but is not a directory."
 msgstr ""
+"La ruta del sistema de archivos de exportación ya existe pero no es un "
+"directorio."
 
 msgid "Failed to create export directory: {0}"
-msgstr ""
+msgstr "No se pudo crear el directorio de exportación: {0}"
 
 msgid "Failed to create export directory."
-msgstr ""
+msgstr "No se pudo crear el directorio de exportación."
 
 msgid "Append cache name"
-msgstr ""
+msgstr "Añadir nombre de la caché"
 
 msgid "Export Tiles"
-msgstr ""
+msgstr "Exportar teselas"
 
 msgid "Cache name:"
-msgstr ""
+msgstr "Nombres de la caché:"
 
 msgid "Object count:"
 msgstr ""
 
 msgid "file system path"
-msgstr ""
+msgstr "Ruta del sistema de archivos"
 
 msgid "File system path the tiles are exported to."
-msgstr ""
+msgstr "Ruta del sistema de archivos a la que se exportarán las teselas."
 
 msgid "Export directory:"
-msgstr ""
+msgstr "Exportar directorio:"
 
 msgid "Append cache name to export directory."
-msgstr ""
+msgstr "Añadir nombre de la caché al directorio de exportación."
 
 msgid "Tiles will be exported to directory {0}"
-msgstr ""
+msgstr "Las teselas se exportarán al directorio {0}"
 
 msgid "No export directory set."
-msgstr ""
+msgstr "No se ha establecido ningún directorio de exportación."
 
 msgid "Calibration Layer"
 msgstr "Capa de Calibración"
@@ -32399,8 +32675,8 @@ msgstr "Falló la carga del archivo: {0}"
 msgid "Problem occurred"
 msgstr "Ocurrió un problema"
 
-msgid "Load World File Calibration..."
-msgstr "Cargar la Calibracióndel Archivo Mundial..."
+msgid "Import World File Calibration..."
+msgstr "Importar archivo de calibración world..."
 
 msgid "Loads calibration data from a world file"
 msgstr "Cargar datos de calibración desde un archivo mundial"
@@ -32423,6 +32699,12 @@ msgstr "Guardar los datos de calibración a un archivo"
 msgid "Saving file failed: {0}"
 msgstr "Fallo al grabar el archivo: {0}"
 
+msgid "Export World file Calibration..."
+msgstr "Exportar archivo de calibración world..."
+
+msgid "Saves calibration data to a world file"
+msgstr "Guarda los datos de calibración a un archivo world"
+
 msgid "New picture layer from clipboard"
 msgstr "Nueva capa de imágenes desde el portapapeles"
 
@@ -33995,7 +34277,7 @@ msgid "Zoom to the selected item in the todo list."
 msgstr "Acercar para seleccionar el elemento en la lista por hacer."
 
 msgid "Select all Unmarked and Zoom"
-msgstr ""
+msgstr "Seleccionar los elementos sin marcar y acercar"
 
 msgid "Select and zoom to all of the unmarked items in the todo list."
 msgstr ""
@@ -34021,6 +34303,7 @@ msgstr ""
 
 msgid "Mark the selected item in the todo list as done. (])."
 msgstr ""
+"Marcar el elemento seleccionado en la lista por hacer como hecho. (])."
 
 msgid "Mark all"
 msgstr "Marcar todos"
@@ -36132,6 +36415,3 @@ msgstr "Ir a manejar"
 
 msgid "Drive a race car on this layer"
 msgstr "Conduce un vehículo de carreras en esta capa"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/et.po b/i18n/po/et.po
index 2fe41eb..e46ff43 100644
--- a/i18n/po/et.po
+++ b/i18n/po/et.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-08 15:16+0000\n"
-"Last-Translator: AivoK <aivo.kuhlberg at hot.ee>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-23 08:40+0000\n"
+"Last-Translator: Margus Värton <margus at dakar.ee>\n"
 "Language-Team: Estonian <et at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:45+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:46+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: et\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -441,10 +441,10 @@ msgid "Delete selected objects."
 msgstr "Kustuta valitud objektid."
 
 msgid "Delete Layer"
-msgstr ""
+msgstr "Kustuta kiht"
 
 msgid "Delete the active layer. Does not delete the associated file."
-msgstr ""
+msgstr "Kustuta aktiivne kiht. Ei kustuta seotud faili."
 
 msgid "Toggle dialogs panel"
 msgstr "Lülita dialoogiaken"
@@ -3344,9 +3344,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -4726,7 +4744,7 @@ msgstr "Aluskaardi nihe"
 
 msgctxt "menu"
 msgid "Imagery"
-msgstr ""
+msgstr "Aluskaart"
 
 msgctxt "layer"
 msgid "Offset"
@@ -4950,15 +4968,15 @@ msgstr ""
 
 msgctxt "menu"
 msgid "Edit"
-msgstr "Muuda"
+msgstr "Redigeeri"
 
 msgctxt "menu"
 msgid "View"
-msgstr ""
+msgstr "Vaade"
 
 msgctxt "menu"
 msgid "Tools"
-msgstr ""
+msgstr "Tööriistad"
 
 msgctxt "menu"
 msgid "More tools"
@@ -5014,10 +5032,10 @@ msgid "Click to open the tagging presets tab in the preferences"
 msgstr ""
 
 msgid "Imagery preferences"
-msgstr "Aluskaardi eelistused"
+msgstr "Aluskaardi seaded"
 
 msgid "Click to open the imagery tab in the preferences"
-msgstr "Kliki, et avada aluskaardi sätete leht eelistuste dialoogiaknas"
+msgstr "Kliki, et avada aluskaardi sätete leht seadete dialoogiaknas"
 
 msgctxt "menu"
 msgid "Audio"
@@ -8270,13 +8288,13 @@ msgid "Changeset source"
 msgstr ""
 
 msgid "Imagery used"
-msgstr ""
+msgstr "Kasutatud aluskaart"
 
 msgid "<b>Source</b>:"
 msgstr ""
 
 msgid "<b>Imagery</b>:"
-msgstr ""
+msgstr "<b>Aluskaart</b>:"
 
 msgid ""
 "<html>Version <strong>{0}</strong> currently edited in layer ''{1}''</html>"
@@ -10622,7 +10640,7 @@ msgid "toolbar"
 msgstr "tööriistariba"
 
 msgid "imagery"
-msgstr ""
+msgstr "aluskaart"
 
 msgid "Reset preferences"
 msgstr ""
@@ -10990,7 +11008,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11009,6 +11035,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11119,6 +11148,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -11323,7 +11368,7 @@ msgid "Tiles zoom offset:"
 msgstr ""
 
 msgid "Imagery Preferences"
-msgstr "Aluskaardi eelistused"
+msgstr "Aluskaardi seaded"
 
 msgid "Modify list of imagery layers displayed in the Imagery menu"
 msgstr ""
@@ -14886,7 +14931,7 @@ msgid "Landsat"
 msgstr ""
 
 msgid "Bing aerial imagery"
-msgstr ""
+msgstr "Bing aluskaart"
 
 msgid "HDM (Humanitarian OpenStreetMap Team)"
 msgstr ""
@@ -15128,6 +15173,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15395,9 +15443,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15413,6 +15458,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15448,10 +15517,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15602,7 +15667,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15617,6 +15685,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16151,6 +16225,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20793,6 +20870,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Telefoni kaart"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20838,6 +20918,9 @@ msgstr "Näitab õhurõhku"
 msgid "Shows humidity"
 msgstr "Näitab niiskust"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22762,6 +22845,21 @@ msgstr "Ajaloolised kohad"
 msgid "Castle"
 msgstr "Loss"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arheoloogiamälestis"
 
@@ -23117,6 +23215,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "suitsud"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondoomid"
 
@@ -23150,9 +23251,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotod"
 
-msgid "public_transport_plans"
-msgstr "ühistranspordi_plaanid"
-
 msgid "public_transport_tickets"
 msgstr "ühistranspordi_piletid"
 
@@ -24615,6 +24713,99 @@ msgstr "Matkamine"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25725,18 +25916,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25899,19 +26078,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25932,6 +26111,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30083,7 +30318,7 @@ msgstr "Faili laadimine ebaõnnestus: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30107,6 +30342,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Uus pildikiht lõikepuhvrist"
 
diff --git a/i18n/po/eu.po b/i18n/po/eu.po
index 9e266b4..f8c6b5a 100644
--- a/i18n/po/eu.po
+++ b/i18n/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-03-09 16:55+0000\n"
 "Last-Translator: Asier Sarasua Garmendia <Unknown>\n"
 "Language-Team: Basque <eu at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:38+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:38+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: eu\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3379,9 +3379,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -11008,7 +11026,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11027,6 +11053,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11137,6 +11166,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15083,6 +15128,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15350,9 +15398,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15368,6 +15413,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15403,10 +15472,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15557,7 +15622,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15572,6 +15640,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16106,6 +16180,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20779,6 +20856,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Telefono-txartelak"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20824,6 +20904,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22748,6 +22831,21 @@ msgstr "Gune historikoak"
 msgid "Castle"
 msgstr "Gaztelua"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Gune-arkeologikoa"
 
@@ -23103,6 +23201,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "zigarretak"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondoiak"
 
@@ -23136,9 +23237,6 @@ msgstr ""
 msgid "photos"
 msgstr "argazkiak"
 
-msgid "public_transport_plans"
-msgstr "garraio publikoaren mapak"
-
 msgid "public_transport_tickets"
 msgstr "garraio publikoko txartelak"
 
@@ -24601,6 +24699,99 @@ msgstr "Kanpin"
 msgid "Test"
 msgstr "Proba"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25711,18 +25902,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25885,19 +26064,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25918,6 +26097,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30050,7 +30285,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30074,6 +30309,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/fa.po b/i18n/po/fa.po
index 81e406d..b9a26b7 100644
--- a/i18n/po/fa.po
+++ b/i18n/po/fa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2014-03-18 07:32+0000\n"
 "Last-Translator: Saeed Ghazi Joolaee <Unknown>\n"
 "Language-Team: Persian <fa at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:07+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:08+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: fa\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3320,9 +3320,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10889,7 +10907,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10908,6 +10934,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11018,6 +11047,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14958,6 +15003,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15225,9 +15273,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15243,6 +15288,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15278,10 +15347,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15432,7 +15497,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15447,6 +15515,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15981,6 +16055,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20614,6 +20691,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20659,6 +20739,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22583,6 +22666,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22938,6 +23036,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22971,9 +23072,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24436,6 +24534,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25546,18 +25737,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25720,19 +25899,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25753,6 +25932,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29880,7 +30115,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29904,6 +30139,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/fi.po b/i18n/po/fi.po
index 6f2d145..e17c7a3 100644
--- a/i18n/po/fi.po
+++ b/i18n/po/fi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-01-19 17:11+0000\n"
 "Last-Translator: Lauri Kytömaa <Unknown>\n"
 "Language-Team: Finnish <fi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:46+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:47+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: fi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3493,9 +3493,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "I"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Projektiota \"{0}\" ei löytynyt, kirjanmerkki \"{1}\" ei ole käytettävissä"
@@ -11485,7 +11503,15 @@ msgid "Foot"
 msgstr "Jalankulku (foot)"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11504,6 +11530,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Luo Merkinnät -taso GPX-tiedostoja avattaessa"
 
@@ -11631,6 +11660,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Jäljen ja pisteiden väritys"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Määrittää väriskaalan ääriarvot kunkin jäljen ääriarvojen perusteella."
@@ -15750,6 +15795,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16017,9 +16065,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16035,6 +16080,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16070,10 +16139,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16224,7 +16289,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Liettua)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16239,6 +16307,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16773,6 +16847,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21446,6 +21523,9 @@ msgstr "Setelit"
 msgid "Telephone cards"
 msgstr "Puhelinkortit"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -21491,6 +21571,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Kierrätyspiste"
 
@@ -23415,6 +23498,21 @@ msgstr "Historialliset paikat"
 msgid "Castle"
 msgstr "Linna"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arkeologinen kaivaus"
 
@@ -23770,6 +23868,9 @@ msgstr "polkupyörän sisäkumeja"
 msgid "cigarettes"
 msgstr "tupakkaa"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomeja"
 
@@ -23803,9 +23904,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr "julkisen liikenteen aikatauluja"
-
 msgid "public_transport_tickets"
 msgstr "julkisen liikenteen lippuja"
 
@@ -25269,6 +25367,99 @@ msgstr "Leirintäpaikka"
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26403,18 +26594,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26577,19 +26756,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -26610,6 +26789,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30797,7 +31032,7 @@ msgstr "Tiedoston lataaminen epäonnistui: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30821,6 +31056,12 @@ msgstr "Tallentaa kuvatason kalibrointitiedot tiedostoon"
 msgid "Saving file failed: {0}"
 msgstr "Tiedoston tallentaminen epäonnistui: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Uusi kuvataso leikepöydältä"
 
diff --git a/i18n/po/fil.po b/i18n/po/fil.po
index 82dbc87..b5eedfa 100644
--- a/i18n/po/fil.po
+++ b/i18n/po/fil.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-06-19 14:15+0000\n"
 "Last-Translator: Anthony Balico <Unknown>\n"
 "Language-Team: Filipino <fil at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:24+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:26+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: fil\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/fo.po b/i18n/po/fo.po
index 82b8723..48ace8b 100644
--- a/i18n/po/fo.po
+++ b/i18n/po/fo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-02-28 16:15+0000\n"
 "Last-Translator: LiFo <Unknown>\n"
 "Language-Team: Faroese <fo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:45+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:47+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr "{0}: valmøguleiki ''{1}'' er tvítýddur"
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/fr.po b/i18n/po/fr.po
index 4b798bf..835b065 100644
--- a/i18n/po/fr.po
+++ b/i18n/po/fr.po
@@ -5,21 +5,27 @@ msgid ""
 msgstr ""
 "Project-Id-Version: fr\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-27 08:23+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-25 16:25+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Fr <>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:47+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:48+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: fr\n"
 "X-Poedit-Bookmarks: 1767,-1,-1,2669,-1,-1,-1,-1,-1,-1\n"
 
+msgid "Location"
+msgstr "Position"
+
+msgid "gas"
+msgstr "gaz"
+
 msgid "{0}: option ''{1}'' is ambiguous"
-msgstr "{0} : l’option ''{1}'' est ambigüe"
+msgstr "{0} : l’option « {1} » est ambigüe"
 
 msgid "{0}: option ''--{1}'' does not allow an argument"
 msgstr "{0} : l’option ''--{1}'' n’autorise pas d’argument"
@@ -65,13 +71,13 @@ msgid "Help"
 msgstr "Aide"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "Initialisation des données du périmètre"
 
 msgid "Initializing OSM API"
 msgstr "Initialisation de l’API OSM"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "Initialisation des données de trafic internes"
 
 msgid "Initializing validator"
 msgstr "Initialisation du validateur"
@@ -2706,7 +2712,7 @@ msgid "objects"
 msgstr "objets"
 
 msgid "all nodes"
-msgstr ""
+msgstr "tous les noeuds"
 
 msgid "all ways"
 msgstr "tous les chemins"
@@ -2781,7 +2787,7 @@ msgid "all incomplete objects"
 msgstr "tous les objets incomplets"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
-msgstr ""
+msgstr "tous les objets effacés (la case <b>{0}</b> doit être cochée)"
 
 msgid "related objects"
 msgstr "objets concernés"
@@ -3570,9 +3576,29 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr "Date des images: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Ces images sont marquées comme étant les meilleures pour cette région dans "
+"d’autres logiciels."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} serveur miroir {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} serveur miroir"
+
 msgid "Update default entries"
 msgstr "Mettre à jour les entrées par défaut"
 
+msgid "Update imagery ''{0}''"
+msgstr "Mise à jour des images « {0} »"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Radier les images anciennes « {0} »"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "La projection ''{0}'' est introuvable, le signet ''{1}'' n’est pas utilisable"
@@ -4375,13 +4401,13 @@ msgid "Multipolygon is not closed"
 msgstr "Le multipolygone n’est pas fermé"
 
 msgid "Multipolygon rings share node(s)"
-msgstr ""
+msgstr "Cercles de multipolygone partageant des nœuds"
 
 msgid "Intersection between multipolygon ways"
 msgstr "Intersection entre les chemins du multipolygone"
 
 msgid "Multipolygon rings are equal"
-msgstr ""
+msgstr "Cercles de multipolygone identiques"
 
 msgid "Role for ''{0}'' should be ''{1}''"
 msgstr "Le rôle de \"{0}\" devrait être \"{1}\""
@@ -4390,10 +4416,12 @@ msgid "Multipolygon inner way is outside"
 msgstr "Le chemin intérieur du multipolygone est à l’extérieur"
 
 msgid "Multipolygon ring contains segments twice"
-msgstr ""
+msgstr "Cercle de multipolygone contenant des segments répétés"
 
 msgid "Multipolygon outer way shares segment(s) with other ring"
 msgstr ""
+"Cercle externe de multipolygone partageant un/des segment(s) avec autres "
+"cercles"
 
 msgid "No useful role for multipolygon member"
 msgstr "Membre du multipolygone sans rôle utile"
@@ -4553,13 +4581,13 @@ msgid "Empty role type found when expecting one of ''{0}''"
 msgstr ""
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "Rôle \"{0}\" manquant"
 
 msgid "Number of ''{0}'' roles too low ({1})"
 msgstr ""
 
 msgid "Number of ''{0}'' roles too high ({1})"
-msgstr ""
+msgstr "Nimbre de \"{0}\" rôles sont trop haut ({1}-"
 
 msgid "Self-intersecting ways"
 msgstr "Chemins se coupant sur eux-mêmes"
@@ -5181,7 +5209,7 @@ msgid "Make sure you load some data if you use --selection."
 msgstr "Assurez-vous de charger des données si vous utilisez --selection."
 
 msgid "Log level is at {0} ({1}, {2})"
-msgstr ""
+msgstr "Le niveau de journalisation est à {0} ({1}, {2})"
 
 msgid "Plugin loading skipped"
 msgstr "Le chargement des greffons a été ignoré"
@@ -5976,6 +6004,8 @@ msgstr "Objet"
 
 msgid "Merged members not frozen yet. Cannot build resolution command"
 msgstr ""
+"Membres fusionnés non encore gelés. Impossible de construire une commande de "
+"résolution"
 
 msgid "<undefined>"
 msgstr "<non défini>"
@@ -7281,6 +7311,8 @@ msgid ""
 "Download the current version of the changed objects in the selected "
 "changesets"
 msgstr ""
+"Télécharger la version actuelle des objets modifiés dans les jeux de "
+"modifications sélectionnés"
 
 msgid "My changesets"
 msgstr "Mes groupes de modifications"
@@ -9437,10 +9469,12 @@ msgstr ""
 "sauvées)"
 
 msgid "Perform actions before restarting"
-msgstr ""
+msgstr "Effectuer les actions avant de redémarrer"
 
 msgid "Restart JOSM with saving. Unsaved changes are uploaded and/or saved."
 msgstr ""
+"Redémarrer JOSM en enregistrant. Les modifications non enregistrées sont "
+"téléchargées et/ou enregistrées."
 
 msgid "Perform actions before deleting"
 msgstr "Effectuer les actions avant de supprimer"
@@ -11769,6 +11803,7 @@ msgstr "Afficher l’ordre des segments"
 
 msgid "Draw segment order numbers on selected way"
 msgstr ""
+"Afficher les numéros de l’ordre des segment sur la ligne sélectionnée"
 
 msgid "Draw boundaries of downloaded data"
 msgstr "Afficher les limites des données téléchargées"
@@ -11918,7 +11953,7 @@ msgid "Track date"
 msgstr "La date"
 
 msgid "Heat Map (dark = few, bright = many)"
-msgstr ""
+msgstr "Carte de chaleur (sombre = peu, clair = beaucoup)"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Une seule couleur (personnalisable)"
@@ -11933,10 +11968,18 @@ msgid "Foot"
 msgstr "Piétons"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
 msgstr ""
 
 msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Feux de circulations"
+
+msgctxt "Heat map"
 msgid "Inferno"
 msgstr ""
 
@@ -11946,12 +11989,15 @@ msgstr ""
 
 msgctxt "Heat map"
 msgid "Wood"
-msgstr ""
+msgstr "Bois"
 
 msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr "Utiliser des points au lieu des lignes pour la carte de chaleur"
+
 msgid "Create markers when reading GPX"
 msgstr "Créer des marqueurs lors de la lecture de fichier GPX"
 
@@ -12041,6 +12087,8 @@ msgid ""
 "Apply dynamic alpha-blending and adjust width based on zoom level for all "
 "GPX lines."
 msgstr ""
+"Appliquer l’alpha-blending dynamique et ajuster la largeur en fonction du "
+"niveau de zoom pour toutes les lignes GPX."
 
 msgid ""
 "All points and track segments will have the same color. Can be customized in "
@@ -12073,11 +12121,29 @@ msgid "Allows to tune the track coloring for different average speeds."
 msgstr "Colorier les traces et les points en fonction du type de véhicule."
 
 msgid "Selects the color schema for heat map."
-msgstr ""
+msgstr "Sélectionne le schéma de couleurs pour la carte de chaleur."
 
 msgid "Track and Point Coloring"
 msgstr "Colorier les traces et les points selon :"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr "Limite inférieure de visibilité"
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Tracer toutes les traces GPX qui dépassent ce seuil."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"Le moteur de rendu utilise des points avec une erreur de position simulée au "
+"lieu des lignes. "
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Colorier les traces et les points en fonction des limites des données."
@@ -12165,7 +12231,7 @@ msgid ""
 msgstr ""
 
 msgid "Zoom steps to get double scale"
-msgstr ""
+msgstr "Crans de zoom pour doubler l’échelle"
 
 msgid ""
 "Higher value means more steps needed, therefore zoom steps will be smaller"
@@ -13383,10 +13449,10 @@ msgid "Checks for errors on relations"
 msgstr "Vérifier les erreurs sur les relations"
 
 msgid "Territories"
-msgstr ""
+msgstr "Territoires"
 
 msgid "Checks for territories-specific features"
-msgstr ""
+msgstr "Vérifie s’il y a des fonctionnalités propres aux territoires"
 
 msgid "Unnecessary tags"
 msgstr "Attributs inutiles"
@@ -13840,7 +13906,7 @@ msgid ""
 msgstr ""
 
 msgid "Adding certificate for TLS connections: {0}"
-msgstr ""
+msgstr "Ajout de certificat pour les connexions TLS: {0}"
 
 msgid "Failed to parse date ''{0}'' replied by server."
 msgstr "L’analyse de la date ''{0}'' renvoyée par le serveur a échoué."
@@ -14555,7 +14621,7 @@ msgid "Unexpected id 0 for osm primitive found"
 msgstr "Un identifiant 0 inattendu a été trouvé sur un objet OSM"
 
 msgid "Failed to evaluate {0}"
-msgstr ""
+msgstr "L''évaluation de {0} a échoué"
 
 msgid "Downloading data..."
 msgstr "Téléchargement des données..."
@@ -14751,6 +14817,7 @@ msgstr "Confirmer l’action du contrôle à distance"
 
 msgid "The following keys are mandatory, but have not been provided: {0}"
 msgstr ""
+"Les clés suivantes sont obligatoires mais n''ont pas été fournies: {0}"
 
 msgid ""
 "Remote Control has been asked to report its protocol version. This enables "
@@ -15095,7 +15162,7 @@ msgstr[0] "Le greffon ne sera pas chargé."
 msgstr[1] "Les greffons ne seront pas chargés."
 
 msgid "Determining plugins to load..."
-msgstr ""
+msgstr "Détermination des plugins à charger…"
 
 msgid "Removing deprecated plugins..."
 msgstr "Suppression des greffons dépréciés…"
@@ -15565,7 +15632,7 @@ msgstr ""
 "<html>Le serveur rapporte un conflit.<br>Message d’erreur :<br>{0}</html>"
 
 msgid "<html>The server reported that it has detected a conflict."
-msgstr ""
+msgstr "<html> Le serveur signale qu’il a détecté un conflit."
 
 msgid ""
 "<html>Failed to upload to changeset <strong>{0}</strong><br>because it has "
@@ -15825,7 +15892,7 @@ msgstr ""
 "''{2}''."
 
 msgid "Unknown territory id: {0}"
-msgstr ""
+msgstr "Identifiant de territoire inconnu: {0}"
 
 msgid "There was {0} tag found in the buffer, it is suspicious!"
 msgid_plural "There were {0} tags found in the buffer, it is suspicious!"
@@ -15980,7 +16047,7 @@ msgstr ""
 "de travailler."
 
 msgid "Include all stack traces."
-msgstr ""
+msgstr "Inclure toutes les traces d’appels."
 
 msgid "Your current version of JOSM is {0}"
 msgstr "Votre version actuelle de JOSM est la {0}"
@@ -16360,13 +16427,13 @@ msgid "OpenCycleMap"
 msgstr "OpenCycleMap"
 
 msgid "Thunderforest Landscape"
-msgstr ""
+msgstr "Thunderforest Landscape"
 
 msgid "OpenSeaMap"
 msgstr "OpenSeaMap"
 
 msgid "OpenStreetMap Carto (Standard)"
-msgstr ""
+msgstr "OpenStreetMap Carto (Standard)"
 
 msgid "OpenStreetMap (Standard Black & White)"
 msgstr "OpenStreetMap (Standard noir et blanc)"
@@ -16393,10 +16460,10 @@ msgid "skobbler"
 msgstr "skobbler"
 
 msgid "Stamen Terrain"
-msgstr ""
+msgstr "Stamen Terrain"
 
 msgid "Cambodia, Laos, Thailand, Vietnam, Myanmar bilingual"
-msgstr ""
+msgstr "Cambodge, Laos, Thaïlande, Vietnam, Myanmar bilingue"
 
 msgid "OpenPT Map (overlay)"
 msgstr "Surcouche OpenPT Map"
@@ -16561,13 +16628,13 @@ msgid "imagico.de OSM images for mapping: Rila and Pirin Mountains"
 msgstr ""
 
 msgid "AGIV Flanders most recent aerial imagery"
-msgstr ""
+msgstr "AGIV Flandres images les plus récentes"
 
 msgid "AGIV Flanders 2013-2015 aerial imagery 10cm"
-msgstr ""
+msgstr "AGIV Flandres images aériennes 2013-2015 10cm"
 
 msgid "AGIV Flanders GRB"
-msgstr ""
+msgstr "AGIV Flandres GRB"
 
 msgid "URBISfr numerical imagery (2013)"
 msgstr "Imagerie numérique URBISfr (2013)"
@@ -16590,6 +16657,9 @@ msgstr "Imagerie aérienne URBIS 2015"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "Imagerie numérique SPW(allonie) PICC"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW(allonie) images les plus récentes"
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "Imagerie aérienne SPW(allonie) 2015"
 
@@ -16624,10 +16694,10 @@ msgid "IBGE Distrito Federal"
 msgstr ""
 
 msgid "Rio Mosaic 2013"
-msgstr ""
+msgstr "Mosaïque Rio 2013"
 
 msgid "Rio Mosaic 2015"
-msgstr ""
+msgstr "Mosaïque Rio 2015"
 
 msgid "Londrina Ortofoto 2011"
 msgstr ""
@@ -16861,9 +16931,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas : Carte topographique 1:10000"
 
@@ -16879,6 +16946,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr "Carte topographique de la Saxe"
+
+msgid "Saxony digital terrain model"
+msgstr "Modèle digitale du terrain de la Saxe"
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16914,10 +17005,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Imagerie drone (Haïti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Imagerie drone 2014 (Haïti)"
 
@@ -17068,8 +17155,11 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuanie)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr "geoportail.lu toutes les couches"
+
+msgid "geoportail.lu ortho 2016"
+msgstr "geoportail.lu ortho 2016"
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Chemin de fer"
@@ -17083,6 +17173,12 @@ msgstr "Luxembourg Inspire Eau"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta du Niger Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17375,7 +17471,7 @@ msgid "Stadt Bern 10cm/25cm (2012)"
 msgstr "Ville de Berne 10cm/25cm (2012)"
 
 msgid "Stadt Bern 10cm (2016)"
-msgstr ""
+msgstr "Stadt Bern 10cm (2016)"
 
 msgid "HEIG-VD / Orthophoto Yverdon-les-Bains 25cm (2007)"
 msgstr "HEIG-VD / Orthophoto Yverdon-les-Bains 25 cm (2007)"
@@ -17402,13 +17498,13 @@ msgid "Kanton Basel-Stadt 2015"
 msgstr ""
 
 msgid "Kanton Basel-Landschaft 10cm (2015)"
-msgstr ""
+msgstr "Kanton Basel-Landschaft 10cm (2015)"
 
 msgid "imagico.de OSM images for mapping: Cental Alps in late September 2016"
 msgstr ""
 
 msgid "Taiwan e-Map Open Data"
-msgstr ""
+msgstr "Taïwan e-Map Données Ouvertes"
 
 msgid "Taiwan e-Map Open Data (with Contour Line)"
 msgstr ""
@@ -17620,6 +17716,9 @@ msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 "OS Plans de ville, Édimbourg 1893-1894 (Bibliothèque nationale d''Écosse)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "Plans de ville Ordnance Survey, Elgin 1868 (NLS)"
 
@@ -17820,6 +17919,8 @@ msgid ""
 "Allows the user to correct angle of buildings to 90 degrees, and aligns all "
 "loaded buildings to nearest road."
 msgstr ""
+"Permet à l’utilisateur de corriger l’angle des bâtiments à 90 degrés, et "
+"aligne tous les bâtiments chargés à la route la plus proche."
 
 msgid "Tools for drawing buildings."
 msgstr "Outils pour dessiner des bâtiments."
@@ -17873,7 +17974,7 @@ msgid "Create a grid of ways."
 msgstr "Crée un réseau de chemins."
 
 msgid "Customization of public public transport stops."
-msgstr ""
+msgstr "Personnalisation des arrêts des transports publics."
 
 msgid ""
 "Creating and handling address nodes and buildings within Czech Republic."
@@ -17899,7 +18000,7 @@ msgid "Downloads OSM data along a way"
 msgstr "Télécharge les données OSM le long d’un chemin"
 
 msgid "Dxf Import"
-msgstr ""
+msgstr "Import Dxf"
 
 msgid ""
 "Allows the user to anonymize timestamps and delete parts of huge GPX tracks "
@@ -17984,6 +18085,7 @@ msgstr ""
 
 msgid "Export tiles from the imagery layer cache into the file system."
 msgstr ""
+"Export des tuiles du cache des couches d’images vers le système de fichiers."
 
 msgid ""
 "Database of imagery offsets: share and aquire imagery offsets with one "
@@ -18055,7 +18157,7 @@ msgstr ""
 "d’une jonction ou cherche des jonctions dans un sous-ensemble de canaux"
 
 msgid "Tools to help import Kartverket N50"
-msgstr ""
+msgstr "Outils d’aide à l’importation du Kartverket N50"
 
 msgid "Helps vectorizing WMS images."
 msgstr "Aide à vectoriser des images WMS."
@@ -18127,7 +18229,7 @@ msgstr ""
 "et est difficile à retirer)"
 
 msgid "Import OSM data in o5m format"
-msgstr ""
+msgstr "Import des données OSM au format o5m"
 
 msgid "Convert data from Open Data portals to OSM layer"
 msgstr ""
@@ -18264,6 +18366,8 @@ msgstr "Éditer les fonctionnalités des cartes nautiques"
 msgid ""
 "Gives user more tools that facilitate aligning and rotation of buildings."
 msgstr ""
+"Donne à l’utilisateur plus d’outils qui facilitent l’alignement et la "
+"rotation des bâtiments."
 
 msgid ""
 "Simplify area by removing nodes on very obtuse angles. This can be "
@@ -18305,6 +18409,10 @@ msgid ""
 "of tagging presets (quick preview of the dialog that will popup). You can "
 "start the jar-file as standalone as well."
 msgstr ""
+"Ajoute un testeur de préréglage de marquage au menu Fenètre, ce qui assiste "
+"le développement des préréglages de marquage (aperçu rapide de la boîte de "
+"dialogue qui apparaîtra). Vous pouvez également démarrer le fichier jar de "
+"façon autonome."
 
 msgid "Make terraced houses out of single blocks."
 msgstr "Créer des maisons mitoyennes depuis des blocs entiers."
@@ -18313,6 +18421,8 @@ msgid ""
 "Adds a todo list dialog that makes it easy to go through large lists of "
 "objects"
 msgstr ""
+"Ajoute dans un dialogue une liste de tâches qui facilite le traitement de "
+"grandes listes d’objets"
 
 msgid ""
 "Integrate to-fix http://osmlab.github.io/to-fix/ into JOSM to repair errors "
@@ -18347,7 +18457,7 @@ msgid "Plugin to digital sign OSM-Data"
 msgstr "Permet de signer numériquement les données OSM."
 
 msgid "Editor to add turn lanes tags in highways"
-msgstr ""
+msgstr "Éditeur pour ajouter des voies de bifurcation aux routes"
 
 msgid ""
 "Provides a straightforward GUI for adding, editing and deleting turn lanes."
@@ -19302,9 +19412,6 @@ msgstr "Nombre de câbles"
 msgid "Amount of circuits"
 msgstr "Somme des circuits"
 
-msgid "Location"
-msgstr "Commune"
-
 msgctxt "power"
 msgid "outdoor"
 msgstr "extérieur"
@@ -19412,9 +19519,6 @@ msgstr "Substance"
 msgid "water"
 msgstr "eau"
 
-msgid "gas"
-msgstr "turbine à gaz"
-
 msgid "heat"
 msgstr "chaleur"
 
@@ -20599,7 +20703,7 @@ msgid "lock"
 msgstr ""
 
 msgid "wastewater"
-msgstr ""
+msgstr "Eau usée"
 
 msgid "Salt Water"
 msgstr "Eau salée"
@@ -21173,19 +21277,19 @@ msgid "CHAdeMO"
 msgstr "CHAdeMO"
 
 msgid "Tesla Supercharger"
-msgstr ""
+msgstr "Superchargeur Tesla"
 
 msgid "Schuko"
 msgstr "Schuko"
 
 msgid "CEE blue"
-msgstr ""
+msgstr "CEE bleu"
 
 msgid "CEE red 16A"
-msgstr ""
+msgstr "CEE rouge 16A"
 
 msgid "CEE red 32A"
-msgstr ""
+msgstr "CEE rouge 32A"
 
 msgid "NEMA 5-15"
 msgstr "NEMA 5-15"
@@ -22198,7 +22302,7 @@ msgid "Point Name"
 msgstr "Nom du point"
 
 msgid "Emergency Phone Number"
-msgstr ""
+msgstr "Numéro de téléphone d’urgence"
 
 msgid "(Use number as shown on plate.)"
 msgstr ""
@@ -22443,6 +22547,9 @@ msgstr "Billets"
 msgid "Telephone cards"
 msgstr "Cartes téléphoniques"
 
+msgid "Internet Cafe"
+msgstr "Cybercafé"
+
 msgid "Internet Access"
 msgstr "Accès Internet"
 
@@ -22488,6 +22595,9 @@ msgstr "Affiche la pression barométrique"
 msgid "Shows humidity"
 msgstr "Affiche l’humidité"
 
+msgid "Photo booth"
+msgstr "Cabine photographique"
+
 msgid "Recycling Container"
 msgstr "Conteneur pour recyclage"
 
@@ -24414,6 +24524,21 @@ msgstr "Patrimoine"
 msgid "Castle"
 msgstr "Château"
 
+msgid "stately"
+msgstr "seigneurial"
+
+msgid "defensive"
+msgstr "défensif"
+
+msgid "fortress"
+msgstr "forteresse"
+
+msgid "manor"
+msgstr "manoir"
+
+msgid "palace"
+msgstr "palais"
+
 msgid "Archaeological Site"
 msgstr "Site archéologique"
 
@@ -24774,6 +24899,9 @@ msgstr "chambres à air"
 msgid "cigarettes"
 msgstr "cigarettes"
 
+msgid "coffee"
+msgstr "café"
+
 msgid "condoms"
 msgstr "préservatifs"
 
@@ -24807,9 +24935,6 @@ msgstr ""
 msgid "photos"
 msgstr "photos"
 
-msgid "public_transport_plans"
-msgstr "schéma de transport public"
-
 msgid "public_transport_tickets"
 msgstr "tickets de transport public"
 
@@ -25397,13 +25522,13 @@ msgid "Scree"
 msgstr "Éboulis"
 
 msgid "An accumulation of loose angular rocks."
-msgstr ""
+msgstr "Accumulation en vrac de roches anguleuses."
 
 msgid "Shingle"
 msgstr "Galet"
 
 msgid "An accumulation of loose rounded rocks on a beach or riverbed."
-msgstr ""
+msgstr "Galets ronds accumulés en vrac sur une plage ou un lit de rivière"
 
 msgid "Fell"
 msgstr "Talus"
@@ -26090,10 +26215,10 @@ msgid "Bicycle Route"
 msgstr "Itinéraire cycliste"
 
 msgid "national"
-msgstr ""
+msgstr "national"
 
 msgid "local"
-msgstr ""
+msgstr "local"
 
 msgid "Mountain Biking Route"
 msgstr "Itinéraire de vélo tout-terrain (VTT)"
@@ -26296,6 +26421,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Essai"
 
+msgid "View website"
+msgstr "Voir le site web"
+
+msgid "View URL"
+msgstr "Voir l’URL"
+
+msgid "Send Email"
+msgstr "Envoyer un courriel"
+
+msgid "View image"
+msgstr "Afficher l’image"
+
+msgid "View %name% article"
+msgstr "Voir l’article %name%"
+
+msgid "View Wikidata page"
+msgstr "Voir la page Wikidata"
+
+msgid "View UNESCO sheet"
+msgstr "Afficher la fiche UNESCO"
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr "Voir la fiche Mérimée du monument"
+
+msgid "View Mérimée list for this municipality"
+msgstr "Voir la liste Mérimée pour cette municipalité"
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Numéro de rue pair dans une interpolation d''adresses impaires."
 
@@ -26318,7 +26536,7 @@ msgid "{0} without {1}"
 msgstr "{0} sans {1}"
 
 msgid "missing tag"
-msgstr ""
+msgstr "attribut manquant"
 
 msgid "{0} without {1} or {2}"
 msgstr "{0} sans {1} ou {2}"
@@ -26330,7 +26548,7 @@ msgid "{0} together with {1}"
 msgstr "{0} combiné à {1}"
 
 msgid "suspicious tag combination"
-msgstr ""
+msgstr "combinaison suspecte d’attributs"
 
 msgid "two objects, one with {0} and one with {1} + {2} + {3}"
 msgstr ""
@@ -27485,18 +27703,6 @@ msgstr "Zoomer sur l’image sélectionnée"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zoomer sur l’image Mapillary actuellement sélectionnée"
 
-msgid "View in website"
-msgstr "Voir sur le site"
-
-msgid "Copy key"
-msgstr "Copier la clé"
-
-msgid "Copy key tag"
-msgstr "Copier l’attribut de la clé"
-
-msgid "Edit on website"
-msgstr "Éditer sur le site web"
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27661,12 +27867,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Connexion"
-
-msgid "Logout"
-msgstr "Déconnexion"
-
 msgid "Download mode"
 msgstr "Mode téléchargement"
 
@@ -27676,6 +27876,12 @@ msgstr "Vous êtes connecté en tant que ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Vous n''êtes pas identifié."
 
+msgid "Login"
+msgstr "Connexion"
+
+msgid "Logout"
+msgstr "Déconnexion"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Ouvrez les paramètres et connectez-vous à Mapillary avant de réaliser un "
@@ -27696,6 +27902,62 @@ msgstr "Suivre l''image sélectionnée"
 msgid "Go forward"
 msgstr "Avancer"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} photo effacée"
@@ -32233,8 +32495,8 @@ msgstr "Le chargement du fichier a échoué : {0}"
 msgid "Problem occurred"
 msgstr "Un problème est survenu"
 
-msgid "Load World File Calibration..."
-msgstr "Chargement du fichier de calibrage mondial..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Charge les données de calibrage depuis un fichier mondial"
@@ -32257,6 +32519,12 @@ msgstr "Enregistre l’étalonnage des données dans un fichier"
 msgid "Saving file failed: {0}"
 msgstr "L’enregistrement du fichier a échoué : {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nouveau calque depuis le presse-papier"
 
@@ -33039,7 +33307,7 @@ msgid "Complete multipolygon for way {0}"
 msgstr "Compléter le multipolygone pour le chemin {0}"
 
 msgid "Two rings are equal, and this must not be."
-msgstr ""
+msgstr "Deux cercles sont identiques, ce qui n’est pas admis."
 
 msgid "Multipolygon from rings"
 msgstr ""
@@ -34410,13 +34678,13 @@ msgid "Both way"
 msgstr ""
 
 msgid "Number of lanes"
-msgstr ""
+msgstr "Nombre de voies"
 
 msgid "Directional"
 msgstr ""
 
 msgid "Turn lanes"
-msgstr ""
+msgstr "Voies de bifurcation"
 
 msgid "No such lane."
 msgstr "Voie de circulation inexistante."
@@ -35978,6 +36246,3 @@ msgstr "En voiture !"
 
 msgid "Drive a race car on this layer"
 msgstr "Conduire une voiture de course sur ce calque"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/ga.po b/i18n/po/ga.po
index f20b923..b1f2da6 100644
--- a/i18n/po/ga.po
+++ b/i18n/po/ga.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-05-17 11:43+0000\n"
 "Last-Translator: Thorsten <Unknown>\n"
 "Language-Team: Irish <ga at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:49+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:50+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/gl.po b/i18n/po/gl.po
index e45e355..56e8127 100644
--- a/i18n/po/gl.po
+++ b/i18n/po/gl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-01-01 15:11+0000\n"
 "Last-Translator: Marcos Lans <Unknown>\n"
 "Language-Team: Galician <proxecto at trasno.net>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:50+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:51+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: gl\n"
 "X-Poedit-Language: Galician\n"
 
@@ -3442,9 +3442,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -11233,7 +11251,15 @@ msgid "Foot"
 msgstr "Pé"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11252,6 +11278,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11377,6 +11406,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Coloreado de camiños e puntos"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15407,6 +15452,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15674,9 +15722,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15692,6 +15737,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15727,10 +15796,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15881,7 +15946,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15896,6 +15964,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16430,6 +16504,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21096,6 +21173,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Tarxetas telefónicas"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -21141,6 +21221,9 @@ msgstr "Amosar a presión atmosférica"
 msgid "Shows humidity"
 msgstr "Amosar humidade"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -23065,6 +23148,21 @@ msgstr "Lugares históricos"
 msgid "Castle"
 msgstr "Castelo"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Lugar arqueolóxico"
 
@@ -23420,6 +23518,9 @@ msgstr "tubo_de_bicicleta"
 msgid "cigarettes"
 msgstr "estanco"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "gomas do pito"
 
@@ -23453,9 +23554,6 @@ msgstr ""
 msgid "photos"
 msgstr "Fotos"
 
-msgid "public_transport_plans"
-msgstr "Bonos de transporte público"
-
 msgid "public_transport_tickets"
 msgstr "Billetes de transporte público"
 
@@ -24918,6 +25016,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Proba"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26028,18 +26219,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26202,19 +26381,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -26235,6 +26414,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30389,7 +30624,7 @@ msgstr "Produciuse un fallo ao cargar o ficheiro: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30413,6 +30648,12 @@ msgstr "Gardar os datos de calibración a un ficheiro"
 msgid "Saving file failed: {0}"
 msgstr "O gardado do ficheiro fallou: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nova capa de imaxe do portapapéis"
 
diff --git a/i18n/po/he.po b/i18n/po/he.po
index c751fd8..84ca466 100644
--- a/i18n/po/he.po
+++ b/i18n/po/he.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2013-03-30 13:38+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Hebrew <he at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:52+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:53+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: he\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3268,9 +3268,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "מזרח"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10853,7 +10871,15 @@ msgid "Foot"
 msgstr "רגל"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10872,6 +10898,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10982,6 +11011,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14926,6 +14971,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15193,9 +15241,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15211,6 +15256,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15246,10 +15315,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15400,7 +15465,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15415,6 +15483,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15949,6 +16023,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20582,6 +20659,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "כרטיסי טלפון"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20627,6 +20707,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22551,6 +22634,21 @@ msgstr "מקומות היסטורים"
 msgid "Castle"
 msgstr "טירה"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "אתר ארכיאולוגי"
 
@@ -22906,6 +23004,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "סיגריות"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "קונדומים"
 
@@ -22939,9 +23040,6 @@ msgstr ""
 msgid "photos"
 msgstr "תמונות"
 
-msgid "public_transport_plans"
-msgstr "מפות תחבורה ציבורית"
-
 msgid "public_transport_tickets"
 msgstr "כרטיסים לתחבורה ציבורית"
 
@@ -24404,6 +24502,99 @@ msgstr "מחנאות"
 msgid "Test"
 msgstr "ניסיון"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25514,18 +25705,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25688,19 +25867,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25721,6 +25900,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29852,7 +30087,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29876,6 +30111,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/hi.po b/i18n/po/hi.po
index d5e7511..5595763 100644
--- a/i18n/po/hi.po
+++ b/i18n/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-11-14 16:28+0000\n"
 "Last-Translator: nipunreddevil <nipunreddevil at gmail.com>\n"
 "Language-Team: Hindi <hi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:52+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:53+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: hi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/hr.po b/i18n/po/hr.po
index edf71cd..1a3edc2 100644
--- a/i18n/po/hr.po
+++ b/i18n/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-01-04 15:56+0000\n"
 "Last-Translator: gogo <trebelnik2 at gmail.com>\n"
 "Language-Team: Croatian <hr at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:11+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:13+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: hr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3360,9 +3360,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10966,7 +10984,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10985,6 +11011,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11095,6 +11124,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15035,6 +15080,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15302,9 +15350,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15320,6 +15365,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15355,10 +15424,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15509,7 +15574,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15524,6 +15592,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16058,6 +16132,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20691,6 +20768,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20736,6 +20816,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22660,6 +22743,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -23015,6 +23113,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -23048,9 +23149,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24513,6 +24611,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25623,18 +25814,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25797,19 +25976,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25830,6 +26009,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29961,7 +30196,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29985,6 +30220,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ht.po b/i18n/po/ht.po
index 678418f..67f5bae 100644
--- a/i18n/po/ht.po
+++ b/i18n/po/ht.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2010-03-11 21:17+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Haitian; Haitian Creole <ht at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:51+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:52+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/hu.po b/i18n/po/hu.po
index 06775e8..3e8b827 100644
--- a/i18n/po/hu.po
+++ b/i18n/po/hu.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-10-07 10:56+0000\n"
-"Last-Translator: AndreasTUHU <poggyasz at gmail.com>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-22 23:11+0000\n"
+"Last-Translator: Báthory Péter <bathory86p at gmail.com>\n"
 "Language-Team: Hungarian <kde-l10n-hu at kde.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:53+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:54+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: hu\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -67,13 +67,13 @@ msgid "Help"
 msgstr "Súgó"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "Határvonal adatok inicializálása"
 
 msgid "Initializing OSM API"
 msgstr "OSM API előkészítése"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "Belső forgalmi adatok inicializálása"
 
 msgid "Initializing validator"
 msgstr "Ellenőrző előkészítése"
@@ -2692,7 +2692,7 @@ msgid "objects"
 msgstr "objektumok"
 
 msgid "all nodes"
-msgstr ""
+msgstr "összes pont"
 
 msgid "all ways"
 msgstr "minden vonal"
@@ -2765,6 +2765,7 @@ msgstr "minden félkész objektum"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
 msgstr ""
+"összes törölt objektum (<b>{0}</b> jelölőnégyzetet engedélyzeni kell)"
 
 msgid "related objects"
 msgstr "kapcsolódó objektumok"
@@ -3537,9 +3538,28 @@ msgctxt "compass"
 msgid "E"
 msgstr "K"
 
+msgid "Date of imagery: {0}"
+msgstr "Légifelvétel dátuma: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Ezt a légifelvételt a régióban a legjobbnak jelölték más szerkesztőkben."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} tükörszerver {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} tükörszerver"
+
 msgid "Update default entries"
 msgstr "Alapértelmezett bejegyzések frissítése"
 
+msgid "Update imagery ''{0}''"
+msgstr "„{0}” légifelvétel frissítése"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "„{0}” régi légifelvétel elvetése"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "''{0}'' vetület nem található, ''{1}'' könyvjelző nem használható"
 
@@ -3569,7 +3589,7 @@ msgid "Projection"
 msgstr "Vetület"
 
 msgid "Matrix set identifier"
-msgstr ""
+msgstr "Mátrix halmaz azonosító"
 
 msgid "No layers defined by getCapabilities document: {0}"
 msgstr "A getCapabilities dokumentum nem definiált rétegeket: {0}"
@@ -4098,10 +4118,10 @@ msgid "Crossing barriers"
 msgstr "Keresztező akadályok"
 
 msgid "Self crossing"
-msgstr ""
+msgstr "Önmagát metsző"
 
 msgid "Self-crossing ways"
-msgstr ""
+msgstr "Önmagukat metsző vonalak"
 
 msgid ""
 "This test checks if two roads, railways, waterways or buildings crosses in "
@@ -4321,13 +4341,13 @@ msgid "Multipolygon is not closed"
 msgstr "A multipoligon nem zárt"
 
 msgid "Multipolygon rings share node(s)"
-msgstr ""
+msgstr "A multipoligon gyűrűknek közös pontja(i) van(nak)"
 
 msgid "Intersection between multipolygon ways"
 msgstr "Multipoligon vonalak keresztezik egymást"
 
 msgid "Multipolygon rings are equal"
-msgstr ""
+msgstr "A multipoligon gyűrűk megegyeznek"
 
 msgid "Role for ''{0}'' should be ''{1}''"
 msgstr "''{0}'' szerepe ''{1}'' kéne legyen"
@@ -4336,10 +4356,11 @@ msgid "Multipolygon inner way is outside"
 msgstr "A multipoligon belső vonala kívül van"
 
 msgid "Multipolygon ring contains segments twice"
-msgstr ""
+msgstr "A multipoligon gyűrű egy szakaszt kétszer tartalmaz"
 
 msgid "Multipolygon outer way shares segment(s) with other ring"
 msgstr ""
+"A multipoligon külső vonalának közös pontja(i) van(nak) más gyűrűkkel"
 
 msgid "No useful role for multipolygon member"
 msgstr "Nincs használható szerepe a multipoligon tagnak"
@@ -4348,10 +4369,10 @@ msgid "Non-Way in multipolygon"
 msgstr "Nem-vonal a multipoligonban"
 
 msgid "Multipolygon member(s) repeated with different role"
-msgstr ""
+msgstr "A multipoligon tagja(i) ismétlődnek eltérő szereppel"
 
 msgid "Multipolygon member(s) repeated with same role"
-msgstr ""
+msgstr "A multipoligon tagja(i) ismétlődnek azonos szereppel"
 
 msgid "Missing name:* translation"
 msgstr "Hiányzó name:* fordítás"
@@ -4483,29 +4504,33 @@ msgstr "Üres kapcsolat"
 msgid ""
 "Role of relation member does not match expression ''{0}'' in template {1}"
 msgstr ""
+"A kapcsolat tag szerepe nem illeszkedik a(z) „{0}” kifejezésre a(z) {1} "
+"sablonban"
 
 msgid ""
 "Type ''{0}'' of relation member with role ''{1}'' does not match accepted "
 "types ''{2}'' in template {3}"
 msgstr ""
+"A(z)  „{1}” szerepű kapcsolat tag „{0}” típusa nem felel meg az elfogadott "
+"típusoknak: „{2}” a(z) {3} sablonban"
 
 msgid "<empty>"
 msgstr "<üres>"
 
 msgid "Role ''{0}'' unknown in templates ''{1}''"
-msgstr ""
+msgstr "„{0}” szerep ismeretlen a(z) „{1}” sablonban"
 
 msgid "Empty role type found when expecting one of ''{0}''"
-msgstr ""
+msgstr "Üres szerep, miközben ezek egyike kéne legyen: „{0}”"
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "„{0}” szerep hiányzik"
 
 msgid "Number of ''{0}'' roles too low ({1})"
-msgstr ""
+msgstr "„{0}” szerepek száma túl alacsony ({1})"
 
 msgid "Number of ''{0}'' roles too high ({1})"
-msgstr ""
+msgstr "„{0}” szerepek száma túl magas ({1})"
 
 msgid "Self-intersecting ways"
 msgstr "Önmagát metsző vonal"
@@ -5058,7 +5083,7 @@ msgid "options provided as Java system properties"
 msgstr "Java rendszerbeállítások által nyújtott kapcsolók"
 
 msgid "Change the JOSM directory name"
-msgstr ""
+msgstr "Módosítsd a JOSM könyvtár nevét"
 
 msgid "/PATH/TO/JOSM/PREF    "
 msgstr "/PATH/TO/JOSM/PREF    "
@@ -5067,7 +5092,7 @@ msgid "Set the preferences directory"
 msgstr "Beállítások könyvtár beállítása"
 
 msgid "Default: {0}"
-msgstr ""
+msgstr "Alapértelmezett: {0}"
 
 msgid "/PATH/TO/JOSM/USERDATA"
 msgstr "/PATH/TO/JOSM/USERDATA"
@@ -5088,6 +5113,8 @@ msgid ""
 "Set the preferences+data+cache directory (cache directory will be "
 "josm.home/cache)"
 msgstr ""
+"Beállítások+adatok+gyorsítótár könyvtárak beállítása (a gyorsítótár a "
+"josm.home/cache lesz)"
 
 msgid ""
 "-Djosm.home has lower precedence, i.e. the specific setting overrides the "
@@ -5904,6 +5931,8 @@ msgstr "Elem"
 
 msgid "Merged members not frozen yet. Cannot build resolution command"
 msgstr ""
+"Az egyesített tagok még nincsenek fagyasztva. Nem lehet futtatni a megoldás "
+"műveletet"
 
 msgid "<undefined>"
 msgstr "<nincs megadva>"
@@ -7191,12 +7220,14 @@ msgid "Download the content of the selected changesets from the server"
 msgstr "A kiválasztott módosításcsomagok adatainak letöltése a szerverről"
 
 msgid "Download changed objects"
-msgstr ""
+msgstr "Módosított objektumok letöltése"
 
 msgid ""
 "Download the current version of the changed objects in the selected "
 "changesets"
 msgstr ""
+"A kiválasztott módosításcsomagok módosított objektumainak jelenlegi "
+"változatának letöltése"
 
 msgid "My changesets"
 msgstr "Saját módosításcsomagjaim"
@@ -8855,7 +8886,7 @@ msgid "B"
 msgstr "B"
 
 msgid "Editor"
-msgstr ""
+msgstr "Szerkesztő"
 
 msgid ""
 "Failed to update primitive with id {0} because current edit layer is null"
@@ -9244,7 +9275,7 @@ msgid "Unsaved changes - Save/Upload before deleting?"
 msgstr "Elmentetlen változtatások - Mented/feltöltöd törlés előtt?"
 
 msgid "Unsaved changes - Save/Upload before restarting?"
-msgstr ""
+msgstr "Elmentetlen módosítások – Mented/feltöltöd az újraindítás előtt?"
 
 msgid "Uploading and saving modified layers ..."
 msgstr "Módosított rétegek feltöltés és mentése ..."
@@ -9314,10 +9345,11 @@ msgid "Exit JOSM without saving. Unsaved changes are lost."
 msgstr "Kilépés mentés nélkül. A mentetlen adatok levesznek."
 
 msgid "Restart now!"
-msgstr ""
+msgstr "Újraindítás most!"
 
 msgid "Restart JOSM without saving. Unsaved changes are lost."
 msgstr ""
+"JOSM újraindítása mentés nélkül. Az elmentetlen módosítások el fognak veszni."
 
 msgid "Delete now!"
 msgstr "Törlés most!"
@@ -9334,10 +9366,12 @@ msgstr ""
 "lesznek mentve."
 
 msgid "Perform actions before restarting"
-msgstr ""
+msgstr "Műveletek elvégzése újraindítás előtt"
 
 msgid "Restart JOSM with saving. Unsaved changes are uploaded and/or saved."
 msgstr ""
+"JOSM újraindítása mentéssel. Az elmentetlen módosítások fel lesznek töltve, "
+"vagy el lesznek mentve."
 
 msgid "Perform actions before deleting"
 msgstr "Műveletek végrehajtása törlés előtt"
@@ -11638,7 +11672,7 @@ msgid "Draw segment order numbers"
 msgstr "Szakaszsorrend számok rajzolása"
 
 msgid "Draw segment order numbers on selected way"
-msgstr ""
+msgstr "Szakaszsorrend számok rajzolása a kiválasztott vonalra"
 
 msgid "Draw boundaries of downloaded data"
 msgstr "A letöltött adatok határvonalának kirajzolása"
@@ -11788,7 +11822,7 @@ msgid "Track date"
 msgstr "Nyomvonal dátuma"
 
 msgid "Heat Map (dark = few, bright = many)"
-msgstr ""
+msgstr "Hőtérkép (sötét = kevés, világos = sok)"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Egyszínű (testre szabható az egyes rétegekhez)"
@@ -11803,24 +11837,35 @@ msgid "Foot"
 msgstr "Gyalogos"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr ""
+msgid "User Normal"
+msgstr "Felhasználó Normál"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Felhasználó Világos"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Jelzőlámpa"
 
 msgctxt "Heat map"
 msgid "Inferno"
-msgstr ""
+msgstr "Infernó"
 
 msgctxt "Heat map"
 msgid "Viridis"
-msgstr ""
+msgstr "Rügy"
 
 msgctxt "Heat map"
 msgid "Wood"
-msgstr ""
+msgstr "Fa"
 
 msgctxt "Heat map"
 msgid "Heat"
-msgstr ""
+msgstr "Hő"
+
+msgid "Use points instead of lines for heat map"
+msgstr "Vonalak helyett pontok megjelenítése a hőtérképen"
 
 msgid "Create markers when reading GPX"
 msgstr "Helyjelzők készítése a GPS olvasásakor"
@@ -11835,7 +11880,7 @@ msgid "Smooth GPX graphics (antialiasing)"
 msgstr "Sima GPX grafika (antialias)"
 
 msgid "Draw with Opacity (alpha blending) "
-msgstr ""
+msgstr "Rajzolás átlátszósággal (alfa csatorna) "
 
 msgid ""
 "Automatically make a marker layer from any waypoints when opening a GPX "
@@ -11912,6 +11957,8 @@ msgid ""
 "Apply dynamic alpha-blending and adjust width based on zoom level for all "
 "GPX lines."
 msgstr ""
+"Dinamikus átlátszóság alkalmazása és vonalvastagság szabályzása zoomszint "
+"alapján az összes GPX vonalra."
 
 msgid ""
 "All points and track segments will have the same color. Can be customized in "
@@ -11944,11 +11991,28 @@ msgid "Allows to tune the track coloring for different average speeds."
 msgstr "Lehetővé teszi a színezés hangolását különböző sebességekhez."
 
 msgid "Selects the color schema for heat map."
-msgstr ""
+msgstr "Kiválasztja a hőtérkép színösszeállítását"
 
 msgid "Track and Point Coloring"
 msgstr "Nyomvonal és pontok színezése"
 
+msgid "Overlay gain adjustment"
+msgstr "Rátét erősítés szabályzás"
+
+msgid "Lower limit of visibility"
+msgstr "Láthatóság alsó határa"
+
+msgid "Adjust the gain of overlay blending."
+msgstr "A rátét keverésének erősítését szabályozza"
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Az összes, küszöbértéket elérő GPX nyomvonal kirajzolása"
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"A rajzolómotor pozíciós hibát szimuláló pontokat használ vonalak helyett. "
+
 msgid "Colors points and track segments by data limits."
 msgstr "Pontok és útszakaszok színezése adathatárok alapján."
 
@@ -13251,10 +13315,10 @@ msgid "Checks for errors on relations"
 msgstr "Kapcsolatok hibáinak keresése"
 
 msgid "Territories"
-msgstr ""
+msgstr "Területek"
 
 msgid "Checks for territories-specific features"
-msgstr ""
+msgstr "Területspecifikus elemek ellenőrzései"
 
 msgid "Unnecessary tags"
 msgstr "Fölösleges tagok"
@@ -14647,6 +14711,7 @@ msgstr ""
 msgid ""
 "Version ''{0}'' of meta data for note layer is not supported. Expected: 0.1"
 msgstr ""
+"A jegyzet réteg metaadatainak „{0}” verziója nem támogatott. Várt verzió: 0.1"
 
 msgid ""
 "Version ''{0}'' of meta data for osm data layer is not supported. Expected: "
@@ -15634,7 +15699,7 @@ msgstr ""
 "''{2}''-re."
 
 msgid "Unknown territory id: {0}"
-msgstr ""
+msgstr "Ismeretlen terület azonosító: {0}"
 
 msgid "There was {0} tag found in the buffer, it is suspicious!"
 msgid_plural "There were {0} tags found in the buffer, it is suspicious!"
@@ -16161,16 +16226,16 @@ msgid "OpenCycleMap"
 msgstr "OpenCycleMap"
 
 msgid "Thunderforest Landscape"
-msgstr ""
+msgstr "Thunderforest Táj"
 
 msgid "OpenSeaMap"
 msgstr "OpenSeaMap"
 
 msgid "OpenStreetMap Carto (Standard)"
-msgstr ""
+msgstr "OpenStreetMap Carto (Alapértelmezett)"
 
 msgid "OpenStreetMap (Standard Black & White)"
-msgstr ""
+msgstr "OpenStreetMap (Alapértelmezett fekete-fehér)"
 
 msgid "OpenStreetMap (Mapnik, no labels)"
 msgstr "OpenStreetMap (Mapnik, felirat nélkül)"
@@ -16194,10 +16259,10 @@ msgid "skobbler"
 msgstr "skobbler"
 
 msgid "Stamen Terrain"
-msgstr ""
+msgstr "Stamen Terep"
 
 msgid "Cambodia, Laos, Thailand, Vietnam, Myanmar bilingual"
-msgstr ""
+msgstr "Kambodzsa, Laosz, Thaiföld, Vietnam, Mianmar kétnyelvű"
 
 msgid "OpenPT Map (overlay)"
 msgstr "OpenPT map (fedettség)"
@@ -16248,7 +16313,7 @@ msgid "OSM Inspector: Highways"
 msgstr "OSM Inspector: utak"
 
 msgid "OSM Inspector: Area"
-msgstr ""
+msgstr "OSM Inspector: Terület"
 
 msgid "OSM Inspector: Routing"
 msgstr "OSM Inspector: útvonaltervezés"
@@ -16257,22 +16322,22 @@ msgid "OSM Inspector: Addresses"
 msgstr "OSM Inspector: lakcímek"
 
 msgid "OSM Inspector: Coastline (EU)"
-msgstr ""
+msgstr "OSM Inspector: Partvonal (EU)"
 
 msgid "imagico.de OSM images for mapping: Prokletije Mountains"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Prokletije-hegység (Albán Alpok)"
 
 msgid "imagico.de OSM images for mapping: Southern Transantarctic Mountains"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Dél-Transzantarktiszi-hegység"
 
 msgid "imagico.de OSM images for mapping: Pensacola Mountains"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Pensacola-hegység"
 
 msgid "imagico.de OSM images for mapping: Elephant Island/Clarence Island"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Elefánt-sziget/Clarence-sziget"
 
 msgid "IGN Argentina (TMS)"
-msgstr ""
+msgstr "IGN Argentina (TMS)"
 
 msgid "IGN Argentina (WMS)"
 msgstr "IGN Argentína (WMS)"
@@ -16308,10 +16373,10 @@ msgid "LPI NSW Administrative Boundaries NPWS Reserve"
 msgstr "LPI NSW közigazgatási határ NPWS rezervátum"
 
 msgid "imagico.de OSM images for mapping: Northwest Heard Island"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Északnyugat-Heard-sziget"
 
 msgid "imagico.de OSM images for mapping: Heard Island coast"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Heard-sziget part"
 
 msgid "basemap.at"
 msgstr "basemap.at"
@@ -16332,7 +16397,7 @@ msgid "Tiris: DOM (Surface model)"
 msgstr "Tiris: DOM (Felületi model)"
 
 msgid "Tiris: contour lines"
-msgstr ""
+msgstr "Tiris: szintvonalak"
 
 msgid "Vienna: Mehrzweckkarte (general purpose)"
 msgstr "Vienna: Mehrzweckkarte (általános célú)"
@@ -16359,16 +16424,16 @@ msgid "VoGIS: Höhen und Gelände"
 msgstr "VoGIS: Höhen und Gelände"
 
 msgid "imagico.de OSM images for mapping: Rila and Pirin Mountains"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Rila- és Pirin-hegységek"
 
 msgid "AGIV Flanders most recent aerial imagery"
-msgstr ""
+msgstr "AGIV Flanders legfrissebb légifelvételei"
 
 msgid "AGIV Flanders 2013-2015 aerial imagery 10cm"
-msgstr ""
+msgstr "AGIV Flanders 2013-2015 légifelvétel 10cm"
 
 msgid "AGIV Flanders GRB"
-msgstr ""
+msgstr "AGIV Flanders GRB"
 
 msgid "URBISfr numerical imagery (2013)"
 msgstr "URBISfr numerical imagery (2013)"
@@ -16391,6 +16456,9 @@ msgstr "URBIS 2015 légifelvétel"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW(allonie) legfrissebb légifelvétel"
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 légifelvétel"
 
@@ -16404,16 +16472,16 @@ msgid "TEC bus lines (2014)"
 msgstr "TEC busz útvonalak (2014)"
 
 msgid "TEC bus stops (2014)"
-msgstr ""
+msgstr "TEC buszmegállók (2014)"
 
 msgid "Benin: Cotonou Pleiade 2016"
-msgstr ""
+msgstr "Benin: Cotonou Pleiade 2016"
 
 msgid "imagico.de OSM images for mapping: Cotonou"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Cotonou"
 
 msgid "imagico.de OSM images for mapping: Bouvet Island"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Bouvet-sziget"
 
 msgid "IBGE Mapa de Setores Urbanos"
 msgstr "IBGE Mapa de Setores Urbanos"
@@ -16422,19 +16490,19 @@ msgid "IBGE Mapa de Setores Rurais"
 msgstr "IBGE Mapa de Setores Rurais"
 
 msgid "IBGE Distrito Federal"
-msgstr ""
+msgstr "IBGE Distrito Federal"
 
 msgid "Rio Mosaic 2013"
-msgstr ""
+msgstr "Rio Mosaic 2013"
 
 msgid "Rio Mosaic 2015"
-msgstr ""
+msgstr "Rio Mosaic 2015"
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Londrina Ortofotó 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
-msgstr ""
+msgstr "SIG Santa Catarina OrtoRGB 2012"
 
 msgid "Geobase Hydrography"
 msgstr "Geobase Hidrológiai"
@@ -16449,7 +16517,7 @@ msgid "British Columbia Mosaic"
 msgstr "British Columbia Mosaic"
 
 msgid "Latest southwest British Columbia Landsat"
-msgstr ""
+msgstr "Legfrissebb délnyugat Brit Columbia Landsat"
 
 msgid "Kelowna 2012"
 msgstr "Kelowna 2012"
@@ -16458,23 +16526,23 @@ msgid "Kelowna Roads overlay"
 msgstr "Kelowna utak rátét"
 
 msgid "imagico.de OSM images for mapping: Eastern Devon Island coast"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Keleti-Devon-sziget partvonal"
 
 msgid "imagico.de OSM images for mapping: Northern Ellesmere Island"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Északi-Ellesmere-sziget"
 
 msgid ""
 "imagico.de OSM images for mapping: Northern Ellesmere Island July 2016"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Északi-Ellesmere-sziget 2016"
 
 msgid "imagico.de OSM images for mapping: Fogo, Cape Verde"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Fogo, Cape Verde"
 
 msgid "imagico.de OSM images for mapping: Isla Londonderry"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Isla Londonderry"
 
 msgid "imagico.de OSM images for mapping: Volcán Calbuco"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Volcán Calbuco"
 
 msgid "Czech CUZK:KM"
 msgstr "Czech CUZK:KM"
@@ -16513,10 +16581,11 @@ msgid "Vejmidte (Denmark)"
 msgstr "Vejmidte (Denmark)"
 
 msgid "imagico.de OSM images for mapping: El Altar"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: El Altar"
 
 msgid "imagico.de OSM images for mapping: Darwin and Wolf islands, Galapagos"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Darwin- és Wolf-szigetek, Galapagos"
 
 msgid "Estonia Basemap (Maaamet)"
 msgstr "Estonia Alaptérkép (Maaamet)"
@@ -16660,9 +16729,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16672,51 +16738,81 @@ msgstr "Metropole Ruhr: Luftbilder (10 cm)"
 msgid ""
 "imagico.de OSM images for mapping: Northern German west coast tidalflats"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Észak-német nyugati parti árapálysíkságok"
 
 msgid ""
 "imagico.de OSM images for mapping: Northern German west coast tidalflats "
 "(infrared)"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Észak-német nyugati parti "
+"árapálysíkságok (infravörös)"
 
-msgid "imagico.de OSM images for mapping: Qasigiannguit"
+msgid "Saxony latest aerial imagery"
 msgstr ""
 
-msgid "imagico.de OSM images for mapping: Thule Air Base"
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
 msgstr ""
 
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
+msgid "imagico.de OSM images for mapping: Qasigiannguit"
+msgstr "imagico.de OSM képek térképezéshez: Qasigiannguit"
+
+msgid "imagico.de OSM images for mapping: Thule Air Base"
+msgstr "imagico.de OSM képek térképezéshez: Thule légibázis"
+
 msgid ""
 "imagico.de OSM images for mapping: Thule Airbase DMS low altitude overflight "
 "September 2015"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Thule légibázis DMS alacsony magasságú "
+"átrepülés 2015 szeptember"
 
 msgid ""
 "imagico.de OSM images for mapping: Thule Airbase DMS overflight September "
 "2015"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Thule légibázis DMS átrepülés 2015 "
+"szeptember"
 
 msgid ""
 "imagico.de OSM images for mapping: Thule Airbase DMS overflight October 2015"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Thule légibázis DMS átrepülés 2015 "
+"október"
 
 msgid "imagico.de OSM images for mapping: Greenland mosaic"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Grönland mozaik"
 
 msgid "imagico.de OSM images for mapping: May 2013 off-nadir Landsat"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: 2013 május ferdetengelyű Landsat"
 
 msgid "imagico.de OSM images for mapping: Landsat off-nadir July 2016"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Landsat, ferdetengelyű, 2016 július"
 
 msgid "imagico.de OSM images for mapping: Northern Greenland ASTER"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Észak-Grönland ASTER"
 
 msgid "Drone Imagery (Haiti)"
 msgstr "Drón ábrázolás (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drón ábrázolás 2014 (Haiti)"
 
@@ -16724,7 +16820,7 @@ msgid "Drone Imagery Canaan(Haiti) November 2015"
 msgstr "Drónos légifelvétel Canaan (Haiti) 2015 november"
 
 msgid "Drone Imagery Matthew(Haiti) October 2016"
-msgstr ""
+msgstr "Drónfelvétel Matthew (Haiti) 2016 október"
 
 msgid "FÖMI ortophoto 2000"
 msgstr "FÖMI ortofotó 2000"
@@ -16754,7 +16850,7 @@ msgid "Riverbank of Danube at Budapest, Szentendre and Szigetmonostor"
 msgstr "Dunapart budapesti, szentendrei és szigetmonostori szakasza"
 
 msgid "Budapest district XI ortophoto 2015"
-msgstr ""
+msgstr "Budapest XI. kerületi ortofotó 2015"
 
 msgid "OpenStreetMap Hungary (hiking routes)"
 msgstr "OpenStreetMap Magyarország (turistautak)"
@@ -16763,19 +16859,19 @@ msgid "Hillshade Hungary"
 msgstr "Domborzatárnyékolás, Magyarország"
 
 msgid "imagico.de OSM images for mapping: Eastern Iceland"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Kelet-Izland"
 
 msgid "imagico.de OSM images for mapping: Rann of Kutch"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Rann of Kutch"
 
 msgid "imagico.de OSM images for mapping: Southeastern Sulawesi"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Délkeleti-Sulawesi"
 
 msgid "imagico.de OSM images for mapping: Bakun Reservoir"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez:  Bakun-víztározó"
 
 msgid "imagico.de OSM images for mapping: Batam"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Batam"
 
 msgid "Ireland British War Office 1:25k GSGS 3906"
 msgstr "Ireland British War Office 1:25k GSGS 3906"
@@ -16838,19 +16934,19 @@ msgid "South Tyrol Orthofoto 2011"
 msgstr "Dél-Tirol ortofotó 2011"
 
 msgid "South Tyrol Orthofoto 2011 (highres)"
-msgstr ""
+msgstr "Dél-Tirol ortofotó 2011 (nagyfelbontású)"
 
 msgid "South Tyrol Orthofoto 2014"
-msgstr ""
+msgstr "Dél-Tirol ortofotó 2014"
 
 msgid "South Tyrol Topomap"
 msgstr "Dél-Tirol topográfiai térkép"
 
 msgid "Japan GSI ortho Imagery"
-msgstr ""
+msgstr "Japán GSI ortofotó"
 
 msgid "imagico.de OSM images for mapping: Mount Kenya 2016"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Mount Kenya 2016"
 
 msgid "USSR - Latvia"
 msgstr "USSR - Latvia"
@@ -16867,8 +16963,11 @@ msgstr "1.cikla ortofotó - Lettország"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Vasúti"
@@ -16882,11 +16981,17 @@ msgstr "Luxembourg Inspire vizek"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr "PDOK légifotó Beeldmateriaal 25cm (WMS)"
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr "PDOK légifotó Beeldmateriaal 25cm (WMTS)"
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -ortofotó 2009/2011 EPSG:25833"
 
 msgid "imagico.de OSM images for mapping: Western Karakoram"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Nyugat-Karakorum"
 
 msgid "Gaza Strip - Pléiades - 2014/07/06"
 msgstr "Gaza Strip - Pléiades - 2014/07/06"
@@ -16896,22 +17001,24 @@ msgstr "Gaza Strip - Pléiades - 2014/07/06 (NIR)"
 
 msgid "imagico.de OSM images for mapping: Panama Canal - Pacific side"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Panama-csatorna - csendes-óceáni oldal"
 
 msgid "imagico.de OSM images for mapping: Panama Canal"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Panama-csatorna"
 
 msgid "imagico.de OSM images for mapping: Vanatinai"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Vanatinai"
 
 msgid "imagico.de OSM images for mapping: New Ireland"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: New Ireland"
 
 msgid "imagico.de OSM images for mapping: Coropuna"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Coropuna"
 
 msgid ""
 "imagico.de OSM images for mapping: Willkanuta Mountains and Quelccaya Ice Cap"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Willkanuta-hegység és Quelccaya-jégsapka"
 
 msgid "Pangasinán/Bulacan (Phillipines HiRes)"
 msgstr "Pangasinán/Bulacan (Phillipines HiRes)"
@@ -17049,18 +17156,19 @@ msgid "ScanEx SPOT"
 msgstr "ScanEx SPOT"
 
 msgid "imagico.de OSM images for mapping: Kerch Strait"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Kerch-szoros"
 
 msgid "imagico.de OSM images for mapping: Ushakov Island August 2016"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Usakov-sziget 2016 augusztus"
 
 msgid ""
 "imagico.de OSM images for mapping: Northern and Polar Ural mountains August "
 "2016"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Északi- és Sarki-Urál 2016 augusztus"
 
 msgid "imagico.de OSM images for mapping: Vostochny Cosmodrome"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Vostochny Cosmodrome"
 
 msgid "Freemap.sk Car"
 msgstr "Freemap.sk Autó"
@@ -17084,7 +17192,7 @@ msgid "RABA-KGZ: Slovenia built-up areas"
 msgstr "RABA-KGZ: Szlovénia beépített területek"
 
 msgid "City of Cape Town 2013 Aerial"
-msgstr ""
+msgstr "Cape Town városa 2013 légifelvétel"
 
 msgid "City of Cape Town 2015 Aerial"
 msgstr "City of Cape Town 2015 Aerial"
@@ -17093,19 +17201,19 @@ msgid "South Africa CD:NGI Aerial"
 msgstr "South Africa CD:NGI Aerial"
 
 msgid "imagico.de OSM images for mapping: Leskov Island ASTER"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Leskov-sziget ASTER"
 
 msgid "imagico.de OSM images for mapping: Scott Island"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Scott-sziget"
 
 msgid "imagico.de OSM images for mapping: Leskov Island Landsat"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Leskov-sziget Landsat"
 
 msgid "imagico.de OSM images for mapping: Clerke Rocks"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Clerke-sziklák"
 
 msgid "imagico.de OSM images for mapping: Shag Rocks"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Shag-sziklák"
 
 msgid "Catastro Spain"
 msgstr "Catastro Spain"
@@ -17129,7 +17237,7 @@ msgid "GRAFCAN Express - Canary Islands"
 msgstr "GRAFCAN Express - Canary Islands"
 
 msgid "imagico.de OSM images for mapping: Adams Bridge"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Adams-híd"
 
 msgid "Kanton Aargau 25cm (AGIS 2011)"
 msgstr "Kanton Aargau 25cm (AGIS 2011)"
@@ -17174,7 +17282,7 @@ msgid "Stadt Bern 10cm/25cm (2012)"
 msgstr "Stadt Bern 10cm/25cm (2012)"
 
 msgid "Stadt Bern 10cm (2016)"
-msgstr ""
+msgstr "Bern városa 10cm 2016"
 
 msgid "HEIG-VD / Orthophoto Yverdon-les-Bains 25cm (2007)"
 msgstr "HEIG-VD / Ortofotó Yverdon-les-Bains 25cm (2007)"
@@ -17198,13 +17306,14 @@ msgid "Fiez Orthophoto 2013"
 msgstr "Fiez Ortofotó 2013"
 
 msgid "Kanton Basel-Stadt 2015"
-msgstr ""
+msgstr "Basel-Stadt kanton 2015"
 
 msgid "Kanton Basel-Landschaft 10cm (2015)"
-msgstr ""
+msgstr "Basel-Landschaft kanton 10cm (2015)"
 
 msgid "imagico.de OSM images for mapping: Cental Alps in late September 2016"
 msgstr ""
+"imagico.de OSM képek térképezéshez: Középső-Alpok 2016 késő szeptember"
 
 msgid "Taiwan e-Map Open Data"
 msgstr "Taiwan e-Map Open Data"
@@ -17222,7 +17331,7 @@ msgid "NLSC Open Data WMTS"
 msgstr "NLSC Open Data WMTS"
 
 msgid "imagico.de OSM images for mapping: Mount Kilimanjaro 2016"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez:  Kilimandzsáró 2016"
 
 msgid "MSR Maps Topo"
 msgstr "MSR Topográfiai Térképek"
@@ -17252,52 +17361,52 @@ msgid "U.S. Forest Service roads"
 msgstr "U.S. erdőgazdasági utak"
 
 msgid "imagico.de OSM images for mapping: Alaska Range"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Alaszka"
 
 msgid "NJ 2015 Aerial Imagery (Infrared)"
-msgstr ""
+msgstr "NJ 2015 légifelvétel (infravörös)"
 
 msgid "NJ 2015 Aerial Imagery (Natural Color)"
-msgstr ""
+msgstr "NJ 2015 légifelvétel (természetes színű)"
 
 msgid "San Juan Metro Area: 2013 USACE Orthophotos"
-msgstr ""
+msgstr "San Juan Metro Area: 2013 USACE ortofotók"
 
 msgid "WA 2013 aerial imagery for San Juan County"
-msgstr ""
+msgstr "WA San Juan megye légifelvétele"
 
 msgid "WA Vector Streetmap for San Juan County"
-msgstr ""
+msgstr "WA San Juan megye vektoros utcatérképe"
 
 msgid "Texas Orthophoto"
-msgstr ""
+msgstr "Texas ortofotó"
 
 msgid "Philadelphia 2015 Imagery"
-msgstr ""
+msgstr "Philadelphia 2015 légifelvétel"
 
 msgid "MD 2014 6 Inch Aerial Imagery"
-msgstr ""
+msgstr "MD 2016 hat colos légifelvétel"
 
 msgid "MD Three Inch Aerial Imagery"
-msgstr ""
+msgstr "MD három colos légifelvétel"
 
 msgid "MD Transportation Basemap"
-msgstr ""
+msgstr "MD közlekedési alaptérkép"
 
 msgid "Delaware 2012 Orthophotography"
-msgstr ""
+msgstr "Delaware 2012 orotfotó"
 
 msgid "imagico.de OSM images for mapping: Rwenzori Mountains"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Rwenzori-hegység"
 
 msgid "imagico.de OSM images for mapping: Rwenzori Mountains 2016"
-msgstr ""
+msgstr "imagico.de OSM képek térképezéshez: Rwenzori-hegység 2016"
 
 msgid "Ukraine - Orthophotomaps 2012"
 msgstr "Ukraine - Ortofotó térkép 2012"
 
 msgid "Works only from within Ukraine or with an Ukrainian proxy server."
-msgstr ""
+msgstr "Csak Ukrajnából, vagy ukrán proxy szerverről működik"
 
 msgid "Ukraine - Kyiv 2014 (DZK)"
 msgstr "Ukrajna - Kijev 2014 (DZK)"
@@ -17416,6 +17525,9 @@ msgstr "Angol (OS) városrendezési tervek, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "Angol (OS) városrendezési tervek, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "Angol (OS) városrendezési tervek, Elgin 1868 (NLS)"
 
@@ -22230,6 +22342,9 @@ msgstr "Bankjegy"
 msgid "Telephone cards"
 msgstr "Telefonkártya"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Internet hozzáférés"
 
@@ -22275,6 +22390,9 @@ msgstr "Kijelzi a légnyomást"
 msgid "Shows humidity"
 msgstr "Kijelzi a páratartalmat"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Szelektív hulladékgyűjtő konténer"
 
@@ -24205,6 +24323,21 @@ msgstr "Történelmi helyek"
 msgid "Castle"
 msgstr "Vár"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Régészeti lelőhely"
 
@@ -24560,6 +24693,9 @@ msgstr "kerékpárgumi"
 msgid "cigarettes"
 msgstr "cigaretta"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "óvszer"
 
@@ -24593,9 +24729,6 @@ msgstr "csomagfeladás"
 msgid "photos"
 msgstr "fénykép"
 
-msgid "public_transport_plans"
-msgstr "tömegközlekedési térkép"
-
 msgid "public_transport_tickets"
 msgstr "tömgeközlekedési jegy"
 
@@ -26083,6 +26216,99 @@ msgstr "Kemping"
 msgid "Test"
 msgstr "Próba"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Páros házszám a páratlan oldali lakcím interpolációban."
 
@@ -27266,18 +27492,6 @@ msgstr "Nagyítása a kiválasztott képre"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Nagyítása a jelenleg kiválasztott Mapillary képre"
 
-msgid "View in website"
-msgstr "Megtekintés a weboldalon"
-
-msgid "Copy key"
-msgstr "Kulcs másolása"
-
-msgid "Copy key tag"
-msgstr "Kulcs címke másolása"
-
-msgid "Edit on website"
-msgstr "Szerkesztés a weboldalon"
-
 msgid "Current Mapillary changeset"
 msgstr "Jelenlegi Mapillary módosításcsomag"
 
@@ -27440,12 +27654,6 @@ msgstr "Képhez ugrás az előző/következő gomb megnyomásakor"
 msgid "Preview images when hovering its icon"
 msgstr "Kép előnézete, ha az egér az ikon fölött áll"
 
-msgid "Login"
-msgstr "Belépés"
-
-msgid "Logout"
-msgstr "Kijelentkezés"
-
 msgid "Download mode"
 msgstr "Letöltési mód"
 
@@ -27455,6 +27663,12 @@ msgstr "Be vagy jelentkezve „{0}” néven."
 msgid "You are currently not logged in."
 msgstr "Jelenleg nem vagy bejelentkezve."
 
+msgid "Login"
+msgstr "Belépés"
+
+msgid "Logout"
+msgstr "Kijelentkezés"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "A feltöltés előtt menj a beállításokba és jelentkezz be a Mapillary fiókodba."
@@ -27474,6 +27688,62 @@ msgstr "Kiválasztott kép követése"
 msgid "Go forward"
 msgstr "Menj előre"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} kép törölve"
@@ -31751,8 +32021,8 @@ msgstr "Fájl betöltése sikertelen: {0}"
 msgid "Problem occurred"
 msgstr "Hiba történt"
 
-msgid "Load World File Calibration..."
-msgstr "World File Calibration betöltése..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Kalibrációs adat betöltése world fájlból"
@@ -31775,6 +32045,12 @@ msgstr "A kalibrációs adatot fájlba menti"
 msgid "Saving file failed: {0}"
 msgstr "Fájl mentése sikertelen: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Új kép réteg vágólapról…"
 
@@ -35350,6 +35626,3 @@ msgstr "Vezetés"
 
 msgid "Drive a race car on this layer"
 msgstr "Autóverseny ezen a rétegen"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/hy.po b/i18n/po/hy.po
index 2036dfe..8ad4681 100644
--- a/i18n/po/hy.po
+++ b/i18n/po/hy.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-04-13 21:51+0000\n"
 "Last-Translator: Gev777 <Unknown>\n"
 "Language-Team: Armenian <hy at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:36+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:36+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: hy\n"
 
 msgid "Cancel"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ia.po b/i18n/po/ia.po
index 4137e03..36e1c60 100644
--- a/i18n/po/ia.po
+++ b/i18n/po/ia.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-08-29 01:02+0000\n"
 "Last-Translator: Emilio Sepulveda <Unknown>\n"
 "Language-Team: Interlingua <ia at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:54+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:55+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ia\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/id.po b/i18n/po/id.po
index c30fca2..758fc67 100644
--- a/i18n/po/id.po
+++ b/i18n/po/id.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-03-10 03:36+0000\n"
 "Last-Translator: Ezagren <ezagren at gmail.com>\n"
 "Language-Team: Indonesian <id at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:55+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:56+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: id\n"
 "X-Language: id_ID\n"
 
@@ -3454,9 +3454,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "T"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Proyeksi ''{0}'' tidak ditemukan, penanda ''{1}'' tidak dapat digunakan"
@@ -11496,7 +11514,15 @@ msgid "Foot"
 msgstr "Pejalan Kaki"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11515,6 +11541,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Buat mark/tanda ketika membaca GPX"
 
@@ -11643,6 +11672,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Pewarnaan Trek dan Titik"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Warna titik dan segmen trek dengan batasan data."
 
@@ -15880,6 +15925,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16147,9 +16195,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16165,6 +16210,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16200,10 +16269,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16354,7 +16419,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16369,6 +16437,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16903,6 +16977,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21629,6 +21706,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Kartu Telepon"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -21674,6 +21754,9 @@ msgstr "Tunjukkan tekanan barometer"
 msgid "Shows humidity"
 msgstr "Tunjukkan kelembaban"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -23598,6 +23681,21 @@ msgstr "Tempat bersejarah"
 msgid "Castle"
 msgstr "kastil"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Situs Arkeologi"
 
@@ -23953,6 +24051,9 @@ msgstr "bicycle_tube"
 msgid "cigarettes"
 msgstr "rokok"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondom"
 
@@ -23986,9 +24087,6 @@ msgstr ""
 msgid "photos"
 msgstr "foto"
 
-msgid "public_transport_plans"
-msgstr "rencana_transportasi_umum"
-
 msgid "public_transport_tickets"
 msgstr "tiket_transportasi_umum"
 
@@ -25453,6 +25551,99 @@ msgstr "Perkemahan"
 msgid "Test"
 msgstr "Tes"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26587,18 +26778,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26761,12 +26940,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Login"
-
-msgid "Logout"
-msgstr "Keluar"
-
 msgid "Download mode"
 msgstr ""
 
@@ -26776,6 +26949,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr "Login"
+
+msgid "Logout"
+msgstr "Keluar"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -26794,6 +26973,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31213,8 +31448,8 @@ msgstr "Gagal memuat berkas: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
-msgstr "Memuat Kalibrasi Berkas Dunia"
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Memuat data kalibrasi dari berkas dunia"
@@ -31237,6 +31472,12 @@ msgstr "Simpan data kalibrasi pada berkas"
 msgid "Saving file failed: {0}"
 msgstr "Penyimpanan berkas gagal: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Layer gambar baru dari clipboard"
 
diff --git a/i18n/po/is.po b/i18n/po/is.po
index 9ba6488..649eb54 100644
--- a/i18n/po/is.po
+++ b/i18n/po/is.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-11-06 00:32+0000\n"
 "Last-Translator: Stefán Örvar Sigmundsson <stefan.orvar.sigmundsson at emi.is>\n"
 "Language-Team: Icelandic <is at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:54+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:55+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: is\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3274,9 +3274,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "A"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10853,7 +10871,15 @@ msgid "Foot"
 msgstr "Fótgangandi"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10872,6 +10898,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10986,6 +11015,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14936,6 +14981,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15203,9 +15251,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15221,6 +15266,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15256,10 +15325,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15410,7 +15475,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15425,6 +15493,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15959,6 +16033,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20593,6 +20670,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Símakort"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20638,6 +20718,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22562,6 +22645,21 @@ msgstr "Sögustaðir"
 msgid "Castle"
 msgstr "Kastali"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Fornleifasvæði"
 
@@ -22917,6 +23015,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22950,9 +23051,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24415,6 +24513,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25525,18 +25716,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25699,19 +25878,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25732,6 +25911,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29859,7 +30094,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29883,6 +30118,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/it.po b/i18n/po/it.po
index 25b7a70..495f4bb 100644
--- a/i18n/po/it.po
+++ b/i18n/po/it.po
@@ -4,16 +4,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm 20081003\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-10 12:05+0000\n"
-"Last-Translator: Don-vip <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-09 13:48+0000\n"
+"Last-Translator: lang-it <Unknown>\n"
 "Language-Team: Italian <talk-it at lists.openstreetmap.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:56+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:57+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: it\n"
 "X-Language: it_IT\n"
 "X-Source-Language: en\n"
@@ -3609,9 +3609,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Aggiorna le voci predefinite"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "La proiezione ''{0}'' non è stata trovata, il segnalibro ''{1}'' non è "
@@ -12095,7 +12113,15 @@ msgid "Foot"
 msgstr "Pedone"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -12114,6 +12140,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Crea contrassegni durante la lettura GPX"
 
@@ -12244,6 +12273,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Colorazione del tracciato e del punto"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Colora i punti ed i segmenti del tracciato in base ai limiti dei dati."
@@ -16780,6 +16825,9 @@ msgstr "URBIS 2015 foto aeree"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC immagini numeriche"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -17048,9 +17096,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -17066,6 +17111,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -17101,10 +17170,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -17255,8 +17320,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lituania)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Lussemburgo Inspire Ferrovia"
@@ -17270,6 +17338,12 @@ msgstr "Lussemburgo Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta del Niger Ott 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthofoto 2009/2011 EPSG:25833"
 
@@ -17804,6 +17878,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -20228,7 +20305,7 @@ msgid "Pedestrians"
 msgstr "Pedoni"
 
 msgid "Segregated Foot- and Cycleway"
-msgstr "Pista pedonale separata e ciclabile"
+msgstr "Pista separata pedonale e ciclabile"
 
 msgid "Combined Foot- and Cycleway"
 msgstr "Pista combinata pedonale e ciclabile"
@@ -21017,7 +21094,7 @@ msgid "CNG (Compressed Natural Gas)"
 msgstr "GNC (gas naturale compresso)"
 
 msgid "Pier"
-msgstr "Passerella"
+msgstr "Molo"
 
 msgid "Mooring"
 msgstr "Ormeggio"
@@ -22613,6 +22690,9 @@ msgstr "Note"
 msgid "Telephone cards"
 msgstr "Carte telefoniche"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Accesso internet"
 
@@ -22658,6 +22738,9 @@ msgstr "Visualizza la pressione atmosferica"
 msgid "Shows humidity"
 msgstr "Visualizza l''umidità"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Contenitore Riciclaggio"
 
@@ -22771,7 +22854,7 @@ msgid "Lockable"
 msgstr ""
 
 msgid "Water Point"
-msgstr ""
+msgstr "Punto Acqua per Camper"
 
 msgid "Animal watering place"
 msgstr ""
@@ -24585,6 +24668,21 @@ msgstr "Luoghi storici"
 msgid "Castle"
 msgstr "Castello"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Sito archeologico"
 
@@ -24674,7 +24772,7 @@ msgid "Deli (Fine Food)"
 msgstr "Cibi e bevande pregiate"
 
 msgid "Pastry"
-msgstr ""
+msgstr "Pasticceria"
 
 msgid "Confectionery"
 msgstr ""
@@ -24914,7 +25012,7 @@ msgid "Bag"
 msgstr "Borsa"
 
 msgid "Pet"
-msgstr "Animale"
+msgstr "Animali"
 
 msgid "Photo"
 msgstr "Fotografia"
@@ -24940,6 +25038,9 @@ msgstr "camere d''aria per biciclette"
 msgid "cigarettes"
 msgstr "sigarette"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "preservativi"
 
@@ -24973,9 +25074,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotografie"
 
-msgid "public_transport_plans"
-msgstr "orari del trasporto pubblico"
-
 msgid "public_transport_tickets"
 msgstr "biglietti per il trasporto pubblico"
 
@@ -25245,7 +25343,7 @@ msgid "Pottery"
 msgstr "Ceramista"
 
 msgid "Key cutter"
-msgstr "Dublicatore di chiavi"
+msgstr "Duplicatore di chiavi"
 
 msgid "Caterer"
 msgstr "Catering"
@@ -26460,6 +26558,99 @@ msgstr "Campeggio"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -27626,18 +27817,6 @@ msgstr "Ingrandisci l''immagine selezionata"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr "Visualizza nel sito"
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr "Modifica nel sito"
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27800,12 +27979,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Accedi"
-
-msgid "Logout"
-msgstr "Esci"
-
 msgid "Download mode"
 msgstr ""
 
@@ -27815,6 +27988,12 @@ msgstr "Sei collegato come ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Non sei autenticato."
 
+msgid "Login"
+msgstr "Accedi"
+
+msgid "Logout"
+msgstr "Esci"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -27833,6 +28012,62 @@ msgstr ""
 msgid "Go forward"
 msgstr "Procedi"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Immagine {0} cancellata"
@@ -32379,8 +32614,8 @@ msgstr "Caricamento file fallito: {0}"
 msgid "Problem occurred"
 msgstr "Si è verificato un problema"
 
-msgid "Load World File Calibration..."
-msgstr "Carica file di calibrazione world..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Carica i dati di calibrazione da un file world"
@@ -32403,6 +32638,12 @@ msgstr "Salva i dati della calibrazione su un file"
 msgid "Saving file failed: {0}"
 msgstr "Salvataggio file fallito: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nuovo livello immagine dagli appunti"
 
@@ -36106,6 +36347,3 @@ msgstr "Inizia a guidare"
 
 msgid "Drive a race car on this layer"
 msgstr "Guida una macchina da corsa su questo livello"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/ja.po b/i18n/po/ja.po
index 4d72ea8..7ac05d9 100644
--- a/i18n/po/ja.po
+++ b/i18n/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2017-01-07 13:55+0000\n"
 "Last-Translator: Masao Takaku <Unknown>\n"
 "Language-Team: Japanese <tr at openstreetmap.jp>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:56+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:58+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "X-Poedit-Country: JAPAN\n"
 "Language: ja\n"
 "X-Poedit-Language: Japanese\n"
@@ -3285,9 +3285,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "東"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "既定のエントリを更新"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "投影法 ''{0}'' が見つかりません。ブックマーク ''{1}'' は利用できません。"
 
@@ -10983,7 +11001,15 @@ msgid "Foot"
 msgstr "徒歩"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11002,6 +11028,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "GPXを読み込んだときにマーカーを作成"
 
@@ -11112,6 +11141,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "トラックと点の配色"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "点や区間をデータの範囲で色分けする。"
 
@@ -15157,6 +15202,9 @@ msgstr "URBIS 2015 aerial imagery"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aerial imagery"
 
@@ -15426,9 +15474,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -15444,6 +15489,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15479,10 +15548,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -15633,7 +15698,10 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15648,6 +15716,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -16182,6 +16256,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -20857,6 +20934,9 @@ msgstr "紙幣"
 msgid "Telephone cards"
 msgstr "テレフォンカード"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "インターネットアクセス"
 
@@ -20902,6 +20982,9 @@ msgstr "気圧の表示"
 msgid "Shows humidity"
 msgstr "湿度の表示"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "リサイクルコンテナ"
 
@@ -22826,6 +22909,21 @@ msgstr "史跡"
 msgid "Castle"
 msgstr "城"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "遺跡"
 
@@ -23181,6 +23279,9 @@ msgstr "自転車のチューブ"
 msgid "cigarettes"
 msgstr "たばこ"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "コンドーム"
 
@@ -23214,9 +23315,6 @@ msgstr ""
 msgid "photos"
 msgstr "写真"
 
-msgid "public_transport_plans"
-msgstr "時刻表"
-
 msgid "public_transport_tickets"
 msgstr "乗車券"
 
@@ -24680,6 +24778,99 @@ msgstr "キャンプ場"
 msgid "Test"
 msgstr "テスト"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25800,18 +25991,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25974,12 +26153,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "ログイン"
-
-msgid "Logout"
-msgstr "ログアウト"
-
 msgid "Download mode"
 msgstr ""
 
@@ -25989,6 +26162,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr "ログインしていません"
 
+msgid "Login"
+msgstr "ログイン"
+
+msgid "Logout"
+msgstr "ログアウト"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -26007,6 +26186,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30298,8 +30533,8 @@ msgstr "ファイルのロードに失敗: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
-msgstr "ワールドファイルの位置調整を読み込む..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "ワールドファイルから位置調整データを読み込みます"
@@ -30322,6 +30557,12 @@ msgstr "較正データをファイルに保存"
 msgid "Saving file failed: {0}"
 msgstr "ファイルの保存に失敗: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "クリップボードからの新しい画像"
 
@@ -33785,6 +34026,3 @@ msgstr "ドライブに行く"
 
 msgid "Drive a race car on this layer"
 msgstr "このレイヤーでレースカーをドライブします。"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/ka.po b/i18n/po/ka.po
index e53970e..bf42a92 100644
--- a/i18n/po/ka.po
+++ b/i18n/po/ka.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-12-16 00:14+0000\n"
 "Last-Translator: datogogishvili <Unknown>\n"
 "Language-Team: Georgian <ka at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:47+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:49+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ka\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3260,9 +3260,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10821,7 +10839,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10840,6 +10866,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10950,6 +10979,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14890,6 +14935,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15157,9 +15205,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15175,6 +15220,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15210,10 +15279,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15364,7 +15429,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15379,6 +15447,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15913,6 +15987,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20546,6 +20623,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20591,6 +20671,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22515,6 +22598,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22870,6 +22968,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22903,9 +23004,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24368,6 +24466,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25478,18 +25669,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25652,19 +25831,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25685,6 +25864,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29812,7 +30047,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29836,6 +30071,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/km.po b/i18n/po/km.po
index aa61562..a7a6ddd 100644
--- a/i18n/po/km.po
+++ b/i18n/po/km.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-01-27 10:25+0000\n"
 "Last-Translator: Sophea Sok <sksophea at gmail.com>\n"
 "Language-Team: Khmer <km at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:57+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:58+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3453,9 +3453,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "កើត"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "រក​មិន​ឃើញ​ចំណោល ''{0}'' ចំណាំ ''{1}'' មិន​អាច​ប្រើ​បាន"
 
@@ -11679,7 +11697,15 @@ msgid "Foot"
 msgstr "ថ្មើជើង"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11698,6 +11724,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "បង្កើត​កម្មវិធី​ចំណាំ​ពេល​អាន GPX"
 
@@ -11824,6 +11853,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "ការ​ដាក់​ពណ៌​ចំណុច និង​ដាន"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "ដាក់​ពណ៌​កំណាត់​ដាន និង​ចំណុច​តាម​ព្រំដែន​ទិន្នន័យ។"
 
@@ -16213,6 +16258,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16480,9 +16528,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16498,6 +16543,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16533,10 +16602,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16687,7 +16752,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16702,6 +16770,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17236,6 +17310,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21957,6 +22034,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -22002,6 +22082,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -23926,6 +24009,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -24281,6 +24379,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -24314,9 +24415,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -25779,6 +25877,99 @@ msgstr ""
 msgid "Test"
 msgstr "សាកល្បង"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26889,18 +27080,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27063,19 +27242,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -27096,6 +27275,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31223,7 +31458,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -31247,6 +31482,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ko.po b/i18n/po/ko.po
index 9975e05..6bdc046 100644
--- a/i18n/po/ko.po
+++ b/i18n/po/ko.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-08-05 12:36+0000\n"
-"Last-Translator: Myeongjin <aranet100 at gmail.com>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-28 04:32+0000\n"
+"Last-Translator: Glados <Unknown>\n"
 "Language-Team: Korean <ko at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:58+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-28 04:35+0000\n"
+"X-Generator: Launchpad (build 18329)\n"
 "Language: ko\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -83,7 +83,7 @@ msgid "Initializing map styles"
 msgstr "지도 스타일 초기화 중"
 
 msgid "Loading imagery preferences"
-msgstr "영상 환경 설정을 불러오는 중"
+msgstr "배경 환경 설정을 불러오는 중"
 
 msgid "Updating user interface"
 msgstr "사용자 인터페이스 업데이트 중"
@@ -110,7 +110,7 @@ msgid "Display the about screen."
 msgstr "화면에 대해 표시합니다."
 
 msgid "Java OpenStreetMap Editor"
-msgstr "Java OpenStreetMap 편집기"
+msgstr "자바 OpenStreetMap 편집기"
 
 msgid "Version {0}"
 msgstr "버전 {0}"
@@ -128,7 +128,7 @@ msgid "Info"
 msgstr "정보"
 
 msgid "Readme"
-msgstr "읽어보세요"
+msgstr "읽어보기"
 
 msgid "Revision"
 msgstr "판"
@@ -213,7 +213,7 @@ msgid "Add layers"
 msgstr "레이어 추가"
 
 msgid "Add imagery layer {0}"
-msgstr "영상 레이어 {0} 추가"
+msgstr "배경 레이어 {0} 추가"
 
 msgid "Invalid service URL."
 msgstr "올바르지 않은 서비스 URL"
@@ -234,44 +234,44 @@ msgid "Select image format for WMS layer"
 msgstr "WMS 레이어에 대한 그림 형식 선택"
 
 msgid "Add Node..."
-msgstr "노드 추가..."
+msgstr "점 추가..."
 
 msgid "Add a node by entering latitude / longitude or easting / northing."
-msgstr "위도/경도 또는 동항/북거 를 입력하여 노드를 추가하세요."
+msgstr "위도/경도 또는 동향/북향을 입력하여 점을 추가합니다."
 
 msgid "Edit: {0}"
 msgstr "편집: {0}"
 
 msgid "Align Nodes in Circle"
-msgstr "노드를 동그라미에 정렬"
+msgstr "점을 원 모양으로 정렬"
 
 msgid "Move the selected nodes into a circle."
-msgstr "선택한 노드를 동그라미 안으로 옮깁니다."
+msgstr "선택한 점을 원 모양으로 정렬합니다."
 
 msgid "Tool: {0}"
 msgstr "도구: {0}"
 
 msgid "Not enough nodes in selected ways."
-msgstr "선택된 길에 충분한 노드가 없습니다."
+msgstr "선택된 선에 점이 부족합니다."
 
 msgid "Please select at least four nodes."
-msgstr "적어도 노드 네 개를 선택하세요."
+msgstr "적어도 점 네 개를 선택하세요."
 
 msgid "Cannot determine center of selected nodes."
-msgstr "선택한 노드의 중앙점을 지정할 수 없습니다."
+msgstr "선택한 점의 중앙점을 지정할 수 없습니다."
 
 msgid ""
 "One or more nodes involved in this action is outside of the downloaded area."
-msgstr "이 행위에 연관된 한개, 혹은 그 이상의 노드가 다운로드된 구역 밖에 존재합니다."
+msgstr "이 동작에 연관된 한 개, 혹은 그 이상의 점이 다운로드된 구역 밖에 존재합니다."
 
 msgid "Align Nodes in Line"
-msgstr "노드를 줄에 정렬"
+msgstr "점을 직선으로 정렬"
 
 msgid "Move the selected nodes in to a line."
-msgstr "선택한 노드를 일직선 안으로 옮깁니다."
+msgstr "선택한 점을 직선으로 정렬합니다."
 
 msgid "Please select at least three nodes."
-msgstr "적어도 노드 세 개를 선택하세요."
+msgstr "적어도 점 세 개를 선택하세요."
 
 msgid "Can not align a polygon. Abort."
 msgstr "다각형을 정렬할 수 없습니다. 중단합니다."
@@ -280,7 +280,7 @@ msgid "Intersection of three or more ways can not be solved. Abort."
 msgstr "3차로, 혹은 그 이상의 길에 대한 교차로를 연결할 수 없습니다. 취소합니다."
 
 msgid "Two parallels ways found. Abort."
-msgstr "두개의 동일한 길이 발견되었습니다. 취소합니다."
+msgstr "두 개의 동일한 선이 발견되었습니다. 취소합니다."
 
 msgid "data"
 msgstr "데이터"
@@ -292,7 +292,7 @@ msgid "selection"
 msgstr "선택"
 
 msgid "conflict"
-msgstr "모순"
+msgstr "충돌"
 
 msgid "download"
 msgstr "다운로드"
@@ -307,16 +307,16 @@ msgid "next"
 msgstr "다음"
 
 msgid "Nothing selected to zoom to."
-msgstr "확대하려는 선택이 없습니다."
+msgstr "이동하려는 곳을 선택하지 않았습니다."
 
 msgid "Information"
 msgstr "정보"
 
 msgid "Zoom to {0}"
-msgstr "{0}으로 확대"
+msgstr "{0}으로 이동"
 
 msgid "Zoom the view to {0}."
-msgstr "보이는 것을 {0}으로 확대합니다."
+msgstr "{0}가 보이는 곳으로 이동합니다."
 
 msgid "View: {0}"
 msgstr "보기: {0}"
@@ -325,10 +325,10 @@ msgid "No conflicts to zoom to"
 msgstr "줌할 충돌이 없습니다"
 
 msgid "Changeset Manager"
-msgstr "Changeset 관리자"
+msgstr "바뀜집합 관리자"
 
 msgid "Toggle visibility of Changeset Manager window"
-msgstr "바뀜집합 매니저 윈도의 가독성 바꾸기"
+msgstr "바뀜집합 관리자 창의 가독성 바꾸기"
 
 msgid "Close open changesets"
 msgstr "열린 바뀜집합 닫기"
@@ -346,92 +346,92 @@ msgid "No open changesets"
 msgstr "열린 바뀜집합 없음"
 
 msgid "Downloading open changesets ..."
-msgstr "열린 바뀜집합 받는 중..."
+msgstr "열린 바뀜집합 다운로드 중..."
 
 msgid "Combine Way"
-msgstr "Way 결합"
+msgstr "선 결합"
 
 msgid "Combine several ways into one."
-msgstr "여러 개의 Way를 하나로 결합합니다."
+msgstr "여러 개의 선을 하나로 결합합니다."
 
 msgid "Change directions?"
 msgstr "방향을 바꾸겠습니까?"
 
 msgid "Reverse and Combine"
-msgstr "방향 바꾸고 결합"
+msgstr "방향으로 바꾸고 결합"
 
 msgid ""
 "The ways can not be combined in their current directions.  Do you want to "
 "reverse some of them?"
-msgstr "way는 현재 길방향으로 결합될 수 없습니다. way의 길방향을 뒤집겠습니까?"
+msgstr "선은 현재 방향으로 결합될 수 없습니다. 선의 방향을 뒤집겠습니까?"
 
 msgid ""
 "Could not combine ways<br>(They could not be merged into a single string of "
 "nodes)"
-msgstr "도로를 묶을 수 없었습니다<br>(한개의 노드로 병합될 수 없었습니다)"
+msgstr "선을 묶을 수 없었습니다<br>(한 개의 점으로 병합될 수 없었습니다)"
 
 msgid "Reverse Ways"
-msgstr "Way 방향 뒤집기"
+msgstr "선 방향 뒤집기"
 
 msgid "Combine {0} way"
 msgid_plural "Combine {0} ways"
-msgstr[0] "{0}개의 길 합치기"
+msgstr[0] "{0}개의 선 결합"
 
 msgid "Please select at least two ways to combine."
-msgstr "최소한 2개 이상의 결합할 Way를 선택하세요"
+msgstr "최소한 2개 이상의 결합할 선을 선택하세요."
 
 msgid "Copy"
 msgstr "복사"
 
 msgid "Copy selected objects to paste buffer."
-msgstr "페이스트 버퍼에 선택한 object를 복사"
+msgstr "붙여넣기 버퍼에 선택한 객체를 복사"
 
 msgid "Please select something to copy."
-msgstr "복사할 것을 선택하세요"
+msgstr "복사할 것을 선택하세요."
 
 msgid "Copy Coordinates"
 msgstr "좌표 복사"
 
 msgid "Copy coordinates of selected nodes to clipboard."
-msgstr "선택된 노드의 좌표를 클립보드로 복사합니다"
+msgstr "선택된 점의 좌표를 클립보드로 복사합니다"
 
 msgid "Create Circle"
 msgstr "원 그리기"
 
 msgid "Create a circle from three selected nodes."
-msgstr "선택된 3개의 Node로부터 원을 그립니다"
+msgstr "선택된 3개의 점으로 원을 그립니다"
 
 msgid ""
 "Please select exactly two or three nodes or one way with exactly two or "
 "three nodes."
-msgstr "2개 또는 3개의 node를 선택하거나, 2개 또는 3개의 node를 가진 way를 선택하세요"
+msgstr "2개 또는 3개의 점을 선택하거나, 2개 또는 3개의 점을 가진 선을 선택하세요."
 
 msgid "Those nodes are not in a circle. Aborting."
-msgstr "이 노드는 원이 아닙니다. 취소합니다."
+msgstr "이 점은 원이 아닙니다. 취소합니다."
 
 msgid "Update multipolygon"
-msgstr "도형 업데이트"
+msgstr "다각형 업데이트"
 
 msgid "Create multipolygon"
-msgstr "멀티폴리곤 생성"
+msgstr "다각형 생성"
 
 msgid "No data loaded."
 msgstr "데이터가 로드되지 않음"
 
 msgid "You must select at least one way."
-msgstr "최소 1개 이상의 도로를 선택해야합니다."
+msgstr "최소 1개 이상의 선을 선택해야합니다."
 
 msgid "Delete"
 msgstr "삭제"
 
 msgid "Delete selected objects."
-msgstr "선택된 객체를 삭제합니다"
+msgstr "선택된 객체를 삭제합니다."
 
 msgid "Delete Layer"
-msgstr ""
+msgstr "레이어 삭제"
 
 msgid "Delete the active layer. Does not delete the associated file."
-msgstr ""
+msgstr "활성화된 레이어를 삭제합니다. 연결된 파일은 삭제되지 않습니다."
 
 msgid "Toggle dialogs panel"
 msgstr "토글 대화 패널"
@@ -440,13 +440,13 @@ msgid "Toggle dialogs panel, maximize mapview"
 msgstr ""
 
 msgid "Distribute Nodes"
-msgstr ""
+msgstr "점을 직선으로 일정하게 정렬"
 
 msgid "Distribute the selected nodes to equal distances along a line."
-msgstr "선택된 Node를 일직선상의 동일 거리에 분산 배치합니다"
+msgstr "선택된 선을 직선 상의 동일 거리에 분산 배치합니다."
 
 msgid "Ignoring {0} nodes with null coordinates"
-msgstr "좌표가 없는 {0}개의 노드를 무시함"
+msgstr "좌표가 없는 {0}개의 점을 무시함"
 
 msgid ""
 "Please select :\n"
@@ -458,7 +458,7 @@ msgid "Download from OSM..."
 msgstr "OSM에서 다운로드..."
 
 msgid "Download map data from the OSM server."
-msgstr "OSM 서버로 부터 지도 정보 다운로드."
+msgstr "OSM 서버로 부터 지도 데이터를 다운로드합니다."
 
 msgid ""
 "<html>This action will require {0} individual<br>download requests. Do you "
@@ -3241,9 +3241,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10802,7 +10820,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10821,6 +10847,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10931,6 +10960,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14871,6 +14916,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15138,9 +15186,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15156,6 +15201,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15191,10 +15260,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15345,7 +15410,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15360,6 +15428,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15894,6 +15968,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20527,6 +20604,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20572,6 +20652,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22496,6 +22579,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22851,6 +22949,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22884,9 +22985,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24349,6 +24447,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25459,18 +25650,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25633,19 +25812,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25666,6 +25845,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29793,7 +30028,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29817,6 +30052,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ku.po b/i18n/po/ku.po
index 46501c2..b4474f2 100644
--- a/i18n/po/ku.po
+++ b/i18n/po/ku.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2017-01-31 19:32+0000\n"
-"Last-Translator: Rokar <Unknown>\n"
+"Last-Translator: Rokar ✌ <Unknown>\n"
 "Language-Team: Kurdish <ku at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:59+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:00+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ky.po b/i18n/po/ky.po
index 7a31a9c..bea412b 100644
--- a/i18n/po/ky.po
+++ b/i18n/po/ky.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2012-12-18 02:36+0000\n"
 "Last-Translator: SimpleLeon <Unknown>\n"
 "Language-Team: Kirghiz <ky at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:57+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:59+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/lb.po b/i18n/po/lb.po
index ed2fd59..90ac7da 100644
--- a/i18n/po/lb.po
+++ b/i18n/po/lb.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-04-28 18:56+0000\n"
 "Last-Translator: Charel <ceilenbecker at gmail.com>\n"
 "Language-Team: Luxembourgish <lb at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:01+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:03+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr "{0}:D''Optioun \"{1}\" ass net eendeiteg"
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/lo.po b/i18n/po/lo.po
index f2d90df..5906ea5 100644
--- a/i18n/po/lo.po
+++ b/i18n/po/lo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-09-15 10:06+0000\n"
 "Last-Translator: Anousone <Unknown>\n"
 "Language-Team: Lao <lo at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:59+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:01+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/lt.po b/i18n/po/lt.po
index c73769d..f760589 100644
--- a/i18n/po/lt.po
+++ b/i18n/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2017-02-01 19:13+0000\n"
 "Last-Translator: Aurimas Fišeras <Unknown>\n"
 "Language-Team: Lithuanian <lt at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "(n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:00+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:02+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: lt\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3564,9 +3564,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "R"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Atnaujinti numatytuosius įrašus"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projekcija „{0}“ nerasta, žymelė „{1}“ nepanaudojama"
 
@@ -11846,7 +11864,15 @@ msgid "Foot"
 msgstr "Pėstieji"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11865,6 +11891,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Intensyvumas"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Sukurti žymeklius skaitant GPX"
 
@@ -11993,6 +12022,22 @@ msgstr "Parenka spalvų schemą intensyvumo žemėlapiui."
 msgid "Track and Point Coloring"
 msgstr "Pėdsako ir taško spalvos"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Spalvina taškus ir pėdsako segmentus pagal duomenų limitus."
 
@@ -16334,6 +16379,9 @@ msgstr "URBIS 2015 aeronuotraukos"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerinės nuotraukos"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aeronuotraukos"
 
@@ -16605,9 +16653,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16623,6 +16668,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16658,10 +16727,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Dronų nuotraukos (Haitis)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Dronų nuotraukos 2014 (Haitis)"
 
@@ -16812,7 +16877,10 @@ msgstr "1.cikla ortofotokarte - Latvija"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lietuva)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16827,6 +16895,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Nigerio delta - 2012 m. spalis - Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17361,6 +17435,9 @@ msgstr "OS miesto planai, Edinburgas 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS miesto planai,  Edinburgas 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS miesto planai, Elginas 1868 (NLS)"
 
@@ -22011,6 +22088,9 @@ msgstr "Pastabos"
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Interneto prieiga"
 
@@ -22056,6 +22136,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Perdirbimo konteineris"
 
@@ -23980,6 +24063,21 @@ msgstr "Istorinės vietovės"
 msgid "Castle"
 msgstr "Pilis"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Archeologinė vieta"
 
@@ -24335,6 +24433,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -24368,9 +24469,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -25840,6 +25938,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26962,18 +27153,6 @@ msgstr "Rodyti pažymėtą nuotrauką"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Priartinti pažymėtą Mapillary vaizdą"
 
-msgid "View in website"
-msgstr "Peržiūrėti svetainėje"
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27136,19 +27315,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -27169,6 +27348,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31354,7 +31589,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -31378,6 +31613,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Naujas paveikslėlių sluoksnis iš iškarpinės"
 
@@ -34808,6 +35049,3 @@ msgstr "Važiuokite"
 
 msgid "Drive a race car on this layer"
 msgstr "Vairuokite lenktyninį automobilį ant šio sluoksnio"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/lv.po b/i18n/po/lv.po
index b5b02c0..67f02c1 100644
--- a/i18n/po/lv.po
+++ b/i18n/po/lv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2012-10-03 22:16+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: Latvian <lv at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:00+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:01+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: lv\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3266,9 +3266,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10826,7 +10844,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10845,6 +10871,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10955,6 +10984,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14899,6 +14944,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15166,9 +15214,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15184,6 +15229,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15219,10 +15288,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15373,7 +15438,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15388,6 +15456,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15922,6 +15996,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20555,6 +20632,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20600,6 +20680,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22524,6 +22607,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22879,6 +22977,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22912,9 +23013,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24377,6 +24475,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25487,18 +25678,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25661,19 +25840,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25694,6 +25873,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29821,7 +30056,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29845,6 +30080,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/mk.po b/i18n/po/mk.po
index 007574a..fd36221 100644
--- a/i18n/po/mk.po
+++ b/i18n/po/mk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2013-05-11 04:37+0000\n"
 "Last-Translator: Bojan Jankuloski <bojan.jankuloski at gmail.com>\n"
 "Language-Team: Macedonian <mk at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:02+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:03+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: mk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3258,9 +3258,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10819,7 +10837,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10838,6 +10864,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10948,6 +10977,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14889,6 +14934,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15156,9 +15204,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15174,6 +15219,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15209,10 +15278,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15363,7 +15428,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15378,6 +15446,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15912,6 +15986,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20545,6 +20622,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20590,6 +20670,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22514,6 +22597,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22869,6 +22967,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22902,9 +23003,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24367,6 +24465,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25477,18 +25668,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25651,19 +25830,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25684,6 +25863,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29811,7 +30046,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29835,6 +30070,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/mr.po b/i18n/po/mr.po
index 40f65a5..86f641f 100644
--- a/i18n/po/mr.po
+++ b/i18n/po/mr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-05-24 23:45+0000\n"
 "Last-Translator: Singleton <singleton47+ubuntuone at live.com>\n"
 "Language-Team: Marathi <mr at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:02+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:04+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: mr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3283,9 +3283,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "पू"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10855,7 +10873,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10874,6 +10900,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10984,6 +11013,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14924,6 +14969,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15191,9 +15239,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15209,6 +15254,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15244,10 +15313,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15398,7 +15463,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15413,6 +15481,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15947,6 +16021,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20580,6 +20657,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20625,6 +20705,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22549,6 +22632,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22904,6 +23002,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22937,9 +23038,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24402,6 +24500,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25512,18 +25703,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25686,19 +25865,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25719,6 +25898,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29846,7 +30081,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29870,6 +30105,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ms.po b/i18n/po/ms.po
index 6da8fc1..afa4ac4 100644
--- a/i18n/po/ms.po
+++ b/i18n/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-12-11 22:14+0000\n"
 "Last-Translator: abuyop <Unknown>\n"
 "Language-Team: Malay <ms at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:03+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:05+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ms\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/nb.po b/i18n/po/nb.po
index 723b501..ff4c8c0 100644
--- a/i18n/po/nb.po
+++ b/i18n/po/nb.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-10-06 19:11+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-21 09:17+0000\n"
 "Last-Translator: Syver Stensholt <sssandum at gmail.com>\n"
 "Language-Team: Norwegian Bokmal <nb at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:05+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:07+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: nb\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -947,8 +947,8 @@ msgstr "Åpner filer"
 
 msgid "Cannot open {0} file with the file importer ''{1}''."
 msgid_plural "Cannot open {0} files with the file importer ''{1}''."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Kan ikke åpne {0} fil med filimportereren \"{1}\"."
+msgstr[1] "Kan ikke åpne {0} filer med filimportereren \"{1}\"."
 
 msgid ""
 "Cannot open {0} file because file does not exist or no suitable file "
@@ -3346,9 +3346,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "Ø"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -11008,7 +11026,15 @@ msgid "Foot"
 msgstr "Til fots"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11027,6 +11053,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11146,6 +11175,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Farge på punkt og track linjer"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -15115,6 +15160,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15382,9 +15430,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15400,6 +15445,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15435,10 +15504,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15589,7 +15654,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15604,6 +15672,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16138,6 +16212,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20786,6 +20863,9 @@ msgstr "Sedler"
 msgid "Telephone cards"
 msgstr "Telefonkort"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20831,6 +20911,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22755,6 +22838,21 @@ msgstr "Historiske steder"
 msgid "Castle"
 msgstr "Slott"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arkeologisk plass"
 
@@ -23110,6 +23208,9 @@ msgstr "sykkelslanger"
 msgid "cigarettes"
 msgstr "sigaretter"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomer"
 
@@ -23143,9 +23244,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotografier"
 
-msgid "public_transport_plans"
-msgstr "buss-, trikk- og togkart"
-
 msgid "public_transport_tickets"
 msgstr "billetter"
 
@@ -24612,6 +24710,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25730,18 +25921,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25904,19 +26083,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25937,6 +26116,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -30099,7 +30334,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30123,6 +30358,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
@@ -33430,7 +33671,7 @@ msgid "Load category"
 msgstr ""
 
 msgid "Fetch Wikipedia articles with coordinates"
-msgstr ""
+msgstr "Hent Wikipedia-artikler med koordinater"
 
 msgid ""
 "Double click on item to search for object with article name (and center "
@@ -33438,7 +33679,7 @@ msgid ""
 msgstr ""
 
 msgid "Available via WIWOSM server"
-msgstr ""
+msgstr "Tilgjengelig via WIWOSM-serveren"
 
 msgid "Available in local dataset"
 msgstr ""
@@ -33447,10 +33688,10 @@ msgid "Not linked yet"
 msgstr ""
 
 msgid "{0}: {1}"
-msgstr ""
+msgstr "{0}: {1}"
 
 msgid "Wikidata"
-msgstr ""
+msgstr "Wikidata"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
 msgstr ""
@@ -33459,25 +33700,25 @@ msgid "Fetches all coordinates from Wikipedia in the current view"
 msgstr ""
 
 msgid "Category"
-msgstr ""
+msgstr "Kategori"
 
 msgid "Fetches a list of all Wikipedia articles of a category"
-msgstr ""
+msgstr "Henter en liste over alle Wikipedia artiklene i en kategori"
 
 msgid "Clipboard"
-msgstr ""
+msgstr "Utklippstavle"
 
 msgid "Pastes Wikipedia articles from the system clipboard"
-msgstr ""
+msgstr "Limer inn Wikipedia artikler fra systemets utklippstavle"
 
 msgid "clipboard"
-msgstr ""
+msgstr "utklippstavle"
 
 msgid "Open Article"
-msgstr ""
+msgstr "Åpne artikkelen"
 
 msgid "Opens the Wikipedia article of the selected item in a browser"
-msgstr ""
+msgstr "Åpner det merkede objektets Wikipedia-artikkel i nettleseren"
 
 msgid "Sets the default language for the Wikipedia articles"
 msgstr "Angir standardspråket for Wikipedia artiklene"
diff --git a/i18n/po/nds.po b/i18n/po/nds.po
index c553f3c..13f7369 100644
--- a/i18n/po/nds.po
+++ b/i18n/po/nds.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-11-29 09:01+0000\n"
 "Last-Translator: Dirk Stöcker <launchpad at dstoecker.de>\n"
 "Language-Team: German, Low <nds at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:04+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:05+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/nl.po b/i18n/po/nl.po
index 0a1fca4..1e818b0 100644
--- a/i18n/po/nl.po
+++ b/i18n/po/nl.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-24 14:26+0000\n"
-"Last-Translator: DiGro <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-27 19:58+0000\n"
+"Last-Translator: korst <Unknown>\n"
 "Language-Team: Dutch\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:43+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-28 04:34+0000\n"
+"X-Generator: Launchpad (build 18329)\n"
 "Language: nl\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3597,9 +3597,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "O"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Standaard items bijwerken"
 
+msgid "Update imagery ''{0}''"
+msgstr "Afbeelding ''{0}'' bijwerken"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Oude afbeelding ''{0}'' verwijderen"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Projectie ''{0}'' werd niet gevonden, bladwijzer ''{1}'' is niet bruikbaar"
@@ -12035,8 +12053,16 @@ msgid "Foot"
 msgstr "Te voet"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Gebruiker"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -12054,6 +12080,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Hitte"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Maak markeringen bij het lezen van GPX"
 
@@ -12187,6 +12216,22 @@ msgstr "Selecteert het kleurenschema voor heatmap."
 msgid "Track and Point Coloring"
 msgstr "Kleuren van sporen en punten"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Kleur punten en segmenten van het spoor op basis van de grenzen van hun "
@@ -16663,6 +16708,9 @@ msgstr "URBIS 2015 luchtfoto''s"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerieke afbeeldingen"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 luchtfoto’s"
 
@@ -16937,9 +16985,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale grondkaart 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topografische kaart 1:10000"
 
@@ -16958,6 +17003,30 @@ msgstr ""
 "imagico.de OSM images for mapping: Northern German west coast tidalflats "
 "(infrared)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de OSM images for mapping: Qasigiannguit"
 
@@ -17001,12 +17070,6 @@ msgstr "imagico.de OSM images for mapping: Northern Greenland ASTER"
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone afbeeldingen (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-"Tijdelijk niet beschikbaar tot vermoedelijk januari 2017 in verband met "
-"wisselen van server."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone afbeeldingen 2014 (Haiti)"
 
@@ -17157,8 +17220,11 @@ msgstr "1.cikla ortofotokarte - Letland"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Litouwen)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxemburg Inspire spoorwegen"
@@ -17172,6 +17238,12 @@ msgstr "Luxemburg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -17717,6 +17789,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Town Plans, Edinburg 1940''s-1960''s (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -19282,7 +19357,7 @@ msgid "Cycle"
 msgstr "Cyclus"
 
 msgid "deciduous"
-msgstr "loofbomen"
+msgstr "bladverliezend"
 
 msgid "Plants that are leafless for a certain period during the year."
 msgstr ""
@@ -19296,7 +19371,7 @@ msgid "Plants that are never entirely without green foliage."
 msgstr "Planten die nooit geheel zonder groene bedekking zijn."
 
 msgid "semi_deciduous"
-msgstr "semi_bladdragend"
+msgstr "semi_bladverliezend"
 
 msgid ""
 "Plants that lose their foliage for a very short period, when old leaves fall "
@@ -19316,7 +19391,7 @@ msgstr ""
 "deel van het jaar."
 
 msgid "Habitat with evergreen and deciduous vegetation."
-msgstr "Habitat met groenblijvende en bladdragende vegetatie."
+msgstr "Habitat met groenblijvende en bladverliezende vegetatie."
 
 msgid "bahai"
 msgstr "Bahai"
@@ -22561,6 +22636,9 @@ msgstr "Bankbiljetten"
 msgid "Telephone cards"
 msgstr "Telefoonkaarten"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Internettoegang"
 
@@ -22606,6 +22684,9 @@ msgstr "Toont luchtdruk"
 msgid "Shows humidity"
 msgstr "Toont luchtvochtigheid"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Recyclecontainer"
 
@@ -23316,7 +23397,7 @@ msgstr "hut"
 
 msgctxt "building"
 msgid "bungalow"
-msgstr ""
+msgstr "bungalow"
 
 msgctxt "building"
 msgid "dormitory"
@@ -24532,6 +24613,21 @@ msgstr "Historische locaties"
 msgid "Castle"
 msgstr "Kasteel"
 
+msgid "stately"
+msgstr "buitenplaats"
+
+msgid "defensive"
+msgstr "verdedigingswerk"
+
+msgid "fortress"
+msgstr "fort"
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Archeologische opgraving"
 
@@ -24887,6 +24983,9 @@ msgstr "fietsbanden"
 msgid "cigarettes"
 msgstr "sigaretten"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "condooms"
 
@@ -24920,9 +25019,6 @@ msgstr "verzend_service"
 msgid "photos"
 msgstr "foto''s"
 
-msgid "public_transport_plans"
-msgstr "overzichtskaart openbaar vervoer"
-
 msgid "public_transport_tickets"
 msgstr "openbaar vervoersbewijzen"
 
@@ -26401,6 +26497,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Even huisnummer in interpolatie voor oneven adressen."
 
@@ -27600,18 +27789,6 @@ msgstr "Zoom naar geselecteerde afbeelding"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zoom naar huidige geselecteerde afbeelding van Mapillary"
 
-msgid "View in website"
-msgstr "In website bekijken"
-
-msgid "Copy key"
-msgstr "Sleutel kopiëren"
-
-msgid "Copy key tag"
-msgstr "Sleutel van tag kopiëren"
-
-msgid "Edit on website"
-msgstr "Op website bewerken"
-
 msgid "Current Mapillary changeset"
 msgstr "Huidige wijzigingenset voor Mapillary"
 
@@ -27775,12 +27952,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Voorbeeld van afbeeldingen bij bevinden boven pictogram"
 
-msgid "Login"
-msgstr "Inloggen"
-
-msgid "Logout"
-msgstr "Uitloggen"
-
 msgid "Download mode"
 msgstr "Modus Downloaden"
 
@@ -27790,6 +27961,12 @@ msgstr "U bent aangemeld als ''{0}''."
 msgid "You are currently not logged in."
 msgstr "U bent momenteel niet ingelogd."
 
+msgid "Login"
+msgstr "Inloggen"
+
+msgid "Logout"
+msgstr "Uitloggen"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Ga naar Instellingen en log in bij Mapillary vóór uploaden."
 
@@ -27808,6 +27985,71 @@ msgstr "Geselecteerde afbeelding volgen"
 msgid "Go forward"
 msgstr "Naar voren gaan"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr "Sleutel gekopieerd naar klembord"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"De plug-in Mapillary gebruikt nu een afzonderlijk paneel om extra informatie "
+"weer te geven (zoals de sleutel van de afbeelding) en acties voor de "
+"momenteel geselecteerde afbeelding in Mapillary (zoals die bekijken in een "
+"browser)."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Het kan worden geactiveerd door te klikken op de linker knop aan de "
+"onderzijde van dit bericht of de knop links in de werkbalk, die hetzelfde "
+"pictogram gebruikt."
+
+msgid "I got it, close this."
+msgstr "Ik snap het, sluit dit venster."
+
+msgid "Image info"
+msgstr "Informatie over afbeelding"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+"Geeft gedetailleerde informatie weer over de momenteel geselecteerde "
+"afbeelding in Mapillary"
+
+msgid "Add Mapillary tag"
+msgstr "Tag voor Mapillary toevoegen"
+
+msgid "Image actions"
+msgstr "Acties voor afbeelding"
+
+msgid "Image key"
+msgstr "Sleutel voor afbeelding"
+
+msgid "Sequence key"
+msgstr "Sleutel voor reeks"
+
+msgid "image has no key"
+msgstr "afbeelding heeft geen sleutel"
+
+msgid "sequence has no key"
+msgstr "reeks heeft geen sleutel"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Kon de URL {0} niet openen in een browser"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} afbeelding verwijderd"
@@ -32350,8 +32592,8 @@ msgstr "Laden van bestand mislukt: {0}"
 msgid "Problem occurred"
 msgstr "Er trad een probleem op"
 
-msgid "Load World File Calibration..."
-msgstr "Laad World File Calibration..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Laadt kalibratie-gegevens uit een wereldbestand"
@@ -32375,6 +32617,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr "Opslaan van bestand mislukt: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nieuwe afbeeldingslaag vanaf klembord"
 
@@ -36087,6 +36335,3 @@ msgstr "Begin te rijden"
 
 msgid "Drive a race car on this layer"
 msgstr "Rijd met een raceauto over deze laag"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luchtfoto"
diff --git a/i18n/po/nn.po b/i18n/po/nn.po
index b7427e8..cd260be 100644
--- a/i18n/po/nn.po
+++ b/i18n/po/nn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-07-15 12:49+0000\n"
 "Last-Translator: Skippern <Unknown>\n"
 "Language-Team: Norwegian Nynorsk <nn at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:04+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:06+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: nn\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/oc.po b/i18n/po/oc.po
index 895fa1b..fd71e27 100644
--- a/i18n/po/oc.po
+++ b/i18n/po/oc.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2012-10-03 22:14+0000\n"
 "Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary at yahoo.fr>\n"
 "Language-Team: Occitan (post 1500) <oc at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:05+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:07+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3262,9 +3262,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10825,7 +10843,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10844,6 +10870,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10954,6 +10983,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14894,6 +14939,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15161,9 +15209,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15179,6 +15224,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15214,10 +15283,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15368,7 +15433,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15383,6 +15451,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15917,6 +15991,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20550,6 +20627,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20595,6 +20675,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22519,6 +22602,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22874,6 +22972,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22907,9 +23008,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24372,6 +24470,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Tèst"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25482,18 +25673,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25656,19 +25835,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25689,6 +25868,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29816,7 +30051,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29840,6 +30075,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/pa.po b/i18n/po/pa.po
index 25204a6..9b26797 100644
--- a/i18n/po/pa.po
+++ b/i18n/po/pa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-05-06 15:52+0000\n"
 "Last-Translator: A S Alam <aalam at users.sf.net>\n"
 "Language-Team: Punjabi <pa at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:06+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:08+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: pa\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/pl.po b/i18n/po/pl.po
index 86cba87..dad86e6 100644
--- a/i18n/po/pl.po
+++ b/i18n/po/pl.po
@@ -8,17 +8,17 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-02-01 23:10+0000\n"
-"Last-Translator: Piotr Sokół <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-09 21:39+0000\n"
+"Last-Translator: Teiron <mmok444 at gmail.com>\n"
 "Language-Team: polski <>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:07+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:09+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: pl\n"
 "X-Poedit-Bookmarks: 1098,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
 "X-Poedit-Basepath: /home/mfloryan/dev/josm/i18n\n"
@@ -2735,7 +2735,7 @@ msgid "objects"
 msgstr "obiekty"
 
 msgid "all nodes"
-msgstr ""
+msgstr "wszystkie węzły"
 
 msgid "all ways"
 msgstr "wszystkie linie"
@@ -3605,9 +3605,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Uaktualnia domyślne wpisy"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Odwzorowanie „{0}” nie zostało znalezione, zakładka „{1}” nie może zostać "
@@ -11790,8 +11808,16 @@ msgid "Foot"
 msgstr "Ruch pieszy"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Użytkownika"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11809,6 +11835,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Ciepło"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Tworzenie znaczników podczas wczytywania GPX"
 
@@ -11936,6 +11965,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Kolorowanie śladów i punktów"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Koloruje punkty i segmenty ślady według ograniczeń danych"
 
@@ -16230,6 +16275,9 @@ msgstr "URBIS 2015  zdjęcia lotnicze"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16497,9 +16545,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -16515,6 +16560,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16550,10 +16619,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -16704,8 +16769,11 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Litwa)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr ""
@@ -16719,6 +16787,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17253,6 +17327,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -21917,6 +21994,9 @@ msgstr "Banknoty"
 msgid "Telephone cards"
 msgstr "Karty telefoniczne"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Punkt dostępu do Internetu"
 
@@ -21962,6 +22042,9 @@ msgstr "Pokazuje ciśnienie atmosferyczne"
 msgid "Shows humidity"
 msgstr "Pokazuje wilgotność"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Pojemnik na surowce wtórne"
 
@@ -23888,6 +23971,21 @@ msgstr "Miejsca historyczne"
 msgid "Castle"
 msgstr "Zamek"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Wykopalisko archeologiczne"
 
@@ -24243,6 +24341,9 @@ msgstr "dętki do roweru"
 msgid "cigarettes"
 msgstr "papierosy"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "prezerwatywy"
 
@@ -24276,9 +24377,6 @@ msgstr ""
 msgid "photos"
 msgstr "zdjęcia"
 
-msgid "public_transport_plans"
-msgstr "mapy komunikacji miejskiej"
-
 msgid "public_transport_tickets"
 msgstr "bilety komunikacji miejskiej"
 
@@ -25746,6 +25844,99 @@ msgstr "Kemping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26874,18 +27065,6 @@ msgstr "Powiększ do wybranego obrazu"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27048,12 +27227,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Zaloguj"
-
-msgid "Logout"
-msgstr "Wyloguj"
-
 msgid "Download mode"
 msgstr ""
 
@@ -27063,6 +27236,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr "Zaloguj"
+
+msgid "Logout"
+msgstr "Wyloguj"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -27081,6 +27260,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31237,7 +31472,7 @@ msgstr "Wczytywanie pliku zakończone niepowodzeniem: {0}"
 msgid "Problem occurred"
 msgstr "Wystąpił błąd"
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -31261,6 +31496,12 @@ msgstr "Zapisuje kalibrację obrazu do pliku"
 msgid "Saving file failed: {0}"
 msgstr "Zapisywanie pliku nie udało się: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nowa warstwa ze schowka"
 
diff --git a/i18n/po/pt.po b/i18n/po/pt.po
index 68fd5f8..c5b24ea 100644
--- a/i18n/po/pt.po
+++ b/i18n/po/pt.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-09-10 17:36+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-23 13:48+0000\n"
 "Last-Translator: Rui <xande6ruz at yandex.com>\n"
 "Language-Team: Portuguese <pt at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:08+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:10+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: pt\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -65,13 +65,13 @@ msgid "Help"
 msgstr "Ajuda"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "A inicializar os dados de fronteiras internas"
 
 msgid "Initializing OSM API"
 msgstr "A inicializar a API do OpenStreetMap"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "A inicializar os dados de tráfego interno"
 
 msgid "Initializing validator"
 msgstr "A inicializar o mecanismo de validação"
@@ -505,10 +505,10 @@ msgid "Download notes in current view"
 msgstr "Descarregar erros reportados na vista atual"
 
 msgid "Download in current view"
-msgstr ""
+msgstr "Descarregar na vista atual"
 
 msgid "Download map data from the OSM server in current view"
-msgstr ""
+msgstr "Descarregar dados do mapa do servidor OSM na vista atual"
 
 msgid "Download object..."
 msgstr "Descarregar objeto..."
@@ -528,7 +528,7 @@ msgid "Duplicate"
 msgstr "Duplicar"
 
 msgid "Duplicate selection."
-msgstr ""
+msgstr "Duplicar seleção."
 
 msgid "Exit"
 msgstr "Sair"
@@ -1166,13 +1166,14 @@ msgid "Paste"
 msgstr "Colar"
 
 msgid "Paste contents of clipboard."
-msgstr ""
+msgstr "Colar dados da área de transferência."
 
 msgid "Paste at source position"
-msgstr ""
+msgstr "Colar na posição original"
 
 msgid "Paste contents of clipboard at the position they were copied from."
 msgstr ""
+"Colar dados da área de transferência na posição onde eles foram copiados"
 
 msgid "Paste Tags"
 msgstr "Colar Etiquetas"
@@ -2739,7 +2740,7 @@ msgid "objects"
 msgstr "objetos"
 
 msgid "all nodes"
-msgstr ""
+msgstr "todos os nós"
 
 msgid "all ways"
 msgstr "todas as linhas"
@@ -3086,7 +3087,7 @@ msgid "Change relation {0}"
 msgstr "Alterar relação {0}"
 
 msgid "Change nodes of {0}"
-msgstr ""
+msgstr "Alterar nós de{0}"
 
 msgid "Remove \"{0}\" for node ''{1}''"
 msgstr "Remover \"{0}\" do nó ''{1}''"
@@ -3598,9 +3599,29 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr "Data das imagens aéreas: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Estas imagens estão marcadas como as melhores nesta região por outros "
+"utilizadores."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} servidor espelho {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} servidor espelho"
+
 msgid "Update default entries"
 msgstr "Atualizar fontes disponíveis"
 
+msgid "Update imagery ''{0}''"
+msgstr "Atualizar imagens aéreas ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Descartar imagens aéreas antigas ''{0}''"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Não foi encontrada a projeção ''{0}''. O favorito de alinhamento ''{1}'' não "
@@ -4138,7 +4159,7 @@ msgid "Reversed coastline"
 msgstr "Linha de costa no sentido errado"
 
 msgid "invalid coastline"
-msgstr ""
+msgstr "linha costeira inválida"
 
 msgid "Conditional Keys"
 msgstr "Etiquetas Condicionais"
@@ -4179,10 +4200,10 @@ msgid "Crossing barriers"
 msgstr "Barreiras que se cruzam"
 
 msgid "Self crossing"
-msgstr ""
+msgstr "Linhas que se cruzam"
 
 msgid "Self-crossing ways"
-msgstr ""
+msgstr "Linhas que se cruzam"
 
 msgid ""
 "This test checks if two roads, railways, waterways or buildings crosses in "
@@ -4542,7 +4563,7 @@ msgid "Route relation contains a gap"
 msgstr ""
 
 msgid "Stop position not part of route"
-msgstr ""
+msgstr "Posição de paragem não faz parte da rota"
 
 msgid "Role verification problem"
 msgstr "Problema na verificação da função"
@@ -4578,19 +4599,19 @@ msgid "<empty>"
 msgstr "<vazio>"
 
 msgid "Role ''{0}'' unknown in templates ''{1}''"
-msgstr ""
+msgstr "Papel ''{0}'' desconhecido nos modelos ''{1}''"
 
 msgid "Empty role type found when expecting one of ''{0}''"
-msgstr ""
+msgstr "Encontrado tipo de papel vazio ao esperar um do tipo ''{0}''"
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "Falta papel ''{0}''"
 
 msgid "Number of ''{0}'' roles too low ({1})"
-msgstr ""
+msgstr "Número de papéis ''{0}'' demasiado baixo ({1})"
 
 msgid "Number of ''{0}'' roles too high ({1})"
-msgstr ""
+msgstr "Número de papéis ''{0}'' demasiado alto ({1})"
 
 msgid "Self-intersecting ways"
 msgstr "Linhas que se cruzam entre si mesmas"
@@ -5167,7 +5188,7 @@ msgid "options provided as Java system properties"
 msgstr "opções fornecidas como propriedades de sistema Java"
 
 msgid "Change the JOSM directory name"
-msgstr ""
+msgstr "Alterar nome da pasta do JOSM"
 
 msgid "/PATH/TO/JOSM/PREF    "
 msgstr "/CAMINHO/PARA/PREFERENCIAS/JOSM    "
@@ -5176,7 +5197,7 @@ msgid "Set the preferences directory"
 msgstr "Definir a pasta das preferências"
 
 msgid "Default: {0}"
-msgstr ""
+msgstr "Padrão: {0}"
 
 msgid "/PATH/TO/JOSM/USERDATA"
 msgstr "/CAMINHO/PARA/DADOSUTILIZADOR/JOSM"
@@ -6911,11 +6932,13 @@ msgid "this layer is not currently active (click to activate)"
 msgstr "esta camada não está ativa (clique para ativar)"
 
 msgid "scale follows native resolution of this layer"
-msgstr ""
+msgstr "a escala segue a resolução nativa desta camada"
 
 msgid ""
 "scale follows native resolution of another layer (click to set this layer)"
 msgstr ""
+"a escala segue a resolução nativa doutra camada (clicar para definir esta "
+"camada)"
 
 msgid "this layer has no native resolution"
 msgstr "esta camada não tem resolução nativa"
@@ -7063,7 +7086,7 @@ msgid "Sort"
 msgstr "Ordenar"
 
 msgid "Open the note in an external browser"
-msgstr ""
+msgstr "Abrir o erro reportado num navegador externo"
 
 msgid "Object type:"
 msgstr "Tipo de objeto:"
@@ -7325,12 +7348,14 @@ msgstr ""
 "Descarregar o conteúdo do conjunto de alterações do servidor do OpenStreetMap"
 
 msgid "Download changed objects"
-msgstr ""
+msgstr "Descarregar objetos alterados"
 
 msgid ""
 "Download the current version of the changed objects in the selected "
 "changesets"
 msgstr ""
+"Descarregar a versão atual dos objetos alterados nos conjuntos de alterações "
+"selecionados"
 
 msgid "My changesets"
 msgstr "Obter os meus conjuntos de alterações"
@@ -9024,7 +9049,7 @@ msgid "B"
 msgstr "B"
 
 msgid "Editor"
-msgstr ""
+msgstr "Editor"
 
 msgid ""
 "Failed to update primitive with id {0} because current edit layer is null"
@@ -9414,7 +9439,7 @@ msgid "Unsaved changes - Save/Upload before deleting?"
 msgstr "Alterações por gravar - Gravar e/ou enviar antes de eliminar?"
 
 msgid "Unsaved changes - Save/Upload before restarting?"
-msgstr ""
+msgstr "Alterações por guardar - Gravar/Enviar antes de reiniciar?"
 
 msgid "Uploading and saving modified layers ..."
 msgstr "A enviar e gravar camadas alteradas ..."
@@ -9486,10 +9511,11 @@ msgstr ""
 "Sair do JOSM sem gravar. As alterações por gravar serão deitadas fora."
 
 msgid "Restart now!"
-msgstr ""
+msgstr "Reiniciar agora!"
 
 msgid "Restart JOSM without saving. Unsaved changes are lost."
 msgstr ""
+"Reiniciar o JOSM sem gravar. As alterações por gravar serão perdidas."
 
 msgid "Delete now!"
 msgstr "Eliminar agora!"
@@ -9507,10 +9533,12 @@ msgstr ""
 "gravadas."
 
 msgid "Perform actions before restarting"
-msgstr ""
+msgstr "Efetuar as ações antes de reiniciar"
 
 msgid "Restart JOSM with saving. Unsaved changes are uploaded and/or saved."
 msgstr ""
+"Reiniciar o JOSM gravando. As alterações por gravar serão gravadas ou "
+"enviadas."
 
 msgid "Perform actions before deleting"
 msgstr "Fazer ações antes de eliminar"
@@ -10007,6 +10035,8 @@ msgstr "aproximar o enquadramento para carregar mais telas"
 
 msgid "increase tiles zoom level (change resolution) to see more detail"
 msgstr ""
+"aumentar o nível de aproximação das telas (alterar resolução) para ver mais "
+"detalhes"
 
 msgid "No tiles at this zoom level"
 msgstr "Sem telas a este nível"
@@ -10145,8 +10175,8 @@ msgstr "Gravar Camada"
 
 msgid "{0} note"
 msgid_plural "{0} notes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} erro reportado"
+msgstr[1] "{0} erros reportados"
 
 msgid "Notes layer"
 msgstr "Camada de erros reportados no mapa"
@@ -12014,7 +12044,15 @@ msgid "Foot"
 msgstr "A pé"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -12033,6 +12071,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Criar marcadores ao ler ficheiros GPX"
 
@@ -12160,6 +12201,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Cores dos Pontos e Trilhos GPS"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Desenhar os trilhos GPS que excedam este limiar."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 "Cores dos pontos e segmentos dos trilhos em função dos limites dos dados."
@@ -12248,7 +12305,7 @@ msgstr ""
 "suporta funcionalidades como abrir apenas os ficheiros suportados pelo JOSM."
 
 msgid "Check if you feel opposite direction more convenient"
-msgstr ""
+msgstr "Ative se preferir a direção oposta"
 
 msgid ""
 "Divide intervals between native resolution levels to smaller steps if they "
@@ -12800,29 +12857,31 @@ msgid "Configure the list of sites where plugins are downloaded from"
 msgstr "Configurar a lista de sites de onde os módulos são descarregados"
 
 msgid "Load from list..."
-msgstr ""
+msgstr "Carregar de uma lista..."
 
 msgid "Load plugins from a list of plugins"
-msgstr ""
+msgstr "Carregar os módulos de uma lista de módulos"
 
 msgid "Disable all other plugins"
-msgstr ""
+msgstr "Desativar todos os outros módulos"
 
 msgid "Enter a list of plugins you want to download."
-msgstr ""
+msgstr "Introduza uma lista de módulos que quer descarregar."
 
 msgid ""
 "You should add one plugin id per line, version information is ignored."
 msgstr ""
+"Deve adicionar o ID de cada módulo por linha, a informação da versão é "
+"ignorada"
 
 msgid "You can copy+paste the list of a status report here."
-msgstr ""
+msgstr "Pode copiar e colar aqui a lista de um relatório de estado."
 
 msgid "Load plugins from list"
-msgstr ""
+msgstr "Carregar módulos de uma lista"
 
 msgid "The following plugins were not found. Continue anyway?"
-msgstr ""
+msgstr "Os seguintes módulos não foram encontrados. Continuar mesmo assim?"
 
 msgid "Add JOSM Plugin description URL."
 msgstr "Adicionar URL da descrição do módulo"
@@ -13935,7 +13994,7 @@ msgstr ""
 "no ficheiro zip ''{0}''. Erro: {1}"
 
 msgid "The requested URL {0} was not found"
-msgstr ""
+msgstr "O URL {0} requisitado não foi encontrado"
 
 msgid "Failed to rename file {0} to {1}."
 msgstr "Não foi possível alterar o nome do ficheiro de {0} para {1}."
@@ -15157,7 +15216,7 @@ msgstr[0] "O módulo não será carregado."
 msgstr[1] "Os módulos não serão carregados."
 
 msgid "Determining plugins to load..."
-msgstr ""
+msgstr "A determinar os módulos a carregar..."
 
 msgid "Removing deprecated plugins..."
 msgstr "A remover módulos depreciados"
@@ -16420,16 +16479,16 @@ msgid "OpenCycleMap"
 msgstr "OpenCycleMap"
 
 msgid "Thunderforest Landscape"
-msgstr ""
+msgstr "Thunderforest Landscape"
 
 msgid "OpenSeaMap"
 msgstr "OpenSeaMap"
 
 msgid "OpenStreetMap Carto (Standard)"
-msgstr ""
+msgstr "OpenStreetMap Carto (Padrão)"
 
 msgid "OpenStreetMap (Standard Black & White)"
-msgstr ""
+msgstr "OpenStreetMap (Padrão preto e Branco)"
 
 msgid "OpenStreetMap (Mapnik, no labels)"
 msgstr "OpenStreetMap (Mapnik, sem etiquetas)"
@@ -16453,10 +16512,10 @@ msgid "skobbler"
 msgstr "skobbler"
 
 msgid "Stamen Terrain"
-msgstr ""
+msgstr "Stamen Terrain"
 
 msgid "Cambodia, Laos, Thailand, Vietnam, Myanmar bilingual"
-msgstr ""
+msgstr "Camboja, Laos, Tailândia, Vietname, Mianmar bilingue"
 
 msgid "OpenPT Map (overlay)"
 msgstr "OpenPublicTtransport Map (sobreposição)"
@@ -16531,7 +16590,7 @@ msgid "imagico.de OSM images for mapping: Elephant Island/Clarence Island"
 msgstr ""
 
 msgid "IGN Argentina (TMS)"
-msgstr ""
+msgstr "IGN Argentina (TMS)"
 
 msgid "IGN Argentina (WMS)"
 msgstr "IGN Argentina (WMS)"
@@ -16591,7 +16650,7 @@ msgid "Tiris: DOM (Surface model)"
 msgstr "Tiris: DOM (Modelo de superfície)"
 
 msgid "Tiris: contour lines"
-msgstr ""
+msgstr "Tiris: linhas de contorno"
 
 msgid "Vienna: Mehrzweckkarte (general purpose)"
 msgstr "Viena: Mehrzweckkarte (usos gerais)"
@@ -16650,6 +16709,9 @@ msgstr "URBIS 2015 imagens aéreas"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 imagens aéreas"
 
@@ -16663,7 +16725,7 @@ msgid "TEC bus lines (2014)"
 msgstr "TEC linhas de autocarros (2014)"
 
 msgid "TEC bus stops (2014)"
-msgstr ""
+msgstr "TEC paragens de autocarros (2014)"
 
 msgid "Benin: Cotonou Pleiade 2016"
 msgstr ""
@@ -16681,19 +16743,19 @@ msgid "IBGE Mapa de Setores Rurais"
 msgstr "IBGE Mapa de Setores Rurais (Brasil)"
 
 msgid "IBGE Distrito Federal"
-msgstr ""
+msgstr "IBGE Distrito Federal"
 
 msgid "Rio Mosaic 2013"
-msgstr ""
+msgstr "Rio Mosaic 2013"
 
 msgid "Rio Mosaic 2015"
-msgstr ""
+msgstr "Rio Mosaic 2015"
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Londrina Ortofoto 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
-msgstr ""
+msgstr "SIG Santa Catarina OrtoRGB 2012"
 
 msgid "Geobase Hydrography"
 msgstr "Geobase - Hidrografia"
@@ -16893,7 +16955,7 @@ msgid "Berlin aerial photograph 2015"
 msgstr "Berlim aerial photograph 2015"
 
 msgid "Berlin aerial photograph 2016"
-msgstr ""
+msgstr "Berlim fotografias aéreas 2016"
 
 msgid "Erlangen aerial imagery (2016 5.0 cm)"
 msgstr ""
@@ -16920,9 +16982,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Carta Topográfica 1:10000"
 
@@ -16938,6 +16997,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16973,10 +17056,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Imagens de Drone (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Imagens de Drone 2014 (Haiti)"
 
@@ -17129,8 +17208,11 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lituânia)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr "geoportail.lu todas as camadas"
+
+msgid "geoportail.lu ortho 2016"
+msgstr "geoportail.lu orto 2016"
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxemburgo Inspire - Caminho de Ferro"
@@ -17144,6 +17226,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta do Níger Outubro 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Ortofoto 2009/2011 EPSG:25833"
 
@@ -17520,10 +17608,10 @@ msgid "imagico.de OSM images for mapping: Alaska Range"
 msgstr ""
 
 msgid "NJ 2015 Aerial Imagery (Infrared)"
-msgstr ""
+msgstr "NJ 2015 Imagens Aéreas (Infravermelhos)"
 
 msgid "NJ 2015 Aerial Imagery (Natural Color)"
-msgstr ""
+msgstr "NJ 2015 Imagens Aéreas (Cores Naturais)"
 
 msgid "San Juan Metro Area: 2013 USACE Orthophotos"
 msgstr ""
@@ -17535,19 +17623,19 @@ msgid "WA Vector Streetmap for San Juan County"
 msgstr ""
 
 msgid "Texas Orthophoto"
-msgstr ""
+msgstr "Texas Ortofoto"
 
 msgid "Philadelphia 2015 Imagery"
-msgstr ""
+msgstr "Filadélfia 2015 Imagens Aéreas"
 
 msgid "MD 2014 6 Inch Aerial Imagery"
-msgstr ""
+msgstr "MD 2014 6 Polegadas Imagens Aéreas"
 
 msgid "MD Three Inch Aerial Imagery"
-msgstr ""
+msgstr "MD 3 Polegadas Imagens Aéreas"
 
 msgid "MD Transportation Basemap"
-msgstr ""
+msgstr "MD Mapa Base de Transportes"
 
 msgid "Delaware 2012 Orthophotography"
 msgstr ""
@@ -17562,7 +17650,7 @@ msgid "Ukraine - Orthophotomaps 2012"
 msgstr "Ucrânia - Ortofotomapas 2012"
 
 msgid "Works only from within Ukraine or with an Ukrainian proxy server."
-msgstr ""
+msgstr "Apenas funciona na Ucrânia ou com um servidor proxy Ucraniano."
 
 msgid "Ukraine - Kyiv 2014 (DZK)"
 msgstr "Ucrânia - Kyev 2014 (DZK)"
@@ -17681,6 +17769,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -17993,7 +18084,7 @@ msgstr ""
 "está a editar (necessário que usem o JOSM e este módulo)."
 
 msgid "Allows you to view a GeoJSON file as a layer."
-msgstr ""
+msgstr "Permite ver um ficheiro GeoJSON numa camada."
 
 msgid ""
 "Provides parts of the GeoTools library for other JOSM plugins. Not meant to "
@@ -18037,7 +18128,7 @@ msgid "Generate Imagery XML bounds from a multipolygon"
 msgstr "Gera limites de Imagens de Fundo XML a partir de um multi-polígono"
 
 msgid "Export tiles from the imagery layer cache into the file system."
-msgstr ""
+msgstr "Exporta telas da camada de imagens aéreas para o sistema."
 
 msgid ""
 "Database of imagery offsets: share and aquire imagery offsets with one "
@@ -20631,10 +20722,10 @@ msgid "Basin"
 msgstr "Bacia hidrográfica"
 
 msgid "retention"
-msgstr ""
+msgstr "retenção"
 
 msgid "infiltration"
-msgstr ""
+msgstr "infiltração"
 
 msgid "detention"
 msgstr ""
@@ -21651,10 +21742,10 @@ msgid "Guest House/Bed & Breakfast"
 msgstr ""
 
 msgid "Apartment"
-msgstr ""
+msgstr "Apartamento"
 
 msgid "Number of apartments"
-msgstr ""
+msgstr "Número de apartamentos"
 
 msgid "Chalet"
 msgstr "Chalé"
@@ -21723,10 +21814,10 @@ msgid "Takeaway"
 msgstr "Refeições para fora (take-away)"
 
 msgid "Delivery"
-msgstr ""
+msgstr "Entrega ao domicílio"
 
 msgid "Mo-Su 12:00-22:00"
-msgstr ""
+msgstr "Mo-Su 12:00-22:00"
 
 msgid "Fast Food"
 msgstr "Comida Rápida (Fast Food)"
@@ -22279,10 +22370,10 @@ msgid "Point Name"
 msgstr "Nome do Acesso"
 
 msgid "Emergency Phone Number"
-msgstr ""
+msgstr "Telefone de Emergência"
 
 msgid "(Use number as shown on plate.)"
-msgstr ""
+msgstr "(Usar número mostrado na placa de identificação.)"
 
 msgid "Veterinary"
 msgstr "Veterinário"
@@ -22297,7 +22388,7 @@ msgid "Automated Defibrillator"
 msgstr "Desfibrilador Automático Portátil"
 
 msgid "Location description"
-msgstr ""
+msgstr "Descrição da localização"
 
 msgid "Phone Number"
 msgstr "Número de Telefone"
@@ -22524,6 +22615,9 @@ msgstr "Notas"
 msgid "Telephone cards"
 msgstr "Cartões de chamadas telefónicas"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Acesso à Internet"
 
@@ -22569,6 +22663,9 @@ msgstr "Mostra a pressão barométrica"
 msgid "Shows humidity"
 msgstr "Mostra a humidade"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Contentor de Reciclagem"
 
@@ -24496,6 +24593,21 @@ msgstr "Locais Históricos"
 msgid "Castle"
 msgstr "Castelo"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr "defensivo"
+
+msgid "fortress"
+msgstr "fortaleza"
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr "palácio"
+
 msgid "Archaeological Site"
 msgstr "Sítio Arqueológico"
 
@@ -24585,7 +24697,7 @@ msgid "Deli (Fine Food)"
 msgstr "Loja de Gourmet"
 
 msgid "Pastry"
-msgstr ""
+msgstr "Pastelaria"
 
 msgid "Confectionery"
 msgstr ""
@@ -24851,6 +24963,9 @@ msgstr "pneus de bicicleta"
 msgid "cigarettes"
 msgstr "cigarros"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "preservativos"
 
@@ -24884,9 +24999,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotografias"
 
-msgid "public_transport_plans"
-msgstr "mapas de transporte público"
-
 msgid "public_transport_tickets"
 msgstr "bilhetes de transporte público"
 
@@ -26371,6 +26483,99 @@ msgstr "Campismo"
 msgid "Test"
 msgstr "Teste"
 
+msgid "View website"
+msgstr "Ver site"
+
+msgid "View URL"
+msgstr "Ver URL"
+
+msgid "Send Email"
+msgstr "Enviar email"
+
+msgid "View image"
+msgstr "Ver imagem"
+
+msgid "View %name% article"
+msgstr "Ver artigo %name%"
+
+msgid "View Wikidata page"
+msgstr "´Ver página Wikidata"
+
+msgid "View UNESCO sheet"
+msgstr "Ver folha UNESCO"
+
+msgid "View %name% image"
+msgstr "Ver imagem %name%"
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Número de porta PAR na interpolação de endereços"
 
@@ -26393,7 +26598,7 @@ msgid "{0} without {1}"
 msgstr "{0} sem {1}"
 
 msgid "missing tag"
-msgstr ""
+msgstr "falta etiqueta"
 
 msgid "{0} without {1} or {2}"
 msgstr "{0} sem {1} ou {2}"
@@ -26405,10 +26610,10 @@ msgid "{0} together with {1}"
 msgstr "{0} junto com {1}"
 
 msgid "suspicious tag combination"
-msgstr ""
+msgstr "combinação de etiquetas suspeita"
 
 msgid "two objects, one with {0} and one with {1} + {2} + {3}"
-msgstr ""
+msgstr "dois objetos, um com {0} e um com {1} + {2} + {3}"
 
 msgid "incomplete object: only {0}"
 msgstr "objeto incompleto: apenas {0}"
@@ -26465,7 +26670,7 @@ msgid "Different number of lanes in the keys {0} and {1}"
 msgstr ""
 
 msgid "possibly missing {0} tag"
-msgstr ""
+msgstr "possível falta da etiqueta {0}"
 
 msgid "street with odd number of {0}, but without {1} and {2} or {3}"
 msgstr ""
@@ -26474,7 +26679,7 @@ msgid "{0} is deprecated"
 msgstr "''{0}'' está em desuso"
 
 msgid "deprecated tagging"
-msgstr ""
+msgstr "etiquetas em desuso"
 
 msgid "''{0}'' is meaningless, use more specific tags, e.g. ''{1}''"
 msgstr "''{0}'' é genérico, use etiquetas +específicas como ''{1}''"
@@ -26539,7 +26744,7 @@ msgid "Definition of {0} is unclear"
 msgstr "A definição de {0} é incerta"
 
 msgid "{0} + {1} + {2}"
-msgstr ""
+msgstr "{0} + {1} + {2}"
 
 msgid ""
 "{0} is not recommended. Use the Reverse Ways function from the Tools menu."
@@ -26547,7 +26752,7 @@ msgstr ""
 "{0} não é recomendado. Utilize Inverter Sentido da Linha no menu Ferramentas"
 
 msgid "{0}"
-msgstr ""
+msgstr "{0}"
 
 msgid "key with uncommon character"
 msgstr "chave com um caractere incomum"
@@ -26571,10 +26776,10 @@ msgid "The key {0} has an uncommon value."
 msgstr "A chave {0} tem um valor incomum."
 
 msgid "misspelled value"
-msgstr ""
+msgstr "valor com erro ortográfico"
 
 msgid "wrong value: {0}"
-msgstr ""
+msgstr "valor errado: {0}"
 
 msgid "{0} on a node. Should be used on a way."
 msgstr "{0} num nó. Deve ser usado numa linha."
@@ -26583,7 +26788,7 @@ msgid "{0} on a node. Should be drawn as an area."
 msgstr "{0} num nó. Deve ser usado numa área."
 
 msgid "{0} on a node. Should be used in a relation"
-msgstr ""
+msgstr "{0} num nó. Deve ser usado numa relação"
 
 msgid "{0} on a way. Should be used on a node."
 msgstr "{0} numa linha. Deve ser usado num nó."
@@ -26616,7 +26821,7 @@ msgid "Overlapping Identical Landuses"
 msgstr "Usos do Solo sobrepostos"
 
 msgid "isolated node which must be connected to a way"
-msgstr ""
+msgstr "nó isolado que deve estar ligado a uma linha"
 
 msgid "node connects waterway and bridge"
 msgstr "nó liga curso de água e ponte"
@@ -26647,7 +26852,7 @@ msgid ""
 msgstr ""
 
 msgid "Coastline inside {1}"
-msgstr ""
+msgstr "Linha costeira dentro de {1}"
 
 msgid "{0} should be on the node where {1} and {2} intersect"
 msgstr "{0} deve estar no nó onde{1} e {2} se cruzam"
@@ -26656,6 +26861,8 @@ msgid ""
 "{0} is the tag for the linear waterway. To tag the water area use {1} + {2} "
 "instead."
 msgstr ""
+"{0} é a etiqueta para a hidrovia linear. Para áreas de água usar antes {1} + "
+"{2}."
 
 msgid "abbreviated street name"
 msgstr "nome abreviado da rua"
@@ -26680,6 +26887,8 @@ msgstr "{0} usada em simultâneo com {1}"
 
 msgid "{0} is deprecated, use {1} instead. Also check similar tags like {2}"
 msgstr ""
+"{0} está em desuso, em vez disso usar {1}. Verificar também etiquetas "
+"semelhantes como {2}"
 
 msgid ""
 "Value of ''{0}'' should either be ''{1}'' or ''{2}''. For sidewalks use "
@@ -26776,19 +26985,19 @@ msgid "street name contains ss"
 msgstr "nome da rua contém ss"
 
 msgid "street name contains ß"
-msgstr ""
+msgstr "nome da estrada contém ß"
 
 msgid "{0} is unnecessary"
 msgstr "{0} não é necessária"
 
 msgid "unnecessary tag"
-msgstr ""
+msgstr "etiqueta desnecessária"
 
 msgid "{0} is unnecessary for {1}"
 msgstr "{0} não é necessária em {1}"
 
 msgid "{0} makes no sense"
-msgstr ""
+msgstr "{0} não faz sentido"
 
 msgid "Nodes duplicating parent way tags"
 msgstr "Nós com etiquetas iguais às da da própria linha"
@@ -27056,13 +27265,13 @@ msgid "Importing..."
 msgstr "A importar..."
 
 msgid "DXF files [ImportDxf plugin] (*.dxf)"
-msgstr ""
+msgstr "Ficheiros DXF [módulo ImportDxf] (*.dxf)"
 
 msgid "Please open or create data layer before importing"
 msgstr "Por favor abra ou crie uma camada antes de importar"
 
 msgid "Import dxf"
-msgstr ""
+msgstr "Importar DXF"
 
 msgid "Scale:"
 msgstr "Escala:"
@@ -27506,7 +27715,7 @@ msgid "Submit the current changeset to Mapillary"
 msgstr "Enviar conjunto de alterações atual para o Mapillary"
 
 msgid "Changeset upload failed with {0} error ''{1} {2}''!"
-msgstr ""
+msgstr "O envio do conjunto de alterações falhou com {0} erro ''{1} {2}''!"
 
 msgid ""
 "An exception occured while trying to submit a changeset. If this happens "
@@ -27536,18 +27745,6 @@ msgstr "Aproximar a imagem selecionada"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Ver de perto a imagem Mapillary atualmente selecionada"
 
-msgid "View in website"
-msgstr "Ver no site"
-
-msgid "Copy key"
-msgstr "Copiar chave"
-
-msgid "Copy key tag"
-msgstr "Copiar etiqueta da chave"
-
-msgid "Edit on website"
-msgstr "Editar no site"
-
 msgid "Current Mapillary changeset"
 msgstr "Conjunto de alterações Mapillary atual"
 
@@ -27555,10 +27752,10 @@ msgid "Open Mapillary changeset dialog"
 msgstr ""
 
 msgid "Mapillary changeset"
-msgstr ""
+msgstr "Conjunto de alterações Mapillary"
 
 msgid "Submitting changeset to server…"
-msgstr ""
+msgstr "A enviar o conjunto de alterações para o servidor..."
 
 msgid "Export all images"
 msgstr "Exportar todas as imagens"
@@ -27708,13 +27905,7 @@ msgid "Move to picture''s location with next/previous buttons"
 msgstr "Ver a localização da imagem seguinte com os botões seguinte/anterior"
 
 msgid "Preview images when hovering its icon"
-msgstr ""
-
-msgid "Login"
-msgstr "Iniciar sessão"
-
-msgid "Logout"
-msgstr "Terminar sessão"
+msgstr "Pré-visualizar imagens ao passar com o cursor sobre o ícone"
 
 msgid "Download mode"
 msgstr "Modo de descarregamento"
@@ -27725,6 +27916,12 @@ msgstr "Está autenticado como ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Neste momento não está autenticado."
 
+msgid "Login"
+msgstr "Iniciar sessão"
+
+msgid "Logout"
+msgstr "Terminar sessão"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Vá às preferências e autentique-se no Mapillary antes de enviar dados."
@@ -27744,6 +27941,64 @@ msgstr "Seguir a imagem selecionada"
 msgid "Go forward"
 msgstr "Avançar"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"Quer mesmo substituir o valor atual <i>{0}</i> com o novo valor <i>{1}</i>?"
+
+msgid "Tag conflict"
+msgstr "Conflito de etiquetas"
+
+msgid "Key copied to clipboard"
+msgstr "Chave copiada para a área de transferência"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr "Entendido, fechar isto."
+
+msgid "Image info"
+msgstr "Informações da imagem"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+"Mostra informação detalhada sobre a imagem atual selecionada do Mapillary"
+
+msgid "Add Mapillary tag"
+msgstr "Adicionar etiqueta Mapillary"
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Não foi possível abrir o URL {0} no navegador de internet"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} imagem eliminada"
@@ -27771,13 +28026,13 @@ msgid "2 images unjoined"
 msgstr "2 imagens separadas"
 
 msgid "everything in the visible area"
-msgstr ""
+msgstr "tudo na área visível"
 
 msgid "areas with downloaded OSM-data"
-msgstr ""
+msgstr "áreas com dados descarregados do OSM"
 
 msgid "only when manually requested"
-msgstr ""
+msgstr "apenas quando pedido manualmente"
 
 msgid ""
 "The downloaded OSM area is too big. Download mode has been changed to OSM "
@@ -27812,16 +28067,18 @@ msgid "No images found"
 msgstr "Nenhuma imagem encontrada"
 
 msgid "You have successfully uploaded {0} images to mapillary.com"
-msgstr ""
+msgstr "Enviou com sucesso {0} imagens para mapillary.com"
 
 msgid "Finished upload"
 msgstr "Envio terminado"
 
 msgid "You are not logged in, please log in to Mapillary in the preferences"
 msgstr ""
+"Não está autenticado, por favor entre na sua conta do Mapillary nas "
+"preferências"
 
 msgid "Not Logged in to Mapillary"
-msgstr ""
+msgstr "Não autenticado no Mapillary"
 
 msgid "Uploading: {0}"
 msgstr "A enviar: {0}"
@@ -30242,63 +30499,63 @@ msgid "Open Imagery XML file"
 msgstr "Abrir um ficheiro de imagem de fundo XML"
 
 msgid "Export tiles"
-msgstr ""
+msgstr "Exportar telas"
 
 msgid "Export cached tiles to file system."
-msgstr ""
+msgstr "Exporta telas temporárias para o sistema."
 
 msgid "Exporting cached tiles"
-msgstr ""
+msgstr "A exportar as telas temporárias"
 
 msgid "Failed to write image file {0}: {1}"
-msgstr ""
+msgstr "Falhou a gravação do ficheiro da imagem {0}: {1}"
 
 msgid "Failed to write image file {0}."
-msgstr ""
+msgstr "Falhou a gravação do ficheiro da imagem {0}."
 
 msgid "Exported {0} tile from layer {1}."
 msgid_plural "Exported {0} tiles from layer {1}."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Exportada {0} tela da camada {1}."
+msgstr[1] "Exportadas {0} telas da camada {1}."
 
 msgid "Export file system path already exists but is not a directory."
-msgstr ""
+msgstr "O caminho do diretório já existe mas não é uma pasta."
 
 msgid "Failed to create export directory: {0}"
-msgstr ""
+msgstr "Não foi possível criar a pasta: {0}"
 
 msgid "Failed to create export directory."
-msgstr ""
+msgstr "Não foi possível criar a pasta para onde exportar."
 
 msgid "Append cache name"
-msgstr ""
+msgstr "Anexar nome do ficheiro temporário"
 
 msgid "Export Tiles"
-msgstr ""
+msgstr "Exportar Telas"
 
 msgid "Cache name:"
-msgstr ""
+msgstr "Nome do ficheiro temporário:"
 
 msgid "Object count:"
-msgstr ""
+msgstr "Número de objetos:"
 
 msgid "file system path"
-msgstr ""
+msgstr "caminho"
 
 msgid "File system path the tiles are exported to."
-msgstr ""
+msgstr "Caminho da pasta para onde as telas serão exportadas."
 
 msgid "Export directory:"
-msgstr ""
+msgstr "Diretório de exportar:"
 
 msgid "Append cache name to export directory."
-msgstr ""
+msgstr "Anexar nome dos ficheiros temporários à pasta de exportação."
 
 msgid "Tiles will be exported to directory {0}"
-msgstr ""
+msgstr "As telas serão exportadas para a pasta {0}"
 
 msgid "No export directory set."
-msgstr ""
+msgstr "Nenhuma pasta definida."
 
 msgid "Calibration Layer"
 msgstr "Camada de Calibração"
@@ -30790,10 +31047,10 @@ msgid ""
 msgstr ""
 
 msgid "Correct"
-msgstr ""
+msgstr "Correto"
 
 msgid "Wrong"
-msgstr ""
+msgstr "Errado"
 
 msgid "<HTML><U>C</U>orrect direction</HTML>"
 msgstr ""
@@ -32256,7 +32513,7 @@ msgstr "Não foi possível carregar o ficheiro: {0}"
 msgid "Problem occurred"
 msgstr "Ocorreu um problema"
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -32280,6 +32537,12 @@ msgstr "Grava os dados de calibração num ficheiro"
 msgid "Saving file failed: {0}"
 msgstr "Não foi possível gravar o ficheiro: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nova camada de imagem da área de transferência"
 
@@ -33477,37 +33740,37 @@ msgid "Rotate Mode:"
 msgstr ""
 
 msgid "Clockwise"
-msgstr ""
+msgstr "Sentido Horário"
 
 msgid "Counter Clockwise"
-msgstr ""
+msgstr "Sentido Anti-Horário"
 
 msgid "Input angle here"
-msgstr ""
+msgstr "Introduzir ângulo aqui"
 
 msgid "Rotate"
-msgstr ""
+msgstr "Rodar"
 
 msgid "Align building "
-msgstr ""
+msgstr "Alinhar edifício "
 
 msgid "Select building"
-msgstr ""
+msgstr "Selecionar edifício"
 
 msgid "Select road"
-msgstr ""
+msgstr "Selecionar estrada"
 
 msgid "Select none"
-msgstr ""
+msgstr "Não selecionar nada"
 
 msgid "Min Distance:"
-msgstr ""
+msgstr "Distância Mínima:"
 
 msgid "Input min distance"
-msgstr ""
+msgstr "Introduzir distãncia mínima"
 
 msgid "Align all buildings"
-msgstr ""
+msgstr "Alinhar todos os edifícios"
 
 msgid "Delete overlay"
 msgstr ""
@@ -35924,7 +36187,7 @@ msgid "{0}: {1}"
 msgstr ""
 
 msgid "Wikidata"
-msgstr ""
+msgstr "Wikidata"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
 msgstr ""
@@ -35979,6 +36242,3 @@ msgid "Drive a race car on this layer"
 msgstr ""
 "Conduza um carro (necessário ter camada Bing ativa) e grave simultaneamente "
 "um trilho GPS do percurso (não envie para o OpenStreetMap!)"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/pt_BR.po b/i18n/po/pt_BR.po
index d1b8fd2..e1b7b96 100644
--- a/i18n/po/pt_BR.po
+++ b/i18n/po/pt_BR.po
@@ -8,16 +8,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-02-02 00:36+0000\n"
-"Last-Translator: Maurorjb <maurorjb at gmail.com>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-24 13:55+0000\n"
+"Last-Translator: Nelson A. de Oliveira <naoliv at debian.org>\n"
 "Language-Team: Português Brasileiro <gnome-pt_br-list at gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:20+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:22+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: pt_BR\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -66,13 +66,13 @@ msgid "Help"
 msgstr "Ajuda"
 
 msgid "Initializing internal boundaries data"
-msgstr ""
+msgstr "Inicializando dados internos de limites"
 
 msgid "Initializing OSM API"
 msgstr "Inicializando a API do OSM"
 
 msgid "Initializing internal traffic data"
-msgstr ""
+msgstr "Inicializando dados internos de tráfego"
 
 msgid "Initializing validator"
 msgstr "Inicializando validador"
@@ -2705,7 +2705,7 @@ msgid "objects"
 msgstr "objetos"
 
 msgid "all nodes"
-msgstr ""
+msgstr "todos os nós"
 
 msgid "all ways"
 msgstr "todos os caminhos"
@@ -2778,6 +2778,7 @@ msgstr "todos os objetos incompletos"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
 msgstr ""
+"todos os objetos excluídos (a caixa de seleção <b>{0}</b> deve estar ativada)"
 
 msgid "related objects"
 msgstr "objetos relacionados"
@@ -3556,9 +3557,28 @@ msgctxt "compass"
 msgid "E"
 msgstr "L"
 
+msgid "Date of imagery: {0}"
+msgstr "Data das imagens: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Estas imagens estão marcadas em outros editores como a melhor nesta região"
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Atualizar entradas padrão"
 
+msgid "Update imagery ''{0}''"
+msgstr "Atualizar imagens \"{0}\""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projeção ''{0}'' não foi encontrada, marcador ''{1}'' não é usável"
 
@@ -4353,13 +4373,13 @@ msgid "Multipolygon is not closed"
 msgstr "O multipolígono não está fechado"
 
 msgid "Multipolygon rings share node(s)"
-msgstr ""
+msgstr "Anéis de multipolígono compartilham nó(s)"
 
 msgid "Intersection between multipolygon ways"
 msgstr "Interseção entre vias multipolígonais"
 
 msgid "Multipolygon rings are equal"
-msgstr ""
+msgstr "Anéis de multipolígono são iguais"
 
 msgid "Role for ''{0}'' should be ''{1}''"
 msgstr "Função para ''{0}'' deve ser ''{1}''"
@@ -4368,10 +4388,11 @@ msgid "Multipolygon inner way is outside"
 msgstr "A linha interna do multipolígono está do lado de fora"
 
 msgid "Multipolygon ring contains segments twice"
-msgstr ""
+msgstr "O anel multipolígono contém segmentos duplicados"
 
 msgid "Multipolygon outer way shares segment(s) with other ring"
 msgstr ""
+"A via externa do multipolígono compartilha segmento(s) com outro anel"
 
 msgid "No useful role for multipolygon member"
 msgstr "Nenhuma regra últil para membro multipoligonal"
@@ -5123,6 +5144,8 @@ msgid ""
 "Set the preferences+data+cache directory (cache directory will be "
 "josm.home/cache)"
 msgstr ""
+"Defina o diretório configurações+dados+cache (o diretório de cache será "
+"josm.home/cache)"
 
 msgid ""
 "-Djosm.home has lower precedence, i.e. the specific setting overrides the "
@@ -9022,6 +9045,8 @@ msgid ""
 "Select which actions to perform for this layer, if you click the leftmost "
 "button."
 msgstr ""
+"Selecionar as ações a serem executadas para essa camada, se clicar no botão "
+"mais a esquerda."
 
 msgid "Check \"Upload\" to upload the changes to the OSM server."
 msgstr "Marque \"Enviar\" para enviar as modificações para o servidor OSM."
@@ -9400,10 +9425,12 @@ msgstr ""
 "Sair do JOSM salvando. Mudanças não salvas serão enviadas e/ou salvas."
 
 msgid "Perform actions before restarting"
-msgstr ""
+msgstr "Executar ações antes de reiniciar"
 
 msgid "Restart JOSM with saving. Unsaved changes are uploaded and/or saved."
 msgstr ""
+"Reinicie o JOSM salvando. As alterações não salvas serão enviadas e/ou "
+"salvas."
 
 msgid "Perform actions before deleting"
 msgstr "Realizar ações antes de apagar"
@@ -9904,7 +9931,7 @@ msgid "zoom in to load more tiles"
 msgstr "zoom para carregar mais quadros"
 
 msgid "increase tiles zoom level (change resolution) to see more detail"
-msgstr ""
+msgstr "Aumente o nível de zoom (altere a resolução) para ver mais detalhes"
 
 msgid "No tiles at this zoom level"
 msgstr "Sem quadros neste nível de zoom"
@@ -10036,7 +10063,7 @@ msgid "Supported projections are: {0}"
 msgstr "Projeções suportadas são {0}"
 
 msgid "Change the projection again or remove the layer."
-msgstr ""
+msgstr "Altere a projeção novamente ou remova a camada."
 
 msgid "Save Layer"
 msgstr "Salvar Camada"
@@ -10591,7 +10618,7 @@ msgid "Direction"
 msgstr "Direção"
 
 msgid "Velocity, {0}"
-msgstr ""
+msgstr "Velocidade, {0}"
 
 msgid "Wave Audio files (*.wav)"
 msgstr "Arquivos de áudio WAV (*.wav)"
@@ -11360,7 +11387,7 @@ msgid "Remove from toolbar"
 msgstr "Remover da barra de ferramentas"
 
 msgid "Configure toolbar"
-msgstr "Configura a barra de ferramentas"
+msgstr "Configurar a barra de ferramentas"
 
 msgid "Edit shortcut"
 msgstr "Editar atalho"
@@ -11873,7 +11900,7 @@ msgid "Track date"
 msgstr "Data da trilha"
 
 msgid "Heat Map (dark = few, bright = many)"
-msgstr ""
+msgstr "Mapa de calor (escuro = pouco, brilhante = muito)"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Cor única (pode ser personalizado para camadas nomeadas)"
@@ -11888,8 +11915,16 @@ msgid "Foot"
 msgstr "A Pé"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Usuário"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11907,6 +11942,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Calor"
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Criar marcadores quando lendo GPX"
 
@@ -11920,7 +11958,7 @@ msgid "Smooth GPX graphics (antialiasing)"
 msgstr "Suavizar gráficos GPX (antialiasing)"
 
 msgid "Draw with Opacity (alpha blending) "
-msgstr ""
+msgstr "Desenhe com opacidade (composição alpha) "
 
 msgid ""
 "Automatically make a marker layer from any waypoints when opening a GPX "
@@ -11996,6 +12034,8 @@ msgid ""
 "Apply dynamic alpha-blending and adjust width based on zoom level for all "
 "GPX lines."
 msgstr ""
+"Aplicar composição alpha dinâmica e ajustar a largura com base no nível de "
+"zoom para todas as linhas GPX."
 
 msgid ""
 "All points and track segments will have the same color. Can be customized in "
@@ -12023,17 +12063,35 @@ msgstr "Pontos de cores e segmentos de pista por seu timestamp."
 msgid ""
 "Collected points and track segments for a position and displayed as heat map."
 msgstr ""
+"Pontos coletados e segmentos de trilha para uma posição e exibidos como mapa "
+"de calor."
 
 msgid "Allows to tune the track coloring for different average speeds."
 msgstr ""
 "Permita ajustar a cor da trilha para diferentes médias de velocidade."
 
 msgid "Selects the color schema for heat map."
-msgstr ""
+msgstr "Seleciona o esquema de cores para o mapa de calor."
 
 msgid "Track and Point Coloring"
 msgstr "Coloração de caminhos e pontos"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Desenhar todas as trilhas GPX que excedem este limite"
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Pontos de cores e segmentos de pista por limites de dados."
 
@@ -12244,7 +12302,7 @@ msgid "Sharpen (requires layer re-add): "
 msgstr "Aguçar (requer readicionar camada) "
 
 msgid "Tile cache directory: "
-msgstr "Diretória de cahce de quadros: "
+msgstr "Diretório do cache de tiles: "
 
 msgid "Maximum size of disk cache (per imagery) in MB: "
 msgstr "Tamanho máximo do cache de disco (por imagem) em MB: "
@@ -12660,7 +12718,7 @@ msgid "Load plugins from a list of plugins"
 msgstr ""
 
 msgid "Disable all other plugins"
-msgstr ""
+msgstr "Desabilitar todos os outros plugins"
 
 msgid "Enter a list of plugins you want to download."
 msgstr ""
@@ -15801,6 +15859,9 @@ msgid ""
 "This is always a coding error. If you are running the latest version of "
 "JOSM, please consider being kind and file a bug report."
 msgstr ""
+"Uma exceção inesperada ocorreu.\n"
+"Isso é sempre um erro de programação. Se você estiver utilizando a última "
+"versão do JOSM, por favor, considere a gentileza de reportar o problema."
 
 msgid "Debug information"
 msgstr ""
@@ -15839,7 +15900,7 @@ msgid ""
 msgstr ""
 
 msgid "Include the system status report."
-msgstr ""
+msgstr "Incluir o relatório de status do sistema"
 
 msgid "Include information about the data you were working on."
 msgstr ""
@@ -15861,6 +15922,7 @@ msgstr "O JOSM está atualizado"
 
 msgid "JOSM is out of date. The current version is {0}. Try updating JOSM."
 msgstr ""
+"O JOSM está desatualizado. A versão atual é {0}. Tente atualizar o JOSM."
 
 msgid ""
 "Before you file a bug report make sure you have updated to the latest "
@@ -16223,10 +16285,10 @@ msgid "OpenSeaMap"
 msgstr "OpenSeaMap"
 
 msgid "OpenStreetMap Carto (Standard)"
-msgstr ""
+msgstr "OpenStreetMap Carto (Padrão)"
 
 msgid "OpenStreetMap (Standard Black & White)"
-msgstr ""
+msgstr "OpenStreetMap (Padrão em branco e preto)"
 
 msgid "OpenStreetMap (Mapnik, no labels)"
 msgstr "OpenStreetMap (Mapnik, sem etiquetas)"
@@ -16447,6 +16509,9 @@ msgstr "URBIS 2015 aerial imagery"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 aerial imagery"
 
@@ -16478,19 +16543,19 @@ msgid "IBGE Mapa de Setores Rurais"
 msgstr "IBGE Mapa de Setores Rurais"
 
 msgid "IBGE Distrito Federal"
-msgstr ""
+msgstr "IBGE Distrito Federal"
 
 msgid "Rio Mosaic 2013"
-msgstr ""
+msgstr "Rio Mosaico 2013"
 
 msgid "Rio Mosaic 2015"
-msgstr ""
+msgstr "Rio Mosaico 2015"
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Londrina Ortofoto 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
-msgstr ""
+msgstr "SIG Santa Catarina OrtoRGB 2012"
 
 msgid "Geobase Hydrography"
 msgstr "Geobase Hydrography"
@@ -16717,9 +16782,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1:10000"
 
@@ -16735,6 +16797,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16770,10 +16856,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Imagery (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Imagery 2014 (Haiti)"
 
@@ -16924,7 +17006,10 @@ msgstr "1.cikla ortofotokarte - Latvia"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lituânia)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16939,6 +17024,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta Oct 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 
@@ -17473,6 +17564,9 @@ msgstr "OS Town Plans, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Elgin 1868 (NLS)"
 
@@ -18466,7 +18560,7 @@ msgid "siding"
 msgstr "desvio"
 
 msgid "spur"
-msgstr "espora"
+msgstr "ramal"
 
 msgid "crossover"
 msgstr "travessão"
@@ -19223,7 +19317,7 @@ msgid "In the tidal range"
 msgstr "Na zona entremarés"
 
 msgid "culvert"
-msgstr "canalizado"
+msgstr "galeria"
 
 msgid "Water access rules:"
 msgstr "Regras de acesso a água"
@@ -19622,7 +19716,7 @@ msgid "Motor vehicles"
 msgstr "Veículos a motor"
 
 msgid "Light Commercial Vehicles (goods)"
-msgstr "Veículos Comerciais Leves (bens)"
+msgstr ""
 
 msgid "Heavy Goods Vehicles (hgv)"
 msgstr "Veículos de Carga Pesada (hgv)"
@@ -20112,7 +20206,7 @@ msgid "Speed Camera"
 msgstr "Radar de Velocidade"
 
 msgid "Traffic Mirror"
-msgstr "Espelho de Trânsito"
+msgstr "Espelho Parabólico"
 
 msgid "Highway milestone"
 msgstr "Marco quilométrico"
@@ -20375,7 +20469,7 @@ msgid "Breakwater"
 msgstr "Quebra-mar"
 
 msgid "Culvert"
-msgstr "Bueiro"
+msgstr "Galeria"
 
 msgid "Basin"
 msgstr "Bacia"
@@ -21491,13 +21585,13 @@ msgid "Ice cream"
 msgstr "Sorvete"
 
 msgid "Pub"
-msgstr "Bar/Pub"
+msgstr "Bar/boteco"
 
 msgid "Beer Garden"
 msgstr "Cervejaria ao ar livre"
 
 msgid "Bar"
-msgstr "Bar"
+msgstr "Bar requintado/drinqueria"
 
 msgid "Tourism"
 msgstr "Turismo"
@@ -22274,6 +22368,9 @@ msgstr "Notas"
 msgid "Telephone cards"
 msgstr "Cartão Telefônico"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Acesso à Internet"
 
@@ -22319,6 +22416,9 @@ msgstr "Mostra a pressão barométrica"
 msgid "Shows humidity"
 msgstr "Mostra a umidade"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Container para Reciclagem"
 
@@ -23882,8 +23982,8 @@ msgid ""
 "(Please only use this tag if more detailed mapping using busbars and bays is "
 "impossible!)"
 msgstr ""
-"(Por favor, use apenas essa tag se o mapeamento usando busbars e bays mais "
-"detalhados é impossível!)"
+"(Por favor, use essa tag apenas se um mapeamento mais detalhado usando "
+"busbars e bays for impossível!)"
 
 msgid "Power Busbar"
 msgstr "Energia de barramentos"
@@ -24245,6 +24345,21 @@ msgstr "Lugares Históricos"
 msgid "Castle"
 msgstr "Castelo"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Sítio Arqueológico"
 
@@ -24600,6 +24715,9 @@ msgstr "câmaras de ar (bicicletas)"
 msgid "cigarettes"
 msgstr "cigarros"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "preservativos"
 
@@ -24633,9 +24751,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotos"
 
-msgid "public_transport_plans"
-msgstr "mapas de transporte público"
-
 msgid "public_transport_tickets"
 msgstr "tíquetes de transporte público"
 
@@ -25268,7 +25383,7 @@ msgid "Large area covered with sand."
 msgstr "Grande área coberta de areia."
 
 msgid "Bare Rock"
-msgstr "Rocha Nua"
+msgstr "Leito rochoso"
 
 msgid ""
 "For areas of solid visible rock that is sparsely vegetated or not vegetated "
@@ -25434,10 +25549,10 @@ msgid "Religious"
 msgstr "Religioso"
 
 msgid "Retail"
-msgstr "Comércio"
+msgstr "Comércio e varejo"
 
 msgid "Commercial"
-msgstr "Comercial"
+msgstr "Escritórios e negócios"
 
 msgid "Industrial"
 msgstr "Industrial"
@@ -26121,6 +26236,99 @@ msgstr "camping"
 msgid "Test"
 msgstr "Testar"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -27285,18 +27493,6 @@ msgstr "Zoom para a imagem selecionada"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Zoom para a imagem selecionada no Mapillary no momento"
 
-msgid "View in website"
-msgstr "Ver no site"
-
-msgid "Copy key"
-msgstr "Copiar chave"
-
-msgid "Copy key tag"
-msgstr "Copiar chave da tag"
-
-msgid "Edit on website"
-msgstr "Editar no site"
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -27459,12 +27655,6 @@ msgstr "Move para a localização de fotos com os botões próximo/anterior"
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Login"
-
-msgid "Logout"
-msgstr "Logout"
-
 msgid "Download mode"
 msgstr "Modo de download"
 
@@ -27474,6 +27664,12 @@ msgstr "Você está logado como ''{0}''."
 msgid "You are currently not logged in."
 msgstr "No momento você não está logado."
 
+msgid "Login"
+msgstr "Login"
+
+msgid "Logout"
+msgstr "Logout"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Vá para configuração e faça login no Mapillary antes de fazer o upload."
@@ -27493,6 +27689,62 @@ msgstr "Sigir imagem selecionada"
 msgid "Go forward"
 msgstr "Ir para a frente"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Apagar {0} imagem"
@@ -31996,8 +32248,8 @@ msgstr "Carregamento do arquivo falhou: {0}"
 msgid "Problem occurred"
 msgstr "Problema ocorrido"
 
-msgid "Load World File Calibration..."
-msgstr "Carregar Arquivo de Calibragem do Mundo..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Carregando dados de calibração de um arquivo do mundo"
@@ -32020,6 +32272,12 @@ msgstr "Salva os dados de calibração para um arquivo"
 msgid "Saving file failed: {0}"
 msgstr "Gravação do arquivo falhou: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nova camada de imagem a partir da área de transferência"
 
@@ -35620,13 +35878,13 @@ msgid "Not linked yet"
 msgstr "Não foi linkado ainda"
 
 msgid "{0}: {1}"
-msgstr ""
+msgstr "{0}: {1}"
 
 msgid "Wikidata"
-msgstr ""
+msgstr "Wikidata"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
-msgstr ""
+msgstr "Obtém todas as coordenadas do Wikidata na visão atual"
 
 msgid "Fetches all coordinates from Wikipedia in the current view"
 msgstr "Retorna todas as coordenadas de Wikipedia na visão atual"
@@ -35673,6 +35931,3 @@ msgstr "Dirigir"
 
 msgid "Drive a race car on this layer"
 msgstr "Dirija um carro de corrida nesta camada"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/rm.po b/i18n/po/rm.po
index dab8ae5..1b4ffa2 100644
--- a/i18n/po/rm.po
+++ b/i18n/po/rm.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-06-21 19:14+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Raeto-Romance <rm at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n !=1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:09+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:10+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ro.po b/i18n/po/ro.po
index cd39c00..c2d20bc 100644
--- a/i18n/po/ro.po
+++ b/i18n/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: JOSM\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-02-24 11:34+0000\n"
 "Last-Translator: Ciprian <c1pr1an_43v3r at yahoo.com>\n"
 "Language-Team: Romanian <gnomero-list at lists.sourceforge.net>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
 "== 0) && (n != 0))) ? 2: 1));\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:09+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:11+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "X-Poedit-Country: ROMANIA\n"
 "Language: ro\n"
 "X-Poedit-Language: Romanian\n"
@@ -3307,9 +3307,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10876,7 +10894,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10895,6 +10921,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11007,6 +11036,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14948,6 +14993,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15215,9 +15263,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15233,6 +15278,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15268,10 +15337,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15422,7 +15487,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15437,6 +15505,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15971,6 +16045,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20604,6 +20681,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20649,6 +20729,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22573,6 +22656,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22928,6 +23026,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22961,9 +23062,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24426,6 +24524,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25536,18 +25727,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25710,19 +25889,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25743,6 +25922,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29870,7 +30105,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29894,6 +30129,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ru.po b/i18n/po/ru.po
index 6a82acb..9a9ec16 100644
--- a/i18n/po/ru.po
+++ b/i18n/po/ru.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-26 06:13+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-25 07:09+0000\n"
 "Last-Translator: Aleksey Kabanov <Unknown>\n"
 "Language-Team: Koptev Oleg <koptev.oleg at gmail.com>\n"
 "MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:10+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:12+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ru_RU\n"
 
 msgid "Use OAuth"
@@ -3616,9 +3616,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "В"
 
+msgid "Date of imagery: {0}"
+msgstr "Дата снимка: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr "Этот снимок отмечен как лучший в данном регионе в других редакторах."
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Обновить доступные по умолчанию подложки"
 
+msgid "Update imagery ''{0}''"
+msgstr "Обновить снимки ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Удалить старые снимки ''{0}''"
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Проекция ''{0}'' не найдена, закладка ''{1}'' непригодна к использованию"
@@ -12017,8 +12035,16 @@ msgid "Foot"
 msgstr "Пешком"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Цвета пользователя"
+msgid "User Normal"
+msgstr "Цвета пользователя (обычная)"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Цвета пользователя (светлая)"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Светофор"
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -12036,6 +12062,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Нагрев"
 
+msgid "Use points instead of lines for heat map"
+msgstr "Использовать на тепловой карте точки вместо линий"
+
 msgid "Create markers when reading GPX"
 msgstr "Создать маркеры при чтении GPX"
 
@@ -12162,6 +12191,23 @@ msgstr "Выбор цветовой схемы для тепловой карт
 msgid "Track and Point Coloring"
 msgstr "Раскрасить треки и точки"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr "Нижний предел видимости"
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Рисовать все GPX-треки, превышающие этот порог."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+"Рендер будет рисовать точки с вычисленной погрешностью позиции вместо линий. "
+
 msgid "Colors points and track segments by data limits."
 msgstr "Раскрасить точки и сегменты трека по пределам данных."
 
@@ -16628,6 +16674,9 @@ msgstr "URBIS 2015 - аэрофотосъёмка"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) цифровое изображение PICC"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW(allonie) самые новые аэрофотоснимки"
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 аэрофотосъёмка"
 
@@ -16896,9 +16945,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: цифровая базовая карта 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: топографическая карта 1:10000"
 
@@ -16916,6 +16962,30 @@ msgstr ""
 "Снимки с imagico.de: прибрежные отмели Северной Германии (инфракрасные "
 "снимки)"
 
+msgid "Saxony latest aerial imagery"
+msgstr "Саксония: самые новые аэрофотоснимки"
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr "Саксония: самые новые снимки в ИК-диапазоне"
+
+msgid "Saxony aerial imagery 2005"
+msgstr "Саксония: аэрофотосъёмка 2005"
+
+msgid "Saxony WebAtlasSN"
+msgstr "Саксония WebAtlasSN"
+
+msgid "Saxony topographic map"
+msgstr "Саксония: топографическая карта"
+
+msgid "Saxony digital terrain model"
+msgstr "Саксония: цифровая модель рельефа"
+
+msgid "Mainz all aerial imageries"
+msgstr "Майнц: все аэрофотоснимки"
+
+msgid "Mainz latest aerial imagery"
+msgstr "Майнц: самые новые аэрофотоснимки"
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "Снимки с imagico.de: Касигианнгуит"
 
@@ -16953,11 +17023,6 @@ msgstr "Снимки с imagico.de: север Гренландии (ASTER)"
 msgid "Drone Imagery (Haiti)"
 msgstr "Снимки с дрона (Гаити)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-"Временно недоступно (предположительно, до января 2017) из-за смены сервера."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Снимки с дрона 2014 (Гаити)"
 
@@ -17108,8 +17173,11 @@ msgstr "1.cikla ортофотокарта - Латвия"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Литва)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr "geoportail.lu все слои"
+
+msgid "geoportail.lu ortho 2016"
+msgstr "geoportail.lu орто 2016"
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire: железные дороги"
@@ -17123,6 +17191,12 @@ msgstr "Luxembourg Inspire: водная карта"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Дельта Нигера, окт. 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr "Аэрофотоснимки PDOK 25 см (WMS)"
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr "Аэрофотоснимки PDOK 25 см (WMTS)"
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Шпицберген - ортофото 2009/2011 EPSG:25833"
 
@@ -17660,6 +17734,9 @@ msgstr "OS Town Plans, Эдинбург 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans, Эдинбург 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Town Plans, Эдинбург 1940-1960 (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans, Элгин 1868 (NLS)"
 
@@ -22469,6 +22546,9 @@ msgstr "Банкноты"
 msgid "Telephone cards"
 msgstr "Телефонные карты"
 
+msgid "Internet Cafe"
+msgstr "Интернет-кафе"
+
 msgid "Internet Access"
 msgstr "Доступ в интернет"
 
@@ -22514,6 +22594,9 @@ msgstr "Показывают атмосферное давление"
 msgid "Shows humidity"
 msgstr "Показывают влажность"
 
+msgid "Photo booth"
+msgstr "Фотоавтомат"
+
 msgid "Recycling Container"
 msgstr "Контейнер для перерабатываемых отходов"
 
@@ -24440,6 +24523,21 @@ msgstr "Исторические места"
 msgid "Castle"
 msgstr "Замок"
 
+msgid "stately"
+msgstr "без функциональной защиты"
+
+msgid "defensive"
+msgstr "оборонительный замок"
+
+msgid "fortress"
+msgstr "крепость"
+
+msgid "manor"
+msgstr "главный дом поместья"
+
+msgid "palace"
+msgstr "дворец"
+
 msgid "Archaeological Site"
 msgstr "Археологические раскопки"
 
@@ -24795,6 +24893,9 @@ msgstr "велосипедная шина"
 msgid "cigarettes"
 msgstr "сигареты"
 
+msgid "coffee"
+msgstr "кофе"
+
 msgid "condoms"
 msgstr "презервативы"
 
@@ -24828,9 +24929,6 @@ msgstr "отправка посылок"
 msgid "photos"
 msgstr "фотографии"
 
-msgid "public_transport_plans"
-msgstr "схемы общественного транспорта"
-
 msgid "public_transport_tickets"
 msgstr "билеты на общественный транспорт"
 
@@ -26313,6 +26411,99 @@ msgstr "Кемпинг"
 msgid "Test"
 msgstr "Тест"
 
+msgid "View website"
+msgstr "Просмотреть веб-сайт"
+
+msgid "View URL"
+msgstr "Открыть URL"
+
+msgid "Send Email"
+msgstr "Отправить письмо"
+
+msgid "View image"
+msgstr "Просмотреть изображение"
+
+msgid "View %name% article"
+msgstr "Просмотреть статью %name%"
+
+msgid "View Wikidata page"
+msgstr "Просмотреть страницу Викиданных"
+
+msgid "View UNESCO sheet"
+msgstr "Просмотреть информационный лист ЮНЕСКО"
+
+msgid "View %name% image"
+msgstr "Просмотреть изображение %name%"
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr "Просмотреть страницу %name% на osm.fr"
+
+msgid "View %name% map of municipalities"
+msgstr "Просмотреть карту муниципалитетов %name%"
+
+msgid "View %name% list of municipalities"
+msgstr "Просмотреть список муниципалитетов %name%"
+
+msgid "View %name% map of cantons"
+msgstr "Просмотреть карту кантонов %name%"
+
+msgid "View %name% list of cantons"
+msgstr "Просмотреть список кантонов %name%"
+
+msgid "View %name% map of arrondissements"
+msgstr "Просмотреть карту округов %name%"
+
+msgid "View %name% list of arrondissements"
+msgstr "Просмотреть список округов %name%"
+
+msgid "View %name% map of departments"
+msgstr "Просмотреть карту департаментов %name%"
+
+msgid "View %name% list of departments"
+msgstr "Просмотреть список департаментов %name%"
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr "Просмотреть карточку памятника из базы Мериме"
+
+msgid "View Mérimée list for this municipality"
+msgstr "Просмотреть список из базы Мериме для этого муниципалитета"
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr "Получить идентификационную карту (pdf) этого учреждения"
+
+msgid "View %name% page of this post office"
+msgstr "Посмотреть страницу %name% этого почтового отделения"
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Чётный номер дома в интерполяции нечётных адресов."
 
@@ -27504,18 +27695,6 @@ msgstr "Масштабировать до выбранного снимка"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Приблизить вид до текущего выбранного снимка Mapillary"
 
-msgid "View in website"
-msgstr "Посмотреть на веб-сайте"
-
-msgid "Copy key"
-msgstr "Копировать ключ"
-
-msgid "Copy key tag"
-msgstr "Копировать тег"
-
-msgid "Edit on website"
-msgstr "Изменить на сайте"
-
 msgid "Current Mapillary changeset"
 msgstr "Текущий  пакет правок Mapillary"
 
@@ -27680,12 +27859,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Предпросмотр изображения при наведении на его значок"
 
-msgid "Login"
-msgstr "Войти"
-
-msgid "Logout"
-msgstr "Выйти"
-
 msgid "Download mode"
 msgstr "Режим скачивания"
 
@@ -27695,6 +27868,12 @@ msgstr "Вы вошли как ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Вы не выполнили вход."
 
+msgid "Login"
+msgstr "Войти"
+
+msgid "Logout"
+msgstr "Выйти"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Перейти к настройкам и войти в Mapillary перед отправкой данных."
 
@@ -27713,6 +27892,70 @@ msgstr "Следовать за выделенным снимком"
 msgid "Go forward"
 msgstr "Вперёд"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr "Тег с ключом <i>{0}</i> уже есть у выделенного объекта OSM."
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"Вы действительно хотите заменить текущее значение <i>{0}</i> на новое "
+"значение <i>{1}</i>?"
+
+msgid "Tag conflict"
+msgstr "Конфликт тегов"
+
+msgid "Key copied to clipboard"
+msgstr "Ключ скопирован в буфер обмена"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"Модуль Mapillary теперь использует отдельную панель для показа "
+"дополнительной информации (типа идентификатора снимка) и действий для "
+"текущего выделенного снимка Mapillary (например, просмотра его в браузере)."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Её можно активировать щелчком левой кнопкой внизу этого сообщения или "
+"кнопкой с тем же значком в панели инструментов слева."
+
+msgid "I got it, close this."
+msgstr "Понятно, закрыть окно."
+
+msgid "Image info"
+msgstr "Информация о снимке"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+"Показывает подробную информацию о текущем выделенном снимке Mapillary"
+
+msgid "Add Mapillary tag"
+msgstr "Добавить тег Mapillary"
+
+msgid "Image actions"
+msgstr "Действия со снимком"
+
+msgid "Image key"
+msgstr "Идентификатор снимка"
+
+msgid "Sequence key"
+msgstr "Идентификатор последовательности"
+
+msgid "image has no key"
+msgstr "у снимка нет идентификатора"
+
+msgid "sequence has no key"
+msgstr "у последовательности нет идентификатора"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Не удалось открыть URL {0} в браузере"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Удалён {0} снимок"
@@ -32222,8 +32465,8 @@ msgstr "Загрузка файла не удалась:  {0}"
 msgid "Problem occurred"
 msgstr "Возникла проблема"
 
-msgid "Load World File Calibration..."
-msgstr "Загрузить калибровочные данные из world-файла..."
+msgid "Import World File Calibration..."
+msgstr "Импортировать привязку из world-файла..."
 
 msgid "Loads calibration data from a world file"
 msgstr "Загружает калибровочные данные из world-файла"
@@ -32246,6 +32489,12 @@ msgstr "Сохраняет данные калибровки в файл"
 msgid "Saving file failed: {0}"
 msgstr "Не удалось сохранить файл: {0}"
 
+msgid "Export World file Calibration..."
+msgstr "Экспортировать привязку в world-файл..."
+
+msgid "Saves calibration data to a world file"
+msgstr "Сохранить данные привязки в world-файл"
+
 msgid "New picture layer from clipboard"
 msgstr "Новый слой изображения из буфера обмена"
 
@@ -35924,6 +36173,3 @@ msgstr "Приступить к вождению"
 
 msgid "Drive a race car on this layer"
 msgstr "Вести гоночный автомобиль на этом слое"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: аэрофотосъёмка"
diff --git a/i18n/po/sk.po b/i18n/po/sk.po
index 16eea0c..508e114 100644
--- a/i18n/po/sk.po
+++ b/i18n/po/sk.po
@@ -9,16 +9,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-28 23:42+0000\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-22 23:48+0000\n"
 "Last-Translator: aceman444 <Unknown>\n"
 "Language-Team: Slovak <>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:12+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:14+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: sk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -64,7 +64,7 @@ msgid "Building main menu"
 msgstr "Vytváram hlavné menu"
 
 msgid "Help"
-msgstr "Nápoveda"
+msgstr "Pomocník"
 
 msgid "Initializing internal boundaries data"
 msgstr "Inicializujú sa interné údaje hraníc"
@@ -1375,7 +1375,7 @@ msgstr ""
 "hláseniu chyby"
 
 msgid "Help: {0}"
-msgstr "Nápoveda: {0}"
+msgstr "Pomocník: {0}"
 
 msgid "Status Report"
 msgstr "Správa o stave"
@@ -3572,9 +3572,28 @@ msgctxt "compass"
 msgid "E"
 msgstr "V"
 
+msgid "Date of imagery: {0}"
+msgstr "Dátum snímky: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+"Tieto podklad je označený v iných editoroch ako najlepší v tomto regióne."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} zrkladliaci server {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} zrkladliaci server"
+
 msgid "Update default entries"
 msgstr "Aktualizovať predvolené záznamy"
 
+msgid "Update imagery ''{0}''"
+msgstr "Aktualizovať podklad \"{0}\""
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Odstrániť zastaralý podklad \"{0}\""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "Projekcia ''{0}'' nie je nájdená, záložka ''{1}'' nie je použiteľná"
 
@@ -5053,7 +5072,7 @@ msgid "options"
 msgstr "Možnosti"
 
 msgid "Show this help"
-msgstr "Zobrazí túto nápovedu"
+msgstr "Zobraziť tohto pomocníka"
 
 msgid "Standard unix geometry argument"
 msgstr "Štandardný UNIXový parameter pre geometriou"
@@ -7896,7 +7915,7 @@ msgid "Go to OSM wiki for tag help"
 msgstr "Prejsť na OSM wiki pre pomoc so značkou"
 
 msgid "Launch browser with wiki help for selected object"
-msgstr "Spustiť prehliadač s wiki nápovedu pre vybraný objekt"
+msgstr "Spustiť prehliadač s wiki pomocníkom pre vybraný objekt"
 
 msgid "Go to Taginfo"
 msgstr "Prejsť na Taginfo"
@@ -8617,10 +8636,12 @@ msgstr "Žiadna oblasť nie je vybratá"
 
 msgid "Download area too large; will probably be rejected by server"
 msgstr ""
-"Sťahovaná plocha je príliš veľká, server zrejme odmietne vašu požiadavku"
+"Sťahovaná oblasť je príliš veľká, server zrejme odmietne vašu požiadavku"
 
 msgid "Download area ok, size probably acceptable to server"
-msgstr "Sťahovaná plocha je v poriadku, veľkosť je akceptovaná serverom"
+msgstr ""
+"Sťahovaná oblasť je v poriadku, veľkosť bude pravdepodobne serverom "
+"akceptovaná"
 
 msgid "Click to close the dialog and to abort downloading"
 msgstr "Kliknutím zavriete dialóg a prerušíte sťahovanie"
@@ -8711,7 +8732,7 @@ msgid "Tile Numbers"
 msgstr "Čísla dlaždíc"
 
 msgid "JOSM Help Browser"
-msgstr "Prehliadač nápovedy JOSM"
+msgstr "Prehliadač pomocníka JOSM"
 
 msgid "Failed to read CSS file ''help-browser.css''. Exception is: {0}"
 msgstr "Neúspešné načítanie CSS súboru ''help-browser.css''. Výnimka je: {0}"
@@ -8728,7 +8749,7 @@ msgstr ""
 "<html><p class=\"warning-header\">Obsah pomocníka k téme pomoci chýba</p><p "
 "class=\"warning-body\">Obsah pomocníka pre tému pomocníka "
 "<strong>{0}</strong> nie je k dispozícii. Chýba ako vo vašom jazyku ({1}) "
-"tak aj v anglickom jazyku.<br><br>Pomôžte zlepšiť JOSM systém nápovedy a "
+"tak aj v anglickom jazyku.<br><br>Pomôžte zlepšiť systém pomoci v JOSM a "
 "vyplniť chýbajúce informácie. Môžete tak upraviť <a href=\"{2}\"> tému "
 "pomocníka vo vašom jazyku ({1})</a> a <a href=\"{3}\">tému pomocníka v "
 "angličtine</a>.</p></html>"
@@ -8765,8 +8786,8 @@ msgid ""
 "<html>The current URL <tt>{0}</tt><br>is an external URL. Editing is only "
 "possible for help topics<br>on the help server <tt>{1}</tt>.</html>"
 msgstr ""
-"<html>Aktuálna URL <tt>{0}</tt><br>je nejaká externá URL. Úprava je možná "
-"iba pre témy nápovedy<br>na server nápovedy <tt>{1}</tt>.</html>"
+"<html>Aktuálna URL adresa<tt>{0}</tt><br>je externá. Úprava je možná iba pre "
+"témy pomocníka<br>na serveri pomocníka <tt>{1}</tt>.</html>"
 
 msgid "Reload the current help page"
 msgstr "Preložiť aktuálnu stránku pomoci"
@@ -8778,7 +8799,7 @@ msgid "Go to the next page"
 msgstr "Prejsť na nasledujúcu stránku"
 
 msgid "Go to the JOSM help home page"
-msgstr "Choďte na domácu stránku nápovedy JOSM"
+msgstr "Prejsť na domácu stránku pomocníka JOSM"
 
 msgid "Bad location in HTML document. Exception was: {0}"
 msgstr "Chybné umiestnenie v HTML dokumente. Výnimka bola: {0}"
@@ -9901,7 +9922,7 @@ msgid "Auto zoom"
 msgstr "Automatické priblíženie"
 
 msgid "Auto load tiles"
-msgstr "Automaticky Načítať Dlaždice"
+msgstr "Automaticky načítať dlaždice"
 
 msgid "Show errors"
 msgstr "Zobrazovať chyby"
@@ -10577,7 +10598,7 @@ msgid "meters"
 msgstr "metre"
 
 msgid "Maximum area per request:"
-msgstr "Maximálna plocha na požiadavku:"
+msgstr "Maximálna plocha v jednej požiadavke:"
 
 msgid "Download near:"
 msgstr "Stiahnuť okolo:"
@@ -11918,8 +11939,16 @@ msgid "Foot"
 msgstr "Pešo"
 
 msgctxt "Heat map"
-msgid "User"
-msgstr "Používateľom definovaný"
+msgid "User Normal"
+msgstr "Používateľská normálna"
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr "Používateľská svetlá"
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr "Semafory"
 
 msgctxt "Heat map"
 msgid "Inferno"
@@ -11937,6 +11966,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr "Heat"
 
+msgid "Use points instead of lines for heat map"
+msgstr "V teplotnej mape použiť body namiesto čiar"
+
 msgid "Create markers when reading GPX"
 msgstr "Vytvoriť značky(markers) pri načítaní GPX"
 
@@ -12066,6 +12098,22 @@ msgstr "Zvoľte farebnú schému pre teplotnú mapu."
 msgid "Track and Point Coloring"
 msgstr "Farebná trať a body"
 
+msgid "Overlay gain adjustment"
+msgstr "Nastavenie intenzity prekryvu"
+
+msgid "Lower limit of visibility"
+msgstr "Nižšia hranica viditeľnosti"
+
+msgid "Adjust the gain of overlay blending."
+msgstr "Nastaviť intenzitu zlúčenia prekryvu."
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr "Kresliť všetky stopy GPX, ktoré prekračujú túto hranicu."
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr "Vykresľovanie použije body so simulovanou polohou namiesto čiar. "
+
 msgid "Colors points and track segments by data limits."
 msgstr "Vyfarbiť body vyznačiť segmenty podľa časových limitov."
 
@@ -15597,9 +15645,9 @@ msgid ""
 "large.<br>Either request a smaller area or use an export file provided by "
 "the OSM community."
 msgstr ""
-"Plocha, ktorú sa snažíte nahrať je príliš veľká, alebo vaša požiadavka bola "
-"príliš zozľahlá.<br>Požadujte menšiu plochu, alebo použite nejaký exportný "
-"súbor poskytnutý OSM komunitou."
+"Oblasť, ktorú sa snažíte stiahnuť, je príliš veľká alebo vaša požiadavka "
+"bola príliš rozľahlá.<br>Požadujte menšiu oblasť alebo použite niektorý "
+"exportný súbor poskytovaný OSM komunitou."
 
 msgid ""
 "The OSM server ''{0}'' does not know about an object<br>you tried to read, "
@@ -16208,7 +16256,7 @@ msgid "File Name:"
 msgstr "Názov Súboru:"
 
 msgid "FileChooser help."
-msgstr "Nápoveda k výberu súborov."
+msgstr "Pomocník k výberu súborov."
 
 msgid "Files"
 msgstr "Súbory"
@@ -16547,6 +16595,9 @@ msgstr "URBIS 2015 letecké snímky"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) PICC numerical imagery"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr "SPW(allonie) najnovšie letecké snímky"
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 letecké snímky"
 
@@ -16587,7 +16638,7 @@ msgid "Rio Mosaic 2015"
 msgstr "Rio Mosaic 2015"
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Londrina Ortofoto 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
 msgstr "SIG Santa Catarina OrtoRGB 2012"
@@ -16816,9 +16867,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topografická mapa 1:10000"
 
@@ -16838,6 +16886,30 @@ msgstr ""
 "imagico.de OSM obrázky pre mapovanie: Severné Nemecko západné pobrežné "
 "prílivové oblasti (infračervené)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de OSM obrázky pre mapovanie: Qasigiannguit"
 
@@ -16873,10 +16945,6 @@ msgstr "imagico.de OSM obrázky pre mapovanie: Northern Greenland ASTER"
 msgid "Drone Imagery (Haiti)"
 msgstr "Snímky automatických lietadiel (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Fotografie z bezpilotných lietadiel 2014 (Haiti)"
 
@@ -16914,7 +16982,7 @@ msgid "Riverbank of Danube at Budapest, Szentendre and Szigetmonostor"
 msgstr "Breh Dunaja pri mestách Budapešť, Szentendre a Szigetmonostor"
 
 msgid "Budapest district XI ortophoto 2015"
-msgstr ""
+msgstr "Budapešť XI.okrsok ortofoto 2015"
 
 msgid "OpenStreetMap Hungary (hiking routes)"
 msgstr "OpenStreetMap Maďarsko (turistické chodníky)"
@@ -16998,10 +17066,10 @@ msgid "South Tyrol Orthofoto 2011"
 msgstr "Južné Tirolsko Ortofoto 2011"
 
 msgid "South Tyrol Orthofoto 2011 (highres)"
-msgstr ""
+msgstr "Južné Tirolsko Ortofoto 2011 (vysoké rozlíšenie)"
 
 msgid "South Tyrol Orthofoto 2014"
-msgstr ""
+msgstr "Južné Tirolsko Ortofoto 2014"
 
 msgid "South Tyrol Topomap"
 msgstr "Južné Tirolsko, topografická mapa"
@@ -17027,8 +17095,11 @@ msgstr "1.cikla ortofotokarte - Lotyšsko"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Litva)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Luxembourg Inspire Železnice"
@@ -17042,6 +17113,12 @@ msgstr "Luxembourg Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Delta Nigeru Okt 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Svalbard - Ortofoto 2009/2011 EPSG:25833"
 
@@ -17363,7 +17440,7 @@ msgid "Kanton Basel-Stadt 2015"
 msgstr "Kanton Basel-Stadt 2015"
 
 msgid "Kanton Basel-Landschaft 10cm (2015)"
-msgstr ""
+msgstr "Kanton Basel-Landschaft 10cm (2015)"
 
 msgid "imagico.de OSM images for mapping: Cental Alps in late September 2016"
 msgstr ""
@@ -17578,6 +17655,9 @@ msgstr "OS Plány miest, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Plány miest, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Plány miest, Edinburgh 1940s-1960s (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Plány miest, Elgin 1868 (NLS)"
 
@@ -22363,6 +22443,9 @@ msgstr "Bankovky"
 msgid "Telephone cards"
 msgstr "Telefónne karty"
 
+msgid "Internet Cafe"
+msgstr "Internetová kaviareň"
+
 msgid "Internet Access"
 msgstr "Prístup na Internet"
 
@@ -22408,6 +22491,9 @@ msgstr "Zobrazuje atmosférický tlak"
 msgid "Shows humidity"
 msgstr "Zobrazuje vlhkosť"
 
+msgid "Photo booth"
+msgstr "Fotokabína"
+
 msgid "Recycling Container"
 msgstr "Recyklačná nádoba"
 
@@ -24334,6 +24420,21 @@ msgstr "Historické miesta"
 msgid "Castle"
 msgstr "Hrad"
 
+msgid "stately"
+msgstr "Zámok"
+
+msgid "defensive"
+msgstr "Hrad"
+
+msgid "fortress"
+msgstr "Pevnosť"
+
+msgid "manor"
+msgstr "Kaštieľ"
+
+msgid "palace"
+msgstr "Palác"
+
 msgid "Archaeological Site"
 msgstr "Archeologické nálezisko"
 
@@ -24689,6 +24790,9 @@ msgstr "duše na bicykle"
 msgid "cigarettes"
 msgstr "cigarety"
 
+msgid "coffee"
+msgstr "káva"
+
 msgid "condoms"
 msgstr "kondómy"
 
@@ -24722,9 +24826,6 @@ msgstr "podanie balíkov"
 msgid "photos"
 msgstr "fotky"
 
-msgid "public_transport_plans"
-msgstr "plány MHD"
-
 msgid "public_transport_tickets"
 msgstr "lístky MHD"
 
@@ -25600,7 +25701,7 @@ msgid "Country code"
 msgstr "Kód krajiny"
 
 msgid "Unit/Suite"
-msgstr ""
+msgstr "Miestnosť/Funkčná jednotka"
 
 msgid "House name"
 msgstr "Meno domu"
@@ -26205,6 +26306,99 @@ msgstr "Táborisko"
 msgid "Test"
 msgstr "Otestovať"
 
+msgid "View website"
+msgstr "Zobraziť webovú stránku"
+
+msgid "View URL"
+msgstr "Zobraziť URL adresu"
+
+msgid "Send Email"
+msgstr "Odoslať e-mail"
+
+msgid "View image"
+msgstr "Zobraziť obrázok"
+
+msgid "View %name% article"
+msgstr "Zobraziť článok %name%"
+
+msgid "View Wikidata page"
+msgstr "Zobraziť stránku Wikidata"
+
+msgid "View UNESCO sheet"
+msgstr "Zobraziť hárok UNESCO"
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Párne čísla domov na nepárnej interpolácii adries."
 
@@ -26427,7 +26621,7 @@ msgid "{0} on a node. Should be drawn as an area."
 msgstr "{0} na bode. Malo by byť zakreslené ako oblasť."
 
 msgid "{0} on a node. Should be used in a relation"
-msgstr ""
+msgstr "{0} na bode. Malo by byť použité v relácii"
 
 msgid "{0} on a way. Should be used on a node."
 msgstr "{0} na ceste. Malo by byť použité na bode."
@@ -27373,18 +27567,6 @@ msgstr "Priblížiť na zvolený obrázok"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Priblížiť na zvolený obrázok z Mapillary"
 
-msgid "View in website"
-msgstr "Zobraziť na webstránke"
-
-msgid "Copy key"
-msgstr "Kopírovať kľúč"
-
-msgid "Copy key tag"
-msgstr "Kopírovať značku"
-
-msgid "Edit on website"
-msgstr "Upraviť na webstránke"
-
 msgid "Current Mapillary changeset"
 msgstr "Aktuálna sada zmien Mapillary"
 
@@ -27547,12 +27729,6 @@ msgstr "Tlačidlom nasledujúci/predchádzajúci sa presunúť na pozíciu obrá
 msgid "Preview images when hovering its icon"
 msgstr "Zobraziť náhľady obrázkov pri prejdení nad ich ikonou"
 
-msgid "Login"
-msgstr "Prihlásiť sa"
-
-msgid "Logout"
-msgstr ""
-
 msgid "Download mode"
 msgstr ""
 
@@ -27562,6 +27738,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr "Nie ste prihlásený."
 
+msgid "Login"
+msgstr "Prihlásiť sa"
+
+msgid "Logout"
+msgstr ""
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr "Pred odosielaním choďte do nastavení a prihláste sa do Mapillary."
 
@@ -27580,6 +27762,62 @@ msgstr "Nasledovať vybraný obrázok"
 msgid "Go forward"
 msgstr "Prejsť dopredu"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "{0} obrázkov vymazaných"
@@ -31817,7 +32055,7 @@ msgstr "Nahrávanie súboru zlyhalo: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -31841,6 +32079,12 @@ msgstr "Kalibračné údaje uložené do súboru"
 msgid "Saving file failed: {0}"
 msgstr "Uloženie súboru zlyhalo: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Nová obrázková vrstva zo schránky"
 
@@ -35385,6 +35629,3 @@ msgstr "Ísť jazdiť"
 
 msgid "Drive a race car on this layer"
 msgstr "Jazdiť so závodným autom na tejto vrstve"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Letecké snímky"
diff --git a/i18n/po/sl.po b/i18n/po/sl.po
index 481c7ad..07df757 100644
--- a/i18n/po/sl.po
+++ b/i18n/po/sl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-11-07 17:38+0000\n"
 "Last-Translator: Joško Horvat <Unknown>\n"
 "Language-Team: Slovenian <sl at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
 "n%100==4 ? 3 : 0);\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:12+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:15+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: sl\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3271,9 +3271,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "V"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10866,7 +10884,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10885,6 +10911,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10997,6 +11026,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14949,6 +14994,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15216,9 +15264,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15234,6 +15279,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15269,10 +15338,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15423,7 +15488,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15438,6 +15506,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15972,6 +16046,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20605,6 +20682,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Telefonske kartice"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20650,6 +20730,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22574,6 +22657,21 @@ msgstr "Zgodovinski kraji"
 msgid "Castle"
 msgstr "Grad"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arheološko najdišče"
 
@@ -22929,6 +23027,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22962,9 +23063,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24427,6 +24525,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25537,18 +25728,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25711,19 +25890,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25744,6 +25923,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29873,7 +30108,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29897,6 +30132,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/sq.po b/i18n/po/sq.po
index 98ba0e0..b2b641e 100644
--- a/i18n/po/sq.po
+++ b/i18n/po/sq.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-11-04 19:43+0000\n"
 "Last-Translator: StefanPrifti <Unknown>\n"
 "Language-Team: FLOSS Kosova\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 04:34+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 04:34+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/sr.po b/i18n/po/sr.po
index de07ba3..9416151 100644
--- a/i18n/po/sr.po
+++ b/i18n/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-02-01 15:30+0000\n"
 "Last-Translator: Slobodan Simić <Unknown>\n"
 "Language-Team: Serbian <sr at li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:10+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:12+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: sr\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3256,9 +3256,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10818,7 +10836,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10837,6 +10863,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10947,6 +10976,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14887,6 +14932,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15154,9 +15202,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15172,6 +15217,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15207,10 +15276,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15361,7 +15426,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15376,6 +15444,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15910,6 +15984,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20543,6 +20620,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20588,6 +20668,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22512,6 +22595,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22867,6 +22965,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22900,9 +23001,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24365,6 +24463,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25475,18 +25666,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25649,19 +25828,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25682,6 +25861,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29809,7 +30044,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29833,6 +30068,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/sv.po b/i18n/po/sv.po
index 0afac46..0f970d0 100644
--- a/i18n/po/sv.po
+++ b/i18n/po/sv.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2016-10-08 14:18+0000\n"
-"Last-Translator: Niklas Henriksson <fringillus92 at gmail.com>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-22 12:40+0000\n"
+"Last-Translator: Erik <Unknown>\n"
 "Language-Team: Swedish <sv at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:14+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:16+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: sv\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -1570,8 +1570,8 @@ msgstr "Frigjord nod"
 
 msgid "Dupe into {0} node"
 msgid_plural "Dupe into {0} nodes"
-msgstr[0] "Lura till {0} nod"
-msgstr[1] "Lura till {0} noder"
+msgstr[0] "Dubblera till {0} nod"
+msgstr[1] "Dubblera till {0} noder"
 
 msgid "Dupe {0} node into {1} nodes"
 msgid_plural "Dupe {0} nodes into {1} nodes"
@@ -2673,7 +2673,7 @@ msgid "objects"
 msgstr "objekt"
 
 msgid "all nodes"
-msgstr ""
+msgstr "alla noder"
 
 msgid "all ways"
 msgstr "alla sträckor"
@@ -3514,9 +3514,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "Ö"
 
+msgid "Date of imagery: {0}"
+msgstr "Datum av bakgrund: {0}"
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr "Den här bakgrunden är markerad som bäst i regionen av andra."
+
+msgid "{0} mirror server {1}"
+msgstr "{0} spegling server {1}"
+
+msgid "{0} mirror server"
+msgstr "{0} speglad server"
+
 msgid "Update default entries"
 msgstr "Uppdatera standardposterna"
 
+msgid "Update imagery ''{0}''"
+msgstr "Uppdatera bakgrund ''{0}''"
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Projektionen ''{0}'' hittades inte, så bokmärket ''{1}'' kan inte användas"
@@ -3747,7 +3765,7 @@ msgid "highlight"
 msgstr "framhäv"
 
 msgid "highlight wireframe"
-msgstr ""
+msgstr "upplyst"
 
 msgid "untagged"
 msgstr "otaggade"
@@ -3759,10 +3777,10 @@ msgid "areatext"
 msgstr "yttext"
 
 msgid "Expected element ''{0}'', but got ''{1}''"
-msgstr ""
+msgstr "Väntade element ''{0}'', men fick ''{1}''"
 
 msgid "value expected"
-msgstr ""
+msgstr "värde erfodras"
 
 msgid "UTM projection (''+proj=utm'') requires ''+zone=...'' parameter."
 msgstr ""
@@ -3866,13 +3884,13 @@ msgid "Lambert Conformal Conic"
 msgstr ""
 
 msgid "Lat/lon (Geodetic)"
-msgstr ""
+msgstr "Lat/lon (Geodetic)"
 
 msgid "Mercator"
 msgstr "Mercator"
 
 msgid "Oblique Mercator"
-msgstr ""
+msgstr "Oblique Mercator"
 
 msgid "Unsuitable parameters ''{0}'' and ''{1}'' for two point method."
 msgstr ""
@@ -3890,13 +3908,13 @@ msgid "Polar Stereographic: Parameter ''{0}'' must be 90 or -90."
 msgstr ""
 
 msgid "Sinusoidal"
-msgstr ""
+msgstr "Sinusoidal"
 
 msgid "Swiss Oblique Mercator"
-msgstr ""
+msgstr "Swiss Oblique Mercator"
 
 msgid "Transverse Mercator"
-msgstr ""
+msgstr "Transverse Mercator"
 
 msgid ""
 "Error initializing test {0}:\n"
@@ -3927,7 +3945,7 @@ msgid "E-mail address contains an invalid domain: {0}"
 msgstr "E-postadressen innehåller ett felaktigt domännamn: {0}"
 
 msgid "Email validator"
-msgstr ""
+msgstr "E-post validator"
 
 msgid "URL is invalid"
 msgstr "URL:en är ogiltig"
@@ -3948,7 +3966,7 @@ msgid "URL contains an invalid fragment: {0}"
 msgstr "URL:en innehåller ett felaktigt fragment: {0}"
 
 msgid "URL validator"
-msgstr ""
+msgstr "URL validator"
 
 msgid "Addresses"
 msgstr "Adresser"
@@ -3975,7 +3993,7 @@ msgid "House number too far from street"
 msgstr "Husnummer för långt bort från gatan"
 
 msgid "API Capabilities"
-msgstr ""
+msgstr "API Capabilities"
 
 msgid "Checks for errors against API capabilities"
 msgstr ""
@@ -4034,7 +4052,7 @@ msgid "Wrong syntax in {0} key"
 msgstr ""
 
 msgid "Error in {0} value: {1}"
-msgstr ""
+msgstr "Error i {0} värde: {1}"
 
 msgid "Crossing ways"
 msgstr "Korsande sträckor"
@@ -4322,7 +4340,7 @@ msgid "A name is missing, even though name:* exists."
 msgstr "Ett namn saknas, fast name:* finns."
 
 msgid "Opening hours syntax"
-msgstr ""
+msgstr "Öppettider timmar"
 
 msgid "This test checks the correct usage of the opening hours syntax."
 msgstr ""
@@ -4331,7 +4349,7 @@ msgid "opening_hours value can be prettified"
 msgstr ""
 
 msgid "Unexpected token:"
-msgstr ""
+msgstr "Oväntad token:"
 
 msgid "Unexpected token (school holiday parser):"
 msgstr ""
@@ -4446,7 +4464,7 @@ msgid "Empty role type found when expecting one of ''{0}''"
 msgstr ""
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "Roll ''{0}'' fattas"
 
 msgid "Number of ''{0}'' roles too low ({1})"
 msgstr ""
@@ -4473,7 +4491,7 @@ msgstr ""
 "felstavning."
 
 msgid "Tag checker"
-msgstr ""
+msgstr "Tag kontroll"
 
 msgid "Adding {0} to ignore tags"
 msgstr ""
@@ -4531,7 +4549,7 @@ msgid "Misspelled property key"
 msgstr ""
 
 msgid "Key ''{0}'' looks like ''{1}''."
-msgstr ""
+msgstr "Key ''{0}'' liknar ''{1}''."
 
 msgid "Presets do not contain property key"
 msgstr ""
@@ -4572,7 +4590,7 @@ msgid "TagChecker source"
 msgstr "Källa för TagChecker"
 
 msgid "Data sources ({0})"
-msgstr ""
+msgstr "Data källa ({0})"
 
 msgid "Check property values."
 msgstr "Kontrollera egenskapsvärden"
@@ -4589,7 +4607,7 @@ msgstr ""
 "Letar efter noder och sträckor som har texten FIXME i något egenskapsvärde."
 
 msgid "Fix tags"
-msgstr ""
+msgstr "Fixa tags"
 
 msgid "Could not find element type"
 msgstr "Kunde inte hitta elementtyp"
@@ -4895,7 +4913,7 @@ msgid "Authentication Failed"
 msgstr "Autentisering misslyckades"
 
 msgid "Access to redacted version ''{0}'' of {1} {2} is forbidden."
-msgstr ""
+msgstr "Tillgänglighet ändrat till version \"{0}\" av {1} {2} förbjuden."
 
 msgid "Authorisation Failed"
 msgstr "Behörighetskontroll misslyckades"
@@ -4975,7 +4993,7 @@ msgid "Download the bounding box as raw GPS"
 msgstr "Ladda ner valrutan som rå GPS"
 
 msgid "Download the location at the URL (with lat=x&lon=y&zoom=z) as raw GPS"
-msgstr ""
+msgstr "Ladda ner plats från URL (med lat=x&lon=y&zoom=z) som rå GPS"
 
 msgid "Select with the given search"
 msgstr "Gör urval med angivet sökkriterium"
@@ -5020,7 +5038,7 @@ msgid "Set the preferences directory"
 msgstr ""
 
 msgid "Default: {0}"
-msgstr ""
+msgstr "Standard: {0}"
 
 msgid "/PATH/TO/JOSM/USERDATA"
 msgstr "/PATH/TO/JOSM/USERDATA"
@@ -5330,7 +5348,7 @@ msgid "Do not hide status bar"
 msgstr "Göm inte statusraden"
 
 msgid "The northing at the mouse pointer."
-msgstr ""
+msgstr "Det är inget vid muspekaren."
 
 msgid "The easting at the mouse pointer."
 msgstr ""
@@ -5345,7 +5363,7 @@ msgid "System of measurement changed to {0}"
 msgstr "Måttsystem ändrat till {0}"
 
 msgid "Default (open, closed, new)"
-msgstr ""
+msgstr "Standard (öppna, stäng, ny)"
 
 msgid "Username"
 msgstr "Användarnamn"
@@ -5399,7 +5417,7 @@ msgid ""
 msgstr ""
 
 msgid "Tile address:"
-msgstr ""
+msgstr "Tile adress:"
 
 msgid "Apply the tile address"
 msgstr ""
@@ -8048,7 +8066,7 @@ msgid ""
 msgstr ""
 
 msgid "Deleted relation"
-msgstr ""
+msgstr "Ta bort relation"
 
 msgid "Relation Editor: Remove"
 msgstr ""
@@ -8063,7 +8081,7 @@ msgid "Reverse the order of the relation members"
 msgstr ""
 
 msgid "Reverse"
-msgstr ""
+msgstr "Omvänd"
 
 msgid ""
 "One or more members of this new relation have been deleted while the "
@@ -8121,10 +8139,10 @@ msgid "Do you really want to apply the new role?"
 msgstr "Vill du verkligen applicera den nya rollen?"
 
 msgid "Yes, apply it"
-msgstr ""
+msgstr "Ja, lägg till"
 
 msgid "No, do not apply"
-msgstr ""
+msgstr "Nej, lägg inte till"
 
 msgid "Confirm empty role"
 msgstr ""
@@ -8136,7 +8154,7 @@ msgid "Sort the relation members"
 msgstr "Sortera relationsmedlemmarna"
 
 msgid "Sort below"
-msgstr ""
+msgstr "Sortera nedan"
 
 msgid "Sort the selected relation members and all members below"
 msgstr ""
@@ -8329,7 +8347,7 @@ msgid "Class Type"
 msgstr "Klasstyp"
 
 msgid "Bounds"
-msgstr ""
+msgstr "Gränser"
 
 msgid "Choose the server for searching:"
 msgstr "Välj servern att använda för sökning:"
@@ -8522,13 +8540,13 @@ msgid "Changeset source"
 msgstr ""
 
 msgid "Imagery used"
-msgstr ""
+msgstr "Bakgrund använd"
 
 msgid "<b>Source</b>:"
 msgstr "<b>Källa</b>:"
 
 msgid "<b>Imagery</b>:"
-msgstr ""
+msgstr "<b>Bakgrund</b>:"
 
 msgid ""
 "<html>Version <strong>{0}</strong> currently edited in layer ''{1}''</html>"
@@ -8571,13 +8589,13 @@ msgid "Ver"
 msgstr "Ver"
 
 msgid "A"
-msgstr ""
+msgstr "A"
 
 msgid "B"
-msgstr ""
+msgstr "B"
 
 msgid "Editor"
-msgstr ""
+msgstr "Redigerare"
 
 msgid ""
 "Failed to update primitive with id {0} because current edit layer is null"
@@ -8816,7 +8834,7 @@ msgid ""
 msgstr ""
 
 msgid "Authenticate"
-msgstr ""
+msgstr "Autentisera"
 
 msgid "Authenticate with the supplied username and password"
 msgstr "Autentisera med det angivna användarnamnet och lösenordet"
@@ -9426,16 +9444,16 @@ msgid "Auto zoom"
 msgstr ""
 
 msgid "Auto load tiles"
-msgstr ""
+msgstr "Ladda tiles automatiskt"
 
 msgid "Show errors"
-msgstr ""
+msgstr "Visa fel"
 
 msgid "Load all tiles"
-msgstr ""
+msgstr "Ladda alla tiles"
 
 msgid "Load all error tiles"
-msgstr ""
+msgstr "Ladda alla fel tiles"
 
 msgid "Zoom to native resolution"
 msgstr ""
@@ -9492,7 +9510,7 @@ msgid "{0} ({1}), downloading in zoom {2}"
 msgstr ""
 
 msgid "Downloaded {0}/{1} tiles"
-msgstr ""
+msgstr "Ladda ner {0}/{1} tiles"
 
 msgid "Save WMS file"
 msgstr "Spara WMS-fil"
@@ -9509,7 +9527,7 @@ msgid "Details..."
 msgstr "Detaljer..."
 
 msgid "Do not show this message again"
-msgstr ""
+msgstr "Visa inte det här meddelandet igen"
 
 msgid "Hide this message and never show it again"
 msgstr "Dölj detta meddelande och visa det aldrig igen"
@@ -9541,10 +9559,10 @@ msgid "Timespan"
 msgstr ""
 
 msgid "Length"
-msgstr ""
+msgstr "Längd"
 
 msgid "Length: {0}"
-msgstr ""
+msgstr "Längd: {0}"
 
 msgid "{0} route, "
 msgid_plural "{0} routes, "
@@ -9599,8 +9617,8 @@ msgstr "Spara Lager"
 
 msgid "{0} note"
 msgid_plural "{0} notes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "{0} anteckning"
+msgstr[1] "{0} anteckningar"
 
 msgid "Notes layer"
 msgstr "Kartanteckningslager"
@@ -9618,7 +9636,7 @@ msgid "Data Layer {0}"
 msgstr "Datalager {0}"
 
 msgid "Merging layers"
-msgstr ""
+msgstr "Slå ihop lager"
 
 msgid "{0} deleted"
 msgid_plural "{0} deleted"
@@ -9632,7 +9650,7 @@ msgid "unset"
 msgstr ""
 
 msgid "API version: {0}"
-msgstr ""
+msgstr "API version: {0}"
 
 msgid "Upload is discouraged"
 msgstr ""
@@ -9988,6 +10006,8 @@ msgid ""
 "\n"
 "Speed: {0} km/h"
 msgstr ""
+"\n"
+"Hastighet: {0} km/h"
 
 msgid ""
 "\n"
@@ -10011,7 +10031,7 @@ msgstr ""
 "GPS-tid: {0}"
 
 msgid "Show thumbnails"
-msgstr ""
+msgstr "Visa miniatyrbilder"
 
 msgid "Show image thumbnails instead of icons."
 msgstr ""
@@ -10032,7 +10052,7 @@ msgid "Set track visibility for {0}"
 msgstr ""
 
 msgid "Show all"
-msgstr ""
+msgstr "Visa allt"
 
 msgid "Show selected only"
 msgstr ""
@@ -10055,7 +10075,7 @@ msgid "To"
 msgstr "Till"
 
 msgid "No timestamp"
-msgstr ""
+msgstr "Ingen tidstämpel"
 
 msgid "Select to download OSM data."
 msgstr ""
@@ -10118,10 +10138,10 @@ msgid "gps point"
 msgstr "gps-punkt"
 
 msgid "HDOP"
-msgstr ""
+msgstr "HDOP"
 
 msgid "Time"
-msgstr ""
+msgstr "Tid"
 
 msgid "Direction"
 msgstr "Riktning"
@@ -10632,7 +10652,7 @@ msgid "Click to retrieve an Access Token"
 msgstr ""
 
 msgid "Testing OAuth Access Token"
-msgstr ""
+msgstr "Testa OAuth Access Token"
 
 msgid "Retrieving user details with Access Token Key ''{0}'' was rejected."
 msgstr ""
@@ -10647,7 +10667,7 @@ msgid ""
 msgstr ""
 
 msgid "Success"
-msgstr ""
+msgstr "Lyckades"
 
 msgid ""
 "<html>Failed to access the OSM server ''{0}''<br>with the Access Token "
@@ -10657,7 +10677,7 @@ msgid ""
 msgstr ""
 
 msgid "Test failed"
-msgstr ""
+msgstr "Test misslyckades"
 
 msgid ""
 "<html>The Access Token ''{1}'' is known to the OSM server ''{0}''.<br>The "
@@ -10717,7 +10737,7 @@ msgid "Short Description:"
 msgstr "Kort beskrivning:"
 
 msgid "Author:"
-msgstr ""
+msgstr "Upphovsman:"
 
 msgid "Webpage:"
 msgstr "Webbsida:"
@@ -10732,16 +10752,16 @@ msgid "Minimum JOSM Version:"
 msgstr "Minimal JOSM-version:"
 
 msgid "by {0}"
-msgstr ""
+msgstr "av {0}"
 
 msgid "Name (optional):"
 msgstr "Namn (valfritt):"
 
 msgid "URL / File:"
-msgstr ""
+msgstr "URL / Fil:"
 
 msgid "active"
-msgstr ""
+msgstr "aktiv"
 
 msgid "Map paint style file (*.xml, *.mapcss, *.zip)"
 msgstr ""
@@ -10771,7 +10791,7 @@ msgid "Reset"
 msgstr "Återställ"
 
 msgid "Reset to default"
-msgstr ""
+msgstr "Återställ standardvärden"
 
 msgid "Add a new icon path"
 msgstr ""
@@ -10783,7 +10803,7 @@ msgid "Edit the selected icon path"
 msgstr ""
 
 msgid "Tooltip"
-msgstr ""
+msgstr "Verktygstips"
 
 msgid "Icon"
 msgstr "Ikon"
@@ -10801,7 +10821,7 @@ msgid "Do not hide toolbar and menu"
 msgstr "Göm inte verktygsfält och meny"
 
 msgid "Actions"
-msgstr ""
+msgstr "Åtgärder"
 
 msgid "Toolbar customization"
 msgstr "Inställning av verktygsrad"
@@ -10849,7 +10869,7 @@ msgid "add entry"
 msgstr ""
 
 msgid "Remove the selected entry"
-msgstr ""
+msgstr "Ta bort den markerade posten"
 
 msgid "Key: {0}"
 msgstr ""
@@ -10900,13 +10920,13 @@ msgid ""
 msgstr ""
 
 msgid "shortcut"
-msgstr ""
+msgstr "genväg"
 
 msgid "color"
-msgstr ""
+msgstr "färg"
 
 msgid "toolbar"
-msgstr ""
+msgstr "verktygsrad"
 
 msgid "imagery"
 msgstr ""
@@ -10951,10 +10971,10 @@ msgid "Select Setting Type:"
 msgstr ""
 
 msgid "Simple"
-msgstr ""
+msgstr "Enkelt"
 
 msgid "List"
-msgstr ""
+msgstr "Lista"
 
 msgid "List of lists"
 msgstr ""
@@ -11222,7 +11242,7 @@ msgid "OSM Data"
 msgstr "OSM-data"
 
 msgid "Auto"
-msgstr ""
+msgstr "Automatisk"
 
 msgctxt "gpx_field"
 msgid "Name"
@@ -11233,7 +11253,7 @@ msgid "Desc(ription)"
 msgstr ""
 
 msgid "Everything"
-msgstr ""
+msgstr "Allt"
 
 msgid "Name or offset"
 msgstr ""
@@ -11242,7 +11262,7 @@ msgid "None"
 msgstr "Inget"
 
 msgid "Custom"
-msgstr ""
+msgstr "Anpassa"
 
 msgid "Use global settings"
 msgstr "Använd globala inställningar"
@@ -11290,14 +11310,22 @@ msgid "Foot"
 msgstr "Fotgängare"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "Inferno"
+msgid "User Light"
 msgstr ""
 
 msgctxt "Heat map"
+msgid "Traffic Lights"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Inferno"
+msgstr "Inferno"
+
+msgctxt "Heat map"
 msgid "Viridis"
 msgstr ""
 
@@ -11307,6 +11335,9 @@ msgstr ""
 
 msgctxt "Heat map"
 msgid "Heat"
+msgstr "Värme"
+
+msgid "Use points instead of lines for heat map"
 msgstr ""
 
 msgid "Create markers when reading GPX"
@@ -11434,6 +11465,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Spår- och punktfärgläggning"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -11490,7 +11537,7 @@ msgid ""
 msgstr ""
 
 msgid "ISO 8601"
-msgstr ""
+msgstr "ISO 8601"
 
 msgid ""
 "Format dates according to {0}. Today''s date will be displayed as {1} "
@@ -11620,10 +11667,10 @@ msgid "Fade amount: "
 msgstr ""
 
 msgid "Soft"
-msgstr ""
+msgstr "Mjuk"
 
 msgid "Strong"
-msgstr ""
+msgstr "Kraftig"
 
 msgid "Sharpen (requires layer re-add): "
 msgstr ""
@@ -11644,7 +11691,7 @@ msgid "Modify list of imagery layers displayed in the Imagery menu"
 msgstr ""
 
 msgid "Common Settings"
-msgstr ""
+msgstr "Allmänna inställningar"
 
 msgid "WMS Settings"
 msgstr "WMS-inställningar"
@@ -11674,7 +11721,7 @@ msgid "Add a new {0} entry by entering the URL"
 msgstr ""
 
 msgid "Remove entry"
-msgstr ""
+msgstr "Ta bort objekt"
 
 msgid "copy selected defaults"
 msgstr ""
@@ -12039,7 +12086,7 @@ msgid "Add JOSM Plugin description URL."
 msgstr ""
 
 msgid "Enter URL"
-msgstr ""
+msgstr "Ange URL"
 
 msgid "Please select an entry."
 msgstr "Välj en post."
@@ -12287,10 +12334,10 @@ msgid "Enable HTTPS support"
 msgstr ""
 
 msgid "Install..."
-msgstr ""
+msgstr "Installera..."
 
 msgid "Uninstall..."
-msgstr ""
+msgstr "Avinstallera …"
 
 msgid "Install JOSM localhost certificate to system/browser root keystores"
 msgstr ""
@@ -12300,7 +12347,7 @@ msgid ""
 msgstr ""
 
 msgid "Certificate:"
-msgstr ""
+msgstr "Certifikat:"
 
 msgid "Certificate has been successfully installed."
 msgstr ""
@@ -12481,7 +12528,7 @@ msgid "Configure whether to use a proxy server"
 msgstr ""
 
 msgid "Host:"
-msgstr ""
+msgstr "Värd:"
 
 msgctxt "server"
 msgid "Port:"
@@ -12648,7 +12695,7 @@ msgid "Checks for errors on relations"
 msgstr ""
 
 msgid "Territories"
-msgstr ""
+msgstr "Distrikt"
 
 msgid "Checks for territories-specific features"
 msgstr ""
@@ -12708,7 +12755,7 @@ msgid "Choose tests to enable"
 msgstr "Välj tester att aktivera"
 
 msgid "multiple"
-msgstr ""
+msgstr "multipel"
 
 msgid "Remove old keys from up to {0} object"
 msgid_plural "Remove old keys from up to {0} objects"
@@ -12874,7 +12921,7 @@ msgid "role"
 msgstr "roll"
 
 msgid "count"
-msgstr ""
+msgstr "antal"
 
 msgid "elements"
 msgstr "element"
@@ -12906,16 +12953,16 @@ msgid "Received error page:"
 msgstr ""
 
 msgid "Min. latitude"
-msgstr ""
+msgstr "Min. latitud"
 
 msgid "Min. longitude"
-msgstr ""
+msgstr "Min. longitud"
 
 msgid "Max. latitude"
-msgstr ""
+msgstr "Max. latitud"
 
 msgid "Max. longitude"
-msgstr ""
+msgstr "Max. longitud"
 
 msgid ""
 "URL from www.openstreetmap.org (you can paste a download URL here to specify "
@@ -12970,7 +13017,7 @@ msgid "unset: do not set the property ''{0}'' on the selected objects"
 msgstr ""
 
 msgid "Cut"
-msgstr ""
+msgstr "Klipp"
 
 msgid "Right click = copy to clipboard"
 msgstr "Högerklick = kopiera till urklipp"
@@ -15505,6 +15552,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15772,9 +15822,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15790,6 +15837,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15825,10 +15896,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15979,7 +16046,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15994,6 +16064,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16528,6 +16604,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -17508,7 +17587,7 @@ msgid "indian"
 msgstr "indiskt"
 
 msgid "regional"
-msgstr "lokalt"
+msgstr "regionalt"
 
 msgid "kebab"
 msgstr "kebab"
@@ -17556,7 +17635,7 @@ msgid "ice_cream"
 msgstr "glass"
 
 msgid "international"
-msgstr ""
+msgstr "internationellt"
 
 msgid "seafood"
 msgstr ""
@@ -19702,7 +19781,7 @@ msgstr "full"
 
 msgctxt "crossing:barrier"
 msgid "double_half"
-msgstr ""
+msgstr "double_half"
 
 msgid "Crossing"
 msgstr "Järnvägsövergång"
@@ -20933,7 +21012,7 @@ msgid "Baby Hatch/Safe Haven"
 msgstr "Babylucka"
 
 msgid "Emergency Access Point"
-msgstr ""
+msgstr "Nödsamlingspunkt"
 
 msgid "Point Number"
 msgstr "Punktnummer"
@@ -21187,6 +21266,9 @@ msgstr "Sedlar"
 msgid "Telephone cards"
 msgstr "Telefonkort"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Internetåtkomst"
 
@@ -21232,6 +21314,9 @@ msgstr "Visar lufttryck"
 msgid "Shows humidity"
 msgstr "Visar luftfuktighet"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Återvinningscontainer"
 
@@ -23156,6 +23241,21 @@ msgstr "Historiska platser"
 msgid "Castle"
 msgstr "Slott"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Utgrävningsplats"
 
@@ -23511,6 +23611,9 @@ msgstr "cykelslang"
 msgid "cigarettes"
 msgstr "cigaretter"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondomer"
 
@@ -23544,9 +23647,6 @@ msgstr ""
 msgid "photos"
 msgstr "foton"
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr "biljetter för allmänna transportmedel"
 
@@ -23873,7 +23973,7 @@ msgid "ward"
 msgstr ""
 
 msgid "National Park"
-msgstr ""
+msgstr "Nationalpark"
 
 msgid "Protected Area"
 msgstr ""
@@ -24691,7 +24791,7 @@ msgid "maritime"
 msgstr ""
 
 msgid "national_park"
-msgstr ""
+msgstr "Nationalpark"
 
 msgid "political"
 msgstr "politisk"
@@ -24814,10 +24914,10 @@ msgid "Bicycle Route"
 msgstr ""
 
 msgid "national"
-msgstr ""
+msgstr "nationellt"
 
 msgid "local"
-msgstr ""
+msgstr "lokalt"
 
 msgid "Mountain Biking Route"
 msgstr ""
@@ -25020,6 +25120,99 @@ msgstr "Camping"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26132,18 +26325,6 @@ msgstr "Zooma till vald bild"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26306,12 +26487,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr ""
-
-msgid "Logout"
-msgstr "Logga ut"
-
 msgid "Download mode"
 msgstr ""
 
@@ -26321,6 +26496,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr ""
+
+msgid "Logout"
+msgstr "Logga ut"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -26339,6 +26520,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29087,7 +29324,7 @@ msgid "create the channel digraph"
 msgstr ""
 
 msgid "Check "
-msgstr ""
+msgstr "Kontrollera "
 
 msgid "check the subset for junction properties"
 msgstr ""
@@ -29127,10 +29364,10 @@ msgid ""
 msgstr ""
 
 msgid "Correct"
-msgstr ""
+msgstr "Korrigera"
 
 msgid "Wrong"
-msgstr ""
+msgstr "Fel"
 
 msgid "<HTML><U>C</U>orrect direction</HTML>"
 msgstr ""
@@ -29148,25 +29385,25 @@ msgid "<HTML><U>I</U>gnore this way</HTML>"
 msgstr ""
 
 msgid "Ignore direction of this way."
-msgstr ""
+msgstr "Ignorera riktning av den här vägen."
 
 msgid "Check direction of streams"
-msgstr ""
+msgstr "Kontrollera riktning av strömmar"
 
 msgid "Check direction of streams and rivers"
-msgstr ""
+msgstr "Kontrollera riktning av strömmar och floder"
 
 msgid "No more directions to check!"
 msgstr ""
 
 msgid "Replace way"
-msgstr ""
+msgstr "Ersätt väg"
 
 msgid "Replace way of selected way with a new way"
-msgstr ""
+msgstr "Ersätt väg med vald väg med en ny väg"
 
 msgid "Replace Geometry"
-msgstr ""
+msgstr "Ersätt Geometri"
 
 msgid ""
 "This tool replaces coastline of one way with another, and so requires "
@@ -29374,7 +29611,7 @@ msgid "Connected"
 msgstr "Ansluten"
 
 msgid "no name"
-msgstr ""
+msgstr "namnlös"
 
 msgid "Live GPS"
 msgstr "Live GPS"
@@ -29392,7 +29629,7 @@ msgid "Speed"
 msgstr "Hastighet:"
 
 msgid "Course"
-msgstr ""
+msgstr "Kurs"
 
 msgid "LiveGPS layer"
 msgstr "LiveGPS-lager"
@@ -29417,7 +29654,7 @@ msgid "Continuously center the LiveGPS layer to current position."
 msgstr "Centrera kontinuerligt LiveGPS-lagret runt nuvarande position."
 
 msgid "Open MapDust"
-msgstr ""
+msgstr "Öppna MapDust"
 
 msgid "MapDust bug reports"
 msgstr ""
@@ -29447,7 +29684,7 @@ msgid "Selection Area"
 msgstr "Urvalets area"
 
 msgid "Selection Radius"
-msgstr ""
+msgstr "Markering radie"
 
 msgid "Angle"
 msgstr "Vinkel"
@@ -29465,13 +29702,13 @@ msgid "Measurements"
 msgstr "Mätningar"
 
 msgid "Merge overlap"
-msgstr ""
+msgstr "Slå ihop överlappade"
 
 msgid "Merge overlap of ways."
-msgstr ""
+msgstr "Slå ihop överlappade vägar"
 
 msgid "Merge Overlap (combine)"
-msgstr ""
+msgstr "Slå ihop överlappade (kombinera)"
 
 msgid ""
 "<html>A role based relation membership was copied to all new ways.<br>You "
@@ -29512,7 +29749,7 @@ msgid "Unable to find via nodes. Please check your selection"
 msgstr ""
 
 msgid "About Plugin"
-msgstr ""
+msgstr "Om plugin"
 
 msgid "Native password manager plugin"
 msgstr ""
@@ -29546,22 +29783,22 @@ msgid "Proceed and go to the next page"
 msgstr ""
 
 msgid "Finish"
-msgstr ""
+msgstr "Slutför"
 
 msgid "Confirm the setup and close this dialog"
 msgstr ""
 
 msgid "JOSM/OSM API/Username"
-msgstr ""
+msgstr "JOSM/OSM API/Username"
 
 msgid "JOSM/OSM API/Password"
-msgstr ""
+msgstr "JOSM/OSM API/Password"
 
 msgid "{0}/Username"
-msgstr ""
+msgstr "{0}/Username"
 
 msgid "{0}/Password"
-msgstr ""
+msgstr "{0}/Password"
 
 msgid "JOSM/Proxy/Username"
 msgstr "JOSM/Proxy/Användarnamn"
@@ -29570,10 +29807,10 @@ msgid "JOSM/Proxy/Password"
 msgstr "JOSM/Proxy/Lösenord"
 
 msgid "JOSM/OAuth/OSM API/Key"
-msgstr ""
+msgstr "JOSM/OAuth/OSM API/Key"
 
 msgid "JOSM/OAuth/OSM API/Secret"
-msgstr ""
+msgstr "JOSM/OAuth/OSM API/Secret"
 
 msgid "Native Password Manager Plugin"
 msgstr ""
@@ -29594,10 +29831,10 @@ msgid "proxy password"
 msgstr "proxy-lösenord"
 
 msgid "oauth key"
-msgstr ""
+msgstr "oauth key"
 
 msgid "oauth secret"
-msgstr ""
+msgstr "oauth secret"
 
 msgid ""
 "<br><strong>Warning:</strong> There may be sensitive data left in your "
@@ -29643,7 +29880,7 @@ msgid "unsupported header"
 msgstr ""
 
 msgid "Reading OSM data..."
-msgstr ""
+msgstr "Läser OSM data..."
 
 msgid "Split by municipality"
 msgstr ""
@@ -29652,34 +29889,34 @@ msgid "Split this data by municipality (admin_level=8)."
 msgstr ""
 
 msgid "Split by sector"
-msgstr ""
+msgstr "Dela vid sector"
 
 msgid "Split this data by sector (admin_level=10)."
 msgstr ""
 
 msgid "Split by neighbourhood"
-msgstr ""
+msgstr "Dela vid grannskap"
 
 msgid "Split this data by neighbourhood (admin_level=11)."
 msgstr ""
 
 msgid "Download open data"
-msgstr ""
+msgstr "Ladda ner öppna fata"
 
 msgid "License URL not available: {0}"
 msgstr "Licens-URL ej tillgänglig: {0}"
 
 msgid "OpenData preferences"
-msgstr ""
+msgstr "OpenData inställningar"
 
 msgid "License Agreement"
-msgstr ""
+msgstr "Licensavtal"
 
 msgid "Accept"
 msgstr "Acceptera"
 
 msgid "Refuse"
-msgstr ""
+msgstr "Neka"
 
 msgid "I understand and accept these terms and conditions"
 msgstr ""
@@ -29756,7 +29993,7 @@ msgid "Download OSM data corresponding to the current data set."
 msgstr ""
 
 msgid "Diff"
-msgstr ""
+msgstr "Diff"
 
 msgid "Perform diff between current data set and existing OSM data."
 msgstr ""
@@ -29771,10 +30008,10 @@ msgid "Open the OpenData window."
 msgstr ""
 
 msgid "Raw data"
-msgstr ""
+msgstr "Rådata"
 
 msgid "OpenData Preferences"
-msgstr ""
+msgstr "OpenData inställningar"
 
 msgid ""
 "A special handler for various Open Data portals<br/><br/>Please read the "
@@ -29791,7 +30028,7 @@ msgid ""
 msgstr ""
 
 msgid "Overpass API server:"
-msgstr ""
+msgstr "Overpass API server:"
 
 msgid "Overpass API server used to download OSM data"
 msgstr ""
@@ -29810,7 +30047,7 @@ msgid "View summary"
 msgstr "Visa sammanfattning"
 
 msgid "View full text"
-msgstr ""
+msgstr "Visa all text"
 
 msgid ""
 "''Lambert CC 9 zones'' coordinates found with different zone codes for X and "
@@ -29818,7 +30055,7 @@ msgid ""
 msgstr ""
 
 msgid "OpenData XML files"
-msgstr ""
+msgstr "OpenData XML files"
 
 msgid "File to load"
 msgstr "Fil att läsa in"
@@ -30144,16 +30381,16 @@ msgid "Transform error: Unsupported orientation"
 msgstr ""
 
 msgid "Finished"
-msgstr ""
+msgstr "Färdigt"
 
 msgid "Prefs"
-msgstr ""
+msgstr "Inst."
 
 msgid "Load file..."
-msgstr ""
+msgstr "Ladda fil..."
 
 msgid "Place"
-msgstr ""
+msgstr "Plats"
 
 msgid "Show target"
 msgstr ""
@@ -30162,10 +30399,10 @@ msgid "Take X and Y from selected node"
 msgstr ""
 
 msgid "Debug info"
-msgstr ""
+msgstr "Avlusningsinfo"
 
 msgid "Merge close nodes"
-msgstr ""
+msgstr "Slå ihop anslutande noder"
 
 msgid "Remove objects smaller than"
 msgstr "Ta bort objekt mindre än"
@@ -30174,10 +30411,10 @@ msgid "Remove objects larger than"
 msgstr "Ta bort objekt större än"
 
 msgid "Only this color"
-msgstr ""
+msgstr "Bara denna färg"
 
 msgid "Remove parallel lines"
-msgstr ""
+msgstr "Ta bort parallella linjer"
 
 msgid "Take only first X paths"
 msgstr ""
@@ -30195,7 +30432,7 @@ msgid "Orthogonal shapes"
 msgstr ""
 
 msgid "Import settings"
-msgstr ""
+msgstr "Importera inställningar"
 
 msgid "Introduce separate layers for:"
 msgstr ""
@@ -30210,10 +30447,10 @@ msgid "Bottom left (min) corner:"
 msgstr ""
 
 msgid "PDF X and Y"
-msgstr ""
+msgstr "PDF X and Y"
 
 msgid "East and North"
-msgstr ""
+msgstr "Öst och Norr"
 
 msgid "Top right (max) corner:"
 msgstr ""
@@ -30228,16 +30465,16 @@ msgid "Close the dialog, discard projection preference changes"
 msgstr ""
 
 msgid "Loading..."
-msgstr ""
+msgstr "Laddar..."
 
 msgid "PDF file preview"
-msgstr ""
+msgstr "PDF-fil förhandsgranska"
 
 msgid "Loaded"
-msgstr ""
+msgstr "Laddad"
 
 msgid "Imported PDF: "
-msgstr ""
+msgstr "Importerad PDF: "
 
 msgid "Please select exactly one node."
 msgstr ""
@@ -30506,7 +30743,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30530,6 +30767,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
@@ -33681,7 +33924,7 @@ msgid ""
 msgstr ""
 
 msgid "Jump to"
-msgstr ""
+msgstr "Gå till"
 
 msgid "Jump to GPS time"
 msgstr ""
@@ -33690,7 +33933,7 @@ msgid "Shows current position in the video"
 msgstr "Visar nuvarande position i videon"
 
 msgid "Sync"
-msgstr ""
+msgstr "Synk"
 
 msgid "Unable to find JNA Java library!"
 msgstr ""
@@ -33831,7 +34074,7 @@ msgstr[0] "Skriv över''{0}'' tagg {1} från {2} med nya värdet ''{3}''?"
 msgstr[1] "Skriv över''{0}'' taggar {1} från {2} med nya värdet ''{3}''?"
 
 msgid "Search Wikidata items"
-msgstr ""
+msgstr "Sök Wikidata"
 
 msgid "Target key: "
 msgstr ""
@@ -33862,13 +34105,13 @@ msgid "Not linked yet"
 msgstr "Ej länkad ännu"
 
 msgid "{0}: {1}"
-msgstr ""
+msgstr "{0}: {1}"
 
 msgid "Wikidata"
-msgstr ""
+msgstr "Wikidata"
 
 msgid "Fetches all coordinates from Wikidata in the current view"
-msgstr ""
+msgstr "Hämta alla cordinater from Wikidata i nuvarande vy"
 
 msgid "Fetches all coordinates from Wikipedia in the current view"
 msgstr "Hämtar alla koordinater från Wikipedia i aktuell vy"
diff --git a/i18n/po/ta.po b/i18n/po/ta.po
index c732f0f..c84bc69 100644
--- a/i18n/po/ta.po
+++ b/i18n/po/ta.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-10-28 15:55+0000\n"
 "Last-Translator: நவலடி <navaladi at gmail.com>\n"
 "Language-Team: Tamil <ta at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:14+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:17+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "X-Poedit-Country: INDIA\n"
 "Language: ta\n"
 "X-Poedit-Language: Tamil\n"
@@ -3291,9 +3291,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10855,7 +10873,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10874,6 +10900,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10984,6 +11013,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14924,6 +14969,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15191,9 +15239,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15209,6 +15254,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15244,10 +15313,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15398,7 +15463,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15413,6 +15481,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15947,6 +16021,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20580,6 +20657,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20625,6 +20705,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22549,6 +22632,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22904,6 +23002,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "சிகரெட்டுகள்"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22937,9 +23038,6 @@ msgstr ""
 msgid "photos"
 msgstr "புகைப்படங்கள்"
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24402,6 +24500,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25512,18 +25703,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25686,19 +25865,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25719,6 +25898,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29852,7 +30087,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29876,6 +30111,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/te.po b/i18n/po/te.po
index 4e655d4..fe25575 100644
--- a/i18n/po/te.po
+++ b/i18n/po/te.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2011-05-13 08:50+0000\n"
 "Last-Translator: Praveen Illa <mail2ipn at gmail.com>\n"
 "Language-Team: Telugu <te at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:15+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:17+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: te\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/th.po b/i18n/po/th.po
index 0f67c79..ae47884 100644
--- a/i18n/po/th.po
+++ b/i18n/po/th.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2009-03-23 02:34+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Thai <th at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:16+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:18+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: th\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/tr.po b/i18n/po/tr.po
index 42768e9..4a3a9cd 100644
--- a/i18n/po/tr.po
+++ b/i18n/po/tr.po
@@ -9,20 +9,20 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2015-11-16 12:04+0000\n"
-"Last-Translator: Erkin Alp Güney <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-06 01:25+0000\n"
+"Last-Translator: Ferhad Fidan <ferhad at f-blog.info>\n"
 "Language-Team: Türkçe <>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:16+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:18+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
-msgstr "{0}: {1} seçeneği ikircikli"
+msgstr "{0}:  ''{1}'' seçeneği belirsiz"
 
 msgid "{0}: option ''--{1}'' does not allow an argument"
 msgstr "{0}: ''--{1}'' seçeneği argüman almaz"
@@ -3308,9 +3308,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "D"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10904,7 +10922,15 @@ msgid "Foot"
 msgstr "Ayak"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10923,6 +10949,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -11036,6 +11065,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14990,6 +15035,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15257,9 +15305,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15275,6 +15320,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15310,10 +15379,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15464,7 +15529,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15479,6 +15547,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16013,6 +16087,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20646,6 +20723,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "Telefon kart"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20691,6 +20771,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22615,6 +22698,21 @@ msgstr "Tarihi Alanlar"
 msgid "Castle"
 msgstr "Kale"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Arkeolojik Site"
 
@@ -22970,6 +23068,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "sigara"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "kondom"
 
@@ -23003,9 +23104,6 @@ msgstr ""
 msgid "photos"
 msgstr "fotoğraf"
 
-msgid "public_transport_plans"
-msgstr "toplu_taşıma_hatları"
-
 msgid "public_transport_tickets"
 msgstr "toplu_taşıma_bileti"
 
@@ -24468,6 +24566,99 @@ msgstr "Kampyeri"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25578,18 +25769,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25752,19 +25931,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25785,6 +25964,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29926,7 +30161,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29950,6 +30185,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/ug.po b/i18n/po/ug.po
index 3cc2565..c300c68 100644
--- a/i18n/po/ug.po
+++ b/i18n/po/ug.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2012-07-14 16:22+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Uyghur <ug at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:17+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:19+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: \n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/uk.po b/i18n/po/uk.po
index b0d79ea..b70b2ec 100644
--- a/i18n/po/uk.po
+++ b/i18n/po/uk.po
@@ -7,17 +7,17 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-30 06:21+0000\n"
-"Last-Translator: ~Jhellico <Unknown>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-13 10:36+0000\n"
+"Last-Translator: andygol <Unknown>\n"
 "Language-Team: Ukrainian <uk at li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:17+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:20+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: uk\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -2736,7 +2736,7 @@ msgid "objects"
 msgstr "об’єкти"
 
 msgid "all nodes"
-msgstr ""
+msgstr "вси точкы"
 
 msgid "all ways"
 msgstr "всі лінії"
@@ -2810,7 +2810,7 @@ msgid "all incomplete objects"
 msgstr "усі неповні об’єкти"
 
 msgid "all deleted objects (checkbox <b>{0}</b> must be enabled)"
-msgstr ""
+msgstr "всі вилучені обʼєкти (прапорець <b>{0}</b> повинен бути активним)"
 
 msgid "related objects"
 msgstr "пов’язані об’єкти"
@@ -3605,9 +3605,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "Сх"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "Оновити типові шари"
 
+msgid "Update imagery ''{0}''"
+msgstr "Оновити знімки \"{0}\""
+
+msgid "Drop old imagery ''{0}''"
+msgstr "Вилучити застарілі знімки \"{0}\""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "Проекція ''{0}'' не знайдена, закладка ''{1}'' не може використовуватись"
@@ -4558,30 +4576,32 @@ msgstr "Зв’язок порожній"
 
 msgid ""
 "Role of relation member does not match expression ''{0}'' in template {1}"
-msgstr ""
+msgstr "Роль члена звʼязка не відповідає виразу \"{0}\" в шаблоні {1}"
 
 msgid ""
 "Type ''{0}'' of relation member with role ''{1}'' does not match accepted "
 "types ''{2}'' in template {3}"
 msgstr ""
+"Тип ''{0}'' члена звʼязка з роллю ''{1}'' не відповідає типам ''{2}'', "
+"зазначеним в шаблоні {3}"
 
 msgid "<empty>"
 msgstr "<порожньо>"
 
 msgid "Role ''{0}'' unknown in templates ''{1}''"
-msgstr ""
+msgstr "Роль \"{0}\" в шаблоні \"{1}\" не зазначена"
 
 msgid "Empty role type found when expecting one of ''{0}''"
-msgstr ""
+msgstr "Знайдено порожній тип ролі. Очікується один з \"{0}\""
 
 msgid "Role ''{0}'' missing"
-msgstr ""
+msgstr "Роль ''{0}'' відсутня"
 
 msgid "Number of ''{0}'' roles too low ({1})"
-msgstr ""
+msgstr "Кількість ролей \"{0}\" замала ({1})"
 
 msgid "Number of ''{0}'' roles too high ({1})"
-msgstr ""
+msgstr "Кількість ролей \"{0}\" завелика ({1})"
 
 msgid "Self-intersecting ways"
 msgstr "Лінії, що перетинають самі себе"
@@ -11952,7 +11972,7 @@ msgid "Track date"
 msgstr "Дата треку"
 
 msgid "Heat Map (dark = few, bright = many)"
-msgstr ""
+msgstr "Теплова мапа (темно=мало, світло=багато)"
 
 msgid "Single Color (can be customized for named layers)"
 msgstr "Одним кольором (може налаштовуватись для іменованих шарів)"
@@ -11967,23 +11987,34 @@ msgid "Foot"
 msgstr "Пішки"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "Inferno"
+msgid "User Light"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "Viridis"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
+msgid "Inferno"
+msgstr "Пекло"
+
+msgctxt "Heat map"
+msgid "Viridis"
+msgstr "Зелень"
+
+msgctxt "Heat map"
 msgid "Wood"
-msgstr ""
+msgstr "Деревина"
 
 msgctxt "Heat map"
 msgid "Heat"
+msgstr "Спека"
+
+msgid "Use points instead of lines for heat map"
 msgstr ""
 
 msgid "Create markers when reading GPX"
@@ -11999,7 +12030,7 @@ msgid "Smooth GPX graphics (antialiasing)"
 msgstr "Згладжування GPX графіків"
 
 msgid "Draw with Opacity (alpha blending) "
-msgstr ""
+msgstr "Показувати з напівпрозорістю (альфа-затемнення) "
 
 msgid ""
 "Automatically make a marker layer from any waypoints when opening a GPX "
@@ -12075,6 +12106,8 @@ msgid ""
 "Apply dynamic alpha-blending and adjust width based on zoom level for all "
 "GPX lines."
 msgstr ""
+"Застосовує динамічне альфа-затемнення та підлаштовує ширину в залежності від "
+"рівня масштабування для всіх GPX-треків"
 
 msgid ""
 "All points and track segments will have the same color. Can be customized in "
@@ -12102,17 +12135,35 @@ msgstr "Розфарбовувати точки та відрізки треку
 msgid ""
 "Collected points and track segments for a position and displayed as heat map."
 msgstr ""
+"Усереднена густина точок та відрізків треків у кожній позиції, що "
+"показується у вигляді теплової мапи."
 
 msgid "Allows to tune the track coloring for different average speeds."
 msgstr ""
 "Дозволяє настроювати забарвлення треку для різних середніх швидкостей."
 
 msgid "Selects the color schema for heat map."
-msgstr ""
+msgstr "Оберіть кольорову схему теплової мапи."
 
 msgid "Track and Point Coloring"
 msgstr "Забарвлення треку та точок"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Розфарбовувати точки та відрізки треку за обмеженнями на дані."
 
@@ -16584,6 +16635,9 @@ msgstr "URBIS 2015 - аерофото"
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr "SPW(allonie) цифрове зображення PICC"
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr "SPW(allonie) 2015 аерофото"
 
@@ -16624,10 +16678,10 @@ msgid "Rio Mosaic 2015"
 msgstr "Ріо - мозаїка 2013"
 
 msgid "Londrina Ortofoto 2011"
-msgstr ""
+msgstr "Лондрина - ортофото 2011"
 
 msgid "SIG Santa Catarina OrtoRGB 2012"
-msgstr ""
+msgstr "SIG Санта-Катарина - OrtoRGB 2012"
 
 msgid "Geobase Hydrography"
 msgstr "Geobase Гідрографія"
@@ -16710,6 +16764,7 @@ msgstr "imagico.de - знімки OSM для мапінгу: вулкан Алт
 
 msgid "imagico.de OSM images for mapping: Darwin and Wolf islands, Galapagos"
 msgstr ""
+"imagico.de - знімки OSM для мапінгу: острови Дарвіна и Вулфа, Галапагоси"
 
 msgid "Estonia Basemap (Maaamet)"
 msgstr "Естонія Базова мапа (Maaamet)"
@@ -16851,9 +16906,6 @@ msgstr "NRW-Atlas: ALKIS"
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: цифрова базова мапа 1:5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Топографічна мапа 1:10000"
 
@@ -16872,6 +16924,30 @@ msgstr ""
 "imagico.de - знімки OSM для мапінгу: прибережні мілини Північної Німеччини "
 "(інфрачервоні знімки)"
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr "imagico.de - знімки OSM для мапінгу: Касігіаннгуіт"
 
@@ -16911,11 +16987,6 @@ msgstr "imagico.de - знімки OSM для мапінгу: Північна Г
 msgid "Drone Imagery (Haiti)"
 msgstr "Знімки дронів (Гаїті)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-"Тимчасово недоступний до січня 2017 року, у зв''язку із заміною сервера."
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Знімки з дрону 2014 (Гаїті)"
 
@@ -17050,7 +17121,7 @@ msgid "Japan GSI ortho Imagery"
 msgstr "Японія: ортознімки GSI"
 
 msgid "imagico.de OSM images for mapping: Mount Kenya 2016"
-msgstr ""
+msgstr "imagico.de - знімки OSM для мапінгу: гора Кенія, 2016"
 
 msgid "USSR - Latvia"
 msgstr "СРСР - Латвія"
@@ -17067,8 +17138,11 @@ msgstr "Цикл 1 ортофотоплан - Латвія"
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Литва)"
 
-msgid "geoportail.lu"
-msgstr "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
+msgstr ""
 
 msgid "Luxembourg Inspire Railway"
 msgstr "Люксембург Inspire Залізниця"
@@ -17082,6 +17156,12 @@ msgstr "Люксембург Inspire Води"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Дельта Нігера, жовт. 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr "Шпіцберген - ортофото 2009/2011 EPSG:25833"
 
@@ -17096,6 +17176,7 @@ msgstr "Сектор Газа - Pléiades - 06.07.2014 (NIR)"
 
 msgid "imagico.de OSM images for mapping: Panama Canal - Pacific side"
 msgstr ""
+"imagico.de - знімки OSM для мапінгу: Панамський канал – Тихоокеанська частина"
 
 msgid "imagico.de OSM images for mapping: Panama Canal"
 msgstr "imagico.de - знімки OSM для мапінгу: Панамський канал"
@@ -17107,7 +17188,7 @@ msgid "imagico.de OSM images for mapping: New Ireland"
 msgstr "imagico.de - знімки OSM для мапінгу: Нова Ірландія"
 
 msgid "imagico.de OSM images for mapping: Coropuna"
-msgstr ""
+msgstr "imagico.de - знімки OSM для мапінгу: Коропуна"
 
 msgid ""
 "imagico.de OSM images for mapping: Willkanuta Mountains and Quelccaya Ice Cap"
@@ -17263,7 +17344,7 @@ msgstr ""
 "imagico.de - знімки OSM для мапінгу: Північний і Полярний Урал серпень 2016"
 
 msgid "imagico.de OSM images for mapping: Vostochny Cosmodrome"
-msgstr ""
+msgstr "imagico.de - знімки OSM для мапінгу: космодром Східний (Восточний)"
 
 msgid "Freemap.sk Car"
 msgstr "Freemap.sk Автомобільна"
@@ -17332,7 +17413,7 @@ msgid "GRAFCAN Express - Canary Islands"
 msgstr "GRAFCAN Express - Канарські острови"
 
 msgid "imagico.de OSM images for mapping: Adams Bridge"
-msgstr ""
+msgstr "imagico.de - знімки OSM для мапінгу: Адамів міст"
 
 msgid "Kanton Aargau 25cm (AGIS 2011)"
 msgstr "Кантон Аргау 25 см (AGIS 2011)"
@@ -17405,10 +17486,11 @@ msgid "Kanton Basel-Stadt 2015"
 msgstr "Кантон Базель-Штадт 2015"
 
 msgid "Kanton Basel-Landschaft 10cm (2015)"
-msgstr ""
+msgstr "Кантон Базель - ландшафт 10см (2015)"
 
 msgid "imagico.de OSM images for mapping: Cental Alps in late September 2016"
 msgstr ""
+"imagico.de - знімки OSM для мапінгу: Центральні Альпи, кінець вересня 2016"
 
 msgid "Taiwan e-Map Open Data"
 msgstr "Тайвань e-Map Open Data"
@@ -17426,7 +17508,7 @@ msgid "NLSC Open Data WMTS"
 msgstr "NLSC Open Data WMTS"
 
 msgid "imagico.de OSM images for mapping: Mount Kilimanjaro 2016"
-msgstr ""
+msgstr "imagico.de - знімки OSM для мапінгу: гора Кіліманджаро 2016"
 
 msgid "MSR Maps Topo"
 msgstr "MSR Топомапи"
@@ -17620,6 +17702,9 @@ msgstr "Плани міст від OS, Едінбург 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "Плани міст від OS, Едінбург 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr "OS Плани міст, Единбург 1940-1960 (NLS)"
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "Плани міст від OS, Елгін 1868 (NLS)"
 
@@ -22427,6 +22512,9 @@ msgstr "Банкноти"
 msgid "Telephone cards"
 msgstr "Телефонні картки"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Доступ в Інтернет"
 
@@ -22472,6 +22560,9 @@ msgstr "Показує атмосферний тиск"
 msgid "Shows humidity"
 msgstr "Показує вологість"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "Контейнер вторсировини"
 
@@ -24398,6 +24489,21 @@ msgstr "Історичні місця"
 msgid "Castle"
 msgstr "За́мок"
 
+msgid "stately"
+msgstr "маєток"
+
+msgid "defensive"
+msgstr "оборонний  замок"
+
+msgid "fortress"
+msgstr "фортеця"
+
+msgid "manor"
+msgstr "резиденція"
+
+msgid "palace"
+msgstr "палац"
+
 msgid "Archaeological Site"
 msgstr "Археологічні пам’ятки"
 
@@ -24753,6 +24859,9 @@ msgstr "вело шини"
 msgid "cigarettes"
 msgstr "сигарети"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "презервативи"
 
@@ -24786,9 +24895,6 @@ msgstr "поштомат (відправка)"
 msgid "photos"
 msgstr "фотографії"
 
-msgid "public_transport_plans"
-msgstr "схеми громадського транспорту"
-
 msgid "public_transport_tickets"
 msgstr "квитки на громадський транспорт"
 
@@ -25671,7 +25777,7 @@ msgid "Country code"
 msgstr "Код країни"
 
 msgid "Unit/Suite"
-msgstr ""
+msgstr "Блок/комплекс"
 
 msgid "House name"
 msgstr "Назва будинку"
@@ -26276,6 +26382,99 @@ msgstr "Кемпінг"
 msgid "Test"
 msgstr "Перевірка"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "Парний номер будинку в інтерполяції непарних адрес."
 
@@ -26505,7 +26704,7 @@ msgid "{0} on a node. Should be drawn as an area."
 msgstr "{0} на точці. Слід застосовувати до полігону."
 
 msgid "{0} on a node. Should be used in a relation"
-msgstr ""
+msgstr "{0} на точці. Повинен використовуватись для звʼязку"
 
 msgid "{0} on a way. Should be used on a node."
 msgstr "{0} на лінії, замість точки."
@@ -26709,7 +26908,7 @@ msgid "street name contains ss"
 msgstr "назва вулиці містить ss"
 
 msgid "street name contains ß"
-msgstr ""
+msgstr "назва вулиці містить ß"
 
 msgid "{0} is unnecessary"
 msgstr "{0} є непотрібним"
@@ -27470,18 +27669,6 @@ msgstr "Масштабувати до виділеного знімка"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "Масштабувати до поточного виділеного знімка Mapillary"
 
-msgid "View in website"
-msgstr "Подивитись на сайті"
-
-msgid "Copy key"
-msgstr "Копіювати ключ"
-
-msgid "Copy key tag"
-msgstr "Копіювати теґ"
-
-msgid "Edit on website"
-msgstr "Редагувати на сайті"
-
 msgid "Current Mapillary changeset"
 msgstr "Поточний набір змін Mapillary"
 
@@ -27645,12 +27832,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr "Попередній перегляд зображень при наведенні курсору на їх значок"
 
-msgid "Login"
-msgstr "Увійти"
-
-msgid "Logout"
-msgstr "Вихід"
-
 msgid "Download mode"
 msgstr "Режим завантаження"
 
@@ -27660,6 +27841,12 @@ msgstr "Ви увійшли як  ''{0}''."
 msgid "You are currently not logged in."
 msgstr "Ви ще не ввійшли."
 
+msgid "Login"
+msgstr "Увійти"
+
+msgid "Logout"
+msgstr "Вихід"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 "Перейдіть в налаштування та увійдіть в Mapillary перед надсиланням даних."
@@ -27679,6 +27866,68 @@ msgstr "Йти за виділеним знімком"
 msgid "Go forward"
 msgstr "Вперед"
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr "Теґ з ключем <i>{0}</i> вже присутній у виділеного обʼєкта OSM."
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+"Ви дійсно бажаєете замінити поточне значення <i>{0}</i> на нове  <i>{1}</i>?"
+
+msgid "Tag conflict"
+msgstr "Конфлікт теґів"
+
+msgid "Key copied to clipboard"
+msgstr "Ключ скопійований до буфера обміну"
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+"Втулок Mapillary тепер використовує окрему панель для показу додаткової "
+"інформації (наприклад, ключа зображення) і дії для поточного зображення "
+"Mapillary (наприклад, перегляд в оглядачі)."
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+"Її можна активувати клацнувши лівою кнопкою миші внизу цього повідомлення "
+"або кнопкою на панелі інструментів ліворуч, з таким самим значком."
+
+msgid "I got it, close this."
+msgstr "Зрозуміло, закрити вікно."
+
+msgid "Image info"
+msgstr "Відомості про зображення"
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr "Показує докладну інформацію про поточний знімок Mapillary"
+
+msgid "Add Mapillary tag"
+msgstr "Додати теґ Mapillary"
+
+msgid "Image actions"
+msgstr "Дії над знімком"
+
+msgid "Image key"
+msgstr "Ключ знімка"
+
+msgid "Sequence key"
+msgstr "Ключ послідовності"
+
+msgid "image has no key"
+msgstr "знімок не має ключа"
+
+msgid "sequence has no key"
+msgstr "послідовність не має ключа"
+
+msgid "Could not open the URL {0} in a browser"
+msgstr "Не можливо відкрити URL {0} в оглядачі"
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "Вилучений {0} знімок"
@@ -32182,8 +32431,8 @@ msgstr "Не вдалося завантажити файл: {0}"
 msgid "Problem occurred"
 msgstr "Виникла проблема"
 
-msgid "Load World File Calibration..."
-msgstr "Завантаження файлу калібрування світу…"
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "Завантаження даних калібрування з файлу"
@@ -32206,6 +32455,12 @@ msgstr "Зберігає дані калібрування в файл"
 msgid "Saving file failed: {0}"
 msgstr "Не вдалося зберегти файл: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "Новий шар зображення з буфера обміну"
 
@@ -35876,6 +36131,3 @@ msgstr "Кермувати"
 
 msgid "Drive a race car on this layer"
 msgstr "Керуйте гоночним автомобілем на цьому шарі"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Атлас: Аерофотознімки"
diff --git a/i18n/po/ur.po b/i18n/po/ur.po
index 3f22a0c..e79eaed 100644
--- a/i18n/po/ur.po
+++ b/i18n/po/ur.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2010-05-13 04:15+0000\n"
 "Last-Translator: Shoaib Mirza <Unknown>\n"
 "Language-Team: Urdu <ur at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:18+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:20+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: ur\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3255,9 +3255,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10816,7 +10834,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10835,6 +10861,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10945,6 +10974,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14885,6 +14930,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15152,9 +15200,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15170,6 +15215,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15205,10 +15274,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15359,7 +15424,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15374,6 +15442,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15908,6 +15982,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20541,6 +20618,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20586,6 +20666,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22510,6 +22593,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22865,6 +22963,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22898,9 +22999,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24363,6 +24461,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25473,18 +25664,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25647,19 +25826,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25680,6 +25859,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29807,7 +30042,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29831,6 +30066,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/vi.po b/i18n/po/vi.po
index 93ab327..8cd4586 100644
--- a/i18n/po/vi.po
+++ b/i18n/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2015-05-14 20:17+0000\n"
 "Last-Translator: Mạnh <laituanmanh32 at gmail.com>\n"
 "Language-Team: Vietnamese <vi at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:19+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:21+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: vi\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3460,9 +3460,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "E"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 "chiếu '' {0} '' không được tìm thấy, đánh dấu '' {1} '' không phải là có thể "
@@ -11566,7 +11584,15 @@ msgid "Foot"
 msgstr "chân"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -11585,6 +11611,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "Tạo dấu khi đọc GPX"
 
@@ -11708,6 +11737,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "Theo dõi và điểm màu"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "Colors điểm và phân đoạn theo dõi bằng cách giới hạn dữ liệu."
 
@@ -16016,6 +16061,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -16285,9 +16333,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr "NRW-Atlas: Digitale GrundKarte 1: 5000"
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr "NRW-Atlas: Topographische Karte 1: 10000"
 
@@ -16303,6 +16348,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -16338,10 +16407,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr "Drone Hình ảnh (Haiti)"
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr "Drone Hình ảnh 2014 (Haiti)"
 
@@ -16492,7 +16557,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr "ORT10LT (Lithuania)"
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -16507,6 +16575,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr "Niger Delta tháng 10 năm 2012 Landsat"
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -17041,6 +17115,9 @@ msgstr "hệ điều hành kế hoạch Town, Edinburgh 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "hệ điều hành kế hoạch Town, Edinburgh 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Kế hoạch, Elgin 1868 (NLS)"
 
@@ -21812,6 +21889,9 @@ msgstr "Notes"
 msgid "Telephone cards"
 msgstr "Thẻ điện thoại"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "Truy cập Internet"
 
@@ -21857,6 +21937,9 @@ msgstr "Hiển thị áp suất khí quyển"
 msgid "Shows humidity"
 msgstr "Hiển thị độ ẩm"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -23783,6 +23866,21 @@ msgstr "Historic Places"
 msgid "Castle"
 msgstr "Castle"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "Khảo cổ trang"
 
@@ -24138,6 +24236,9 @@ msgstr "bicycle_tube"
 msgid "cigarettes"
 msgstr "thuốc lá"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "bao cao su"
 
@@ -24171,9 +24272,6 @@ msgstr ""
 msgid "photos"
 msgstr "hình ảnh"
 
-msgid "public_transport_plans"
-msgstr "public_transport_plans"
-
 msgid "public_transport_tickets"
 msgstr "public_transport_tickets"
 
@@ -25659,6 +25757,99 @@ msgstr "cắm trại"
 msgid "Test"
 msgstr "Test"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -26817,18 +27008,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -26991,12 +27170,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "Đăng nhập"
-
-msgid "Logout"
-msgstr "Thoát"
-
 msgid "Download mode"
 msgstr ""
 
@@ -27006,6 +27179,12 @@ msgstr ""
 msgid "You are currently not logged in."
 msgstr ""
 
+msgid "Login"
+msgstr "Đăng nhập"
+
+msgid "Logout"
+msgstr "Thoát"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -27024,6 +27203,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -31452,8 +31687,8 @@ msgstr "Tải tệp không thành: {0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
-msgstr "Load Thế giới tin Calibration ..."
+msgid "Import World File Calibration..."
+msgstr ""
 
 msgid "Loads calibration data from a world file"
 msgstr "tải dữ liệu hiệu chuẩn từ một tập tin thế giới"
@@ -31476,6 +31711,12 @@ msgstr "Lưu dữ liệu hiệu chuẩn vào một tập tin"
 msgid "Saving file failed: {0}"
 msgstr "Đang lưu tệp bị lỗi: {0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "lớp hình ảnh mới từ clipboard"
 
@@ -35078,6 +35319,3 @@ msgstr "Go lái xe"
 
 msgid "Drive a race car on this layer"
 msgstr "Lái một chiếc xe đua trên lớp này"
-
-#~ msgid "NRW-Atlas: Luftbilder"
-#~ msgstr "NRW-Atlas: Luftbilder"
diff --git a/i18n/po/wae.po b/i18n/po/wae.po
index afe515d..197c054 100644
--- a/i18n/po/wae.po
+++ b/i18n/po/wae.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-03-09 22:17+0000\n"
 "Last-Translator: Simon Legner <Unknown>\n"
 "Language-Team: Walser <wae at li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:24+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:27+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
 msgstr ""
@@ -3254,9 +3254,27 @@ msgctxt "compass"
 msgid "E"
 msgstr ""
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr ""
 
@@ -10815,7 +10833,15 @@ msgid "Foot"
 msgstr ""
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10834,6 +10860,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr ""
 
@@ -10944,6 +10973,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr ""
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14884,6 +14929,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15151,9 +15199,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15169,6 +15214,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15204,10 +15273,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15358,7 +15423,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15373,6 +15441,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15907,6 +15981,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20540,6 +20617,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr ""
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr ""
 
@@ -20585,6 +20665,9 @@ msgstr ""
 msgid "Shows humidity"
 msgstr ""
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22509,6 +22592,21 @@ msgstr ""
 msgid "Castle"
 msgstr ""
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr ""
 
@@ -22864,6 +22962,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr ""
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr ""
 
@@ -22897,9 +22998,6 @@ msgstr ""
 msgid "photos"
 msgstr ""
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -24362,6 +24460,99 @@ msgstr ""
 msgid "Test"
 msgstr ""
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -25472,18 +25663,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25646,19 +25825,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25679,6 +25858,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29806,7 +30041,7 @@ msgstr ""
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29830,6 +30065,12 @@ msgstr ""
 msgid "Saving file failed: {0}"
 msgstr ""
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr ""
 
diff --git a/i18n/po/zh_CN.po b/i18n/po/zh_CN.po
index f019f33..1f2a096 100644
--- a/i18n/po/zh_CN.po
+++ b/i18n/po/zh_CN.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
 "PO-Revision-Date: 2016-10-23 14:49+0000\n"
 "Last-Translator: mmyfl <Unknown>\n"
 "Language-Team: 汉语 <>\n"
@@ -18,8 +18,8 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:22+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:25+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: zh_CN\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -3247,9 +3247,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "东"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr "更新默认项"
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "找不到投影法“{0}”,无法使用书签“{1}”"
 
@@ -10883,7 +10901,15 @@ msgid "Foot"
 msgstr "步行"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10902,6 +10928,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "读取 GPX 时创建标记"
 
@@ -11012,6 +11041,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "轨迹和点的颜色"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr "依数据范围为点和轨迹区段上色。"
 
@@ -14989,6 +15034,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15256,9 +15304,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15274,6 +15319,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15309,10 +15378,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15463,7 +15528,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15478,6 +15546,12 @@ msgstr ""
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -16012,6 +16086,9 @@ msgstr "OS Town Plans,爱丁堡(Edinburgh) 1876-1877 (NLS)"
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr "OS Town Plans,爱丁堡(Edinburgh) 1893-1894 (NLS)"
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr "OS Town Plans,埃尔金(Elgin) 1868 (NLS)"
 
@@ -20647,6 +20724,9 @@ msgstr "备注"
 msgid "Telephone cards"
 msgstr "电话卡"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "互联网访问"
 
@@ -20692,6 +20772,9 @@ msgstr "显示气压"
 msgid "Shows humidity"
 msgstr "显示湿度"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr "回收箱"
 
@@ -22616,6 +22699,21 @@ msgstr "历史地区"
 msgid "Castle"
 msgstr "城堡"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "考古学地区"
 
@@ -22971,6 +23069,9 @@ msgstr "自行车内胎"
 msgid "cigarettes"
 msgstr "菸"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "保险套"
 
@@ -23004,9 +23105,6 @@ msgstr ""
 msgid "photos"
 msgstr "相片"
 
-msgid "public_transport_plans"
-msgstr "公共交通行程单"
-
 msgid "public_transport_tickets"
 msgstr "公共交通票"
 
@@ -24469,6 +24567,99 @@ msgstr "露营"
 msgid "Test"
 msgstr "测试"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr "奇地址插值中的偶门牌号。"
 
@@ -25587,18 +25778,6 @@ msgstr "缩放至选定图片"
 msgid "Zoom to the currently selected Mapillary image"
 msgstr ""
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr "在网站上编辑"
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25761,12 +25940,6 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
-msgstr "登录"
-
-msgid "Logout"
-msgstr "注销"
-
 msgid "Download mode"
 msgstr ""
 
@@ -25776,6 +25949,12 @@ msgstr "您已登录为“{0}”。"
 msgid "You are currently not logged in."
 msgstr "您尚未登录。"
 
+msgid "Login"
+msgstr "登录"
+
+msgid "Logout"
+msgstr "注销"
+
 msgid "Go to setting and log in to Mapillary before uploading."
 msgstr ""
 
@@ -25794,6 +25973,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] "已删除 {0} 张图像"
@@ -30032,7 +30267,7 @@ msgstr "加载文件失败:{0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -30056,6 +30291,12 @@ msgstr "将校准数据保存到文件"
 msgid "Saving file failed: {0}"
 msgstr "保存文件失败:{0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "来自剪贴板的新图片图层"
 
diff --git a/i18n/po/zh_TW.po b/i18n/po/zh_TW.po
index ad24443..60830a3 100644
--- a/i18n/po/zh_TW.po
+++ b/i18n/po/zh_TW.po
@@ -7,16 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: josm\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-02-02 03:39+0100\n"
-"PO-Revision-Date: 2017-01-01 07:07+0000\n"
-"Last-Translator: Sean Young <assanges at gmail.com>\n"
+"POT-Creation-Date: 2017-02-26 23:41+0100\n"
+"PO-Revision-Date: 2017-02-20 16:28+0000\n"
+"Last-Translator: Supaplex <Unknown>\n"
 "Language-Team: Traditional Chinese\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Launchpad-Export-Date: 2017-02-02 05:22+0000\n"
-"X-Generator: Launchpad (build 18315)\n"
+"X-Launchpad-Export-Date: 2017-02-27 05:24+0000\n"
+"X-Generator: Launchpad (build 18328)\n"
 "Language: zh_TW\n"
 
 msgid "{0}: option ''{1}'' is ambiguous"
@@ -1959,7 +1959,7 @@ msgid "draw angle snap"
 msgstr "繪製角度貼齊"
 
 msgid "draw angle snap highlight"
-msgstr ""
+msgstr "繪製角度對齊高亮度顯示"
 
 msgid "helper line"
 msgstr "輔助線"
@@ -2050,7 +2050,7 @@ msgid "Dual alignment"
 msgstr "雙向對齊"
 
 msgid "Switch dual alignment mode while extruding"
-msgstr ""
+msgstr "拉伸時切換雙對齊模式。"
 
 msgid "Extrude"
 msgstr "推出"
@@ -2059,35 +2059,36 @@ msgid "Create areas"
 msgstr "建立區域"
 
 msgid "Extrude Dual alignment"
-msgstr ""
+msgstr "拉伸雙對齊"
 
 msgid ""
 "Drag a way segment to make a rectangle. Ctrl-drag to move a segment along "
 "its normal, Alt-drag to create a new rectangle, double click to add a new "
 "node."
 msgstr ""
+"拖動一條路徑區段,以繪製矩形。按住 Ctrl 鍵拖動以沿著區段的正常方向移動,按住 Alt 鍵拖動以創建一個新的矩形,點兩下添加一個新節點。"
 
 msgid "Dual alignment active."
 msgstr "雙向對齊已生效。"
 
 msgid "Segment collapsed due to its direction reversing."
-msgstr ""
+msgstr "路段反轉導致破碎"
 
 msgid "Move a segment along its normal, then release the mouse button."
 msgstr "以平常的方式移動一個區段,然後放開滑鼠按鈕。"
 
 msgid ""
 "Move the node along one of the segments, then release the mouse button."
-msgstr ""
+msgstr "沿線段移動節點,然後釋放滑鼠按鈕。"
 
 msgid "Draw a rectangle of the desired size, then release the mouse button."
 msgstr "繪出想要尺寸的矩形,然後放開滑鼠按鈕。"
 
 msgid "Extrude: main line"
-msgstr ""
+msgstr "拉伸:主線"
 
 msgid "Extrude: helper line"
-msgstr ""
+msgstr "拉伸:輔助線"
 
 msgid "Extrude Way"
 msgstr "推出路徑"
@@ -2099,7 +2100,7 @@ msgid "Improve Way Accuracy mode"
 msgstr "加強路徑準確度模式"
 
 msgid "improve way accuracy helper line"
-msgstr ""
+msgstr "提高路徑精確度輔助線"
 
 msgid "Click on the way to start improving its shape."
 msgstr "點選路徑開始改善它的形狀。"
@@ -2115,7 +2116,7 @@ msgstr "點選以加入新節點。放開 Ctrl 可移動現有節點或按住 Al
 msgid ""
 "Click to delete the highlighted node. Release Alt to move existing nodes or "
 "hold Ctrl to add new nodes."
-msgstr ""
+msgstr "單一下刪除高亮度顯示的節點。釋放 Ctrl 鍵以移動現有的節點,或按住 Alt 鍵增加新節點。"
 
 msgid ""
 "Click to move the highlighted node. Hold Ctrl to add new nodes, or Alt to "
@@ -2295,7 +2296,7 @@ msgid "Select the members of all selected relations"
 msgstr "選擇所有已選取關係的成員"
 
 msgid "Select members (add)"
-msgstr ""
+msgstr "選擇成員 (增選)"
 
 msgid "Select members"
 msgstr "選擇成員"
@@ -2307,7 +2308,7 @@ msgid "Set the current selection to the list of selected relations"
 msgstr "將目前的選擇區域設定到選取關係的清單"
 
 msgid "Select relation (add)"
-msgstr ""
+msgstr "選擇關係 (增選)"
 
 msgid "Select relation"
 msgstr "選擇關係"
@@ -3243,9 +3244,27 @@ msgctxt "compass"
 msgid "E"
 msgstr "東"
 
+msgid "Date of imagery: {0}"
+msgstr ""
+
+msgid "This imagery is marked as best in this region in other editors."
+msgstr ""
+
+msgid "{0} mirror server {1}"
+msgstr ""
+
+msgid "{0} mirror server"
+msgstr ""
+
 msgid "Update default entries"
 msgstr ""
 
+msgid "Update imagery ''{0}''"
+msgstr ""
+
+msgid "Drop old imagery ''{0}''"
+msgstr ""
+
 msgid "Projection ''{0}'' is not found, bookmark ''{1}'' is not usable"
 msgstr "找不到投影法「{0}」,書籤「{1}」無法使用"
 
@@ -4999,7 +5018,7 @@ msgid "User:"
 msgstr "使用者:"
 
 msgid "Do not hide status bar"
-msgstr ""
+msgstr "不要隱藏狀態列"
 
 msgid "The northing at the mouse pointer."
 msgstr ""
@@ -7136,13 +7155,13 @@ msgid "Move the selected layer one row up."
 msgstr "將選取的圖層上移一列。"
 
 msgid "Show/hide"
-msgstr ""
+msgstr "顯示/隱藏"
 
 msgid "Toggle visible state of the selected layer."
 msgstr "切換選取的圖層可見性狀態。"
 
 msgid "Show/hide layer"
-msgstr ""
+msgstr "顯示/隱藏圖層"
 
 msgid "Discardable key: selection Foreground"
 msgstr ""
@@ -10835,7 +10854,15 @@ msgid "Foot"
 msgstr "步行"
 
 msgctxt "Heat map"
-msgid "User"
+msgid "User Normal"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "User Light"
+msgstr ""
+
+msgctxt "Heat map"
+msgid "Traffic Lights"
 msgstr ""
 
 msgctxt "Heat map"
@@ -10854,6 +10881,9 @@ msgctxt "Heat map"
 msgid "Heat"
 msgstr ""
 
+msgid "Use points instead of lines for heat map"
+msgstr ""
+
 msgid "Create markers when reading GPX"
 msgstr "讀取 GPX 時建立標記"
 
@@ -10964,6 +10994,22 @@ msgstr ""
 msgid "Track and Point Coloring"
 msgstr "軌跡與點的顏色"
 
+msgid "Overlay gain adjustment"
+msgstr ""
+
+msgid "Lower limit of visibility"
+msgstr ""
+
+msgid "Adjust the gain of overlay blending."
+msgstr ""
+
+msgid "Draw all GPX traces that exceed this threshold."
+msgstr ""
+
+msgid ""
+"Render engine uses points with simulated position error instead of lines. "
+msgstr ""
+
 msgid "Colors points and track segments by data limits."
 msgstr ""
 
@@ -14934,6 +14980,9 @@ msgstr ""
 msgid "SPW(allonie) PICC numerical imagery"
 msgstr ""
 
+msgid "SPW(allonie) most recent aerial imagery"
+msgstr ""
+
 msgid "SPW(allonie) 2015 aerial imagery"
 msgstr ""
 
@@ -15201,9 +15250,6 @@ msgstr ""
 msgid "NRW-Atlas: Digitale GrundKarte 1:5000"
 msgstr ""
 
-msgid "Imagery no longer available"
-msgstr ""
-
 msgid "NRW-Atlas: Topographische Karte 1:10000"
 msgstr ""
 
@@ -15219,6 +15265,30 @@ msgid ""
 "(infrared)"
 msgstr ""
 
+msgid "Saxony latest aerial imagery"
+msgstr ""
+
+msgid "Saxony latest aerial imagery infrared"
+msgstr ""
+
+msgid "Saxony aerial imagery 2005"
+msgstr ""
+
+msgid "Saxony WebAtlasSN"
+msgstr ""
+
+msgid "Saxony topographic map"
+msgstr ""
+
+msgid "Saxony digital terrain model"
+msgstr ""
+
+msgid "Mainz all aerial imageries"
+msgstr ""
+
+msgid "Mainz latest aerial imagery"
+msgstr ""
+
 msgid "imagico.de OSM images for mapping: Qasigiannguit"
 msgstr ""
 
@@ -15254,10 +15324,6 @@ msgstr ""
 msgid "Drone Imagery (Haiti)"
 msgstr ""
 
-msgid ""
-"Temporary inavailable until presumably January 2017 due to a server switch."
-msgstr ""
-
 msgid "Drone Imagery 2014 (Haiti)"
 msgstr ""
 
@@ -15408,7 +15474,10 @@ msgstr ""
 msgid "ORT10LT (Lithuania)"
 msgstr ""
 
-msgid "geoportail.lu"
+msgid "geoportail.lu all layers"
+msgstr ""
+
+msgid "geoportail.lu ortho 2016"
 msgstr ""
 
 msgid "Luxembourg Inspire Railway"
@@ -15423,6 +15492,12 @@ msgstr "盧森堡Inspire Water"
 msgid "Niger Delta Oct 2012 Landsat"
 msgstr ""
 
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMS)"
+msgstr ""
+
+msgid "PDOK Luchtfoto Beeldmateriaal 25cm (WMTS)"
+msgstr ""
+
 msgid "Svalbard -Orthophoto 2009/2011 EPSG:25833"
 msgstr ""
 
@@ -15957,6 +16032,9 @@ msgstr ""
 msgid "OS Town Plans, Edinburgh 1893-1894 (NLS)"
 msgstr ""
 
+msgid "OS Town Plans, Edinburgh 1940s-1960s (NLS)"
+msgstr ""
+
 msgid "OS Town Plans, Elgin 1868 (NLS)"
 msgstr ""
 
@@ -20558,7 +20636,7 @@ msgid "Post Box"
 msgstr "郵筒"
 
 msgid "Collection times"
-msgstr ""
+msgstr "收信時間"
 
 msgctxt "post_box"
 msgid "pillar"
@@ -20592,6 +20670,9 @@ msgstr ""
 msgid "Telephone cards"
 msgstr "電話卡"
 
+msgid "Internet Cafe"
+msgstr ""
+
 msgid "Internet Access"
 msgstr "網路存取點"
 
@@ -20602,10 +20683,10 @@ msgid "Display"
 msgstr "顯示"
 
 msgid "analog"
-msgstr ""
+msgstr "類比"
 
 msgid "digital"
-msgstr ""
+msgstr "數位"
 
 msgid "sundial"
 msgstr ""
@@ -20637,6 +20718,9 @@ msgstr "顯示氣壓"
 msgid "Shows humidity"
 msgstr "顯示溼度"
 
+msgid "Photo booth"
+msgstr ""
+
 msgid "Recycling Container"
 msgstr ""
 
@@ -22561,6 +22645,21 @@ msgstr "歷史地區"
 msgid "Castle"
 msgstr "城堡"
 
+msgid "stately"
+msgstr ""
+
+msgid "defensive"
+msgstr ""
+
+msgid "fortress"
+msgstr ""
+
+msgid "manor"
+msgstr ""
+
+msgid "palace"
+msgstr ""
+
 msgid "Archaeological Site"
 msgstr "考古遺址"
 
@@ -22749,7 +22848,7 @@ msgid "Pawnbroker"
 msgstr "地下錢莊"
 
 msgid "Home decoration"
-msgstr ""
+msgstr "家庭擺飾"
 
 msgid "Furniture"
 msgstr "傢俱類"
@@ -22758,10 +22857,10 @@ msgid "Kitchen"
 msgstr "廚房"
 
 msgid "Houseware"
-msgstr ""
+msgstr "家庭用品"
 
 msgid "Curtain"
-msgstr ""
+msgstr "窗簾店"
 
 msgid "Art"
 msgstr ""
@@ -22785,7 +22884,7 @@ msgid "Stationery"
 msgstr "文具類"
 
 msgid "Copy Shop"
-msgstr "影印"
+msgstr "影印店"
 
 msgid "Book Store"
 msgstr "書店"
@@ -22916,6 +23015,9 @@ msgstr ""
 msgid "cigarettes"
 msgstr "菸"
 
+msgid "coffee"
+msgstr ""
+
 msgid "condoms"
 msgstr "保險套"
 
@@ -22949,9 +23051,6 @@ msgstr ""
 msgid "photos"
 msgstr "相片"
 
-msgid "public_transport_plans"
-msgstr ""
-
 msgid "public_transport_tickets"
 msgstr ""
 
@@ -23098,7 +23197,7 @@ msgstr "私人企業"
 
 msgctxt "office"
 msgid "Educational institution"
-msgstr ""
+msgstr "教育機構"
 
 msgctxt "office"
 msgid "Employment agency"
@@ -24124,7 +24223,7 @@ msgid "members of site"
 msgstr "場所的成員"
 
 msgid "Turn Restriction"
-msgstr ""
+msgstr "轉彎限制"
 
 msgid "Restriction"
 msgstr "限制"
@@ -24414,6 +24513,99 @@ msgstr "露營"
 msgid "Test"
 msgstr "測試"
 
+msgid "View website"
+msgstr ""
+
+msgid "View URL"
+msgstr ""
+
+msgid "Send Email"
+msgstr ""
+
+msgid "View image"
+msgstr ""
+
+msgid "View %name% article"
+msgstr ""
+
+msgid "View Wikidata page"
+msgstr ""
+
+msgid "View UNESCO sheet"
+msgstr ""
+
+msgid "View %name% image"
+msgstr ""
+
+msgid "View %name% sheet of river"
+msgstr ""
+
+msgid "View %name% municipality sheet"
+msgstr ""
+
+msgid "View %name% sheet on osm.fr"
+msgstr ""
+
+msgid "View %name% map of municipalities"
+msgstr ""
+
+msgid "View %name% list of municipalities"
+msgstr ""
+
+msgid "View %name% map of cantons"
+msgstr ""
+
+msgid "View %name% list of cantons"
+msgstr ""
+
+msgid "View %name% map of arrondissements"
+msgstr ""
+
+msgid "View %name% list of arrondissements"
+msgstr ""
+
+msgid "View %name% map of departments"
+msgstr ""
+
+msgid "View %name% list of departments"
+msgstr ""
+
+msgid "View %name% map of regions"
+msgstr ""
+
+msgid "View %name% list of regions"
+msgstr ""
+
+msgid "View %name% sheet of church"
+msgstr ""
+
+msgid "View Mérimée sheet of monument"
+msgstr ""
+
+msgid "View Mérimée list for this municipality"
+msgstr ""
+
+msgid "View %name% sheet of geodesic site"
+msgstr ""
+
+msgid "View UAI sheet of school/college"
+msgstr ""
+
+msgid "View %name% sheet of hospital/home"
+msgstr ""
+
+msgid "View explanation of %name% code"
+msgstr ""
+
+msgid "Get identification card (pdf) for this establishment"
+msgstr ""
+
+msgid "View %name% page of this post office"
+msgstr ""
+
+msgid "View %name% sheet of memorial"
+msgstr ""
+
 msgid "Even housenumber in odd address interpolation."
 msgstr ""
 
@@ -24842,7 +25034,7 @@ msgid "Display street labels (at high zoom)"
 msgstr ""
 
 msgid "Use alternative turn restriction icon set"
-msgstr ""
+msgstr "使用另一套轉彎限制圖示集"
 
 msgid "Display fill colour of areas with place=*"
 msgstr ""
@@ -25523,18 +25715,6 @@ msgstr ""
 msgid "Zoom to the currently selected Mapillary image"
 msgstr "縮放到目前選取的Mapiilary影像"
 
-msgid "View in website"
-msgstr ""
-
-msgid "Copy key"
-msgstr ""
-
-msgid "Copy key tag"
-msgstr ""
-
-msgid "Edit on website"
-msgstr ""
-
 msgid "Current Mapillary changeset"
 msgstr ""
 
@@ -25697,19 +25877,19 @@ msgstr ""
 msgid "Preview images when hovering its icon"
 msgstr ""
 
-msgid "Login"
+msgid "Download mode"
 msgstr ""
 
-msgid "Logout"
+msgid "You are logged in as ''{0}''."
 msgstr ""
 
-msgid "Download mode"
+msgid "You are currently not logged in."
 msgstr ""
 
-msgid "You are logged in as ''{0}''."
+msgid "Login"
 msgstr ""
 
-msgid "You are currently not logged in."
+msgid "Logout"
 msgstr ""
 
 msgid "Go to setting and log in to Mapillary before uploading."
@@ -25730,6 +25910,62 @@ msgstr ""
 msgid "Go forward"
 msgstr ""
 
+msgid ""
+"A tag with key <i>{0}</i> is already present on the selected OSM object."
+msgstr ""
+
+msgid ""
+"Do you really want to replace the current value <i>{0}</i> with the new "
+"value <i>{1}</i>?"
+msgstr ""
+
+msgid "Tag conflict"
+msgstr ""
+
+msgid "Key copied to clipboard"
+msgstr ""
+
+msgid ""
+"The Mapillary plugin now uses a separate panel to display extra information "
+"(like the image key) and actions for the currently selected Mapillary image "
+"(like viewing it in a browser)."
+msgstr ""
+
+msgid ""
+"It can be activated by clicking the left button at the bottom of this "
+"message or the button in the toolbar on the left, which uses the same icon."
+msgstr ""
+
+msgid "I got it, close this."
+msgstr ""
+
+msgid "Image info"
+msgstr ""
+
+msgid "Displays detail information on the currently selected Mapillary image"
+msgstr ""
+
+msgid "Add Mapillary tag"
+msgstr ""
+
+msgid "Image actions"
+msgstr ""
+
+msgid "Image key"
+msgstr ""
+
+msgid "Sequence key"
+msgstr ""
+
+msgid "image has no key"
+msgstr ""
+
+msgid "sequence has no key"
+msgstr ""
+
+msgid "Could not open the URL {0} in a browser"
+msgstr ""
+
 msgid "Deleted {0} image"
 msgid_plural "Deleted {0} images"
 msgstr[0] ""
@@ -29932,7 +30168,7 @@ msgstr "載入檔案失敗:{0}"
 msgid "Problem occurred"
 msgstr ""
 
-msgid "Load World File Calibration..."
+msgid "Import World File Calibration..."
 msgstr ""
 
 msgid "Loads calibration data from a world file"
@@ -29956,6 +30192,12 @@ msgstr "將校準資料儲存到檔案"
 msgid "Saving file failed: {0}"
 msgstr "儲存檔案失敗:{0}"
 
+msgid "Export World file Calibration..."
+msgstr ""
+
+msgid "Saves calibration data to a world file"
+msgstr ""
+
 msgid "New picture layer from clipboard"
 msgstr "來自剪貼簿的新相片圖層"
 
diff --git a/images/presets/service/internet_cafe.svg b/images/presets/service/internet_cafe.svg
new file mode 100644
index 0000000..500792a
--- /dev/null
+++ b/images/presets/service/internet_cafe.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.92.0 r15299"
+   sodipodi:docname="13.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="24.296875"
+     inkscape:cx="9.650458"
+     inkscape:cy="8.1240404"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="987"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     viewbox-height="16">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="0"
+       originy="0"
+       spacingx="1"
+       spacingy="1" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1037.3622)">
+    <rect
+       style="fill:#ffffff;stroke-width:2.66666389"
+       id="rect3733"
+       width="16"
+       height="16"
+       x="0"
+       y="1037.3622" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:13.79166603px;line-height:8.61979198px;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.34479174"
+       x="1.0752289"
+       y="1057.2565"
+       id="text3693"
+       transform="scale(1.0078865,0.99217522)"><tspan
+         sodipodi:role="line"
+         id="tspan3691"
+         x="1.0752289"
+         y="1057.2565"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;stroke-width:0.34479174">@</tspan></text>
+  </g>
+</svg>
diff --git a/images/presets/service/photo_booth.svg b/images/presets/service/photo_booth.svg
new file mode 100644
index 0000000..c1a4ced
--- /dev/null
+++ b/images/presets/service/photo_booth.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="13"
+   viewBox="0 0 16 13"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.92.0 r15299"
+   sodipodi:docname="01.svg">
+  <defs
+     id="defs4">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4497">
+      <stop
+         style="stop-color:#4d4d4d;stop-opacity:1;"
+         offset="0"
+         id="stop4493" />
+      <stop
+         style="stop-color:#4d4d4d;stop-opacity:0;"
+         offset="1"
+         id="stop4495" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4497"
+       id="linearGradient4499"
+       x1="6"
+       y1="1045.3622"
+       x2="14"
+       y2="1045.3622"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25,0,0,1.3333396,10.5,-347.4605)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4497"
+       id="linearGradient4499-3"
+       x1="6"
+       y1="1045.3622"
+       x2="14"
+       y2="1045.3622"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25,0,0,1.3333396,-13.5,-347.4605)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4497"
+       id="linearGradient4499-1"
+       x1="6"
+       y1="1045.3622"
+       x2="14"
+       y2="1045.3622"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25,0,0,1.3333396,6.5,-347.4605)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4497"
+       id="linearGradient4499-3-3"
+       x1="6"
+       y1="1045.3622"
+       x2="14"
+       y2="1045.3622"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25,0,0,1.3333396,-9.5,-347.4605)" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="9.0842213"
+     inkscape:cy="5.8203593"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="987"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     viewbox-height="16">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136"
+       originx="0"
+       originy="0"
+       spacingx="1"
+       spacingy="1" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1040.3622)">
+    <rect
+       style="fill:#333333"
+       id="rect8"
+       width="16"
+       height="13"
+       x="0"
+       y="1040.3622" />
+    <rect
+       style="fill:#f9f9f9"
+       id="rect10"
+       width="8"
+       height="5"
+       x="6"
+       y="1048.3622" />
+    <path
+       style="fill:#ff0000;stroke:none;stroke-width:1.05035317px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 6,1048.9817 v -6.6195 h 8 v 6.6195 c -0.970728,-0.063 -1.223517,1.9426 -1.735589,1.3808 C 10,1047.8784 8.8663147,1049.9779 7.6889016,1050.3723 7.0531622,1050.5852 6.3802638,1049.7973 6,1048.9817"
+       id="path14"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccssc" />
+    <rect
+       style="opacity:0.48900003;fill:url(#linearGradient4499);fill-opacity:1;stroke:none;stroke-width:0.57735157"
+       id="rect16"
+       width="2"
+       height="8.0000372"
+       x="12"
+       y="1042.3622" />
+    <rect
+       style="opacity:0.48900003;fill:url(#linearGradient4499-3);fill-opacity:1;stroke:none;stroke-width:0.57735157"
+       id="rect16-9"
+       width="2"
+       height="8.0000372"
+       x="-12"
+       y="1042.3622"
+       transform="scale(-1,1)" />
+    <rect
+       style="opacity:0.48900003;fill:url(#linearGradient4499-1);fill-opacity:1;stroke:none;stroke-width:0.57735157"
+       id="rect16-7"
+       width="2"
+       height="8.0000372"
+       x="8"
+       y="1042.3622" />
+    <rect
+       style="opacity:0.48900003;fill:url(#linearGradient4499-3-3);fill-opacity:1;stroke:none;stroke-width:0.57735157"
+       id="rect16-9-4"
+       width="2"
+       height="8.0000372"
+       x="-8"
+       y="1042.3622"
+       transform="scale(-1,1)" />
+    <rect
+       style="opacity:1;fill:#ffffff;stroke:none"
+       id="rect4568"
+       width="3"
+       height="4"
+       x="1"
+       y="1042.3622" />
+    <path
+       style="fill:#0000ff;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 1,1046.3622 1,-2 h 1 l 1,2 H 1"
+       id="path4574"
+       inkscape:connector-curvature="0" />
+    <ellipse
+       style="opacity:1;fill:#ff7f2a;stroke:none"
+       id="path4572"
+       cx="2.5"
+       cy="1044.1584"
+       rx="1.0634582"
+       ry="1" />
+    <rect
+       style="opacity:1;fill:#ffffff;stroke:none"
+       id="rect4568-3"
+       width="3"
+       height="4"
+       x="1"
+       y="1047.3622" />
+    <path
+       style="fill:#0000ff;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 1,1051.3622 1,-2 h 1 l 1,2 H 1"
+       id="path4574-6"
+       inkscape:connector-curvature="0" />
+    <ellipse
+       style="opacity:1;fill:#ff7f2a;stroke:none"
+       id="path4572-2"
+       cx="2.5"
+       cy="1049.1584"
+       rx="1.0634582"
+       ry="1" />
+  </g>
+</svg>
diff --git a/scripts/SyncEditorImageryIndex.groovy b/scripts/SyncEditorLayerIndex.groovy
similarity index 68%
rename from scripts/SyncEditorImageryIndex.groovy
rename to scripts/SyncEditorLayerIndex.groovy
index 06ca8f8..42557d0 100644
--- a/scripts/SyncEditorImageryIndex.groovy
+++ b/scripts/SyncEditorLayerIndex.groovy
@@ -29,21 +29,18 @@ import org.openstreetmap.josm.io.imagery.ImageryReader
 class SyncEditorImageryIndex {
 
     List<ImageryInfo> josmEntries;
-    JsonArray eiiEntries;
+    JsonArray eliEntries;
 
-    def eiiUrls = new HashMap<String, JsonObject>()
+    def eliUrls = new HashMap<String, JsonObject>()
     def josmUrls = new HashMap<String, ImageryInfo>()
     def josmMirrors = new HashMap<String, ImageryInfo>()
 
-    static String eiiInputFile = 'imagery.geojson'
+    static String eliInputFile = 'imagery.geojson'
     static String josmInputFile = 'maps.xml'
     static String ignoreInputFile = 'maps_ignores.txt'
     static FileWriter outputFile = null
     static BufferedWriter outputStream = null
-    int skipCount = 0;
-    String skipColor = "greenyellow" // should never be visible
-    def skipEntries = [:]
-    def skipColors = [:]
+    def skip = [:]
 
     static def options
 
@@ -56,7 +53,7 @@ class SyncEditorImageryIndex {
         script.loadSkip()
         script.start()
         script.loadJosmEntries()
-        script.loadEIIEntries()
+        script.loadELIEntries()
         script.checkInOneButNotTheOther()
         script.checkCommonEntries()
         script.end()
@@ -74,14 +71,14 @@ class SyncEditorImageryIndex {
     static void parse_command_line_arguments(args) {
         def cli = new CliBuilder(width: 160)
         cli.o(longOpt:'output', args:1, argName: "output", "Output file, - prints to stdout (default: -)")
-        cli.e(longOpt:'eii_input', args:1, argName:"eii_input", "Input file for the editor imagery index (json). Default is $eiiInputFile (current directory).")
+        cli.e(longOpt:'eli_input', args:1, argName:"eli_input", "Input file for the editor imagery index (json). Default is $eliInputFile (current directory).")
         cli.j(longOpt:'josm_input', args:1, argName:"josm_input", "Input file for the JOSM imagery list (xml). Default is $josmInputFile (current directory).")
         cli.i(longOpt:'ignore_input', args:1, argName:"ignore_input", "Input file for the ignore list. Default is $ignoreInputFile (current directory).")
         cli.s(longOpt:'shorten', "shorten the output, so it is easier to read in a console window")
         cli.n(longOpt:'noskip', argName:"noskip", "don't skip known entries")
         cli.x(longOpt:'xhtmlbody', argName:"xhtmlbody", "create XHTML body for display in a web page")
         cli.X(longOpt:'xhtml', argName:"xhtml", "create XHTML for display in a web page")
-        cli.m(longOpt:'nomissingeii', argName:"nomissingeii", "don't show missing editor imagery index entries")
+        cli.m(longOpt:'nomissingeli', argName:"nomissingeli", "don't show missing editor imagery index entries")
         cli.h(longOpt:'help', "show this help")
         options = cli.parse(args)
 
@@ -89,8 +86,8 @@ class SyncEditorImageryIndex {
             cli.usage()
             System.exit(0)
         }
-        if (options.eii_input) {
-            eiiInputFile = options.eii_input
+        if (options.eli_input) {
+            eliInputFile = options.eli_input
         }
         if (options.josm_input) {
             josmInputFile = options.josm_input
@@ -109,14 +106,13 @@ class SyncEditorImageryIndex {
         def line
 
         while((line = fr.readLine()) != null) {
-            def res = (line =~ /^\|\| *(\d) *\|\| *(EII|Ignore) *\|\| *\{\{\{(.+)\}\}\} *\|\|/)
+            def res = (line =~ /^\|\| *(ELI|Ignore) *\|\| *\{\{\{(.+)\}\}\} *\|\|/)
             if(res.count)
             {
-                skipEntries[res[0][3]] = res[0][1] as int
-                if(res[0][2].equals("Ignore")) {
-                    skipColors[res[0][3]] = "green"
+                if(res[0][1].equals("Ignore")) {
+                    skip[res[0][2]] = "green"
                 } else {
-                    skipColors[res[0][3]] = "darkgoldenrod"
+                    skip[res[0][2]] = "darkgoldenrod"
                 }
             }
         }
@@ -132,25 +128,17 @@ class SyncEditorImageryIndex {
     }
 
     void myprintln(String s) {
-        if(skipEntries.containsKey(s)) {
-            skipCount = skipEntries.get(s)
-            skipEntries.remove(s)
-            if(skipColors.containsKey(s)) {
-                skipColor = skipColors.get(s)
-            } else {
-                skipColor = "greenyellow"
-            }
-        }
-        if(skipCount) {
-            skipCount -= 1;
+        if(skip.containsKey(s)) {
+            String color = skip.get(s)
+            skip.remove(s)
             if(options.xhtmlbody || options.xhtml) {
-                s = "<pre style=\"margin:3px;color:"+skipColor+"\">"+s.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")+"</pre>"
+                s = "<pre style=\"margin:3px;color:"+color+"\">"+s.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")+"</pre>"
             }
             if (!options.noskip) {
                 return;
             }
         } else if(options.xhtmlbody || options.xhtml) {
-            String color = s.startsWith("***") ? "black" : ((s.startsWith("+ ") || s.startsWith("+++ EII")) ? "blue" : "red")
+            String color = s.startsWith("***") ? "black" : ((s.startsWith("+ ") || s.startsWith("+++ ELI")) ? "blue" : "red")
             s = "<pre style=\"margin:3px;color:"+color+"\">"+s.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">")+"</pre>"
         }
         myprintlnfinal(s)
@@ -159,12 +147,12 @@ class SyncEditorImageryIndex {
     void start() {
         if (options.xhtml) {
             myprintlnfinal "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
-            myprintlnfinal "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><title>JOSM - EII differences</title></head><body>\n"
+            myprintlnfinal "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/><title>JOSM - ELI differences</title></head><body>\n"
         }
     }
 
     void end() {
-        for (def s: skipEntries.keySet()) {
+        for (def s: skip.keySet()) {
             myprintln "+++ Obsolete skip entry: " + s
         }
         if (options.xhtml) {
@@ -172,25 +160,25 @@ class SyncEditorImageryIndex {
         }
     }
 
-    void loadEIIEntries() {
-        FileReader fr = new FileReader(eiiInputFile)
+    void loadELIEntries() {
+        FileReader fr = new FileReader(eliInputFile)
         JsonReader jr = Json.createReader(fr)
-        eiiEntries = jr.readObject().get("features")
+        eliEntries = jr.readObject().get("features")
         jr.close()
 
-        for (def e : eiiEntries) {
+        for (def e : eliEntries) {
             def url = getUrl(e)
             if (url.contains("{z}")) {
-                myprintln "+++ EII-URL uses {z} instead of {zoom}: "+url
+                myprintln "+++ ELI-URL uses {z} instead of {zoom}: "+url
                 url = url.replace("{z}","{zoom}")
             }
-            if (eiiUrls.containsKey(url)) {
-                myprintln "+++ EII-URL is not unique: "+url
+            if (eliUrls.containsKey(url)) {
+                myprintln "+++ ELI-URL is not unique: "+url
             } else {
-                eiiUrls.put(url, e)
+                eliUrls.put(url, e)
             }
         }
-        myprintln "*** Loaded ${eiiEntries.size()} entries (EII). ***"
+        myprintln "*** Loaded ${eliEntries.size()} entries (ELI). ***"
     }
 
     void loadJosmEntries() {
@@ -210,6 +198,7 @@ class SyncEditorImageryIndex {
             }
             for (def m : e.getMirrors()) {
                 url = getUrl(m)
+                m.origName = m.getOriginalName().replaceAll(" mirror server( \\d+)?","")
                 if (josmUrls.containsKey(url)) {
                     myprintln "+++ JOSM-Mirror-URL is not unique: "+url
                 } else {
@@ -233,18 +222,18 @@ class SyncEditorImageryIndex {
     }
 
     void checkInOneButNotTheOther() {
-        def l1 = inOneButNotTheOther(eiiUrls, josmUrls)
-        myprintln "*** URLs found in EII but not in JOSM (${l1.size()}): ***"
+        def l1 = inOneButNotTheOther(eliUrls, josmUrls)
+        myprintln "*** URLs found in ELI but not in JOSM (${l1.size()}): ***"
         if (!l1.isEmpty()) {
             for (def l : l1) {
                 myprintln "-" + l
             }
         }
 
-        if (options.nomissingeii)
+        if (options.nomissingeli)
             return
-        def l2 = inOneButNotTheOther(josmUrls, eiiUrls)
-        myprintln "*** URLs found in JOSM but not in EII (${l2.size()}): ***"
+        def l2 = inOneButNotTheOther(josmUrls, eliUrls)
+        myprintln "*** URLs found in JOSM but not in ELI (${l2.size()}): ***"
         if (!l2.isEmpty()) {
             for (def l : l2) {
                 myprintln "+" + l
@@ -254,77 +243,95 @@ class SyncEditorImageryIndex {
 
     void checkCommonEntries() {
         myprintln "*** Same URL, but different name: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) continue
             def j = josmUrls.get(url)
             if (!getName(e).equals(getName(j))) {
-                myprintln "  name differs: $url"
-                myprintln "     (EII):     ${getName(e)}"
-                myprintln "     (JOSM):    ${getName(j)}"
+                myprintln "* Name differs ('${getName(e)}' != '${getName(j)}'): $url"
             }
         }
 
         myprintln "*** Same URL, but different type: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) continue
             def j = josmUrls.get(url)
             if (!getType(e).equals(getType(j))) {
-                myprintln "  type differs: ${getName(j)} - $url"
-                myprintln "     (EII):     ${getType(e)}"
-                myprintln "     (JOSM):    ${getType(j)}"
+                myprintln "* Type differs (${getType(e)} != ${getType(j)}): ${getName(j)} - $url"
             }
         }
 
         myprintln "*** Same URL, but different zoom bounds: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) continue
             def j = josmUrls.get(url)
 
             Integer eMinZoom = getMinZoom(e)
             Integer jMinZoom = getMinZoom(j)
             if (eMinZoom != jMinZoom  && !(eMinZoom == 0 && jMinZoom == null)) {
-                myprintln "  minzoom differs: ${getDescription(j)}"
-                myprintln "     (EII):     ${eMinZoom}"
-                myprintln "     (JOSM):    ${jMinZoom}"
+                myprintln "* Minzoom differs (${eMinZoom} != ${jMinZoom}): ${getDescription(j)}"
             }
             Integer eMaxZoom = getMaxZoom(e)
             Integer jMaxZoom = getMaxZoom(j)
             if (eMaxZoom != jMaxZoom) {
-                myprintln "  maxzoom differs: ${getDescription(j)}"
-                myprintln "     (EII):     ${eMaxZoom}"
-                myprintln "     (JOSM):    ${jMaxZoom}"
+                myprintln "* Maxzoom differs (${eMaxZoom} != ${jMaxZoom}): ${getDescription(j)}"
             }
         }
 
         myprintln "*** Same URL, but different country code: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) continue
             def j = josmUrls.get(url)
             if (!getCountryCode(e).equals(getCountryCode(j))) {
-                myprintln "  country code differs: ${getDescription(j)}"
-                myprintln "     (EII):     ${getCountryCode(e)}"
-                myprintln "     (JOSM):    ${getCountryCode(j)}"
+                myprintln "* Country code differs (${getCountryCode(e)} != ${getCountryCode(j)}): ${getDescription(j)}"
             }
         }
-        /*myprintln "*** Same URL, but different quality: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        myprintln "*** Same URL, but different quality: ***"
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) {
               def q = getQuality(e)
-              if("best".equals(q)) {
-                myprintln "  quality best entry not in JOSM for ${getDescription(e)}"
+              if("eli-best".equals(q)) {
+                myprintln "- Quality best entry not in JOSM for ${getDescription(e)}"
               }
               continue
             }
             def j = josmUrls.get(url)
             if (!getQuality(e).equals(getQuality(j))) {
-                myprintln "  quality differs: ${getDescription(j)}"
-                myprintln "     (EII):     ${getQuality(e)}"
-                myprintln "     (JOSM):    ${getQuality(j)}"
+                myprintln "* Quality differs (${getQuality(e)} != ${getQuality(j)}): ${getDescription(j)}"
+            }
+        }
+        /*myprintln "*** Same URL, but different dates: ***"
+        for (def url : eliUrls.keySet()) {
+            def ed = getDate(eliUrls.get(url))
+            if (!josmUrls.containsKey(url)) continue
+            def j = josmUrls.get(url)
+            def jd = getDate(j)
+            // The forms 2015;- or -;2015 or 2015;2015 are handled equal to 2015
+            String ef = ed.replaceAll("\\A-;","").replaceAll(";-\\z","").replaceAll("\\A([0-9-]+);\\1\\z","\$1");
+            // ELI has a strange and inconsistent used end_date definition, so we try again with subtraction by one
+            String ed2 = ed;
+            def reg = (ed =~ /^(.*;)(\d\d\d\d)(-(\d\d)(-(\d\d))?)?$/)
+            if(reg != null && reg.count == 1) {
+                Calendar cal = Calendar.getInstance();
+                cal.set(reg[0][2] as Integer, reg[0][4] == null ? 0 : (reg[0][4] as Integer)-1, reg[0][6] == null ? 1 : reg[0][6] as Integer)
+                cal.add(Calendar.DAY_OF_MONTH, -1)
+                ed2 = cal.get(Calendar.YEAR)
+                if (reg[0][4] != null)
+                    ed2 += "-" + String.format("%02d", cal.get(Calendar.MONTH)+1)
+                if (reg[0][6] != null)
+                    ed2 += "-" + String.format("%02d", cal.get(Calendar.DAY_OF_MONTH))
+            }
+            String ef2 = ed2.replaceAll("\\A-;","").replaceAll(";-\\z","").replaceAll("\\A([0-9-]+);\\1\\z","\$1");
+            if (!ed.equals(jd) && !ef.equals(jd) && !ed2.equals(jd) && !ef2.equals(jd)) {
+                String t = "'${ed}'";
+                if (!ed.equals(ef)) {
+                    t += " or '${ef}'";
+                }
+                myprintln "* Date differs (${t} != '${jd}'): ${getDescription(j)}"
             }
         }*/
         myprintln "*** Mismatching shapes: ***"
@@ -339,14 +346,14 @@ class SyncEditorImageryIndex {
                 ++num
             }
         }
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             def num = 1
             def s = getShapes(e)
             for (def shape : s) {
                 def p = shape.getPoints()
-                if(!p[0].equals(p[p.size()-1]) && !options.nomissingeii) {
-                    myprintln "+++ EII shape $num unclosed: ${getDescription(e)}"
+                if(!p[0].equals(p[p.size()-1]) && !options.nomissingeli) {
+                    myprintln "+++ ELI shape $num unclosed: ${getDescription(e)}"
                 }
                 ++num
             }
@@ -356,8 +363,8 @@ class SyncEditorImageryIndex {
             def j = josmUrls.get(url)
             def js = getShapes(j)
             if(!s.size() && js.size()) {
-                if(!options.nomissingeii) {
-                    myprintln "+ No EII shape: ${getDescription(j)}"
+                if(!options.nomissingeli) {
+                    myprintln "+ No ELI shape: ${getDescription(j)}"
                 }
             } else if(!js.size() && s.size()) {
                 // don't report boundary like 5 point shapes as difference
@@ -387,8 +394,8 @@ class SyncEditorImageryIndex {
             }
         }
         myprintln "*** Mismatching icons: ***"
-        for (def url : eiiUrls.keySet()) {
-            def e = eiiUrls.get(url)
+        for (def url : eliUrls.keySet()) {
+            def e = eliUrls.get(url)
             if (!josmUrls.containsKey(url)) {
                 continue
             }
@@ -396,8 +403,8 @@ class SyncEditorImageryIndex {
             def ij = getIcon(j)
             def ie = getIcon(e)
             if(ij != null && ie == null) {
-                if(!options.nomissingeii) {
-                    myprintln "+ No EII icon: ${getDescription(j)}"
+                if(!options.nomissingeli) {
+                    myprintln "+ No ELI icon: ${getDescription(j)}"
                 }
             } else if(ij == null && ie != null) {
                 myprintln "- No JOSM icon: ${getDescription(j)}"
@@ -420,6 +427,24 @@ class SyncEditorImageryIndex {
             } else {
                 josmIds.put(id, j);
             }
+            def d = getDate(j)
+            if(!d.isEmpty()) {
+                def reg = (d =~ /^(-|(\d\d\d\d)(-(\d\d)(-(\d\d))?)?)(;(-|(\d\d\d\d)(-(\d\d)(-(\d\d))?)?))?$/)
+                if(reg == null || reg.count != 1) {
+                    myprintln "* JOSM-Date '${d}' is strange: ${getDescription(j)}"
+                } else {
+                    try {
+                        def first = verifyDate(reg[0][2],reg[0][4],reg[0][6]);
+                        def second = verifyDate(reg[0][9],reg[0][11],reg[0][13]);
+                        if(second.compareTo(first) < 0) {
+                            myprintln "* JOSM-Date '${d}' is strange (second earlier than first): ${getDescription(j)}"
+                        }
+                    }
+                    catch (Exception e) {
+                        myprintln "* JOSM-Date '${d}' is strange (${e.getMessage()}): ${getDescription(j)}"
+                    }
+                }
+            }
             def js = getShapes(j)
             if(js.size()) {
                 def minlat = 1000;
@@ -451,6 +476,29 @@ class SyncEditorImageryIndex {
         if (e instanceof ImageryInfo) return e.url
         return e.get("properties").getString("url")
     }
+    static String getDate(Object e) {
+        if (e instanceof ImageryInfo) return e.date ? e.date : ""
+        def p = e.get("properties")
+        def start = p.containsKey("start_date") ? p.getString("start_date") : ""
+        def end = p.containsKey("end_date") ? p.getString("end_date") : ""
+        if(!start.isEmpty() && !end.isEmpty())
+            return start+";"+end
+        else if(!start.isEmpty())
+            return start+";-"
+        else if(!end.isEmpty())
+            return "-;"+end
+        return "";
+    }
+    static Date verifyDate(String year, String month, String day) {
+        def date
+        if(year == null)
+            date = "3000-01-01"
+        else
+            date = year + "-" + (month == null ? "01" : month) + "-" + (day == null ? "01" : day)
+        def df = new java.text.SimpleDateFormat("yyyy-MM-dd")
+        df.setLenient(false)
+        return df.parse(date)
+    }
     static String getId(Object e) {
         if (e instanceof ImageryInfo) return e.getId()
         return e.get("properties").getString("id")
@@ -515,9 +563,9 @@ class SyncEditorImageryIndex {
         return e.get("properties").getString("country_code", null)
     }
     static String getQuality(Object e) {
-        //if (e instanceof ImageryInfo) return "".equals(e.getQuality()) ? null : e.getQuality()
-        if (e instanceof ImageryInfo) return null
-        return e.get("properties").get("best") ? "best" : null
+        if (e instanceof ImageryInfo) return e.isBestMarked() ? "eli-best" : null
+        return (e.get("properties").containsKey("best")
+            && e.get("properties").getBoolean("best")) ? "eli-best" : null
     }
     static String getIcon(Object e) {
         if (e instanceof ImageryInfo) return e.getIcon()
@@ -530,7 +578,7 @@ class SyncEditorImageryIndex {
             def j = josmUrls.get(url)
             if (j != null) cc = getCountryCode(j)
             if (cc == null) {
-                def e = eiiUrls.get(url)
+                def e = eliUrls.get(url)
                 if (e != null) cc = getCountryCode(e)
             }
         }
diff --git a/src/org/apache/commons/jcs/JCS.java b/src/org/apache/commons/jcs/JCS.java
index 304df37..a51da23 100644
--- a/src/org/apache/commons/jcs/JCS.java
+++ b/src/org/apache/commons/jcs/JCS.java
@@ -130,6 +130,22 @@ public abstract class JCS
     }
 
     /**
+     * Shut down the cache manager and set the instance to null
+     */
+    public static void shutdown()
+    {
+        synchronized ( JCS.class )
+        {
+            if ( cacheMgr != null && cacheMgr.isInitialized())
+            {
+            	cacheMgr.shutDown();
+            }
+
+            cacheMgr = null;
+        }
+    }
+
+    /**
      * Helper method which checks to make sure the cacheMgr class field is set, and if not requests
      * an instance from CacheManagerFactory.
      *
diff --git a/src/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java b/src/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java
index 08eb14e..67c9b86 100644
--- a/src/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java
+++ b/src/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java
@@ -19,14 +19,13 @@ package org.apache.commons.jcs.utils.servlet;
  * under the License.
  */
 
-import org.apache.commons.jcs.access.exception.CacheException;
-import org.apache.commons.jcs.engine.control.CompositeCacheManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
 
+import org.apache.commons.jcs.JCS;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * If you add this to the context listeners section of your web.xml file, this will shutdown JCS
  * gracefully.
@@ -56,32 +55,25 @@ public class JCSServletContextListener
     @Override
     public void contextInitialized( ServletContextEvent arg0 )
     {
-        if ( log.isInfoEnabled() )
+        if ( log.isDebugEnabled() )
         {
-            log.info( "contextInitialized" );
+            log.debug( "contextInitialized" );
         }
     }
 
     /**
-     * This gets the singleton instance of the CompositeCacheManager and calls shutdown.
+     * Shutdown JCS.
      * <p>
      * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
      */
     @Override
     public void contextDestroyed( ServletContextEvent arg0 )
     {
-        if ( log.isInfoEnabled() )
+        if ( log.isDebugEnabled() )
         {
-            log.info( "contextDestroyed, shutting down JCS." );
+            log.debug( "contextDestroyed, shutting down JCS." );
         }
 
-        try
-        {
-            CompositeCacheManager.getInstance().shutDown();
-        }
-        catch (CacheException e)
-        {
-            log.error( "Could not retrieve cache manager instance", e );
-        }
+        JCS.shutdown();
     }
 }
diff --git a/src/org/openstreetmap/josm/actions/AbstractPasteAction.java b/src/org/openstreetmap/josm/actions/AbstractPasteAction.java
index 0c6c76a..c97b5ac 100644
--- a/src/org/openstreetmap/josm/actions/AbstractPasteAction.java
+++ b/src/org/openstreetmap/josm/actions/AbstractPasteAction.java
@@ -84,7 +84,7 @@ public abstract class AbstractPasteAction extends JosmAction implements FlavorLi
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        doPaste(e, ClipboardUtils.getClipboard().getContents(null));
+        doPaste(e, ClipboardUtils.getClipboardContent());
     }
 
     protected void doPaste(ActionEvent e, Transferable contents) {
diff --git a/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java b/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
index 94f8ad1..06de836 100644
--- a/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
+++ b/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
@@ -66,6 +66,7 @@ public class AddImageryLayerAction extends JosmAction implements AdaptableAction
         super(info.getMenuName(), /* ICON */"imagery_menu", tr("Add imagery layer {0}", info.getName()), null, false, false);
         putValue("toolbar", "imagery_" + info.getToolbarName());
         putValue("help", ht("/Preferences/Imagery"));
+        setTooltip(info.getToolTipText().replaceAll("</?html>", ""));
         this.info = info;
         installAdapters();
 
diff --git a/src/org/openstreetmap/josm/actions/CombineWayAction.java b/src/org/openstreetmap/josm/actions/CombineWayAction.java
index f8fc816..b87b519 100644
--- a/src/org/openstreetmap/josm/actions/CombineWayAction.java
+++ b/src/org/openstreetmap/josm/actions/CombineWayAction.java
@@ -16,6 +16,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.Stack;
 
@@ -519,10 +520,7 @@ public class CombineWayAction extends JosmAction {
         }
 
         protected List<NodePair> getOutboundPairs(Node node) {
-            List<NodePair> l = successors.get(node);
-            if (l == null)
-                return Collections.emptyList();
-            return l;
+            return Optional.ofNullable(successors.get(node)).orElseGet(Collections::emptyList);
         }
 
         protected Set<Node> getNodes() {
diff --git a/src/org/openstreetmap/josm/actions/DownloadAction.java b/src/org/openstreetmap/josm/actions/DownloadAction.java
index 37867d1..6295d65 100644
--- a/src/org/openstreetmap/josm/actions/DownloadAction.java
+++ b/src/org/openstreetmap/josm/actions/DownloadAction.java
@@ -32,9 +32,8 @@ public class DownloadAction extends JosmAction {
      */
     public DownloadAction() {
         super(tr("Download from OSM..."), "download", tr("Download map data from the OSM server."),
-                // CHECKSTYLE.OFF: LineLength
-                Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_DOWN, Shortcut.CTRL_SHIFT), true);
-                // CHECKSTYLE.ON: LineLength
+              Shortcut.registerShortcut("file:download", tr("File: {0}", tr("Download from OSM...")), KeyEvent.VK_DOWN, Shortcut.CTRL_SHIFT),
+              true);
         putValue("help", ht("/Action/Download"));
     }
 
diff --git a/src/org/openstreetmap/josm/actions/HelpAction.java b/src/org/openstreetmap/josm/actions/HelpAction.java
index 7874504..ccd0afa 100644
--- a/src/org/openstreetmap/josm/actions/HelpAction.java
+++ b/src/org/openstreetmap/josm/actions/HelpAction.java
@@ -7,6 +7,7 @@ import java.awt.Component;
 import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
+import java.util.Optional;
 
 import javax.swing.SwingUtilities;
 
@@ -61,11 +62,7 @@ public class HelpAction extends JosmAction {
                 Point mouse = Main.parent.getMousePosition();
                 topic = HelpUtil.getContextSpecificHelpTopic(SwingUtilities.getDeepestComponentAt(Main.parent, mouse.x, mouse.y));
             }
-            if (topic == null) {
-                HelpBrowser.setUrlForHelpTopic("/");
-            } else {
-                HelpBrowser.setUrlForHelpTopic(topic);
-            }
+            HelpBrowser.setUrlForHelpTopic(Optional.ofNullable(topic).orElse("/"));
         } else {
             HelpBrowser.setUrlForHelpTopic("/");
         }
diff --git a/src/org/openstreetmap/josm/actions/JoinAreasAction.java b/src/org/openstreetmap/josm/actions/JoinAreasAction.java
index af45329..8598cfc 100644
--- a/src/org/openstreetmap/josm/actions/JoinAreasAction.java
+++ b/src/org/openstreetmap/josm/actions/JoinAreasAction.java
@@ -448,9 +448,18 @@ public class JoinAreasAction extends JosmAction {
      * Constructs a new {@code JoinAreasAction}.
      */
     public JoinAreasAction() {
-        super(tr("Join overlapping Areas"), "joinareas", tr("Joins areas that overlap each other"),
-        Shortcut.registerShortcut("tools:joinareas", tr("Tool: {0}", tr("Join overlapping Areas")),
-            KeyEvent.VK_J, Shortcut.SHIFT), true);
+        this(true);
+    }
+
+    /**
+     * Constructs a new {@code JoinAreasAction} with optional shortcut.
+     * @param addShortcut controls whether the shortcut should be registered or not
+     * @since 11611
+     */
+    public JoinAreasAction(boolean addShortcut) {
+        super(tr("Join overlapping Areas"), "joinareas", tr("Joins areas that overlap each other"), addShortcut ?
+        Shortcut.registerShortcut("tools:joinareas", tr("Tool: {0}", tr("Join overlapping Areas")), KeyEvent.VK_J, Shortcut.SHIFT)
+        : null, true);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/actions/JosmAction.java b/src/org/openstreetmap/josm/actions/JosmAction.java
index 3153ee4..94ea043 100644
--- a/src/org/openstreetmap/josm/actions/JosmAction.java
+++ b/src/org/openstreetmap/josm/actions/JosmAction.java
@@ -355,7 +355,7 @@ public abstract class JosmAction extends AbstractAction implements Destroyable {
 
         @Override
         public String toString() {
-            return "LayerChangeAdapter [" + JosmAction.this.toString() + ']';
+            return "LayerChangeAdapter [" + JosmAction.this + ']';
         }
     }
 
@@ -370,7 +370,7 @@ public abstract class JosmAction extends AbstractAction implements Destroyable {
 
         @Override
         public String toString() {
-            return "ActiveLayerChangeAdapter [" + JosmAction.this.toString() + ']';
+            return "ActiveLayerChangeAdapter [" + JosmAction.this + ']';
         }
     }
 
@@ -385,7 +385,7 @@ public abstract class JosmAction extends AbstractAction implements Destroyable {
 
         @Override
         public String toString() {
-            return "SelectionChangeAdapter [" + JosmAction.this.toString() + ']';
+            return "SelectionChangeAdapter [" + JosmAction.this + ']';
         }
     }
 }
diff --git a/src/org/openstreetmap/josm/actions/JumpToAction.java b/src/org/openstreetmap/josm/actions/JumpToAction.java
index 23f588f..2f519b4 100644
--- a/src/org/openstreetmap/josm/actions/JumpToAction.java
+++ b/src/org/openstreetmap/josm/actions/JumpToAction.java
@@ -194,8 +194,8 @@ public class JumpToAction extends JosmAction {
             double dlon = Double.parseDouble(lon.getText());
             double zoomLvl = Double.parseDouble(zm.getText());
             url.setText(OsmUrlToBounds.getURL(dlat, dlon, (int) zoomLvl));
-        } catch (NumberFormatException x) {
-            Main.debug(x.getMessage());
+        } catch (NumberFormatException e) {
+            Main.debug(e.getMessage());
         }
     }
 
diff --git a/src/org/openstreetmap/josm/actions/MergeNodesAction.java b/src/org/openstreetmap/josm/actions/MergeNodesAction.java
index 831a0cf..61cb78d 100644
--- a/src/org/openstreetmap/josm/actions/MergeNodesAction.java
+++ b/src/org/openstreetmap/josm/actions/MergeNodesAction.java
@@ -14,6 +14,7 @@ import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.swing.JOptionPane;
@@ -175,13 +176,9 @@ public class MergeNodesAction extends JosmAction {
             }
             lastNode = n;
         }
-        if (targetNode == null) {
-            targetNode = oldestNode != null ? oldestNode : lastNode;
-        }
-        return targetNode;
+        return Optional.ofNullable(targetNode).orElse(oldestNode != null ? oldestNode : lastNode);
     }
 
-
     /**
      * Fixes the parent ways referring to one of the nodes.
      *
diff --git a/src/org/openstreetmap/josm/actions/OpenLocationAction.java b/src/org/openstreetmap/josm/actions/OpenLocationAction.java
index b503407..2e9037b 100644
--- a/src/org/openstreetmap/josm/actions/OpenLocationAction.java
+++ b/src/org/openstreetmap/josm/actions/OpenLocationAction.java
@@ -55,7 +55,7 @@ public class OpenLocationAction extends JosmAction {
     /**
      * true if the URL needs to be opened in a new layer, false otherwise
      */
-    private static final BooleanProperty USE_NEW_LAYER = new BooleanProperty("download.newlayer", true);
+    private static final BooleanProperty USE_NEW_LAYER = new BooleanProperty("download.newlayer", false);
     protected final transient List<Class<? extends DownloadTask>> downloadTasks;
 
     static class WhichTasksToPerformDialog extends ExtendedDialog {
diff --git a/src/org/openstreetmap/josm/actions/PurgeAction.java b/src/org/openstreetmap/josm/actions/PurgeAction.java
index acacb3a..c70cec6 100644
--- a/src/org/openstreetmap/josm/actions/PurgeAction.java
+++ b/src/org/openstreetmap/josm/actions/PurgeAction.java
@@ -52,8 +52,9 @@ import org.openstreetmap.josm.tools.Shortcut;
  * about these primitives.
  *
  * This action is undo-able. In order not to break previous commands in the
- * undo buffer, we must re-add the identical object (and not semantically
- * equal ones).
+ * undo buffer, we must re-add the identical object (and not semantically equal ones).
+ *
+ * @since 3431
  */
 public class PurgeAction extends JosmAction {
 
@@ -67,8 +68,7 @@ public class PurgeAction extends JosmAction {
      */
     protected transient Set<OsmPrimitive> toPurgeChecked;
     /**
-     * Subset of toPurgeChecked. Marks primitives that remain in the
-     * dataset, but incomplete.
+     * Subset of toPurgeChecked. Marks primitives that remain in the dataset, but incomplete.
      */
     protected transient Set<OsmPrimitive> makeIncomplete;
     /**
@@ -80,11 +80,19 @@ public class PurgeAction extends JosmAction {
      * Constructs a new {@code PurgeAction}.
      */
     public PurgeAction() {
+        this(true);
+    }
+
+    /**
+     * Constructs a new {@code PurgeAction} with optional shortcut.
+     * @param addShortcut controls whether the shortcut should be registered or not
+     * @since 11611
+     */
+    public PurgeAction(boolean addShortcut) {
         /* translator note: other expressions for "purge" might be "forget", "clean", "obliterate", "prune" */
-        super(tr("Purge..."), "purge", tr("Forget objects but do not delete them on server when uploading."),
-                Shortcut.registerShortcut("system:purge", tr("Edit: {0}", tr("Purge")),
-                KeyEvent.VK_P, Shortcut.CTRL_SHIFT),
-                true);
+        super(tr("Purge..."), "purge", tr("Forget objects but do not delete them on server when uploading."), addShortcut ?
+                Shortcut.registerShortcut("system:purge", tr("Edit: {0}", tr("Purge")), KeyEvent.VK_P, Shortcut.CTRL_SHIFT)
+                : null, true);
         putValue("help", HelpUtil.ht("/Action/Purge"));
     }
 
@@ -306,11 +314,7 @@ public class PurgeAction extends JosmAction {
     @Override
     protected void updateEnabledState() {
         DataSet ds = getLayerManager().getEditDataSet();
-        if (ds == null) {
-            setEnabled(false);
-        } else {
-            setEnabled(!ds.selectionEmpty());
-        }
+        setEnabled(ds != null && !ds.selectionEmpty());
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java b/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
index 57a7bf8..30ab4bd 100644
--- a/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
+++ b/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
@@ -281,8 +281,8 @@ public final class ShowStatusReportAction extends JosmAction {
                     .append('=')
                     .append(paramCleanup(entry.getValue().getValue().toString())).append('\n');
             }
-        } catch (Exception x) {
-            Main.error(x);
+        } catch (Exception ex) {
+            Main.error(ex);
         }
 
         DebugTextDisplay ta = new DebugTextDisplay(text.toString());
diff --git a/src/org/openstreetmap/josm/actions/SplitWayAction.java b/src/org/openstreetmap/josm/actions/SplitWayAction.java
index b0024e7..2d70da9 100644
--- a/src/org/openstreetmap/josm/actions/SplitWayAction.java
+++ b/src/org/openstreetmap/josm/actions/SplitWayAction.java
@@ -17,6 +17,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -561,10 +562,7 @@ public class SplitWayAction extends JosmAction {
                 continue;
             }
             Relation c = null;
-            String type = r.get("type");
-            if (type == null) {
-                type = "";
-            }
+            String type = Optional.ofNullable(r.get("type")).orElse("");
 
             int ic = 0;
             int ir = 0;
diff --git a/src/org/openstreetmap/josm/actions/UpdateDataAction.java b/src/org/openstreetmap/josm/actions/UpdateDataAction.java
index f36ff4b..a4113c4 100644
--- a/src/org/openstreetmap/josm/actions/UpdateDataAction.java
+++ b/src/org/openstreetmap/josm/actions/UpdateDataAction.java
@@ -50,7 +50,7 @@ public class UpdateDataAction extends JosmAction {
             return;
 
         List<Area> areas = new ArrayList<>();
-        for (DataSource ds : editLayer.data.dataSources) {
+        for (DataSource ds : editLayer.data.getDataSources()) {
             areas.add(new Area(ds.bounds.asRect()));
         }
 
diff --git a/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java b/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
index 2053b3f..e73865b 100644
--- a/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
+++ b/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
@@ -9,6 +9,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Optional;
 
 import javax.swing.JOptionPane;
 
@@ -71,12 +72,11 @@ public class UpdateSelectionAction extends JosmAction {
      */
     public static void updatePrimitive(PrimitiveId id) {
         ensureParameterNotNull(id, "id");
-        if (Main.getLayerManager().getEditLayer() == null)
-            throw new IllegalStateException(tr("No current dataset found"));
-        OsmPrimitive primitive = Main.getLayerManager().getEditLayer().data.getPrimitiveById(id);
-        if (primitive == null)
-            throw new IllegalStateException(tr("Did not find an object with id {0} in the current dataset", id));
-        updatePrimitives(Collections.singleton(primitive));
+        updatePrimitives(Collections.singleton(Optional.ofNullable(Optional.ofNullable(
+                Main.getLayerManager().getEditLayer()).orElseThrow(
+                        () -> new IllegalStateException(tr("No current dataset found")))
+                .data.getPrimitiveById(id)).orElseThrow(
+                        () -> new IllegalStateException(tr("Did not find an object with id {0} in the current dataset", id)))));
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/actions/ValidateAction.java b/src/org/openstreetmap/josm/actions/ValidateAction.java
index 4f2851f..cd0bd80 100644
--- a/src/org/openstreetmap/josm/actions/ValidateAction.java
+++ b/src/org/openstreetmap/josm/actions/ValidateAction.java
@@ -9,6 +9,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -54,8 +55,7 @@ public class ValidateAction extends JosmAction {
      * Does the validation.
      * <p>
      * If getSelectedItems is true, the selected items (or all items, if no one
-     * is selected) are validated. If it is false, last selected items are
-     * revalidated
+     * is selected) are validated. If it is false, last selected items are revalidated
      *
      * @param getSelectedItems If selected or last selected items must be validated
      */
@@ -82,15 +82,11 @@ public class ValidateAction extends JosmAction {
                 lastSelection = selection;
             }
         } else {
-            if (lastSelection == null) {
-                selection = Main.getLayerManager().getEditDataSet().allNonDeletedPrimitives();
-            } else {
-                selection = lastSelection;
-            }
+            selection = Optional.ofNullable(lastSelection).orElseGet(
+                    () -> Main.getLayerManager().getEditDataSet().allNonDeletedPrimitives());
         }
 
-        ValidationTask task = new ValidationTask(tests, selection, lastSelection);
-        Main.worker.submit(task);
+        Main.worker.submit(new ValidationTask(tests, selection, lastSelection));
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/actions/downloadtasks/AbstractChangesetDownloadTask.java b/src/org/openstreetmap/josm/actions/downloadtasks/AbstractChangesetDownloadTask.java
index e17fa5f..aba0b2b 100644
--- a/src/org/openstreetmap/josm/actions/downloadtasks/AbstractChangesetDownloadTask.java
+++ b/src/org/openstreetmap/josm/actions/downloadtasks/AbstractChangesetDownloadTask.java
@@ -68,6 +68,7 @@ public abstract class AbstractChangesetDownloadTask extends AbstractDownloadTask
                     SwingUtilities.invokeAndWait(r);
                 } catch (InterruptedException e) {
                     Main.warn("InterruptedException in "+getClass().getSimpleName()+" while updating changeset cache");
+                    Thread.currentThread().interrupt();
                 } catch (InvocationTargetException e) {
                     Throwable t = e.getTargetException();
                     if (t instanceof RuntimeException) {
diff --git a/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java b/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
index 9ac3c2b..43efb17 100644
--- a/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
+++ b/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Optional;
 import java.util.concurrent.Future;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -269,10 +270,7 @@ public class DownloadOsmTask extends AbstractDownloadTask<DataSet> {
         protected void loadData(String newLayerName, Bounds bounds) {
             OsmDataLayer layer = addNewLayerIfRequired(newLayerName);
             if (layer == null) {
-                layer = getEditLayer();
-                if (layer == null) {
-                    layer = getFirstDataLayer();
-                }
+                layer = Optional.ofNullable(getEditLayer()).orElseGet(this::getFirstDataLayer);
                 layer.mergeFrom(dataSet);
                 if (zoomAfterDownload) {
                     computeBboxAndCenterScale(bounds);
@@ -344,7 +342,7 @@ public class DownloadOsmTask extends AbstractDownloadTask<DataSet> {
                     rememberErrorMessage(tr("No data found in this area."));
                 }
                 // need to synthesize a download bounds lest the visual indication of downloaded area doesn't work
-                dataSet.dataSources.add(new DataSource(currentBounds != null ? currentBounds :
+                dataSet.addDataSource(new DataSource(currentBounds != null ? currentBounds :
                     new Bounds(LatLon.ZERO), "OpenStreetMap server"));
             }
 
diff --git a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
index 9216b71..cabec0d 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
@@ -1004,14 +1004,12 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
     }
 
     /**
-     * Adjusts the position of a node to lie on a segment (or a segment
-     * intersection).
+     * Adjusts the position of a node to lie on a segment (or a segment intersection).
      *
      * If one or more than two segments are passed, the node is adjusted
      * to lie on the first segment that is passed.
      *
-     * If two segments are passed, the node is adjusted to be at their
-     * intersection.
+     * If two segments are passed, the node is adjusted to be at their intersection.
      *
      * No action is taken if no segments are passed.
      *
@@ -1019,56 +1017,66 @@ public class DrawAction extends MapMode implements MapViewPaintable, SelectionCh
      * @param n the node to adjust
      */
     private static void adjustNode(Collection<Pair<Node, Node>> segs, Node n) {
-
         switch (segs.size()) {
         case 0:
             return;
         case 2:
-            // This computes the intersection between the two segments and adjusts the node position.
-            Iterator<Pair<Node, Node>> i = segs.iterator();
-            Pair<Node, Node> seg = i.next();
-            EastNorth pA = seg.a.getEastNorth();
-            EastNorth pB = seg.b.getEastNorth();
-            seg = i.next();
-            EastNorth pC = seg.a.getEastNorth();
-            EastNorth pD = seg.b.getEastNorth();
+            adjustNodeTwoSegments(segs, n);
+            break;
+        default:
+            adjustNodeDefault(segs, n);
+        }
+    }
 
-            double u = det(pB.east() - pA.east(), pB.north() - pA.north(), pC.east() - pD.east(), pC.north() - pD.north());
+    private static void adjustNodeTwoSegments(Collection<Pair<Node, Node>> segs, Node n) {
+        // This computes the intersection between the two segments and adjusts the node position.
+        Iterator<Pair<Node, Node>> i = segs.iterator();
+        Pair<Node, Node> seg = i.next();
+        EastNorth pA = seg.a.getEastNorth();
+        EastNorth pB = seg.b.getEastNorth();
+        seg = i.next();
+        EastNorth pC = seg.a.getEastNorth();
+        EastNorth pD = seg.b.getEastNorth();
 
-            // Check for parallel segments and do nothing if they are
-            // In practice this will probably only happen when a way has been duplicated
+        double u = det(pB.east() - pA.east(), pB.north() - pA.north(), pC.east() - pD.east(), pC.north() - pD.north());
 
-            if (u == 0)
-                return;
+        // Check for parallel segments and do nothing if they are
+        // In practice this will probably only happen when a way has been duplicated
 
-            // q is a number between 0 and 1
-            // It is the point in the segment where the intersection occurs
-            // if the segment is scaled to lenght 1
+        if (u == 0)
+            return;
 
-            double q = det(pB.north() - pC.north(), pB.east() - pC.east(), pD.north() - pC.north(), pD.east() - pC.east()) / u;
-            EastNorth intersection = new EastNorth(
-                    pB.east() + q * (pA.east() - pB.east()),
-                    pB.north() + q * (pA.north() - pB.north()));
+        // q is a number between 0 and 1
+        // It is the point in the segment where the intersection occurs
+        // if the segment is scaled to length 1
 
+        double q = det(pB.north() - pC.north(), pB.east() - pC.east(), pD.north() - pC.north(), pD.east() - pC.east()) / u;
+        EastNorth intersection = new EastNorth(
+                pB.east() + q * (pA.east() - pB.east()),
+                pB.north() + q * (pA.north() - pB.north()));
 
-            // only adjust to intersection if within snapToIntersectionThreshold pixel of mouse click; otherwise
-            // fall through to default action.
-            // (for semi-parallel lines, intersection might be miles away!)
-            if (Main.map.mapView.getPoint2D(n).distance(Main.map.mapView.getPoint2D(intersection)) < SNAP_TO_INTERSECTION_THRESHOLD.get()) {
-                n.setEastNorth(intersection);
-                return;
-            }
-        default:
-            EastNorth p = n.getEastNorth();
-            seg = segs.iterator().next();
-            pA = seg.a.getEastNorth();
-            pB = seg.b.getEastNorth();
-            double a = p.distanceSq(pB);
-            double b = p.distanceSq(pA);
-            double c = pA.distanceSq(pB);
-            q = (a - b + c) / (2*c);
-            n.setEastNorth(new EastNorth(pB.east() + q * (pA.east() - pB.east()), pB.north() + q * (pA.north() - pB.north())));
+
+        // only adjust to intersection if within snapToIntersectionThreshold pixel of mouse click; otherwise
+        // fall through to default action.
+        // (for semi-parallel lines, intersection might be miles away!)
+        if (Main.map.mapView.getPoint2D(n).distance(Main.map.mapView.getPoint2D(intersection)) < SNAP_TO_INTERSECTION_THRESHOLD.get()) {
+            n.setEastNorth(intersection);
+            return;
         }
+
+        adjustNodeDefault(segs, n);
+    }
+
+    private static void adjustNodeDefault(Collection<Pair<Node, Node>> segs, Node n) {
+        EastNorth p = n.getEastNorth();
+        Pair<Node, Node> seg = segs.iterator().next();
+        EastNorth pA = seg.a.getEastNorth();
+        EastNorth pB = seg.b.getEastNorth();
+        double a = p.distanceSq(pB);
+        double b = p.distanceSq(pA);
+        double c = pA.distanceSq(pB);
+        double q = (a - b + c) / (2*c);
+        n.setEastNorth(new EastNorth(pB.east() + q * (pA.east() - pB.east()), pB.north() + q * (pA.north() - pB.north())));
     }
 
     // helper for adjustNode
diff --git a/src/org/openstreetmap/josm/actions/mapmode/DrawSnapHelper.java b/src/org/openstreetmap/josm/actions/mapmode/DrawSnapHelper.java
index 5020d25..d3cbf2a 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/DrawSnapHelper.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/DrawSnapHelper.java
@@ -166,14 +166,10 @@ class DrawSnapHelper {
 
     private static final class AnglePopupMenu extends JPopupMenu {
 
-        private final JCheckBoxMenuItem repeatedCb;
-        private final JCheckBoxMenuItem helperCb;
-        private final JCheckBoxMenuItem projectionCb;
-
         private AnglePopupMenu(final DrawSnapHelper snapHelper) {
-            repeatedCb = new JCheckBoxMenuItem(new RepeatedAction(snapHelper));
-            helperCb = new JCheckBoxMenuItem(new HelperAction(snapHelper));
-            projectionCb = new JCheckBoxMenuItem(new ProjectionAction(snapHelper));
+            JCheckBoxMenuItem repeatedCb = new JCheckBoxMenuItem(new RepeatedAction(snapHelper));
+            JCheckBoxMenuItem helperCb = new JCheckBoxMenuItem(new HelperAction(snapHelper));
+            JCheckBoxMenuItem projectionCb = new JCheckBoxMenuItem(new ProjectionAction(snapHelper));
 
             helperCb.setState(DrawAction.DRAW_CONSTRUCTION_GEOMETRY.get());
             projectionCb.setState(DrawAction.SNAP_TO_PROJECTIONS.get());
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java b/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
index 11f48f1..abfb1c3 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
@@ -42,7 +42,6 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
-import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
 import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -304,8 +303,7 @@ public class ExtrudeAction extends MapMode implements MapViewPaintable, KeyPress
     protected void readPreferences() {
         initialMoveDelay = Main.pref.getInteger("edit.initial-move-delay", 200);
         initialMoveThreshold = Main.pref.getInteger("extrude.initial-move-threshold", 1);
-        mainColor = new ColorProperty(marktr("Extrude: main line"), (Color) null).get();
-        if (mainColor == null) mainColor = PaintColors.SELECTED.get();
+        mainColor = new ColorProperty(marktr("Extrude: main line"), Color.RED).get();
         helperColor = new ColorProperty(marktr("Extrude: helper line"), Color.ORANGE).get();
         helperStrokeDash = GuiHelper.getCustomizedStroke(Main.pref.get("extrude.stroke.helper-line", "1 4"));
         helperStrokeRA = new BasicStroke(1);
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java b/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
index c799705..4a07a2a 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
@@ -35,7 +35,6 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
-import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
 import org.openstreetmap.josm.data.preferences.CachingProperty;
 import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
@@ -154,9 +153,7 @@ public class ImproveWayAccuracyAction extends MapMode implements
 
     @Override
     protected void readPreferences() {
-        guideColor = new ColorProperty(marktr("improve way accuracy helper line"), (Color) null).get();
-        if (guideColor == null)
-            guideColor = PaintColors.HIGHLIGHT.get();
+        guideColor = new ColorProperty(marktr("improve way accuracy helper line"), Color.RED).get();
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
index ee93178..5ad696e 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
@@ -32,7 +32,6 @@ import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
-import org.openstreetmap.josm.data.osm.visitor.paint.PaintColors;
 import org.openstreetmap.josm.data.preferences.AbstractToStringProperty;
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.data.preferences.CachingProperty;
@@ -105,7 +104,7 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
     private static final CachingProperty<Double> SNAP_DISTANCE_IMPERIAL = new DoubleProperty(prefKey("snap-distance-imperial"), 1).cached();
     private static final CachingProperty<Double> SNAP_DISTANCE_CHINESE  = new DoubleProperty(prefKey("snap-distance-chinese"), 1).cached();
     private static final CachingProperty<Double> SNAP_DISTANCE_NAUTICAL = new DoubleProperty(prefKey("snap-distance-nautical"), 0.1).cached();
-    private static final CachingProperty<Color> MAIN_COLOR = new ColorProperty(marktr("make parallel helper line"), (Color) null).cached();
+    private static final CachingProperty<Color> MAIN_COLOR = new ColorProperty(marktr("make parallel helper line"), Color.RED).cached();
 
     private static final CachingProperty<Map<Modifier, Boolean>> SNAP_MODIFIER_COMBO
             = new KeyboardModifiersProperty(prefKey("snap-modifier-combo"),             "?sC").cached();
@@ -460,10 +459,6 @@ public class ParallelWayAction extends MapMode implements ModifierListener, MapV
             CheckParameterUtil.ensureParameterNotNull(mv, "mv");
 
             Color mainColor = MAIN_COLOR.get();
-            if (mainColor == null) {
-                mainColor = PaintColors.SELECTED.get();
-            }
-
             // FIXME: should clip the line (gets insanely slow when zoomed in on a very long line
             g.setStroke(REF_LINE_STROKE.get());
             g.setColor(mainColor);
diff --git a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
index 8d758f5..bb15f29 100644
--- a/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
+++ b/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
@@ -1260,8 +1260,6 @@ public class SelectAction extends MapMode implements ModifierListener, KeyPressR
      * @return {@code o} as collection of {@code o}'s type.
      */
     protected static <T> Collection<T> asColl(T o) {
-        if (o == null)
-            return Collections.emptySet();
-        return Collections.singleton(o);
+        return o == null ? Collections.emptySet() : Collections.singleton(o);
     }
 }
diff --git a/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java b/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
index a1c9c32..955ea39 100644
--- a/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
+++ b/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
@@ -24,9 +24,7 @@ public abstract class AbstractRelationAction extends AbstractAction implements O
         if (primitives == null || primitives.isEmpty()) {
             return Collections.<Relation>emptySet();
         } else {
-            // Diamond operator does not work with Java 9 here
-            return new SubclassFilteredCollection<OsmPrimitive, Relation>(
-                    primitives, Relation.class::isInstance);
+            return new SubclassFilteredCollection<>(primitives, Relation.class::isInstance);
         }
     }
 
diff --git a/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java b/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java
index 213faa8..5c34097 100644
--- a/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java
+++ b/src/org/openstreetmap/josm/actions/relation/RecentRelationsAction.java
@@ -18,16 +18,11 @@ import javax.swing.KeyStroke;
 import javax.swing.plaf.basic.BasicArrowButton;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
-import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
-import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
-import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
-import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
-import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -35,24 +30,25 @@ import org.openstreetmap.josm.tools.Shortcut;
 
 /**
  * Action for accessing recent relations.
+ * @since 9668
  */
-public class RecentRelationsAction implements ActionListener, CommandQueueListener, LayerChangeListener, ActiveLayerChangeListener {
+public class RecentRelationsAction extends JosmAction implements ActionListener, CommandQueueListener {
 
     private final SideButton editButton;
     private final BasicArrowButton arrow;
     private final Shortcut shortcut;
+    private final LaunchEditorAction launchAction;
 
     /**
      * Constructs a new <code>RecentRelationsAction</code>.
      * @param editButton edit button
      */
     public RecentRelationsAction(SideButton editButton) {
+        super(RecentRelationsAction.class.getName(), null, null, null, false, true);
         this.editButton = editButton;
         arrow = editButton.createArrow(this);
         arrow.setToolTipText(tr("List of recent relations"));
         Main.main.undoRedo.addCommandQueueListener(this);
-        Main.getLayerManager().addLayerChangeListener(this);
-        Main.getLayerManager().addActiveLayerChangeListener(this);
         enableArrow();
         shortcut = Shortcut.registerShortcut(
             "relationeditor:editrecentrelation",
@@ -60,14 +56,17 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
             KeyEvent.VK_ESCAPE,
             Shortcut.SHIFT
         );
-        Main.registerActionShortcut(new LaunchEditorAction(), shortcut);
+        launchAction = new LaunchEditorAction();
+        Main.registerActionShortcut(launchAction, shortcut);
     }
 
     /**
      * Enables arrow button.
      */
     public void enableArrow() {
-        arrow.setVisible(getLastRelation() != null);
+        if (arrow != null) {
+            arrow.setVisible(getLastRelation() != null);
+        }
     }
 
     /**
@@ -108,23 +107,14 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
     }
 
     @Override
-    public void layerAdded(LayerAddEvent e) {
-        enableArrow();
-    }
-
-    @Override
-    public void layerRemoving(LayerRemoveEvent e) {
+    protected void updateEnabledState() {
         enableArrow();
     }
 
     @Override
-    public void layerOrderChanged(LayerOrderChangeEvent e) {
-        enableArrow();
-    }
-
-    @Override
-    public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
-        enableArrow();
+    public void destroy() {
+        Main.unregisterActionShortcut(launchAction, shortcut);
+        super.destroy();
     }
 
     /**
@@ -142,20 +132,20 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
         }
     }
 
-    protected static class LaunchEditorAction extends AbstractAction {
+    static class LaunchEditorAction extends AbstractAction {
         @Override
         public void actionPerformed(ActionEvent e) {
             EditRelationAction.launchEditor(getLastRelation());
         }
     }
 
-    protected static class RecentRelationsPopupMenu extends JPopupMenu {
+    static class RecentRelationsPopupMenu extends JPopupMenu {
         /**
          * Constructs a new {@code RecentRelationsPopupMenu}.
          * @param recentRelations list of recent relations
          * @param keystroke key stroke for the first menu item
          */
-        public RecentRelationsPopupMenu(List<Relation> recentRelations, KeyStroke keystroke) {
+        RecentRelationsPopupMenu(List<Relation> recentRelations, KeyStroke keystroke) {
             boolean first = true;
             for (Relation relation: recentRelations) {
                 if (!isRelationListable(relation))
@@ -170,7 +160,7 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
             }
         }
 
-        protected static void launch(Component parent, KeyStroke keystroke) {
+        static void launch(Component parent, KeyStroke keystroke) {
             Rectangle r = parent.getBounds();
             new RecentRelationsPopupMenu(getRecentRelationsOnActiveLayer(), keystroke).show(parent, r.x, r.y + r.height);
         }
@@ -179,10 +169,10 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
     /**
      * A specialized {@link JMenuItem} for presenting one entry of the relation history
      */
-    protected static class RecentRelationsMenuItem extends JMenuItem implements ActionListener {
-        protected final transient Relation relation;
+    static class RecentRelationsMenuItem extends JMenuItem implements ActionListener {
+        private final transient Relation relation;
 
-        public RecentRelationsMenuItem(Relation relation) {
+        RecentRelationsMenuItem(Relation relation) {
             super(relation.getDisplayName(DefaultNameFormatter.getInstance()));
             this.relation = relation;
             addActionListener(this);
@@ -193,5 +183,4 @@ public class RecentRelationsAction implements ActionListener, CommandQueueListen
             EditRelationAction.launchEditor(relation);
         }
     }
-
 }
diff --git a/src/org/openstreetmap/josm/actions/search/SearchCompiler.java b/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
index 7a7056e..fe75ae3 100644
--- a/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
+++ b/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
@@ -15,6 +15,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 import java.util.function.Predicate;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -418,11 +419,7 @@ public class SearchCompiler {
 
         @Override
         public boolean match(Tagged osm) {
-            Boolean ret = OsmUtils.getOsmBoolean(osm.get(key));
-            if (ret == null)
-                return defaultValue;
-            else
-                return ret;
+            return Optional.ofNullable(OsmUtils.getOsmBoolean(osm.get(key))).orElse(defaultValue);
         }
 
         @Override
@@ -948,8 +945,7 @@ public class SearchCompiler {
         ExactType(String type) throws ParseError {
             this.type = OsmPrimitiveType.from(type);
             if (this.type == null)
-                throw new ParseError(tr("Unknown primitive type: {0}. Allowed values are node, way or relation",
-                        type));
+                throw new ParseError(tr("Unknown primitive type: {0}. Allowed values are node, way or relation", type));
         }
 
         @Override
@@ -1622,11 +1618,9 @@ public class SearchCompiler {
      * @throws org.openstreetmap.josm.actions.search.SearchCompiler.ParseError if search expression cannot be parsed
      */
     public Match parse() throws ParseError {
-        Match m = parseExpression();
+        Match m = Optional.ofNullable(parseExpression()).orElse(Always.INSTANCE);
         if (!tokenizer.readIfEqual(Token.EOF))
             throw new ParseError(tr("Unexpected token: {0}", tokenizer.nextToken()));
-        if (m == null)
-            m = Always.INSTANCE;
         Main.debug("Parsed search expression is {0}", m);
         return m;
     }
@@ -1674,7 +1668,7 @@ public class SearchCompiler {
         return list;
     }
 
-    private Match parseExpressionStep2(List<Object> list) {
+    private static Match parseExpressionStep2(List<Object> list) {
         Match result = null;
         for (int i = list.size() - 1; i >= 0; i--) {
             Object o = list.get(i);
@@ -1757,11 +1751,7 @@ public class SearchCompiler {
     }
 
     private Match parseFactor(String errorMessage) throws ParseError {
-        Match fact = parseFactor();
-        if (fact == null)
-            throw new ParseError(errorMessage);
-        else
-            return fact;
+        return Optional.ofNullable(parseFactor()).orElseThrow(() -> new ParseError(errorMessage));
     }
 
     private static int regexFlags(boolean caseSensitive) {
diff --git a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
index fa15fa4..7b8d536 100644
--- a/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
+++ b/src/org/openstreetmap/josm/command/AddPrimitivesCommand.java
@@ -8,6 +8,8 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 import javax.swing.Icon;
 
@@ -26,12 +28,12 @@ import org.openstreetmap.josm.tools.JosmRuntimeException;
  */
 public class AddPrimitivesCommand extends Command {
 
-    private List<PrimitiveData> data = new ArrayList<>();
-    private Collection<PrimitiveData> toSelect = new ArrayList<>();
+    private List<PrimitiveData> data;
+    private Collection<PrimitiveData> toSelect;
+    private List<PrimitiveData> preExistingData;
 
     // only filled on undo
     private List<OsmPrimitive> createdPrimitives;
-    private Collection<OsmPrimitive> createdPrimitivesToSelect;
 
     /**
      * Constructs a new {@code AddPrimitivesCommand} to add data to the current edit layer.
@@ -64,35 +66,36 @@ public class AddPrimitivesCommand extends Command {
 
     private void init(List<PrimitiveData> data, List<PrimitiveData> toSelect) {
         CheckParameterUtil.ensureParameterNotNull(data, "data");
-        this.data.addAll(data);
-        if (toSelect != null) {
-            this.toSelect.addAll(toSelect);
+        this.data = new ArrayList<>(data);
+        if (toSelect == data) {
+            this.toSelect = this.data;
+        } else if (toSelect != null) {
+            this.toSelect = new ArrayList<>(toSelect);
         }
     }
 
     @Override
     public boolean executeCommand() {
-        Collection<OsmPrimitive> primitivesToSelect;
+        DataSet ds = getAffectedDataSet();
         if (createdPrimitives == null) { // first time execution
             List<OsmPrimitive> newPrimitives = new ArrayList<>(data.size());
-            primitivesToSelect = new ArrayList<>(toSelect.size());
+            preExistingData = new ArrayList<>();
 
             for (PrimitiveData pd : data) {
-                OsmPrimitive primitive = getAffectedDataSet().getPrimitiveById(pd);
+                OsmPrimitive primitive = ds.getPrimitiveById(pd);
                 boolean created = primitive == null;
-                if (created) {
+                if (primitive == null) {
                     primitive = pd.getType().newInstance(pd.getUniqueId(), true);
+                } else {
+                    preExistingData.add(primitive.save());
                 }
                 if (pd instanceof NodeData) { // Load nodes immediately because they can't be added to dataset without coordinates
                     primitive.load(pd);
                 }
                 if (created) {
-                    getAffectedDataSet().addPrimitive(primitive);
+                    ds.addPrimitive(primitive);
                 }
                 newPrimitives.add(primitive);
-                if (toSelect.contains(pd)) {
-                    primitivesToSelect.add(primitive);
-                }
             }
 
             // Then load ways and relations
@@ -106,39 +109,37 @@ public class AddPrimitivesCommand extends Command {
             // When redoing this command, we have to add the same objects, otherwise
             // a subsequent command (e.g. MoveCommand) cannot be redone.
             for (OsmPrimitive osm : createdPrimitives) {
-                getAffectedDataSet().addPrimitive(osm);
+                if (preExistingData.stream().anyMatch(pd -> pd.getUniqueId() == osm.getUniqueId())) {
+                    Optional<PrimitiveData> o = data.stream().filter(pd -> pd.getUniqueId() == osm.getUniqueId()).findAny();
+                    if (o.isPresent()) {
+                        osm.load(o.get());
+                    }
+                } else {
+                    ds.addPrimitive(osm);
+                }
             }
-            primitivesToSelect = createdPrimitivesToSelect;
         }
-
-        getAffectedDataSet().setSelected(primitivesToSelect);
+        if (toSelect != null) {
+            ds.setSelected(toSelect.stream().map(ds::getPrimitiveById).collect(Collectors.toList()));
+        }
         return true;
     }
 
     @Override public void undoCommand() {
         DataSet ds = getAffectedDataSet();
-
         if (createdPrimitives == null) {
             createdPrimitives = new ArrayList<>(data.size());
-            createdPrimitivesToSelect = new ArrayList<>(toSelect.size());
-
             for (PrimitiveData pd : data) {
                 OsmPrimitive p = ds.getPrimitiveById(pd);
                 createdPrimitives.add(p);
-                if (toSelect.contains(pd)) {
-                    createdPrimitivesToSelect.add(p);
-                }
             }
             createdPrimitives = PurgeCommand.topoSort(createdPrimitives);
-
-            for (PrimitiveData p : data) {
-                ds.removePrimitive(p);
-            }
-            data = null;
-            toSelect = null;
-
-        } else {
-            for (OsmPrimitive osm : createdPrimitives) {
+        }
+        for (OsmPrimitive osm : createdPrimitives) {
+            Optional<PrimitiveData> previous = preExistingData.stream().filter(pd -> pd.getUniqueId() == osm.getUniqueId()).findAny();
+            if (previous.isPresent()) {
+                osm.load(previous.get());
+            } else {
                 ds.removePrimitive(osm);
             }
         }
@@ -168,17 +169,15 @@ public class AddPrimitivesCommand extends Command {
 
         Collection<OsmPrimitive> prims = new HashSet<>();
         for (PrimitiveData d : data) {
-            OsmPrimitive osm = getAffectedDataSet().getPrimitiveById(d);
-            if (osm == null)
-                throw new JosmRuntimeException("No primitive found for " + d);
-            prims.add(osm);
+            prims.add(Optional.ofNullable(getAffectedDataSet().getPrimitiveById(d)).orElseThrow(
+                    () -> new JosmRuntimeException("No primitive found for " + d)));
         }
         return prims;
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(super.hashCode(), data, toSelect, createdPrimitives, createdPrimitivesToSelect);
+        return Objects.hash(super.hashCode(), data, toSelect, preExistingData, createdPrimitives);
     }
 
     @Override
@@ -189,7 +188,7 @@ public class AddPrimitivesCommand extends Command {
         AddPrimitivesCommand that = (AddPrimitivesCommand) obj;
         return Objects.equals(data, that.data) &&
                Objects.equals(toSelect, that.toSelect) &&
-               Objects.equals(createdPrimitives, that.createdPrimitives) &&
-               Objects.equals(createdPrimitivesToSelect, that.createdPrimitivesToSelect);
+               Objects.equals(preExistingData, that.preExistingData) &&
+               Objects.equals(createdPrimitives, that.createdPrimitives);
     }
 }
diff --git a/src/org/openstreetmap/josm/command/ChangePropertyKeyCommand.java b/src/org/openstreetmap/josm/command/ChangePropertyKeyCommand.java
index f0558eb..bffb2a8 100644
--- a/src/org/openstreetmap/josm/command/ChangePropertyKeyCommand.java
+++ b/src/org/openstreetmap/josm/command/ChangePropertyKeyCommand.java
@@ -92,9 +92,9 @@ public class ChangePropertyKeyCommand extends Command {
         if (!super.executeCommand())
             return false; // save old
         for (OsmPrimitive osm : objects) {
-            if (osm.hasKey(key) || osm.hasKey(newKey)) {
+            String oldValue = osm.get(key);
+            if (oldValue != null || osm.hasKey(newKey)) {
                 osm.setModified(true);
-                String oldValue = osm.get(key);
                 osm.put(newKey, oldValue);
                 osm.remove(key);
             }
diff --git a/src/org/openstreetmap/josm/command/DeleteCommand.java b/src/org/openstreetmap/josm/command/DeleteCommand.java
index 11b4b07..d27b66a 100644
--- a/src/org/openstreetmap/josm/command/DeleteCommand.java
+++ b/src/org/openstreetmap/josm/command/DeleteCommand.java
@@ -402,9 +402,7 @@ public class DeleteCommand extends Command {
         if (selection == null || selection.isEmpty())
             return null;
 
-        // Diamond operator does not work with Java 9 here
-        @SuppressWarnings("unused")
-        Set<OsmPrimitive> primitivesToDelete = new HashSet<OsmPrimitive>(selection);
+        Set<OsmPrimitive> primitivesToDelete = new HashSet<>(selection);
 
         Collection<Relation> relationsToDelete = Utils.filteredCollection(primitivesToDelete, Relation.class);
         if (!relationsToDelete.isEmpty() && !silent && !confirmRelationDeletion(relationsToDelete))
diff --git a/src/org/openstreetmap/josm/data/Bounds.java b/src/org/openstreetmap/josm/data/Bounds.java
index ca015f5..aa1a47f 100644
--- a/src/org/openstreetmap/josm/data/Bounds.java
+++ b/src/org/openstreetmap/josm/data/Bounds.java
@@ -476,14 +476,21 @@ public class Bounds {
             && Double.doubleToLongBits(minLon) == Double.doubleToLongBits(maxLon);
     }
 
+    /**
+     * Determines if these bounds are out of the world.
+     * @return true if lat outside of range [-90,90] or lon outside of range [-180,180]
+     */
     public boolean isOutOfTheWorld() {
         return
-        minLat < -90 || minLat > 90 ||
-        maxLat < -90 || maxLat > 90 ||
-        minLon < -180 || minLon > 180 ||
-        maxLon < -180 || maxLon > 180;
+        !LatLon.isValidLat(minLat) ||
+        !LatLon.isValidLat(maxLat) ||
+        !LatLon.isValidLon(minLon) ||
+        !LatLon.isValidLon(maxLon);
     }
 
+    /**
+     * Clamp the bounds to be inside the world.
+     */
     public void normalize() {
         minLat = LatLon.toIntervalLat(minLat);
         maxLat = LatLon.toIntervalLat(maxLat);
diff --git a/src/org/openstreetmap/josm/data/CustomConfigurator.java b/src/org/openstreetmap/josm/data/CustomConfigurator.java
index 486cc5a..8088b14 100644
--- a/src/org/openstreetmap/josm/data/CustomConfigurator.java
+++ b/src/org/openstreetmap/josm/data/CustomConfigurator.java
@@ -375,6 +375,7 @@ public final class CustomConfigurator {
                     while (busy) CustomConfigurator.class.wait();
                 } catch (InterruptedException ex) {
                     Main.warn(ex, "InterruptedException while reading local plugin information");
+                    Thread.currentThread().interrupt();
                 }
 
                 SwingUtilities.invokeLater(() -> {
diff --git a/src/org/openstreetmap/josm/data/DataSource.java b/src/org/openstreetmap/josm/data/DataSource.java
index a20838d..56990d6 100644
--- a/src/org/openstreetmap/josm/data/DataSource.java
+++ b/src/org/openstreetmap/josm/data/DataSource.java
@@ -2,6 +2,7 @@
 package org.openstreetmap.josm.data;
 
 import java.awt.geom.Area;
+import java.awt.geom.Path2D;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -76,12 +77,12 @@ public class DataSource {
         if (dataSources == null || dataSources.isEmpty()) {
             return null;
         }
-        Area a = new Area();
+        Path2D.Double p = new Path2D.Double();
         for (DataSource source : dataSources) {
             // create area from data bounds
-            a.add(new Area(source.bounds.asRect()));
+            p.append(source.bounds.asRect(), false);
         }
-        return a;
+        return new Area(p);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/Preferences.java b/src/org/openstreetmap/josm/data/Preferences.java
index 9fa9ad4..a64a2d9 100644
--- a/src/org/openstreetmap/josm/data/Preferences.java
+++ b/src/org/openstreetmap/josm/data/Preferences.java
@@ -106,7 +106,8 @@ import org.xml.sax.SAXException;
 public class Preferences {
 
     private static final String[] OBSOLETE_PREF_KEYS = {
-      "hdop.factor" /* remove entry after April 2017 */
+      "hdop.factor", /* remove entry after April 2017 */
+      "imagery.layers.addedIds" /* remove entry after June 2017 */
     };
 
     private static final long MAX_AGE_DEFAULT_PREFERENCES = TimeUnit.DAYS.toSeconds(50);
@@ -281,11 +282,9 @@ public class Preferences {
      * @param listener The listener to add.
      */
     public void removeKeyPreferenceChangeListener(String key, PreferenceChangedListener listener) {
-        ListenerList<PreferenceChangedListener> keyListener = keyListeners.get(key);
-        if (keyListener == null) {
-            throw new IllegalArgumentException("There are no listeners registered for " + key);
-        }
-        keyListener.removeListener(listener);
+        Optional.ofNullable(keyListeners.get(key)).orElseThrow(
+                () -> new IllegalArgumentException("There are no listeners registered for " + key))
+        .removeListener(listener);
     }
 
     protected void firePreferenceChanged(String key, Setting<?> oldValue, Setting<?> newValue) {
@@ -1149,11 +1148,7 @@ public class Preferences {
      * @return a list of objects of type T or an empty list if nothing was found
      */
     public <T> List<T> getListOfStructs(String key, Class<T> klass) {
-        List<T> r = getListOfStructs(key, null, klass);
-        if (r == null)
-            return Collections.emptyList();
-        else
-            return r;
+        return Optional.ofNullable(getListOfStructs(key, null, klass)).orElseGet(Collections::emptyList);
     }
 
     /**
@@ -1169,12 +1164,7 @@ public class Preferences {
             getListOfStructs(key, def == null ? null : serializeListOfStructs(def, klass));
         if (prop == null)
             return def == null ? null : new ArrayList<>(def);
-        List<T> lst = new ArrayList<>();
-        for (Map<String, String> entries : prop) {
-            T struct = deserializeStruct(entries, klass);
-            lst.add(struct);
-        }
-        return lst;
+        return prop.stream().map(p -> deserializeStruct(p, klass)).collect(Collectors.toList());
     }
 
     /**
@@ -1202,10 +1192,9 @@ public class Preferences {
             return null;
         Collection<Map<String, String>> vals = new ArrayList<>();
         for (T struct : l) {
-            if (struct == null) {
-                continue;
+            if (struct != null) {
+                vals.add(serializeStruct(struct, klass));
             }
-            vals.add(serializeStruct(struct, klass));
         }
         return vals;
     }
diff --git a/src/org/openstreetmap/josm/data/SystemOfMeasurement.java b/src/org/openstreetmap/josm/data/SystemOfMeasurement.java
index cd215f8..6edbd47 100644
--- a/src/org/openstreetmap/josm/data/SystemOfMeasurement.java
+++ b/src/org/openstreetmap/josm/data/SystemOfMeasurement.java
@@ -8,6 +8,7 @@ import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.openstreetmap.josm.Main;
@@ -114,10 +115,8 @@ public class SystemOfMeasurement {
      * @since 8554
      */
     public static SystemOfMeasurement getSystemOfMeasurement() {
-        SystemOfMeasurement som = SystemOfMeasurement.ALL_SYSTEMS.get(ProjectionPreference.PROP_SYSTEM_OF_MEASUREMENT.get());
-        if (som == null)
-            return SystemOfMeasurement.METRIC;
-        return som;
+        return Optional.ofNullable(SystemOfMeasurement.ALL_SYSTEMS.get(ProjectionPreference.PROP_SYSTEM_OF_MEASUREMENT.get()))
+                .orElse(SystemOfMeasurement.METRIC);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/UndoRedoHandler.java b/src/org/openstreetmap/josm/data/UndoRedoHandler.java
index 0b4eabe..acdc648 100644
--- a/src/org/openstreetmap/josm/data/UndoRedoHandler.java
+++ b/src/org/openstreetmap/josm/data/UndoRedoHandler.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.Command;
@@ -50,7 +51,6 @@ public class UndoRedoHandler implements LayerChangeListener {
     public void addNoRedraw(final Command c) {
         CheckParameterUtil.ensureParameterNotNull(c, "c");
         c.executeCommand();
-        c.invalidateAffectedLayers();
         commands.add(c);
         // Limit the number of commands in the undo list.
         // Currently you have to undo the commands one by one. If
@@ -73,16 +73,13 @@ public class UndoRedoHandler implements LayerChangeListener {
      * @param c The command to execute. Must not be {@code null}.
      */
     public synchronized void add(final Command c) {
-        DataSet ds = c.getAffectedDataSet();
-        if (ds == null) {
-            // old, legacy behaviour
-            ds = Main.getLayerManager().getEditDataSet();
-        }
+        DataSet ds = Optional.ofNullable(c.getAffectedDataSet()).orElseGet(() -> Main.getLayerManager().getEditDataSet());
         Collection<? extends OsmPrimitive> oldSelection = null;
         if (ds != null) {
             oldSelection = ds.getSelected();
         }
         addNoRedraw(c);
+        c.invalidateAffectedLayers();
         afterAdd();
 
         // the command may have changed the selection so tell the listeners about the current situation
diff --git a/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java b/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java
index de0b1bc..3b62ff8 100644
--- a/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java
+++ b/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java
@@ -88,7 +88,9 @@ public class HostLimitQueue extends LinkedBlockingDeque<Runnable> {
                 return gotLock ? job : null;
             } catch (InterruptedException e) {
                 // acquire my got interrupted, first offer back what was taken
-                offer(job);
+                if (!offer(job)) {
+                    Main.warn("Unable to offer back " + job);
+                }
                 throw e;
             }
         }
@@ -106,7 +108,9 @@ public class HostLimitQueue extends LinkedBlockingDeque<Runnable> {
             acquireSemaphore(job);
         } catch (InterruptedException e) {
             // acquire my got interrupted, first offer back what was taken
-            offer(job);
+            if (!offer(job)) {
+                Main.warn("Unable to offer back " + job);
+            }
             throw e;
         }
         return job;
diff --git a/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java b/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
index ae4f4fb..e4b85dd 100644
--- a/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
+++ b/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
@@ -405,6 +405,7 @@ public abstract class JCSCachedTileLoaderJob<K, V extends CacheEntry> implements
             attributes.setError(e);
             LOG.log(Level.WARNING, "JCS - Exception during download {0}", getUrlNoException());
             Main.warn(e);
+            Thread.currentThread().interrupt();
         }
         LOG.log(Level.WARNING, "JCS - Silent failure during download: {0}", getUrlNoException());
         return false;
diff --git a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
index ccf25ef..6aaf53a 100644
--- a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
+++ b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrack.java
@@ -69,10 +69,7 @@ public class ImmutableGpxTrack extends WithAttributes implements GpxTrack {
 
     @Override
     public Bounds getBounds() {
-        if (bounds == null)
-            return null;
-        else
-            return new Bounds(bounds);
+        return bounds == null ? null : new Bounds(bounds);
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
index 9b1e5ac..ba338ea 100644
--- a/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
+++ b/src/org/openstreetmap/josm/data/gpx/ImmutableGpxTrackSegment.java
@@ -53,10 +53,7 @@ public class ImmutableGpxTrackSegment implements GpxTrackSegment {
 
     @Override
     public Bounds getBounds() {
-        if (bounds == null)
-            return null;
-        else
-            return new Bounds(bounds);
+        return bounds == null ? null : new Bounds(bounds);
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java b/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
index 4d1c8a4..aa2fa33 100644
--- a/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
+++ b/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
@@ -50,8 +50,6 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
         WMS("wms"),
         /** A TMS (Tile Map Service) entry. **/
         TMS("tms"),
-        /** An HTML proxy (previously used for Yahoo imagery) entry. **/
-        HTML("html"),
         /** TMS entry for Microsoft Bing. */
         BING("bing"),
         /** TMS entry for Russian company <a href="https://wiki.openstreetmap.org/wiki/WikiProject_Russia/kosmosnimki">ScanEx</a>. **/
@@ -187,11 +185,24 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
     private String termsOfUseURL;
     /** country code of the imagery (for country specific imagery) */
     private String countryCode = "";
+    /**
+      * creation date of the imagery (in the form YYYY-MM-DD;YYYY-MM-DD, where
+      * DD and MM as well as a second date are optional)
+      * @since 11570
+      */
+    private String date;
+    /**
+      * marked as best in other editors
+      * @since 11575
+      */
+    private boolean bestMarked = false;
     /** mirrors of different type for this entry */
     private List<ImageryInfo> mirrors;
     /** icon used in menu */
     private String icon;
+    /** is the geo reference correct - don't offer offset handling */
     private boolean isGeoreferenceValid;
+    /** does the EPSG:4326 to mercator woraround work as expected */
     private boolean isEpsg4326To3857Supported;
     /** which layers should be activated by default on layer addition. **/
     private Collection<DefaultLayer> defaultLayers = Collections.emptyList();
@@ -203,6 +214,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      */
     public static class ImageryPreferenceEntry {
         @pref String name;
+        @pref String d;
         @pref String id;
         @pref String type;
         @pref String url;
@@ -215,6 +227,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
         @pref String terms_of_use_text;
         @pref String terms_of_use_url;
         @pref String country_code = "";
+        @pref String date;
         @pref int max_zoom;
         @pref int min_zoom;
         @pref String cookies;
@@ -228,6 +241,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
         @pref int tileSize = -1;
         @pref Map<String, String> metadataHeaders;
         @pref boolean valid_georeference;
+        @pref boolean bestMarked;
         @pref boolean supports_epsg_4326_to_3857_conversion;
         // TODO: disabled until change of layers is implemented
         // @pref String default_layers;
@@ -252,6 +266,8 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
             eula = i.eulaAcceptanceRequired;
             attribution_text = i.attributionText;
             attribution_url = i.attributionLinkURL;
+            date = i.date;
+            bestMarked = i.bestMarked;
             logo_image = i.attributionImage;
             logo_url = i.attributionImageURL;
             terms_of_use_text = i.termsOfUseText;
@@ -407,6 +423,8 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
         attributionLinkURL = e.attribution_url;
         attributionImage = e.logo_image;
         attributionImageURL = e.logo_url;
+        date = e.date;
+        bestMarked = e.bestMarked;
         termsOfUseText = e.terms_of_use_text;
         termsOfUseURL = e.terms_of_use_url;
         countryCode = e.country_code;
@@ -431,6 +449,9 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      */
     public ImageryInfo(ImageryInfo i) {
         super(i.name, i.url, i.id);
+        this.origName = i.origName;
+        this.langName = i.langName;
+        this.bestMarked = i.bestMarked;
         this.defaultEntry = i.defaultEntry;
         this.cookies = i.cookies;
         this.eulaAcceptanceRequired = null;
@@ -447,6 +468,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
         this.termsOfUseText = i.termsOfUseText;
         this.termsOfUseURL = i.termsOfUseURL;
         this.countryCode = i.countryCode;
+        this.date = i.date;
         this.icon = i.icon;
         this.description = i.description;
         this.noTileHeaders = i.noTileHeaders;
@@ -476,10 +498,14 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
             return false;
         }
 
+        // CHECKSTYLE.OFF: BooleanExpressionComplexity
         return
                 Objects.equals(this.name, other.name) &&
                 Objects.equals(this.id, other.id) &&
                 Objects.equals(this.url, other.url) &&
+                Objects.equals(this.bestMarked, other.bestMarked) &&
+                Objects.equals(this.isEpsg4326To3857Supported, other.isEpsg4326To3857Supported) &&
+                Objects.equals(this.isGeoreferenceValid, other.isGeoreferenceValid) &&
                 Objects.equals(this.cookies, other.cookies) &&
                 Objects.equals(this.eulaAcceptanceRequired, other.eulaAcceptanceRequired) &&
                 Objects.equals(this.imageryType, other.imageryType) &&
@@ -494,12 +520,14 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
                 Objects.equals(this.termsOfUseText, other.termsOfUseText) &&
                 Objects.equals(this.termsOfUseURL, other.termsOfUseURL) &&
                 Objects.equals(this.countryCode, other.countryCode) &&
+                Objects.equals(this.date, other.date) &&
                 Objects.equals(this.icon, other.icon) &&
                 Objects.equals(this.description, other.description) &&
                 Objects.equals(this.noTileHeaders, other.noTileHeaders) &&
                 Objects.equals(this.noTileChecksums, other.noTileChecksums) &&
                 Objects.equals(this.metadataHeaders, other.metadataHeaders) &&
                 Objects.equals(this.defaultLayers, other.defaultLayers);
+        // CHECKSTYLE.ON: BooleanExpressionComplexity
     }
 
     @Override
@@ -830,11 +858,26 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      * @since 8065
      */
     public String getToolTipText() {
+        String res = getName();
+        boolean html = false;
+        String date = getDate();
+        if (date != null && !date.isEmpty()) {
+            res += "<br>" + tr("Date of imagery: {0}", date);
+            html = true;
+        }
+        if (bestMarked) {
+            res += "<br>" + tr("This imagery is marked as best in this region in other editors.");
+            html = true;
+        }
         String desc = getDescription();
         if (desc != null && !desc.isEmpty()) {
-            return "<html>" + getName() + "<br>" + desc + "</html>";
+            res += "<br>" + desc;
+            html = true;
         }
-        return getName();
+        if (html) {
+            res = "<html>" + res + "</html>";
+        }
+        return res;
     }
 
     /**
@@ -870,6 +913,25 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
     }
 
     /**
+     * Returns the date information.
+     * @return The date (in the form YYYY-MM-DD;YYYY-MM-DD, where
+     * DD and MM as well as a second date are optional)
+     * @since 11570
+     */
+    public String getDate() {
+        return date;
+    }
+
+    /**
+     * Sets the date information.
+     * @param date The date information
+     * @since 11570
+     */
+    public void setDate(String date) {
+        this.date = date;
+    }
+
+    /**
      * Returns the entry icon.
      * @return The entry icon
      */
@@ -1032,7 +1094,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      * @since 9613
      */
     public void setNoTileHeaders(MultiMap<String, String> noTileHeaders) {
-       if (noTileHeaders == null) {
+       if (noTileHeaders == null || noTileHeaders.isEmpty()) {
            this.noTileHeaders = null;
        } else {
             this.noTileHeaders = noTileHeaders.toMap();
@@ -1052,7 +1114,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      * @since 9613
      */
     public void setNoTileChecksums(MultiMap<String, String> noTileChecksums) {
-        if (noTileChecksums == null) {
+        if (noTileChecksums == null || noTileChecksums.isEmpty()) {
             this.noTileChecksums = null;
         } else {
             this.noTileChecksums = noTileChecksums.toMap();
@@ -1072,7 +1134,11 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
      * @since 8418
      */
     public void setMetadataHeaders(Map<String, String> metadataHeaders) {
-        this.metadataHeaders = metadataHeaders;
+        if (metadataHeaders == null || metadataHeaders.isEmpty()) {
+            this.metadataHeaders = null;
+        } else {
+            this.metadataHeaders = metadataHeaders;
+        }
     }
 
     /**
@@ -1108,6 +1174,24 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
     }
 
     /**
+     * Returns the status of "best" marked status in other editors.
+     * @return <code>true</code> if it is marked as best.
+     * @since 11575
+     */
+    public boolean isBestMarked() {
+        return bestMarked;
+    }
+
+    /**
+     * Sets an indicator that in other editors it is marked as best imagery
+     * @param bestMarked <code>true</code> if it is marked as best in other editors.
+     * @since 11575
+     */
+    public void setBestMarked(boolean bestMarked) {
+        this.bestMarked = bestMarked;
+    }
+
+    /**
      * Adds a mirror entry. Mirror entries are completed with the data from the master entry
      * and only describe another method to access identical data.
      *
@@ -1130,6 +1214,7 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
     public List<ImageryInfo> getMirrors() {
        List<ImageryInfo> l = new ArrayList<>();
        if (mirrors != null) {
+           int num = 1;
            for (ImageryInfo i : mirrors) {
                ImageryInfo n = new ImageryInfo(this);
                if (i.defaultMaxZoom != 0) {
@@ -1144,7 +1229,22 @@ public class ImageryInfo extends TileSourceInfo implements Comparable<ImageryInf
                if (i.getTileSize() != 0) {
                    n.setTileSize(i.getTileSize());
                }
+               if (n.id != null) {
+                   n.id = n.id + "_mirror"+num;
+               }
+               if (num > 1) {
+                   n.name = tr("{0} mirror server {1}", n.name, num);
+                   if (n.origName != null) {
+                       n.origName += " mirror server " + num;
+                   }
+               } else {
+                   n.name = tr("{0} mirror server", n.name);
+                   if (n.origName != null) {
+                       n.origName += " mirror server";
+                   }
+               }
                l.add(n);
+               ++num;
            }
        }
        return l;
diff --git a/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java b/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java
index dca8692..808c1fe 100644
--- a/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java
+++ b/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java
@@ -32,9 +32,15 @@ import org.xml.sax.SAXException;
 public class ImageryLayerInfo {
 
     public static final ImageryLayerInfo instance = new ImageryLayerInfo();
+    /** List of all usable layers */
     private final List<ImageryInfo> layers = new ArrayList<>();
+    /** List of layer ids of all usable layers */
     private final Map<String, ImageryInfo> layerIds = new HashMap<>();
+    /** List of all available default layers */
     private static final List<ImageryInfo> defaultLayers = new ArrayList<>();
+    /** List of all available default layers (including mirrors) */
+    private static final List<ImageryInfo> allDefaultLayers = new ArrayList<>();
+    /** List of all layer ids of available default layers (including mirrors) */
     private static final Map<String, ImageryInfo> defaultLayerIds = new HashMap<>();
 
     private static final String[] DEFAULT_LAYER_SITES = {
@@ -163,12 +169,21 @@ public class ImageryLayerInfo {
         @Override
         protected void finish() {
             defaultLayers.clear();
+            allDefaultLayers.clear();
             defaultLayers.addAll(newLayers);
+            for (ImageryInfo layer : newLayers) {
+                allDefaultLayers.add(layer);
+                for (ImageryInfo sublayer : layer.getMirrors()) {
+                    allDefaultLayers.add(sublayer);
+                }
+            }
             defaultLayerIds.clear();
             Collections.sort(defaultLayers);
-            buildIdMap(defaultLayers, defaultLayerIds);
+            Collections.sort(allDefaultLayers);
+            buildIdMap(allDefaultLayers, defaultLayerIds);
             updateEntriesFromDefaults();
             buildIdMap(layers, layerIds);
+            dropOldEntries();
         }
     }
 
@@ -231,28 +246,6 @@ public class ImageryLayerInfo {
         }
         Main.pref.putCollection("imagery.layers.default", newKnownDefaults);
 
-        // Add ids to user entries without id.
-        // Only do this the first time for each id, so the user can have
-        // custom entries that don't get updated automatically
-        Collection<String> addedIds = Main.pref.getCollection("imagery.layers.addedIds");
-        Collection<String> newAddedIds = new TreeSet<>(addedIds);
-        for (ImageryInfo info : layers) {
-            for (ImageryInfo def : defaultLayers) {
-                if (isSimilar(def, info) && def.getId() != null && !addedIds.contains(def.getId())) {
-                    if (!defaultLayerIds.containsKey(def.getId())) {
-                        // ignore ids used more than once (have been purged from the map)
-                        continue;
-                    }
-                    newAddedIds.add(def.getId());
-                    if (info.getId() == null) {
-                        info.setId(def.getId());
-                        changed = true;
-                    }
-                }
-            }
-        }
-        Main.pref.putCollection("imagery.layers.addedIds", newAddedIds);
-
         // automatically update user entries with same id as a default entry
         for (int i = 0; i < layers.size(); i++) {
             ImageryInfo info = layers.get(i);
@@ -262,6 +255,7 @@ public class ImageryLayerInfo {
             ImageryInfo matchingDefault = defaultLayerIds.get(info.getId());
             if (matchingDefault != null && !matchingDefault.equalsPref(info)) {
                 layers.set(i, matchingDefault);
+                Main.info(tr("Update imagery ''{0}''", info.getName()));
                 changed = true;
             }
         }
@@ -271,6 +265,29 @@ public class ImageryLayerInfo {
         }
     }
 
+    /**
+     * Drop entries with Id which do no longer exist (removed from defaults).
+     * @since 11527
+     */
+    public void dropOldEntries() {
+        List<String> drop = new ArrayList<>();
+
+        for (Map.Entry<String, ImageryInfo> info : layerIds.entrySet()) {
+            if (!defaultLayerIds.containsKey(info.getKey())) {
+                remove(info.getValue());
+                drop.add(info.getKey());
+                Main.info(tr("Drop old imagery ''{0}''", info.getValue().getName()));
+            }
+        }
+
+        if (!drop.isEmpty()) {
+            for (String id : drop) {
+                layerIds.remove(id);
+            }
+            save();
+        }
+    }
+
     private static boolean isSimilar(ImageryInfo iiA, ImageryInfo iiB) {
         if (iiA == null)
             return false;
@@ -301,14 +318,31 @@ public class ImageryLayerInfo {
         Main.pref.putListOfStructs("imagery.entries", entries, ImageryPreferenceEntry.class);
     }
 
+    /**
+     * List of usable layers
+     * @return unmodifiable list containing usable layers
+     */
     public List<ImageryInfo> getLayers() {
         return Collections.unmodifiableList(layers);
     }
 
+    /**
+     * List of available default layers
+     * @return unmodifiable list containing available default layers
+     */
     public List<ImageryInfo> getDefaultLayers() {
         return Collections.unmodifiableList(defaultLayers);
     }
 
+    /**
+     * List of all available default layers (including mirrors)
+     * @return unmodifiable list containing available default layers
+     * @since 11570
+     */
+    public List<ImageryInfo> getAllDefaultLayers() {
+        return Collections.unmodifiableList(allDefaultLayers);
+    }
+
     public static void addLayer(ImageryInfo info) {
         instance.add(info);
         instance.save();
diff --git a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java
index 3ebd394..1dedaaf 100644
--- a/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java
+++ b/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java
@@ -10,6 +10,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -89,11 +90,8 @@ public class TMSCachedTileLoaderJob extends JCSCachedTileLoaderJob<String, Buffe
     public String getCacheKey() {
         if (tile != null) {
             TileSource tileSource = tile.getTileSource();
-            String tsName = tileSource.getName();
-            if (tsName == null) {
-                tsName = "";
-            }
-            return tsName.replace(':', '_') + ':' + tileSource.getTileId(tile.getZoom(), tile.getXtile(), tile.getYtile());
+            return Optional.ofNullable(tileSource.getName()).orElse("").replace(':', '_') + ':'
+                    + tileSource.getTileId(tile.getZoom(), tile.getXtile(), tile.getYtile());
         }
         return null;
     }
@@ -111,8 +109,12 @@ public class TMSCachedTileLoaderJob extends JCSCachedTileLoaderJob<String, Buffe
     public URL getUrl() throws IOException {
         if (url == null) {
             synchronized (this) {
-                if (url == null)
-                    url = new URL(tile.getUrl());
+                if (url == null) {
+                    String sUrl = tile.getUrl();
+                    if (!"".equals(sUrl)) {
+                        url = new URL(sUrl);
+                    }
+                }
             }
         }
         return url;
@@ -152,7 +154,7 @@ public class TMSCachedTileLoaderJob extends JCSCachedTileLoaderJob<String, Buffe
         tile.initLoading();
         try {
             super.submit(this, force);
-        } catch (IOException e) {
+        } catch (IOException | IllegalArgumentException e) {
             // if we fail to submit the job, mark tile as loaded and set error message
             Main.warn(e, false);
             tile.finishLoading();
diff --git a/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java b/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java
index bee19e6..65d1fba 100644
--- a/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java
+++ b/src/org/openstreetmap/josm/data/imagery/WMTSTileSource.java
@@ -10,12 +10,15 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Optional;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.Stack;
@@ -25,6 +28,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import javax.imageio.ImageIO;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
@@ -146,13 +150,12 @@ public class WMTSTileSource extends AbstractTMSTileSource implements TemplatedTi
         private final Collection<String> tileMatrixSetLinks = new ArrayList<>();
 
         Layer(Layer l) {
-            if (l != null) {
-                format = l.format;
-                name = l.name;
-                baseUrl = l.baseUrl;
-                style = l.style;
-                tileMatrixSet = new TileMatrixSet(l.tileMatrixSet);
-            }
+            Objects.requireNonNull(l);
+            format = l.format;
+            name = l.name;
+            baseUrl = l.baseUrl;
+            style = l.style;
+            tileMatrixSet = new TileMatrixSet(l.tileMatrixSet);
         }
 
         Layer() {
@@ -382,6 +385,7 @@ public class WMTSTileSource extends AbstractTMSTileSource implements TemplatedTi
     private static Layer parseLayer(XMLStreamReader reader) throws XMLStreamException {
         Layer layer = new Layer();
         Stack<QName> tagStack = new Stack<>();
+        List<String> supportedMimeTypes = Arrays.asList(ImageIO.getReaderMIMETypes());
 
         for (int event = reader.getEventType();
                 reader.hasNext() && !(event == XMLStreamReader.END_ELEMENT && QN_LAYER.equals(reader.getName()));
@@ -390,7 +394,10 @@ public class WMTSTileSource extends AbstractTMSTileSource implements TemplatedTi
                 tagStack.push(reader.getName());
                 if (tagStack.size() == 2) {
                     if (QN_FORMAT.equals(reader.getName())) {
-                        layer.format = reader.getElementText();
+                        String format = reader.getElementText();
+                        if (supportedMimeTypes.contains(format)) {
+                            layer.format = format;
+                        }
                     } else if (GetCapabilitiesParseHelper.QN_OWS_IDENTIFIER.equals(reader.getName())) {
                         layer.name = reader.getElementText();
                     } else if (QN_RESOURCE_URL.equals(reader.getName()) &&
@@ -478,13 +485,9 @@ public class WMTSTileSource extends AbstractTMSTileSource implements TemplatedTi
      * @throws XMLStreamException See {@link XMLStreamReader}
      */
     private static TileMatrix parseTileMatrix(XMLStreamReader reader, String matrixCrs) throws XMLStreamException {
-        Projection matrixProj = Projections.getProjectionByCode(matrixCrs);
+        Projection matrixProj = Optional.ofNullable(Projections.getProjectionByCode(matrixCrs))
+                .orElseGet(Main::getProjection); // use current projection if none found. Maybe user is using custom string
         TileMatrix ret = new TileMatrix();
-
-        if (matrixProj == null) {
-            // use current projection if none found. Maybe user is using custom string
-            matrixProj = Main.getProjection();
-        }
         for (int event = reader.getEventType();
                 reader.hasNext() && !(event == XMLStreamReader.END_ELEMENT && QN_TILEMATRIX.equals(reader.getName()));
                 event = reader.next()) {
diff --git a/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java b/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
index c2083ab..3dec037 100644
--- a/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
+++ b/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
@@ -705,8 +705,7 @@ public abstract class AbstractPrimitive implements IPrimitive {
     /**
      * Replies true, if the map of key/value pairs of this primitive is not empty.
      *
-     * @return true, if the map of key/value pairs of this primitive is not empty; false
-     *   otherwise
+     * @return true, if the map of key/value pairs of this primitive is not empty; false otherwise
      */
     @Override
     public final boolean hasKeys() {
@@ -717,13 +716,25 @@ public abstract class AbstractPrimitive implements IPrimitive {
      * Replies true if this primitive has a tag with key <code>key</code>.
      *
      * @param key the key
-     * @return true, if his primitive has a tag with key <code>key</code>
+     * @return true, if this primitive has a tag with key <code>key</code>
      */
+    @Override
     public boolean hasKey(String key) {
         return key != null && indexOfKey(keys, key) >= 0;
     }
 
     /**
+     * Replies true if this primitive has a tag any of the <code>keys</code>.
+     *
+     * @param keys the keys
+     * @return true, if this primitive has a tag with any of the <code>keys</code>
+     * @since 11587
+     */
+    public boolean hasKey(String ... keys) {
+        return keys != null && Arrays.stream(keys).anyMatch(this::hasKey);
+    }
+
+    /**
      * What to do, when the tags have changed by one of the tag-changing methods.
      * @param originalKeys original tags
      */
@@ -746,10 +757,10 @@ public abstract class AbstractPrimitive implements IPrimitive {
     }
 
     /**
-     * Tests whether this primitive contains a tag consisting of {@code key} and {@code values}.
+     * Tests whether this primitive contains a tag consisting of {@code key} and {@code value}.
      * @param key the key forming the tag.
      * @param value value forming the tag.
-     * @return true iff primitive contains a tag consisting of {@code key} and {@code value}.
+     * @return true if primitive contains a tag consisting of {@code key} and {@code value}.
      */
     public boolean hasTag(String key, String value) {
         return Objects.equals(value, get(key));
@@ -769,9 +780,44 @@ public abstract class AbstractPrimitive implements IPrimitive {
      * Tests whether this primitive contains a tag consisting of {@code key} and any of {@code values}.
      * @param key the key forming the tag.
      * @param values one or many values forming the tag.
-     * @return true iff primitive contains a tag consisting of {@code key} and any of {@code values}.
+     * @return true if primitive contains a tag consisting of {@code key} and any of {@code values}.
      */
     public boolean hasTag(String key, Collection<String> values) {
         return values.contains(get(key));
     }
+
+    /**
+     * Tests whether this primitive contains a tag consisting of {@code key} and a value different from {@code value}.
+     * @param key the key forming the tag.
+     * @param value value not forming the tag.
+     * @return true if primitive contains a tag consisting of {@code key} and a value different from {@code value}.
+     * @since 11608
+     */
+    public boolean hasTagDifferent(String key, String value) {
+        String v = get(key);
+        return v != null && !v.equals(value);
+    }
+
+    /**
+     * Tests whether this primitive contains a tag consisting of {@code key} and none of {@code values}.
+     * @param key the key forming the tag.
+     * @param values one or many values forming the tag.
+     * @return true if primitive contains a tag consisting of {@code key} and none of {@code values}.
+     * @since 11608
+     */
+    public boolean hasTagDifferent(String key, String... values) {
+        return hasTagDifferent(key, Arrays.asList(values));
+    }
+
+    /**
+     * Tests whether this primitive contains a tag consisting of {@code key} and none of {@code values}.
+     * @param key the key forming the tag.
+     * @param values one or many values forming the tag.
+     * @return true if primitive contains a tag consisting of {@code key} and none of {@code values}.
+     * @since 11608
+     */
+    public boolean hasTagDifferent(String key, Collection<String> values) {
+        String v = get(key);
+        return v != null && !values.contains(v);
+    }
 }
diff --git a/src/org/openstreetmap/josm/data/osm/DataSet.java b/src/org/openstreetmap/josm/data/osm/DataSet.java
index e92e858..f036888 100644
--- a/src/org/openstreetmap/josm/data/osm/DataSet.java
+++ b/src/org/openstreetmap/josm/data/osm/DataSet.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.data.osm;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.geom.Area;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -24,6 +25,7 @@ import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.Data;
 import org.openstreetmap.josm.data.DataSource;
 import org.openstreetmap.josm.data.ProjectionBounds;
@@ -58,7 +60,7 @@ import org.openstreetmap.josm.tools.Utils;
  * store some information.
  *
  * Dataset is threadsafe - accessing Dataset simultaneously from different threads should never
- * lead to data corruption or ConccurentModificationException. However when for example one thread
+ * lead to data corruption or ConcurrentModificationException. However when for example one thread
  * removes primitive and other thread try to add another primitive referring to the removed primitive,
  * DataIntegrityException will occur.
  *
@@ -126,6 +128,14 @@ public final class DataSet implements Data, ProjectionChangeListener {
     private final ReadWriteLock lock = new ReentrantReadWriteLock();
     private final Object selectionLock = new Object();
 
+    private Area cachedDataSourceArea;
+    private List<Bounds> cachedDataSourceBounds;
+
+    /**
+     * All data sources of this DataSet.
+     */
+    private final Collection<DataSource> dataSources = new LinkedList<>();
+
     /**
      * Constructs a new {@code DataSet}.
      */
@@ -186,6 +196,31 @@ public final class DataSet implements Data, ProjectionChangeListener {
     }
 
     /**
+     * Adds a new data source.
+     * @param source data source to add
+     * @return {@code true} if the collection changed as a result of the call
+     * @since 11626
+     */
+    public synchronized boolean addDataSource(DataSource source) {
+        return addDataSources(Collections.singleton(source));
+    }
+
+    /**
+     * Adds new data sources.
+     * @param sources data sources to add
+     * @return {@code true} if the collection changed as a result of the call
+     * @since 11626
+     */
+    public synchronized boolean addDataSources(Collection<DataSource> sources) {
+        boolean changed = dataSources.addAll(sources);
+        if (changed) {
+            cachedDataSourceArea = null;
+            cachedDataSourceBounds = null;
+        }
+        return changed;
+    }
+
+    /**
      * Returns the lock used for reading.
      * @return the lock used for reading
      */
@@ -443,11 +478,6 @@ public final class DataSet implements Data, ProjectionChangeListener {
     }
 
     /**
-     * All data sources of this DataSet.
-     */
-    public final Collection<DataSource> dataSources = new LinkedList<>();
-
-    /**
      * Returns a collection containing all primitives of the dataset.
      * @return A collection containing all primitives of the dataset. Data is not ordered
      */
@@ -919,7 +949,23 @@ public final class DataSet implements Data, ProjectionChangeListener {
     }
 
     @Override
-    public Collection<DataSource> getDataSources() {
+    public synchronized Area getDataSourceArea() {
+        if (cachedDataSourceArea == null) {
+            cachedDataSourceArea = Data.super.getDataSourceArea();
+        }
+        return cachedDataSourceArea;
+    }
+
+    @Override
+    public synchronized List<Bounds> getDataSourceBounds() {
+        if (cachedDataSourceBounds == null) {
+            cachedDataSourceBounds = Data.super.getDataSourceBounds();
+        }
+        return Collections.unmodifiableList(cachedDataSourceBounds);
+    }
+
+    @Override
+    public synchronized Collection<DataSource> getDataSources() {
         return Collections.unmodifiableCollection(dataSources);
     }
 
@@ -1333,11 +1379,20 @@ public final class DataSet implements Data, ProjectionChangeListener {
      * @param from The source DataSet
      * @param progressMonitor The progress monitor
      */
-    public void mergeFrom(DataSet from, ProgressMonitor progressMonitor) {
+    public synchronized void mergeFrom(DataSet from, ProgressMonitor progressMonitor) {
         if (from != null) {
             new DataSetMerger(this, from).merge(progressMonitor);
-            dataSources.addAll(from.dataSources);
-            from.dataSources.clear();
+            synchronized (from) {
+                if (!from.dataSources.isEmpty()) {
+                    if (dataSources.addAll(from.dataSources)) {
+                        cachedDataSourceArea = null;
+                        cachedDataSourceBounds = null;
+                    }
+                    from.dataSources.clear();
+                    from.cachedDataSourceArea = null;
+                    from.cachedDataSourceBounds = null;
+                }
+            }
         }
     }
 
@@ -1349,7 +1404,11 @@ public final class DataSet implements Data, ProjectionChangeListener {
         invalidateEastNorthCache();
     }
 
-    public ProjectionBounds getDataSourceBoundingBox() {
+    /**
+     * Returns the data sources bounding box.
+     * @return the data sources bounding box
+     */
+    public synchronized ProjectionBounds getDataSourceBoundingBox() {
         BoundingXYVisitor bbox = new BoundingXYVisitor();
         for (DataSource source : dataSources) {
             bbox.visit(source.bounds);
@@ -1359,5 +1418,4 @@ public final class DataSet implements Data, ProjectionChangeListener {
         }
         return null;
     }
-
 }
diff --git a/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java b/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
index 7c642fc..b1edf09 100644
--- a/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
+++ b/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
@@ -1177,6 +1177,7 @@ public abstract class OsmPrimitive extends AbstractPrimitive implements Comparab
      * @return true if this primitive and other are equal with respect to their technical attributes
      */
     public boolean hasEqualTechnicalAttributes(OsmPrimitive other) {
+        // CHECKSTYLE.OFF: BooleanExpressionComplexity
         return other != null
             && timestamp == other.timestamp
             && version == other.version
@@ -1185,6 +1186,7 @@ public abstract class OsmPrimitive extends AbstractPrimitive implements Comparab
             && isModified() == other.isModified()
             && isVisible() == other.isVisible()
             && Objects.equals(user, other.user);
+        // CHECKSTYLE.ON: BooleanExpressionComplexity
     }
 
     /**
@@ -1350,14 +1352,13 @@ public abstract class OsmPrimitive extends AbstractPrimitive implements Comparab
      * @since 6491
      */
     public final boolean hasAreaTags() {
-        return hasKey("landuse")
-                || "yes".equals(get("area"))
-                || "riverbank".equals(get("waterway"))
-                || hasKey("natural")
-                || hasKey("amenity")
-                || hasKey("leisure")
-                || hasKey("building")
-                || hasKey("building:part");
+        return hasKey("landuse", "amenity", "building", "building:part")
+                || hasTag("area", "yes")
+                || hasTag("waterway", "riverbank")
+                || hasTagDifferent("leisure", "picnic_table", "slipway", "firepit")
+                || hasTag("natural", "water", "wood", "scrub", "wetland", "grassland", "heath", "rock", "bare_rock",
+                                     "sand", "beach", "scree", "bay", "glacier", "shingle", "fell", "reef", "stone",
+                                     "mud", "landslide", "sinkhole", "crevasse", "desert");
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/osm/QuadBuckets.java b/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
index 99ad642..7dbb99a 100644
--- a/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
+++ b/src/org/openstreetmap/josm/data/osm/QuadBuckets.java
@@ -240,13 +240,18 @@ public class QuadBuckets<T extends OsmPrimitive> implements Collection<T> {
             case SW_INDEX:
                 if (nw != null)
                     return nw;
+                if (se != null)
+                    return se;
+                return ne;
             case NW_INDEX:
                 if (se != null)
                     return se;
+                return ne;
             case SE_INDEX:
                 return ne;
+            default:
+                return null;
             }
-            return null;
         }
 
         QBLevel<T> nextNode() {
diff --git a/src/org/openstreetmap/josm/data/osm/Relation.java b/src/org/openstreetmap/josm/data/osm/Relation.java
index 0f989c3..2baa390 100644
--- a/src/org/openstreetmap/josm/data/osm/Relation.java
+++ b/src/org/openstreetmap/josm/data/osm/Relation.java
@@ -8,6 +8,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -263,10 +264,8 @@ public final class Relation extends OsmPrimitive implements IRelation {
 
             List<RelationMember> newMembers = new ArrayList<>();
             for (RelationMemberData member : relationData.getMembers()) {
-                OsmPrimitive primitive = getDataSet().getPrimitiveById(member);
-                if (primitive == null)
-                    throw new AssertionError("Data consistency problem - relation with missing member detected");
-                newMembers.add(new RelationMember(member.getRole(), primitive));
+                newMembers.add(new RelationMember(member.getRole(), Optional.ofNullable(getDataSet().getPrimitiveById(member))
+                        .orElseThrow(() -> new AssertionError("Data consistency problem - relation with missing member detected"))));
             }
             setMembers(newMembers);
         } finally {
diff --git a/src/org/openstreetmap/josm/data/osm/RelationMember.java b/src/org/openstreetmap/josm/data/osm/RelationMember.java
index e03cfe8..879acb1 100644
--- a/src/org/openstreetmap/josm/data/osm/RelationMember.java
+++ b/src/org/openstreetmap/josm/data/osm/RelationMember.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.data.osm;
 
 import java.util.Arrays;
 import java.util.Objects;
+import java.util.Optional;
 
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
@@ -132,10 +133,7 @@ public class RelationMember implements PrimitiveId {
      */
     public RelationMember(String role, OsmPrimitive member) {
         CheckParameterUtil.ensureParameterNotNull(member, "member");
-        if (role == null) {
-            role = "";
-        }
-        this.role = role;
+        this.role = Optional.ofNullable(role).orElse("");
         this.member = member;
     }
 
@@ -149,7 +147,8 @@ public class RelationMember implements PrimitiveId {
         this(other.role, other.member);
     }
 
-    @Override public String toString() {
+    @Override
+    public String toString() {
         return '"' + role + "\"=" + member;
     }
 
diff --git a/src/org/openstreetmap/josm/data/osm/TagMap.java b/src/org/openstreetmap/josm/data/osm/TagMap.java
index 2661857..c58241c 100644
--- a/src/org/openstreetmap/josm/data/osm/TagMap.java
+++ b/src/org/openstreetmap/josm/data/osm/TagMap.java
@@ -12,6 +12,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Objects;
 import java.util.Set;
 
 /**
@@ -192,12 +193,8 @@ public class TagMap extends AbstractMap<String, String> implements Serializable
 
     @Override
     public synchronized String put(String key, String value) {
-        if (key == null) {
-            throw new NullPointerException();
-        }
-        if (value == null) {
-            throw new NullPointerException();
-        }
+        Objects.requireNonNull(key);
+        Objects.requireNonNull(value);
         int index = indexOfKey(tags, key);
         int newTagArrayLength = tags.length;
         if (index < 0) {
diff --git a/src/org/openstreetmap/josm/data/osm/Tagged.java b/src/org/openstreetmap/josm/data/osm/Tagged.java
index 80f22af..4f1efd4 100644
--- a/src/org/openstreetmap/josm/data/osm/Tagged.java
+++ b/src/org/openstreetmap/josm/data/osm/Tagged.java
@@ -3,10 +3,11 @@ package org.openstreetmap.josm.data.osm;
 
 import java.util.Collection;
 import java.util.Map;
+
 /**
  * Objects implement Tagged if they provide a map of key/value pairs.
  *
- *
+ * @since 2115
  */
 // FIXME: better naming? setTags(), getTags(), getKeys() instead of keySet() ?
 //
@@ -66,6 +67,17 @@ public interface Tagged {
     boolean hasKeys();
 
     /**
+     * Replies true if there is a tag with key <code>key</code>.
+     *
+     * @param key the key
+     * @return true, if there is a tag with key <code>key</code>
+     * @since 11608
+     */
+    default boolean hasKey(String key) {
+        return get(key) != null;
+    }
+
+    /**
      * Replies the set of keys
      *
      * @return the set of keys
diff --git a/src/org/openstreetmap/josm/data/osm/TigerUtils.java b/src/org/openstreetmap/josm/data/osm/TigerUtils.java
deleted file mode 100644
index f7c7c98..0000000
--- a/src/org/openstreetmap/josm/data/osm/TigerUtils.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data.osm;
-
-import java.util.Set;
-import java.util.TreeSet;
-
-/**
- * A simple class to keep helper functions for merging TIGER data
- *
- * @author daveh
- * @since 529
- */
-public final class TigerUtils {
-
-    private TigerUtils() {
-        // Hide default constructor for utils classes
-    }
-
-    /**
-     * Determines if the given tag is a TIGER one
-     * @param tag The tag to check
-     * @return {@code true} if {@code tag} starts with {@code tiger:} namespace
-     */
-    public static boolean isTigerTag(String tag) {
-        if (tag.indexOf("tiger:") == -1)
-            return false;
-        return true;
-    }
-
-    /**
-     * Determines if the given key denotes an integer value.
-     * @param name The key to determine
-     * @return {@code true} if the given key denotes an integer value
-     */
-    public static boolean tagIsInt(String name) {
-        if ("tiger:tlid".equals(name))
-            return true;
-        return false;
-    }
-
-    public static Object tagObj(String name) {
-        if (tagIsInt(name))
-            return Integer.valueOf(name);
-        return name;
-    }
-
-    public static String combineTags(Set<String> values) {
-        Set<Object> resultSet = new TreeSet<>();
-        for (String value: values) {
-            String[] parts = value.split(":");
-            for (String part: parts) {
-               resultSet.add(tagObj(part));
-            }
-            // Do not produce useless changeset noise if a single value is used and does not contain redundant splitted parts (fix #7405)
-            if (values.size() == 1 && resultSet.size() == parts.length) {
-                return value;
-            }
-        }
-        StringBuilder combined = new StringBuilder();
-        for (Object part : resultSet) {
-            if (combined.length() > 0) {
-                combined.append(':');
-            }
-            combined.append(part);
-        }
-        return combined.toString();
-    }
-}
diff --git a/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java b/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java
index 6415425..45d0b6f 100644
--- a/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java
+++ b/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java
@@ -12,11 +12,20 @@ public class DataChangedEvent extends AbstractDatasetChangedEvent {
 
     private final List<AbstractDatasetChangedEvent> events;
 
+    /**
+     * Constructs a new {@code DataChangedEvent}
+     * @param dataSet data set
+     * @param events list of change events
+     */
     public DataChangedEvent(DataSet dataSet, List<AbstractDatasetChangedEvent> events) {
         super(dataSet);
         this.events = events;
     }
 
+    /**
+     * Constructs a new {@code DataChangedEvent}
+     * @param dataSet data set
+     */
     public DataChangedEvent(DataSet dataSet) {
         this(dataSet, null);
     }
@@ -28,10 +37,7 @@ public class DataChangedEvent extends AbstractDatasetChangedEvent {
 
     @Override
     public Collection<OsmPrimitive> getPrimitives() {
-        if (dataSet == null)
-            return Collections.emptyList();
-        else
-            return dataSet.allPrimitives();
+        return dataSet == null ? Collections.emptyList() : dataSet.allPrimitives();
     }
 
     @Override
@@ -40,11 +46,10 @@ public class DataChangedEvent extends AbstractDatasetChangedEvent {
     }
 
     /**
-     *
+     * Returns list of events that caused this DataChangedEvent.
      * @return List of events that caused this DataChangedEvent. Might be null
      */
     public List<AbstractDatasetChangedEvent> getEvents() {
         return events;
     }
-
 }
diff --git a/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java b/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java
index 465fa09..da40a71 100644
--- a/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java
+++ b/src/org/openstreetmap/josm/data/osm/history/HistoryNode.java
@@ -9,9 +9,8 @@ import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.User;
 
 /**
- * Represents an immutable OSM node in the context of a historical view on
- * OSM data.
- *
+ * Represents an immutable OSM node in the context of a historical view on OSM data.
+ * @since 1670
  */
 public class HistoryNode extends HistoryOsmPrimitive {
 
diff --git a/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java b/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java
index a344c7b..514e820 100644
--- a/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java
+++ b/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data.osm.history;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.text.MessageFormat;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -18,16 +19,16 @@ import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
+import org.openstreetmap.josm.data.osm.Tagged;
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
 /**
- * Represents an immutable OSM primitive in the context of a historical view on
- * OSM data.
- *
+ * Represents an immutable OSM primitive in the context of a historical view on OSM data.
+ * @since 1670
  */
-public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimitive> {
+public abstract class HistoryOsmPrimitive implements Tagged, Comparable<HistoryOsmPrimitive> {
 
     private long id;
     private boolean visible;
@@ -38,12 +39,6 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
     private long version;
     private Map<String, String> tags;
 
-    protected final void ensurePositiveLong(long value, String name) {
-        if (value <= 0) {
-            throw new IllegalArgumentException(MessageFormat.format("Parameter ''{0}'' > 0 expected. Got ''{1}''.", name, value));
-        }
-    }
-
     /**
      * Constructs a new {@code HistoryOsmPrimitive}.
      *
@@ -118,34 +113,68 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
         }
     }
 
+    /**
+     * Returns the id.
+     * @return the id
+     */
     public long getId() {
         return id;
     }
 
+    /**
+     * Returns the primitive id.
+     * @return the primitive id
+     */
     public PrimitiveId getPrimitiveId() {
         return new SimplePrimitiveId(id, getType());
     }
 
+    /**
+     * Determines if the primitive is still visible.
+     * @return {@code true} if the primitive is still visible
+     */
     public boolean isVisible() {
         return visible;
     }
 
+    /**
+     * Returns the user.
+     * @return the user
+     */
     public User getUser() {
         return user;
     }
 
+    /**
+     * Returns the changeset id.
+     * @return the changeset id
+     */
     public long getChangesetId() {
         return changesetId;
     }
 
+    /**
+     * Returns the timestamp.
+     * @return the timestamp
+     */
     public Date getTimestamp() {
         return timestamp;
     }
 
+    /**
+     * Returns the version.
+     * @return the version
+     */
     public long getVersion() {
         return version;
     }
 
+    protected final void ensurePositiveLong(long value, String name) {
+        if (value <= 0) {
+            throw new IllegalArgumentException(MessageFormat.format("Parameter ''{0}'' > 0 expected. Got ''{1}''.", name, value));
+        }
+    }
+
     public boolean matches(long id, long version) {
         return this.id == id && this.version == version;
     }
@@ -154,6 +183,10 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
         return this.id == id;
     }
 
+    /**
+     * Returns the primitive type.
+     * @return the primitive type
+     */
     public abstract OsmPrimitiveType getType();
 
     @Override
@@ -163,18 +196,55 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
         return Long.compare(this.version, o.version);
     }
 
-    public void put(String key, String value) {
+    @Override
+    public final void put(String key, String value) {
         tags.put(key, value);
     }
 
-    public String get(String key) {
+    @Override
+    public final String get(String key) {
         return tags.get(key);
     }
 
-    public boolean hasTag(String key) {
-        return tags.get(key) != null;
+    @Override
+    public final boolean hasKey(String key) {
+        return tags.containsKey(key);
     }
 
+    @Override
+    public final Map<String, String> getKeys() {
+        return getTags();
+    }
+
+    @Override
+    public final void setKeys(Map<String, String> keys) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public final void remove(String key) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public final void removeAll() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public final boolean hasKeys() {
+        return !tags.isEmpty();
+    }
+
+    @Override
+    public final Collection<String> keySet() {
+        return Collections.unmodifiableSet(tags.keySet());
+    }
+
+    /**
+     * Replies the key/value map.
+     * @return the key/value map
+     */
     public Map<String, String> getTags() {
         return Collections.unmodifiableMap(tags);
     }
@@ -196,8 +266,7 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
     }
 
     /**
-     * Sets the tags for this history primitive. Removes all
-     * tags if <code>tags</code> is null.
+     * Sets the tags for this history primitive. Removes all tags if <code>tags</code> is null.
      *
      * @param tags the tags. May be null.
      */
@@ -272,8 +341,8 @@ public abstract class HistoryOsmPrimitive implements Comparable<HistoryOsmPrimit
     @Override
     public String toString() {
         return getClass().getSimpleName() + " [version=" + version + ", id=" + id + ", visible=" + visible + ", "
-                + (timestamp != null ? "timestamp=" + timestamp : "") + ", "
-                + (user != null ? "user=" + user + ", " : "") + "changesetId="
+                + (timestamp != null ? ("timestamp=" + timestamp) : "") + ", "
+                + (user != null ? ("user=" + user + ", ") : "") + "changesetId="
                 + changesetId
                 + ']';
     }
diff --git a/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java b/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java
index 400154f..a940252 100644
--- a/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java
+++ b/src/org/openstreetmap/josm/data/osm/history/HistoryRelation.java
@@ -14,9 +14,8 @@ import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
 /**
- * Represents an immutable OSM relation in the context of a historical view on
- * OSM data.
- *
+ * Represents an immutable OSM relation in the context of a historical view on OSM data.
+ * @since 1670
  */
 public class HistoryRelation extends HistoryOsmPrimitive {
 
diff --git a/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java b/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java
index 6f39831..4f691bd 100644
--- a/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java
+++ b/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java
@@ -14,9 +14,8 @@ import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 
 /**
- * Represents an immutable OSM way in the context of a historical view on
- * OSM data.
- *
+ * Represents an immutable OSM way in the context of a historical view on OSM data.
+ * @since 1670
  */
 public class HistoryWay extends HistoryOsmPrimitive {
 
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
index 2103435..cd2378f 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
@@ -157,18 +157,16 @@ public final class MapRendererFactory {
     }
 
     /**
-     * <p>Replies true, if {@code Renderer} is already a registered map renderer
-     * class.</p>
+     * <p>Replies true, if {@code Renderer} is already a registered map renderer class.</p>
      *
      * @param renderer the map renderer class. Must not be null.
-     * @return true, if {@code Renderer} is already a registered map renderer
-     * class
+     * @return true, if {@code Renderer} is already a registered map renderer class
      * @throws IllegalArgumentException if {@code renderer} is null
      */
     public boolean isRegistered(Class<? extends AbstractMapRenderer> renderer) {
         CheckParameterUtil.ensureParameterNotNull(renderer);
         for (Descriptor d: descriptors) {
-            if (d.getRenderer().getName().equals(renderer.getName())) return true;
+            if (d.getRenderer().equals(renderer)) return true;
         }
         return false;
     }
@@ -209,12 +207,12 @@ public final class MapRendererFactory {
         Iterator<Descriptor> it = descriptors.iterator();
         while (it.hasNext()) {
             Descriptor d = it.next();
-            if (d.getRenderer().getName().equals(renderer.getName())) {
+            if (d.getRenderer().equals(renderer)) {
                 it.remove();
                 break;
             }
         }
-        if (activeRenderer != null && activeRenderer.getName().equals(renderer.getName())) {
+        if (activeRenderer != null && activeRenderer.equals(renderer)) {
             activateDefault();
         }
     }
@@ -287,18 +285,16 @@ public final class MapRendererFactory {
     }
 
     /**
-     * <p>Replies true, if currently the wireframe map renderer is active. Otherwise,
-     * false.</p>
+     * <p>Replies true, if currently the wireframe map renderer is active. Otherwise, false.</p>
      *
      * <p>There is a specific method for {@link WireframeMapRenderer} for legacy support.
      * Until 03/2011 there were only two possible map renderers in JOSM: the wireframe
      * renderer and the styled renderer. For the time being there are still UI elements
      * (menu entries, etc.) which toggle between these two renderers only.</p>
      *
-     * @return true, if currently the wireframe map renderer is active. Otherwise,
-     * false
+     * @return true, if currently the wireframe map renderer is active. Otherwise, false
      */
     public boolean isWireframeMapRendererActive() {
-        return activeRenderer != null && activeRenderer.getName().equals(WireframeMapRenderer.class.getName());
+        return WireframeMapRenderer.class.equals(activeRenderer);
     }
 }
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
index a625818..ef1ab2a 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/PaintColors.java
@@ -5,6 +5,7 @@ import static org.openstreetmap.josm.tools.I18n.marktr;
 
 import java.awt.Color;
 import java.util.List;
+import java.util.Optional;
 
 import org.openstreetmap.josm.data.preferences.CachingProperty;
 import org.openstreetmap.josm.data.preferences.ColorProperty;
@@ -78,6 +79,10 @@ public enum PaintColors {
         return property.get();
     }
 
+    /**
+     * Returns the background color.
+     * @return the background color
+     */
     public static Color getBackgroundColor() {
         if (backgroundColorCache != null)
             return backgroundColorCache;
@@ -91,11 +96,7 @@ public enum PaintColors {
                 backgroundColorCache = backgroundColorOverride;
             }
         }
-        if (backgroundColorCache == null) {
-            return BACKGROUND.get();
-        } else {
-            return backgroundColorCache;
-        }
+        return Optional.ofNullable(backgroundColorCache).orElseGet(BACKGROUND::get);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
index 135c6e2..03eb531 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
@@ -1117,10 +1117,7 @@ public class StyledMapRenderer extends AbstractMapRenderer {
                     firstNode = lastNode;
                     lastNode = tmp;
                 } else {
-                    onewayvia = OsmUtils.getOsmBoolean(onewayviastr);
-                    if (onewayvia == null) {
-                        onewayvia = Boolean.FALSE;
-                    }
+                    onewayvia = Optional.ofNullable(OsmUtils.getOsmBoolean(onewayviastr)).orElse(Boolean.FALSE);
                 }
             }
 
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java
index 0e946fc..34eb76b 100644
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/Multipolygon.java
@@ -10,6 +10,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import org.openstreetmap.josm.Main;
@@ -667,11 +668,8 @@ public class Multipolygon {
             }
 
             for (PolyData pdInner: innerPolygons) {
-                PolyData o = findOuterPolygon(pdInner, combinedPolygons);
-                if (o == null) {
-                    o = outerPolygons.get(0);
-                }
-                o.addInner(pdInner);
+                Optional.ofNullable(findOuterPolygon(pdInner, combinedPolygons)).orElseGet(() -> outerPolygons.get(0))
+                    .addInner(pdInner);
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java b/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
index 12421cf..956187a 100644
--- a/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/AbstractProperty.java
@@ -37,9 +37,7 @@ public abstract class AbstractProperty<T> {
         public boolean equals(Object obj) {
             if (this == obj)
                 return true;
-            if (obj == null)
-                return false;
-            if (getClass() != obj.getClass())
+            if (obj == null || getClass() != obj.getClass())
                 return false;
             @SuppressWarnings("unchecked")
             PreferenceChangedListenerAdapter other = (PreferenceChangedListenerAdapter) obj;
@@ -284,9 +282,7 @@ public abstract class AbstractProperty<T> {
     public boolean equals(Object obj) {
         if (this == obj)
             return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
+        if (obj == null || getClass() != obj.getClass())
             return false;
         AbstractProperty<?> other = (AbstractProperty<?>) obj;
         if (key == null) {
diff --git a/src/org/openstreetmap/josm/data/preferences/ColorProperty.java b/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
index ade3a4d..06bfc37 100644
--- a/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
+++ b/src/org/openstreetmap/josm/data/preferences/ColorProperty.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data.preferences;
 import java.awt.Color;
 import java.util.Locale;
 
+import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ColorHelper;
 
 /**
@@ -20,7 +21,7 @@ public class ColorProperty extends AbstractToStringProperty<Color> {
      * @param defaultValue The default value as HTML string
      */
     public ColorProperty(String colName, String defaultValue) {
-        this(colName, defaultValue == null ? null : ColorHelper.html2color(defaultValue));
+        this(colName, ColorHelper.html2color(defaultValue));
     }
 
     /**
@@ -30,6 +31,7 @@ public class ColorProperty extends AbstractToStringProperty<Color> {
      */
     public ColorProperty(String colName, Color defaultValue) {
         super(getColorKey(colName), defaultValue);
+        CheckParameterUtil.ensureParameterNotNull(defaultValue, "defaultValue");
         this.name = colName;
         getPreferences().registerColor(getColorKey(colName), colName);
     }
diff --git a/src/org/openstreetmap/josm/data/preferences/PreferencesReader.java b/src/org/openstreetmap/josm/data/preferences/PreferencesReader.java
index 743e530..5a4af5c 100644
--- a/src/org/openstreetmap/josm/data/preferences/PreferencesReader.java
+++ b/src/org/openstreetmap/josm/data/preferences/PreferencesReader.java
@@ -15,6 +15,7 @@ import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
@@ -172,11 +173,8 @@ public class PreferencesReader {
                     if (defaults && isNil()) {
                         setting = new StringSetting(null);
                     } else {
-                        String value = parser.getAttributeValue(null, "value");
-                        if (value == null) {
-                            throw new XMLStreamException(tr("value expected"), parser.getLocation());
-                        }
-                        setting = new StringSetting(value);
+                        setting = new StringSetting(Optional.ofNullable(parser.getAttributeValue(null, "value"))
+                                .orElseThrow(() -> new XMLStreamException(tr("value expected"), parser.getLocation())));
                     }
                     if (defaults) {
                         setting.setTime(Math.round(Double.parseDouble(parser.getAttributeValue(null, "time"))));
diff --git a/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java b/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
index 80fd8d9..d35dbba 100644
--- a/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
+++ b/src/org/openstreetmap/josm/data/preferences/PreferencesWriter.java
@@ -5,6 +5,7 @@ import java.io.PrintWriter;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Stream;
 
 import org.openstreetmap.josm.Main;
@@ -67,10 +68,7 @@ public class PreferencesWriter extends XmlWriter implements SettingVisitor {
 
     private void addTime(Setting<?> setting) {
         if (defaults) {
-            Long time = setting.getTime();
-            if (time == null)
-                throw new IllegalStateException();
-            out.write("' time='" + time);
+            out.write("' time='" + Optional.ofNullable(setting.getTime()).orElseThrow(IllegalStateException::new));
         }
     }
 
diff --git a/src/org/openstreetmap/josm/data/projection/CustomProjection.java b/src/org/openstreetmap/josm/data/projection/CustomProjection.java
index 0121d31..654db71 100644
--- a/src/org/openstreetmap/josm/data/projection/CustomProjection.java
+++ b/src/org/openstreetmap/josm/data/projection/CustomProjection.java
@@ -9,6 +9,7 @@ import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -21,7 +22,6 @@ import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.datum.CentricDatum;
 import org.openstreetmap.josm.data.projection.datum.Datum;
 import org.openstreetmap.josm.data.projection.datum.NTV2Datum;
-import org.openstreetmap.josm.data.projection.datum.NTV2GridShiftFileWrapper;
 import org.openstreetmap.josm.data.projection.datum.NullDatum;
 import org.openstreetmap.josm.data.projection.datum.SevenParameterDatum;
 import org.openstreetmap.josm.data.projection.datum.ThreeParameterDatum;
@@ -251,12 +251,10 @@ public class CustomProjection extends AbstractProjection {
             proj = parseProjection(parameters, ellps);
             // "utm" is a shortcut for a set of parameters
             if ("utm".equals(parameters.get(Param.proj.key))) {
-                String zoneStr = parameters.get(Param.zone.key);
-                if (zoneStr == null)
-                    throw new ProjectionConfigurationException(tr("UTM projection (''+proj=utm'') requires ''+zone=...'' parameter."));
                 Integer zone;
                 try {
-                    zone = Integer.valueOf(zoneStr);
+                    zone = Integer.valueOf(Optional.ofNullable(parameters.get(Param.zone.key)).orElseThrow(
+                            () -> new ProjectionConfigurationException(tr("UTM projection (''+proj=utm'') requires ''+zone=...'' parameter."))));
                 } catch (NumberFormatException e) {
                     zone = null;
                 }
@@ -393,12 +391,11 @@ public class CustomProjection extends AbstractProjection {
         // recursive resolution of +init includes
         String initKey = parameters.get(Param.init.key);
         if (initKey != null) {
-            String init = Projections.getInit(initKey);
-            if (init == null)
-                throw new ProjectionConfigurationException(tr("Value ''{0}'' for option +init not supported.", initKey));
             Map<String, String> initp;
             try {
-                initp = parseParameterList(init, ignoreUnknownParameter);
+                initp = parseParameterList(Optional.ofNullable(Projections.getInit(initKey)).orElseThrow(
+                        () -> new ProjectionConfigurationException(tr("Value ''{0}'' for option +init not supported.", initKey))),
+                        ignoreUnknownParameter);
                 initp = resolveInits(initp, ignoreUnknownParameter);
             } catch (ProjectionConfigurationException ex) {
                 throw new ProjectionConfigurationException(initKey+": "+ex.getMessage(), ex);
@@ -418,12 +415,8 @@ public class CustomProjection extends AbstractProjection {
     public Ellipsoid parseEllipsoid(Map<String, String> parameters) throws ProjectionConfigurationException {
         String code = parameters.get(Param.ellps.key);
         if (code != null) {
-            Ellipsoid ellipsoid = Projections.getEllipsoid(code);
-            if (ellipsoid == null) {
-                throw new ProjectionConfigurationException(tr("Ellipsoid ''{0}'' not supported.", code));
-            } else {
-                return ellipsoid;
-            }
+            return Optional.ofNullable(Projections.getEllipsoid(code)).orElseThrow(
+                () -> new ProjectionConfigurationException(tr("Ellipsoid ''{0}'' not supported.", code)));
         }
         String s = parameters.get(Param.a.key);
         if (s != null) {
@@ -464,9 +457,8 @@ public class CustomProjection extends AbstractProjection {
     public Datum parseDatum(Map<String, String> parameters, Ellipsoid ellps) throws ProjectionConfigurationException {
         String datumId = parameters.get(Param.datum.key);
         if (datumId != null) {
-            Datum datum = Projections.getDatum(datumId);
-            if (datum == null) throw new ProjectionConfigurationException(tr("Unknown datum identifier: ''{0}''", datumId));
-            return datum;
+            return Optional.ofNullable(Projections.getDatum(datumId)).orElseThrow(
+                    () -> new ProjectionConfigurationException(tr("Unknown datum identifier: ''{0}''", datumId)));
         }
         if (ellps == null) {
             if (parameters.containsKey(Param.no_defs.key))
@@ -482,10 +474,9 @@ public class CustomProjection extends AbstractProjection {
             }
             if ("null".equals(nadgridsId))
                 return new NullDatum(null, ellps);
-            NTV2GridShiftFileWrapper nadgrids = Projections.getNTV2Grid(nadgridsId);
-            if (nadgrids == null)
-                throw new ProjectionConfigurationException(tr("Grid shift file ''{0}'' for option +nadgrids not supported.", nadgridsId));
-            return new NTV2Datum(nadgridsId, null, ellps, nadgrids);
+            final String fNadgridsId = nadgridsId;
+            return new NTV2Datum(fNadgridsId, null, ellps, Optional.ofNullable(Projections.getNTV2Grid(fNadgridsId)).orElseThrow(
+                    () -> new ProjectionConfigurationException(tr("Grid shift file ''{0}'' for option +nadgrids not supported.", fNadgridsId))));
         }
 
         String towgs84 = parameters.get(Param.towgs84.key);
@@ -626,11 +617,9 @@ public class CustomProjection extends AbstractProjection {
     public static double parseDouble(Map<String, String> parameters, String parameterName) throws ProjectionConfigurationException {
         if (!parameters.containsKey(parameterName))
             throw new ProjectionConfigurationException(tr("Unknown parameter ''{0}''", parameterName));
-        String doubleStr = parameters.get(parameterName);
-        if (doubleStr == null)
-            throw new ProjectionConfigurationException(
-                    tr("Expected number argument for parameter ''{0}''", parameterName));
-        return parseDouble(doubleStr, parameterName);
+        return parseDouble(Optional.ofNullable(parameters.get(parameterName)).orElseThrow(
+                () -> new ProjectionConfigurationException(tr("Expected number argument for parameter ''{0}''", parameterName))),
+                parameterName);
     }
 
     public static double parseDouble(String doubleStr, String parameterName) throws ProjectionConfigurationException {
diff --git a/src/org/openstreetmap/josm/data/projection/datum/NTV2SubGrid.java b/src/org/openstreetmap/josm/data/projection/datum/NTV2SubGrid.java
index 2654b77..400f14a 100644
--- a/src/org/openstreetmap/josm/data/projection/datum/NTV2SubGrid.java
+++ b/src/org/openstreetmap/josm/data/projection/datum/NTV2SubGrid.java
@@ -273,7 +273,7 @@ public class NTV2SubGrid implements Serializable {
     }
 
     public int getSubGridCount() {
-        return (subGrid == null) ? 0 : subGrid.length;
+        return subGrid == null ? 0 : subGrid.length;
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java b/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java
index 602416a..0dbb821 100644
--- a/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java
+++ b/src/org/openstreetmap/josm/data/projection/proj/LambertAzimuthalEqualArea.java
@@ -182,60 +182,64 @@ public class LambertAzimuthalEqualArea extends AbstractProj {
 
     @Override
     public double[] invproject(double x, double y) {
-        final double lambda, phi;
         switch (mode) {
             case EQUATORIAL: // Fall through
-            case OBLIQUE: {
-                x /= dd;
-                y *= dd;
-                final double rho = Math.hypot(x, y);
-                if (rho < FINE_EPSILON) {
-                    lambda = 0.0;
-                    phi = latitudeOfOrigin;
-                } else {
-                    double sCe, cCe, ab;
-                    sCe = 2.0 * Math.asin(0.5 * rho / rq);
-                    cCe = Math.cos(sCe);
-                    sCe = Math.sin(sCe);
-                    x *= sCe;
-                    if (mode == Mode.OBLIQUE) {
-                        ab = cCe * sinb1 + y * sCe * cosb1 / rho;
-                        y = rho * cosb1 * cCe - y * sinb1 * sCe;
-                    } else {
-                        ab = y * sCe / rho;
-                        y = rho * cCe;
-                    }
-                    lambda = Math.atan2(x, y);
-                    phi = authlat(Math.asin(ab));
-                }
-                break;
-            }
-            case NORTH_POLE: {
-                y = -y;
-                // Fall through
-            }
-            case SOUTH_POLE: {
-                final double q = x*x + y*y;
-                if (q == 0) {
-                    lambda = 0.;
-                    phi = latitudeOfOrigin;
-                } else {
-                    double ab = 1.0 - q / qp;
-                    if (mode == Mode.SOUTH_POLE) {
-                        ab = -ab;
-                    }
-                    lambda = Math.atan2(x, y);
-                    phi = authlat(Math.asin(ab));
-                }
-                break;
-            }
-            default: {
+            case OBLIQUE:
+                return invprojectEO(x, y);
+            case NORTH_POLE:
+                return invprojectNS(x, -y);
+            case SOUTH_POLE:
+                return invprojectNS(x, y);
+            default:
                 throw new AssertionError(mode);
+        }
+    }
+
+    private double[] invprojectEO(double x, double y) {
+        final double lambda;
+        final double phi;
+        x /= dd;
+        y *= dd;
+        final double rho = Math.hypot(x, y);
+        if (rho < FINE_EPSILON) {
+            lambda = 0.0;
+            phi = latitudeOfOrigin;
+        } else {
+            final double ab;
+            double sCe = 2.0 * Math.asin(0.5 * rho / rq);
+            double cCe = Math.cos(sCe);
+            sCe = Math.sin(sCe);
+            x *= sCe;
+            if (mode == Mode.OBLIQUE) {
+                ab = cCe * sinb1 + y * sCe * cosb1 / rho;
+                y = rho * cosb1 * cCe - y * sinb1 * sCe;
+            } else {
+                ab = y * sCe / rho;
+                y = rho * cCe;
             }
+            lambda = Math.atan2(x, y);
+            phi = authlat(Math.asin(ab));
         }
         return new double[] {phi, lambda};
     }
 
+    private double[] invprojectNS(double x, double y) {
+        final double lambda;
+        final double phi;
+        final double q = x*x + y*y;
+        if (q == 0) {
+            lambda = 0.;
+            phi = latitudeOfOrigin;
+        } else {
+            double ab = 1.0 - q / qp;
+            if (mode == Mode.SOUTH_POLE) {
+                ab = -ab;
+            }
+            lambda = Math.atan2(x, y);
+            phi = authlat(Math.asin(ab));
+        }
+        return new double[] {phi, lambda};
+    }
 
     /**
      * Calculates <var>q</var>, Snyder equation (3-12)
diff --git a/src/org/openstreetmap/josm/data/projection/proj/TransverseMercator.java b/src/org/openstreetmap/josm/data/projection/proj/TransverseMercator.java
index 55fba67..785aa43 100644
--- a/src/org/openstreetmap/josm/data/projection/proj/TransverseMercator.java
+++ b/src/org/openstreetmap/josm/data/projection/proj/TransverseMercator.java
@@ -46,7 +46,10 @@ import org.openstreetmap.josm.tools.CheckParameterUtil;
  * git 8cbf52d, org.geotools.referencing.operation.projection.TransverseMercator
  * at the time of migration.
  * <p>
- *
+ * The non-standard parameter <code>gamma</code> has been added as a method
+ * to rotate the projected coordinates by a certain angle (clockwise, see
+ * {@link ObliqueMercator}).
+ * <p>
  * <b>References:</b>
  * <ul>
  *   <li> Proj-4.4.6 available at <A HREF="http://www.remotesensing.org/proj">www.remotesensing.org/proj</A><br>
@@ -106,6 +109,16 @@ public class TransverseMercator extends AbstractProj {
      */
     private double ml0;
 
+    /**
+     * The rectified bearing of the central line, in radians.
+     */
+    protected double rectifiedGridAngle;
+
+    /**
+     * Sine and Cosine values for the coordinate system rotation angle
+     */
+    private double sinrot, cosrot;
+
     @Override
     public String getName() {
         return tr("Transverse Mercator");
@@ -124,12 +137,22 @@ public class TransverseMercator extends AbstractProj {
         eb2 = params.ellps.eb2;
         latitudeOfOrigin = params.lat0 == null ? 0 : Math.toRadians(params.lat0);
         ml0 = mlfn(latitudeOfOrigin, Math.sin(latitudeOfOrigin), Math.cos(latitudeOfOrigin));
+
+        if (params.gamma != null) {
+                rectifiedGridAngle = Math.toRadians(params.gamma);
+        } else {
+                rectifiedGridAngle = 0.0;
+        }
+        sinrot = Math.sin(rectifiedGridAngle);
+        cosrot = Math.cos(rectifiedGridAngle);
+
     }
 
     @Override
     public double[] project(double y, double x) {
         double sinphi = Math.sin(y);
         double cosphi = Math.cos(y);
+        double u, v;
 
         double t = (Math.abs(cosphi) > EPSILON) ? sinphi/cosphi : 0;
         t *= t;
@@ -150,11 +173,21 @@ public class TransverseMercator extends AbstractProj {
             FC5 * als * (5.0 + t*(t - 18.0) + n*(14.0 - 58.0*t) +
             FC7 * als * (61.0+ t*(t*(179.0 - t) - 479.0)))));
 
+        u = y;
+        v = x;
+        x = v * cosrot + u * sinrot;
+        y = u * cosrot - v * sinrot;
+
         return new double[] {x, y};
     }
 
     @Override
     public double[] invproject(double x, double y) {
+        double v = x * cosrot - y * sinrot;
+        double u = y * cosrot + x * sinrot;
+        x = v;
+        y = u;
+
         double phi = invMlfn(ml0 + y);
 
         if (Math.abs(phi) >= Math.PI/2) {
diff --git a/src/org/openstreetmap/josm/data/validation/OsmValidator.java b/src/org/openstreetmap/josm/data/validation/OsmValidator.java
index db1053f..18b592c 100644
--- a/src/org/openstreetmap/josm/data/validation/OsmValidator.java
+++ b/src/org/openstreetmap/josm/data/validation/OsmValidator.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.data.validation;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.GraphicsEnvironment;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -333,11 +334,11 @@ public final class OsmValidator {
                 }
             } catch (Exception e) {
                 Main.error(e);
-                JOptionPane.showMessageDialog(Main.parent,
-                        tr("Error initializing test {0}:\n {1}", test.getClass()
-                                .getSimpleName(), e),
-                                tr("Error"),
-                                JOptionPane.ERROR_MESSAGE);
+                if (!GraphicsEnvironment.isHeadless()) {
+                    JOptionPane.showMessageDialog(Main.parent,
+                            tr("Error initializing test {0}:\n {1}", test.getClass().getSimpleName(), e),
+                            tr("Error"), JOptionPane.ERROR_MESSAGE);
+                }
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/data/validation/Test.java b/src/org/openstreetmap/josm/data/validation/Test.java
index 1b67069..eb0d75c 100644
--- a/src/org/openstreetmap/josm/data/validation/Test.java
+++ b/src/org/openstreetmap/josm/data/validation/Test.java
@@ -8,6 +8,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.function.Predicate;
 
 import javax.swing.JCheckBox;
@@ -148,11 +149,7 @@ public class Test extends AbstractVisitor {
      * @param progressMonitor  the progress monitor
      */
     public void startTest(ProgressMonitor progressMonitor) {
-        if (progressMonitor == null) {
-            this.progressMonitor = NullProgressMonitor.INSTANCE;
-        } else {
-            this.progressMonitor = progressMonitor;
-        }
+        this.progressMonitor = Optional.ofNullable(progressMonitor).orElse(NullProgressMonitor.INSTANCE);
         String startMessage = tr("Running test {0}", name);
         this.progressMonitor.beginTask(startMessage);
         Main.debug(startMessage);
@@ -344,8 +341,7 @@ public class Test extends AbstractVisitor {
      * @return True if building key is set and different from no,entrance
      */
     protected static final boolean isBuilding(OsmPrimitive p) {
-        String v = p.get("building");
-        return v != null && !"no".equals(v) && !"entrance".equals(v);
+        return p.hasTagDifferent("building", "no", "entrance");
     }
 
     @Override
@@ -359,6 +355,6 @@ public class Test extends AbstractVisitor {
         if (obj == null || getClass() != obj.getClass()) return false;
         Test test = (Test) obj;
         return Objects.equals(name, test.name) &&
-                Objects.equals(description, test.description);
+               Objects.equals(description, test.description);
     }
 }
diff --git a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
index 3bbacc3..261b5fc 100644
--- a/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
+++ b/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
@@ -295,7 +295,7 @@ public final class DomainValidator extends AbstractValidator {
 
     // WARNING: this array MUST be sorted, otherwise it cannot be searched reliably using binary search
     private static final String[] GENERIC_TLDS = new String[] {
-        // Taken from Version 2016122201, Last Updated Fri Dec 23 07:07:01 2016 UTC
+        // Taken from Version 2017021900, Last Updated Sun Feb 19 07:07:01 2017 UTC
         "aaa", // aaa American Automobile Association, Inc.
         "aarp", // aarp AARP
         "abarth", // abarth Fiat Chrysler Automobiles N.V.
@@ -321,6 +321,7 @@ public final class DomainValidator extends AbstractValidator {
         "aetna", // aetna Aetna Life Insurance Company
         "afamilycompany", // afamilycompany Johnson Shareholdings, Inc.
         "afl", // afl Australian Football League
+        "africa", // africa ZA Central Registry NPC trading as Registry.Africa
         "agakhan", // agakhan Fondation Aga Khan (Aga Khan Foundation)
         "agency", // agency Steel Falls, LLC
         "aig", // aig American International Group, Inc.
@@ -1480,6 +1481,7 @@ public final class DomainValidator extends AbstractValidator {
         "xn--mgba3a3ejt", // ارامكو Aramco Services Company
         "xn--mgba7c0bbn0a", // العليان Crescent Holding GmbH
         "xn--mgbab2bd", // بازار CORE Association
+        "xn--mgbai9azgqp6j", // پاکستان National Telecommunication Corporation
         "xn--mgbb9fbpob", // موبايلي GreenTech Consultancy Company W.L.L.
         "xn--mgbca7dzdo", // ابوظبي Abu Dhabi Systems and Information Centre
         "xn--mgbi4ecexp", // كاثوليك Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)
diff --git a/src/org/openstreetmap/josm/data/validation/routines/package.html b/src/org/openstreetmap/josm/data/validation/routines/package.html
index a181343..9376db7 100644
--- a/src/org/openstreetmap/josm/data/validation/routines/package.html
+++ b/src/org/openstreetmap/josm/data/validation/routines/package.html
@@ -23,7 +23,7 @@
 <h1>Table of Contents</h1>
 
 <ul>
-<li>1. <a href="#overview">Overview</a>
+<li>1. <a href="#overview">Overview</a></li>
 <li>2. <a href="#other">Validators</a>
     <ul>
     <li>2.1 <a href="#other.overview">Overview</a></li>
diff --git a/src/org/openstreetmap/josm/data/validation/tests/Addresses.java b/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
index f52295e..c099089 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
@@ -62,7 +62,7 @@ public class Addresses extends Test {
             Severity level;
             // warning level only if several relations have different names, see #10945
             final String name = list.get(0).get("name");
-            if (name == null || SubclassFilteredCollection.filter(list, r -> name.equals(r.get("name"))).size() < list.size()) {
+            if (name == null || SubclassFilteredCollection.filter(list, r -> r.hasTag("name", name)).size() < list.size()) {
                 level = Severity.WARNING;
             } else {
                 level = Severity.OTHER;
@@ -146,7 +146,7 @@ public class Addresses extends Test {
                     if (p instanceof Way) {
                         street.add((Way) p);
                     }
-                    if (relationName != null && p.hasKey("name") && !relationName.equals(p.get("name"))) {
+                    if (relationName != null && p.hasTagDifferent("name", relationName)) {
                         if (wrongStreetNames.isEmpty()) {
                             wrongStreetNames.add(r);
                         }
diff --git a/src/org/openstreetmap/josm/data/validation/tests/Coastlines.java b/src/org/openstreetmap/josm/data/validation/tests/Coastlines.java
index ba4c179..99fa8bb 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/Coastlines.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/Coastlines.java
@@ -250,7 +250,7 @@ public class Coastlines extends Test {
     }
 
     private static boolean isCoastline(OsmPrimitive osm) {
-        return osm instanceof Way && "coastline".equals(osm.get("natural"));
+        return osm instanceof Way && osm.hasTag("natural", "coastline");
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java b/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
index ed30e7a..a45c052 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
@@ -56,9 +56,9 @@ public abstract class CrossingWays extends Test {
         public boolean isPrimitiveUsable(OsmPrimitive w) {
             return super.isPrimitiveUsable(w)
                     && !isProposedOrAbandoned(w)
-                    && ((w.hasKey(HIGHWAY) && !w.hasTag(HIGHWAY, "rest_area", "services"))
+                    && (isHighway(w)
                     || w.hasKey(WATERWAY)
-                    || (w.hasKey(RAILWAY) && !isSubwayOrTramOrRazed(w))
+                    || isRailway(w)
                     || isCoastline(w)
                     || isBuilding(w));
         }
@@ -239,6 +239,14 @@ public abstract class CrossingWays extends Test {
         return w.hasTag("natural", "water", "coastline") || w.hasTag("landuse", "reservoir");
     }
 
+    static boolean isHighway(OsmPrimitive w) {
+        return w.hasTagDifferent(HIGHWAY, "rest_area", "services");
+    }
+
+    static boolean isRailway(OsmPrimitive w) {
+        return w.hasKey(RAILWAY) && !isSubwayOrTramOrRazed(w);
+    }
+
     static boolean isSubwayOrTramOrRazed(OsmPrimitive w) {
         return w.hasTag(RAILWAY, "subway", "tram", "razed");
     }
diff --git a/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java b/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
index a8a3b83..c143956 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
@@ -308,10 +308,7 @@ public class DuplicateNode extends Test {
      */
     @Override
     public Command fixError(TestError testError) {
-        if (!isFixable(testError)) return null;
-        // Diamond operator does not work with Java 9 here
-        @SuppressWarnings("unused")
-        Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>(testError.getPrimitives());
+        Collection<OsmPrimitive> sel = new LinkedList<>(testError.getPrimitives());
         Set<Node> nodes = new LinkedHashSet<>(OsmPrimitive.getFilteredList(sel, Node.class));
 
         // Filter nodes that have already been deleted (see #5764 and #5773)
diff --git a/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java b/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java
index 9e7384c..cf4d354 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/DuplicateRelation.java
@@ -292,7 +292,7 @@ public class DuplicateRelation extends Test {
             }
         }
 
-        //Delete all relations in the list
+        // Delete all relations in the list
         relFix.remove(relationToKeep);
         commands.add(new DeleteCommand(relFix));
         return new SequenceCommand(tr("Delete duplicate relations"), commands);
@@ -305,19 +305,19 @@ public class DuplicateRelation extends Test {
 
         // We fix it only if there is no more than one relation that is relation member.
         Collection<? extends OsmPrimitive> sel = testError.getPrimitives();
-        Set<Relation> relations = new HashSet<>();
+        Set<Relation> rels = new HashSet<>();
 
         for (OsmPrimitive osm : sel) {
             if (osm instanceof Relation) {
-                relations.add((Relation) osm);
+                rels.add((Relation) osm);
             }
         }
 
-        if (relations.size() < 2)
+        if (rels.size() < 2)
             return false;
 
         int relationsWithRelations = 0;
-        for (Relation w : relations) {
+        for (Relation w : rels) {
             List<Relation> rel = OsmPrimitive.getFilteredList(w.getReferrers(), Relation.class);
             if (!rel.isEmpty()) {
                 ++relationsWithRelations;
diff --git a/src/org/openstreetmap/josm/data/validation/tests/DuplicateWay.java b/src/org/openstreetmap/josm/data/validation/tests/DuplicateWay.java
index 71567a0..70d0b04 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/DuplicateWay.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/DuplicateWay.java
@@ -248,23 +248,23 @@ public class DuplicateWay extends Test {
     @Override
     public Command fixError(TestError testError) {
         Collection<? extends OsmPrimitive> sel = testError.getPrimitives();
-        Set<Way> ways = new HashSet<>();
+        Set<Way> wayz = new HashSet<>();
 
         for (OsmPrimitive osm : sel) {
             if (osm instanceof Way && !osm.isDeleted()) {
-                ways.add((Way) osm);
+                wayz.add((Way) osm);
             }
         }
 
-        if (ways.size() < 2)
+        if (wayz.size() < 2)
             return null;
 
         long idToKeep = 0;
-        Way wayToKeep = ways.iterator().next();
+        Way wayToKeep = wayz.iterator().next();
         // Find the way that is member of one or more relations. (If any)
         Way wayWithRelations = null;
         List<Relation> relations = null;
-        for (Way w : ways) {
+        for (Way w : wayz) {
             List<Relation> rel = OsmPrimitive.getFilteredList(w.getReferrers(), Relation.class);
             if (!rel.isEmpty()) {
                 if (wayWithRelations != null)
@@ -283,7 +283,7 @@ public class DuplicateWay extends Test {
         Collection<Command> commands = new LinkedList<>();
 
         // Fix relations.
-        if (wayWithRelations != null && wayToKeep != wayWithRelations) {
+        if (wayWithRelations != null && relations != null && wayToKeep != wayWithRelations) {
             for (Relation rel : relations) {
                 Relation newRel = new Relation(rel);
                 for (int i = 0; i < newRel.getMembers().size(); ++i) {
@@ -296,10 +296,10 @@ public class DuplicateWay extends Test {
             }
         }
 
-        //Delete all ways in the list
-        //Note: nodes are not deleted, these can be detected and deleted at next pass
-        ways.remove(wayToKeep);
-        commands.add(new DeleteCommand(ways));
+        // Delete all ways in the list
+        // Note: nodes are not deleted, these can be detected and deleted at next pass
+        wayz.remove(wayToKeep);
+        commands.add(new DeleteCommand(wayz));
         return new SequenceCommand(tr("Delete duplicate ways"), commands);
     }
 
@@ -308,24 +308,24 @@ public class DuplicateWay extends Test {
         if (!(testError.getTester() instanceof DuplicateWay))
             return false;
 
-        //Do not automatically fix same ways with different tags
+        // Do not automatically fix same ways with different tags
         if (testError.getCode() != DUPLICATE_WAY) return false;
 
         // We fix it only if there is no more than one way that is relation member.
         Collection<? extends OsmPrimitive> sel = testError.getPrimitives();
-        Set<Way> ways = new HashSet<>();
+        Set<Way> wayz = new HashSet<>();
 
         for (OsmPrimitive osm : sel) {
             if (osm instanceof Way) {
-                ways.add((Way) osm);
+                wayz.add((Way) osm);
             }
         }
 
-        if (ways.size() < 2)
+        if (wayz.size() < 2)
             return false;
 
         int waysWithRelations = 0;
-        for (Way w : ways) {
+        for (Way w : wayz) {
             List<Relation> rel = OsmPrimitive.getFilteredList(w.getReferrers(), Relation.class);
             if (!rel.isEmpty()) {
                 ++waysWithRelations;
diff --git a/src/org/openstreetmap/josm/data/validation/tests/Highways.java b/src/org/openstreetmap/josm/data/validation/tests/Highways.java
index 1c66427..e385baa 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/Highways.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/Highways.java
@@ -91,8 +91,7 @@ public class Highways extends Test {
     @Override
     public void visit(Way w) {
         if (w.isUsable()) {
-            if (w.isClosed() && w.hasKey("highway") && CLASSIFIED_HIGHWAYS.contains(w.get("highway"))
-                    && w.hasKey("junction") && "roundabout".equals(w.get("junction"))) {
+            if (w.isClosed() && w.hasTag("highway", CLASSIFIED_HIGHWAYS) && w.hasTag("junction", "roundabout")) {
                 // TODO: find out how to handle splitted roundabouts (see #12841)
                 testWrongRoundabout(w);
             }
@@ -130,9 +129,10 @@ public class Highways extends Test {
                 Boolean oneway2 = OsmUtils.getOsmBoolean(list.get(1).get("oneway"));
                 if (list.size() > 2 || oneway1 == null || oneway2 == null || !oneway1 || !oneway2) {
                     // Error when the highway tags do not match
-                    if (!w.get("highway").equals(s)) {
+                    String value = w.get("highway");
+                    if (!value.equals(s)) {
                         errors.add(TestError.builder(this, Severity.WARNING, WRONG_ROUNDABOUT_HIGHWAY)
-                                .message(tr("Incorrect roundabout (highway: {0} instead of {1})", w.get("highway"), s))
+                                .message(tr("Incorrect roundabout (highway: {0} instead of {1})", value, s))
                                 .primitives(w)
                                 .fix(() -> new ChangePropertyCommand(w, "highway", s))
                                 .build());
diff --git a/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java b/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java
index 1fad788..6e453af 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java
@@ -34,7 +34,7 @@ public class LongSegment extends Test {
 
     @Override
     public void visit(Way w) {
-        if ("ferry".equals(w.get("route"))) {
+        if (w.hasTag("route", "ferry")) {
             return;
         }
         Double length = w.getLongestSegmentLength();
diff --git a/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java b/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
index 25037ba..61cfc58 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
@@ -139,6 +139,11 @@ public class MapCSSTagChecker extends Test.TagTest {
          */
         Command createCommand(OsmPrimitive p, Selector matchingSelector);
 
+        /**
+         * Checks that object is either an {@link Expression} or a {@link String}.
+         * @param obj object to check
+         * @throws IllegalArgumentException if object is not an {@code Expression} or a {@code String}
+         */
         static void checkObject(final Object obj) {
             CheckParameterUtil.ensureThat(obj instanceof Expression || obj instanceof String,
                     "instance of Exception or String expected, but got " + obj);
@@ -251,6 +256,9 @@ public class MapCSSTagChecker extends Test.TagTest {
         }
     }
 
+    /**
+     * Tag check.
+     */
     public static class TagCheck implements Predicate<OsmPrimitive> {
         /** The selector of this {@code TagCheck} */
         protected final GroupedMapCSSRule rule;
@@ -751,7 +759,7 @@ public class MapCSSTagChecker extends Test.TagTest {
                 if (Main.pref.getBoolean("validator.auto_reload_local_rules", true) && source.isLocal()) {
                     Main.fileWatcher.registerValidatorRule(source);
                 }
-            } catch (IOException ex) {
+            } catch (IOException | IllegalStateException ex) {
                 Main.warn(tr("Failed to add {0} to tag checker", i));
                 Main.warn(ex, false);
             } catch (ParseException ex) {
diff --git a/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java b/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
index b19fc1d..9f7fab9 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
@@ -174,7 +174,7 @@ public class MultipolygonTest extends Test {
      */
     private void checkStyleConsistency(Relation r, Multipolygon polygon) {
         ElemStyles styles = MapPaintStyles.getStyles();
-        if (styles != null && !"boundary".equals(r.get("type"))) {
+        if (styles != null && !r.hasTag("type", "boundary")) {
             AreaElement area = ElemStyles.getAreaElemStyle(r, false);
             boolean areaStyle = area != null;
             // If area style was not found for relation then use style of ways
@@ -668,9 +668,7 @@ public class MultipolygonTest extends Test {
     private static Collection<? extends OsmPrimitive> combineRelAndPrimitives(Relation r, Collection<? extends OsmPrimitive> primitives) {
         // add multipolygon in order to let user select something and fix the error
         if (!primitives.contains(r)) {
-            // Diamond operator does not work with Java 9 here
-            @SuppressWarnings("unused")
-            List<OsmPrimitive> newPrimitives = new ArrayList<OsmPrimitive>(primitives);
+            List<OsmPrimitive> newPrimitives = new ArrayList<>(primitives);
             newPrimitives.add(0, r);
             return newPrimitives;
         } else {
diff --git a/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java b/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java
index ea22cfb..8aed181 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/OverlappingWays.java
@@ -89,9 +89,9 @@ public class OverlappingWays extends Test {
                 int area = 0;
 
                 for (WaySegment ws : duplicated) {
-                    if (ws.way.get("highway") != null) {
+                    if (ws.way.hasKey("highway")) {
                         highway++;
-                    } else if (ws.way.get("railway") != null) {
+                    } else if (ws.way.hasKey("railway")) {
                         railway++;
                     }
                     Boolean ar = OsmUtils.getOsmBoolean(ws.way.get("area"));
@@ -106,10 +106,8 @@ public class OverlappingWays extends Test {
                     prims.add(ws.way);
                     currentWays.add(ws.way);
                 }
-                /* These ways not seen before
-                 * If two or more of the overlapping ways are
-                 * highways or railways mark a separate error
-                 */
+                // These ways not seen before
+                // If two or more of the overlapping ways are highways or railways mark a separate error
                 if ((highlight = seenWays.get(currentWays)) == null) {
                     String errortype;
                     int type;
diff --git a/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java b/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
index 4f0881e..7d167b8 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
@@ -164,8 +164,7 @@ public class PowerLines extends Test {
      * @return {@code true} if power key is set and equal to possible values
      */
     private static boolean isPowerIn(OsmPrimitive p, Collection<String> values) {
-        String v = p.get("power");
-        return v != null && values != null && values.contains(v);
+        return p.hasTag("power", values);
     }
 
     /**
@@ -175,7 +174,6 @@ public class PowerLines extends Test {
      * @return {@code true} if power key is set and equal to possible values
      */
     private static boolean isBuildingIn(OsmPrimitive p, Collection<String> values) {
-        String v = p.get("building");
-        return v != null && values != null && values.contains(v);
+        return p.hasTag("building", values);
     }
 }
diff --git a/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java b/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java
index 1953df2..82e3b53 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/TurnrestrictionTest.java
@@ -47,7 +47,7 @@ public class TurnrestrictionTest extends Test {
 
     @Override
     public void visit(Relation r) {
-        if (!"restriction".equals(r.get("type")))
+        if (!r.hasTag("type", "restriction"))
             return;
 
         Way fromWay = null;
@@ -223,7 +223,7 @@ public class TurnrestrictionTest extends Test {
     }
 
     private static boolean isFullOneway(Way w) {
-        return w.isOneway() != 0 && !"no".equals(w.get("oneway:bicycle"));
+        return w.isOneway() != 0 && !w.hasTag("oneway:bicycle", "no");
     }
 
     private void checkIfConnected(Way previous, Way current, String msg, int code) {
diff --git a/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java b/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
index 18d2707..06561b5 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
@@ -110,7 +110,7 @@ public abstract class UnconnectedWays extends Test {
 
         @Override
         public boolean isPrimitiveUsable(OsmPrimitive p) {
-            return super.isPrimitiveUsable(p) && (p.hasKey("natural") || p.hasKey("landuse"));
+            return super.isPrimitiveUsable(p) && p.hasKey("natural", "landuse");
         }
     }
 
@@ -184,8 +184,7 @@ public abstract class UnconnectedWays extends Test {
                             || en.hasTag("amenity", "parking_entrance")
                             || en.hasTag("railway", "buffer_stop")
                             || en.isKeyTrue("noexit")
-                            || en.hasKey("entrance")
-                            || en.hasKey("barrier")) {
+                            || en.hasKey("entrance", "barrier")) {
                         continue;
                     }
                     // to handle intersections of 't' shapes and similar
@@ -306,7 +305,7 @@ public abstract class UnconnectedWays extends Test {
             String highway = w.get("highway");
             this.isAbandoned = "abandoned".equals(railway) || w.isKeyTrue("disused");
             this.highway = (highway != null || railway != null) && !isAbandoned;
-            this.isBoundary = !this.highway && "administrative".equals(w.get("boundary"));
+            this.isBoundary = !this.highway && w.hasTag("boundary", "administrative");
             line = new Line2D.Double(n1.getEastNorth().east(), n1.getEastNorth().north(),
                     n2.getEastNorth().east(), n2.getEastNorth().north());
             len = line.getP1().distance(line.getP2());
@@ -443,14 +442,17 @@ public abstract class UnconnectedWays extends Test {
 
     @Override
     public void visit(Way w) {
-        if (w.getNodesCount() > 0 // do not consider empty ways
-                && !w.hasKey("addr:interpolation") // ignore addr:interpolation ways as they are not physical features and most of
-                                                   // the time very near the associated highway, which is perfectly normal, see #9332
-                && !w.hasTag("highway", "platform") && !w.hasTag("railway", "platform") // similarly for public transport platforms
+        // do not consider empty ways
+        if (w.getNodesCount() > 0
+                // ignore addr:interpolation ways as they are not physical features and most of
+                // the time very near the associated highway, which is perfectly normal, see #9332
+                && !w.hasKey("addr:interpolation")
+                // similarly for public transport platforms
+                && !w.hasTag("highway", "platform") && !w.hasTag("railway", "platform")
                 ) {
             ways.addAll(getWaySegments(w));
             QuadBuckets<Node> set = endnodes;
-            if (w.hasKey("highway") || w.hasKey("railway")) {
+            if (w.hasKey("highway", "railway")) {
                 set = endnodesHighway;
             }
             addNode(w.firstNode(), set);
diff --git a/src/org/openstreetmap/josm/data/validation/tests/WayConnectedToArea.java b/src/org/openstreetmap/josm/data/validation/tests/WayConnectedToArea.java
index fdcda25..18154d6 100644
--- a/src/org/openstreetmap/josm/data/validation/tests/WayConnectedToArea.java
+++ b/src/org/openstreetmap/josm/data/validation/tests/WayConnectedToArea.java
@@ -80,8 +80,7 @@ public class WayConnectedToArea extends Test {
     }
 
     private static boolean isArea(OsmPrimitive p) {
-        return (p.hasKey("landuse") || p.hasKey("natural"))
-                && ElemStyles.hasAreaElemStyle(p, false);
+        return p.hasKey("landuse", "natural") && ElemStyles.hasAreaElemStyle(p, false);
     }
 
     private void addPossibleError(Way w, Node wayNode, OsmPrimitive p, OsmPrimitive area) {
diff --git a/src/org/openstreetmap/josm/data/validation/util/MultipleNameVisitor.java b/src/org/openstreetmap/josm/data/validation/util/MultipleNameVisitor.java
index 36c6b2d..78bfca3 100644
--- a/src/org/openstreetmap/josm/data/validation/util/MultipleNameVisitor.java
+++ b/src/org/openstreetmap/josm/data/validation/util/MultipleNameVisitor.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.data.validation.util;
 import static org.openstreetmap.josm.tools.I18n.trn;
 
 import java.util.Collection;
+import java.util.Optional;
 
 import javax.swing.Icon;
 import javax.swing.JLabel;
@@ -41,10 +42,7 @@ public class MultipleNameVisitor extends NameVisitor {
 
         multipleClassname = null;
         for (OsmPrimitive osm : data) {
-            String name = osm.get("name");
-            if (name == null) {
-                name = osm.get("ref");
-            }
+            String name = Optional.ofNullable(osm.get("name")).orElseGet(() -> osm.get("ref"));
             if (name != null && !name.isEmpty() && multipleName.length() <= MULTIPLE_NAME_MAX_LENGTH) {
                 if (multipleName.length() > 0) {
                     multipleName.append(", ");
diff --git a/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java b/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
index 93ff71d..dee1303 100644
--- a/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
+++ b/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
@@ -168,8 +168,8 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
                     n = node.getName();
                 }
                 if (n == null) {
-                    String s;
-                    if ((s = node.get("addr:housename")) != null) {
+                    String s = node.get("addr:housename");
+                    if (s != null) {
                         /* I18n: name of house as parameter */
                         n = tr("House {0}", s);
                     }
@@ -249,14 +249,14 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
                     n = way.get("ref");
                 }
                 if (n == null) {
-                    n = (way.get("highway") != null) ? tr("highway") :
-                            (way.get("railway") != null) ? tr("railway") :
-                                (way.get("waterway") != null) ? tr("waterway") :
-                                        (way.get("landuse") != null) ? tr("landuse") : null;
+                    n = way.hasKey("highway") ? tr("highway") :
+                        way.hasKey("railway") ? tr("railway") :
+                        way.hasKey("waterway") ? tr("waterway") :
+                        way.hasKey("landuse") ? tr("landuse") : null;
                 }
                 if (n == null) {
-                    String s;
-                    if ((s = way.get("addr:housename")) != null) {
+                    String s = way.get("addr:housename");
+                    if (s != null) {
                         /* I18n: name of house as parameter */
                         n = tr("House {0}", s);
                     }
@@ -272,7 +272,9 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
                         }
                     }
                 }
-                if (n == null && way.get("building") != null) n = tr("building");
+                if (n == null && way.hasKey("building")) {
+                    n = tr("building");
+                }
                 if (n == null || n.isEmpty()) {
                     n = String.valueOf(way.getId());
                 }
@@ -406,7 +408,7 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
     private static String getRelationTypeName(IRelation relation) {
         String name = trc("Relation type", relation.get("type"));
         if (name == null) {
-            name = (relation.get("public_transport") != null) ? tr("public transport") : null;
+            name = relation.hasKey("public_transport") ? tr("public transport") : null;
         }
         if (name == null) {
             String building = relation.get("building");
@@ -572,21 +574,21 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
         }
         if (sb.length() == 0) {
             sb.append(
-                    (way.get("highway") != null) ? tr("highway") :
-                        (way.get("railway") != null) ? tr("railway") :
-                            (way.get("waterway") != null) ? tr("waterway") :
-                                (way.get("landuse") != null) ? tr("landuse") : ""
+                    way.hasKey("highway") ? tr("highway") :
+                    way.hasKey("railway") ? tr("railway") :
+                    way.hasKey("waterway") ? tr("waterway") :
+                    way.hasKey("landuse") ? tr("landuse") : ""
                     );
         }
 
-        int nodesNo = way.isClosed() ? way.getNumNodes() -1 : way.getNumNodes();
+        int nodesNo = way.isClosed() ? (way.getNumNodes() -1) : way.getNumNodes();
         String nodes = trn("{0} node", "{0} nodes", nodesNo, nodesNo);
         if (sb.length() == 0) {
             sb.append(way.getId());
         }
         /* note: length == 0 should no longer happen, but leave the bracket code
            nevertheless, who knows what future brings */
-        sb.append((sb.length() > 0) ? " ("+nodes+')' : nodes);
+        sb.append((sb.length() > 0) ? (" ("+nodes+')') : nodes);
         decorateNameWithId(sb, way);
         return sb.toString();
     }
@@ -594,8 +596,9 @@ public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter
     @Override
     public String format(HistoryRelation relation) {
         StringBuilder sb = new StringBuilder();
-        if (relation.get("type") != null) {
-            sb.append(relation.get("type"));
+        String type = relation.get("type");
+        if (type != null) {
+            sb.append(type);
         } else {
             sb.append(tr("relation"));
         }
diff --git a/src/org/openstreetmap/josm/gui/IconToggleButton.java b/src/org/openstreetmap/josm/gui/IconToggleButton.java
index 69e79d2..364c459 100644
--- a/src/org/openstreetmap/josm/gui/IconToggleButton.java
+++ b/src/org/openstreetmap/josm/gui/IconToggleButton.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.gui;
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.util.Optional;
 
 import javax.swing.Action;
 import javax.swing.Icon;
@@ -151,10 +152,7 @@ public class IconToggleButton extends JToggleButton implements HideableButton, P
 
     @Override
     public Icon getIcon() {
-        Object o = getSafeActionValue(Action.LARGE_ICON_KEY);
-        if (o == null)
-            o = getSafeActionValue(Action.SMALL_ICON);
-        return (Icon) o;
+        return (Icon) Optional.ofNullable(getSafeActionValue(Action.LARGE_ICON_KEY)).orElseGet(() -> getSafeActionValue(Action.SMALL_ICON));
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/MainPanel.java b/src/org/openstreetmap/josm/gui/MainPanel.java
index 5954142..6c52f7c 100644
--- a/src/org/openstreetmap/josm/gui/MainPanel.java
+++ b/src/org/openstreetmap/josm/gui/MainPanel.java
@@ -43,7 +43,7 @@ public class MainPanel extends JPanel {
      * Update the content of this {@link MainFrame} to either display the map or display the welcome screen.
      * @param showMap If the map should be displayed.
      */
-    protected void updateContent(boolean showMap) {
+    protected synchronized void updateContent(boolean showMap) {
         GuiHelper.assertCallFromEdt();
         MapFrame old = map;
         if (old != null && showMap) {
@@ -108,7 +108,7 @@ public class MainPanel extends JPanel {
      * @param listener The MapFrameListener
      * @return {@code true} if the listeners collection changed as a result of the call.
      */
-    public boolean addAndFireMapFrameListener(MapFrameListener listener) {
+    public synchronized boolean addAndFireMapFrameListener(MapFrameListener listener) {
         boolean changed = addMapFrameListener(listener);
         if (changed && map != null) {
             listener.mapFrameInitialized(null, map);
@@ -138,7 +138,7 @@ public class MainPanel extends JPanel {
      * Gets the {@link GettingStarted} panel.
      * @return The panel.
      */
-    public GettingStarted getGettingStarted() {
+    public synchronized GettingStarted getGettingStarted() {
         if (gettingStarted == null) {
             gettingStarted = new GettingStarted();
         }
diff --git a/src/org/openstreetmap/josm/gui/MapFrame.java b/src/org/openstreetmap/josm/gui/MapFrame.java
index 12b60d5..b819b0d 100644
--- a/src/org/openstreetmap/josm/gui/MapFrame.java
+++ b/src/org/openstreetmap/josm/gui/MapFrame.java
@@ -118,7 +118,6 @@ public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeLi
     private final JToolBar toolBarToggle = new JToolBar(JToolBar.VERTICAL);
 
     private final List<ToggleDialog> allDialogs = new ArrayList<>();
-    private final List<MapMode> mapModes = new ArrayList<>();
     private final List<IconToggleButton> allDialogButtons = new ArrayList<>();
     public final List<IconToggleButton> allMapModeButtons = new ArrayList<>();
 
@@ -387,9 +386,7 @@ public class MapFrame extends JPanel implements Destroyable, ActiveLayerChangeLi
     }
 
     public void addMapMode(IconToggleButton b) {
-        if (b.getAction() instanceof MapMode) {
-            mapModes.add((MapMode) b.getAction());
-        } else
+        if (!(b.getAction() instanceof MapMode))
             throw new IllegalArgumentException("MapMode action must be subclass of MapMode");
         allMapModeButtons.add(b);
         toolBarActionsGroup.add(b);
diff --git a/src/org/openstreetmap/josm/gui/MapMover.java b/src/org/openstreetmap/josm/gui/MapMover.java
index 1fd5943..03e9b53 100644
--- a/src/org/openstreetmap/josm/gui/MapMover.java
+++ b/src/org/openstreetmap/josm/gui/MapMover.java
@@ -11,6 +11,7 @@ import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseWheelEvent;
 import java.util.ArrayList;
+import java.util.Optional;
 
 import javax.swing.AbstractAction;
 import javax.swing.JPanel;
@@ -72,12 +73,10 @@ public class MapMover extends MouseAdapter implements Destroyable {
         @Override
         public void actionPerformed(ActionEvent e) {
             if (".".equals(action) || ",".equals(action)) {
-                Point mouse = nc.getMousePosition();
-                if (mouse == null)
-                    mouse = new Point((int) nc.getBounds().getCenterX(), (int) nc.getBounds().getCenterY());
-                MouseWheelEvent we = new MouseWheelEvent(nc, e.getID(), e.getWhen(), e.getModifiers(), mouse.x, mouse.y, 0, false,
-                        MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, ",".equals(action) ? -1 : 1);
-                mouseWheelMoved(we);
+                Point mouse = Optional.ofNullable(nc.getMousePosition()).orElseGet(
+                    () -> new Point((int) nc.getBounds().getCenterX(), (int) nc.getBounds().getCenterY()));
+                mouseWheelMoved(new MouseWheelEvent(nc, e.getID(), e.getWhen(), e.getModifiers(), mouse.x, mouse.y, 0, false,
+                        MouseWheelEvent.WHEEL_UNIT_SCROLL, 1, ",".equals(action) ? -1 : 1));
             } else {
                 EastNorth center = nc.getCenter();
                 EastNorth newcenter = nc.getEastNorth(nc.getWidth()/2+nc.getWidth()/5, nc.getHeight()/2+nc.getHeight()/5);
diff --git a/src/org/openstreetmap/josm/gui/MapScaler.java b/src/org/openstreetmap/josm/gui/MapScaler.java
index 0526308..d659e50 100644
--- a/src/org/openstreetmap/josm/gui/MapScaler.java
+++ b/src/org/openstreetmap/josm/gui/MapScaler.java
@@ -109,7 +109,6 @@ public class MapScaler extends JComponent implements Helpful, Accessible {
     private static final class TickMarks {
 
         private final double dist100Pixel;
-        private final double lineDistance;
         /**
          * Distance in meters between two ticks.
          */
@@ -124,7 +123,7 @@ public class MapScaler extends JComponent implements Helpful, Accessible {
          */
         TickMarks(double dist100Pixel, int width) {
             this.dist100Pixel = dist100Pixel;
-            lineDistance = dist100Pixel * width / 100;
+            double lineDistance = dist100Pixel * width / 100;
 
             double log10 = Math.log(lineDistance) / Math.log(10);
             double spacingLog10 = Math.pow(10, Math.floor(log10));
diff --git a/src/org/openstreetmap/josm/gui/MapStatus.java b/src/org/openstreetmap/josm/gui/MapStatus.java
index 6f6f542..d5928cc 100644
--- a/src/org/openstreetmap/josm/gui/MapStatus.java
+++ b/src/org/openstreetmap/josm/gui/MapStatus.java
@@ -348,8 +348,8 @@ public final class MapStatus extends JPanel implements Helpful, Destroyable, Pre
                     }
 
                     oldMousePos = ms.mousePos;
-                } catch (ConcurrentModificationException x) {
-                    Main.warn(x);
+                } catch (ConcurrentModificationException ex) {
+                    Main.warn(ex);
                 } finally {
                     if (ds != null) {
                         if (isAtOldPosition && middleMouseDown) {
@@ -406,13 +406,14 @@ public final class MapStatus extends JPanel implements Helpful, Destroyable, Pre
                         }
 
                         EventQueue.invokeAndWait(new CollectorWorker(ms));
-                    } catch (InterruptedException e) {
-                        // Occurs frequently during JOSM shutdown, log set to trace only
-                        Main.trace("InterruptedException in "+MapStatus.class.getSimpleName());
                     } catch (InvocationTargetException e) {
                         Main.warn(e);
                     }
                 }
+            } catch (InterruptedException e) {
+                // Occurs frequently during JOSM shutdown, log set to trace only
+                Main.trace("InterruptedException in "+MapStatus.class.getSimpleName());
+                Thread.currentThread().interrupt();
             } finally {
                 unregisterListeners();
             }
diff --git a/src/org/openstreetmap/josm/gui/MapViewState.java b/src/org/openstreetmap/josm/gui/MapViewState.java
index 7003750..e861289 100644
--- a/src/org/openstreetmap/josm/gui/MapViewState.java
+++ b/src/org/openstreetmap/josm/gui/MapViewState.java
@@ -11,6 +11,7 @@ import java.awt.geom.Point2D.Double;
 import java.awt.geom.Rectangle2D;
 import java.io.Serializable;
 import java.util.Objects;
+import java.util.Optional;
 
 import javax.swing.JComponent;
 
@@ -375,10 +376,8 @@ public final class MapViewState implements Serializable {
     }
 
     private static EastNorth calculateDefaultCenter() {
-        Bounds b = DownloadDialog.getSavedDownloadBounds();
-        if (b == null) {
-            b = Main.getProjection().getWorldBoundsLatLon();
-        }
+        Bounds b = Optional.ofNullable(DownloadDialog.getSavedDownloadBounds()).orElseGet(
+                () -> Main.getProjection().getWorldBoundsLatLon());
         return Main.getProjection().latlon2eastNorth(b.getCenter());
     }
 
diff --git a/src/org/openstreetmap/josm/gui/NavigatableComponent.java b/src/org/openstreetmap/josm/gui/NavigatableComponent.java
index 5f005bf..ded6858 100644
--- a/src/org/openstreetmap/josm/gui/NavigatableComponent.java
+++ b/src/org/openstreetmap/josm/gui/NavigatableComponent.java
@@ -703,6 +703,7 @@ public class NavigatableComponent extends JComponent implements Helpful {
                             Thread.sleep(1000L / fps);
                         } catch (InterruptedException ex) {
                             Main.warn("InterruptedException in "+NavigatableComponent.class.getSimpleName()+" during smooth scrolling");
+                            Thread.currentThread().interrupt();
                         }
                     }
                 }
diff --git a/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java b/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java
index 70dc117..47414e5 100644
--- a/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java
+++ b/src/org/openstreetmap/josm/gui/conflict/pair/AbstractListMerger.java
@@ -828,7 +828,7 @@ implements PropertyChangeListener, ChangeListener, IConflictResolver {
         }
     }
 
-    protected void handlePropertyChangeFrozen(boolean oldValue, boolean newValue) {
+    protected void handlePropertyChangeFrozen(boolean newValue) {
         myEntriesTable.getSelectionModel().clearSelection();
         myEntriesTable.setEnabled(!newValue);
         theirEntriesTable.getSelectionModel().clearSelection();
@@ -852,7 +852,7 @@ implements PropertyChangeListener, ChangeListener, IConflictResolver {
     @Override
     public void propertyChange(PropertyChangeEvent evt) {
         if (evt.getPropertyName().equals(AbstractListMergeModel.FROZEN_PROP)) {
-            handlePropertyChangeFrozen((Boolean) evt.getOldValue(), (Boolean) evt.getNewValue());
+            handlePropertyChangeFrozen((Boolean) evt.getNewValue());
         }
     }
 
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java b/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
index 7a5a49b..7f1d80f 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
@@ -131,15 +131,21 @@ public class CombinePrimitiveResolverDialog extends JDialog {
      * @param primitive the target primitive
      */
     public void setTargetPrimitive(final OsmPrimitive primitive) {
+        setTargetPrimitive(primitive, true);
+    }
+
+    /**
+     * Sets the primitive the collection of primitives is merged or combined to.
+     *
+     * @param primitive the target primitive
+     * @param updateTitle {@code true} to call {@link #updateTitle} in EDT (can be a slow operation)
+     * @since 11626
+     */
+    private void setTargetPrimitive(final OsmPrimitive primitive, boolean updateTitle) {
         this.targetPrimitive = primitive;
-        GuiHelper.runInEDTAndWait(() -> {
-            updateTitle();
-            if (primitive instanceof Way) {
-                pnlRelationMemberConflictResolver.initForWayCombining();
-            } else if (primitive instanceof Node) {
-                pnlRelationMemberConflictResolver.initForNodeMerging();
-            }
-        });
+        if (updateTitle) {
+            GuiHelper.runInEDTAndWait(this::updateTitle);
+        }
     }
 
     protected void updateTitle() {
@@ -152,11 +158,13 @@ public class CombinePrimitiveResolverDialog extends JDialog {
                     .getDisplayName(DefaultNameFormatter.getInstance())));
             helpAction.setHelpTopic(ht("/Action/CombineWay#ResolvingConflicts"));
             getRootPane().putClientProperty("help", ht("/Action/CombineWay#ResolvingConflicts"));
+            pnlRelationMemberConflictResolver.initForWayCombining();
         } else if (targetPrimitive instanceof Node) {
             setTitle(tr("Conflicts when merging nodes - target node is ''{0}''", targetPrimitive
                     .getDisplayName(DefaultNameFormatter.getInstance())));
             helpAction.setHelpTopic(ht("/Action/MergeNodes#ResolvingConflicts"));
             getRootPane().putClientProperty("help", ht("/Action/MergeNodes#ResolvingConflicts"));
+            pnlRelationMemberConflictResolver.initForNodeMerging();
         }
     }
 
@@ -294,8 +302,17 @@ public class CombinePrimitiveResolverDialog extends JDialog {
      * Prepares the default decisions for populated tag and relation membership conflicts.
      */
     public void prepareDefaultDecisions() {
-        getTagConflictResolverModel().prepareDefaultTagDecisions();
-        getRelationMemberConflictResolverModel().prepareDefaultRelationDecisions();
+        prepareDefaultDecisions(true);
+    }
+
+    /**
+     * Prepares the default decisions for populated tag and relation membership conflicts.
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    private void prepareDefaultDecisions(boolean fireEvent) {
+        getTagConflictResolverModel().prepareDefaultTagDecisions(fireEvent);
+        getRelationMemberConflictResolverModel().prepareDefaultRelationDecisions(fireEvent);
     }
 
     protected JPanel buildEmptyConflictsPanel() {
@@ -475,7 +492,7 @@ public class CombinePrimitiveResolverDialog extends JDialog {
         CheckParameterUtil.ensureParameterNotNull(targetPrimitives, "targetPrimitives");
 
         final TagCollection completeWayTags = new TagCollection(tagsOfPrimitives);
-        TagConflictResolutionUtil.combineTigerTags(completeWayTags);
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(completeWayTags);
         TagConflictResolutionUtil.normalizeTagCollectionBeforeEditing(completeWayTags, primitives);
         final TagCollection tagsToEdit = new TagCollection(completeWayTags);
         TagConflictResolutionUtil.completeTagCollectionForEditing(tagsToEdit);
@@ -500,26 +517,31 @@ public class CombinePrimitiveResolverDialog extends JDialog {
             // Build conflict resolution dialog
             final CombinePrimitiveResolverDialog dialog = CombinePrimitiveResolverDialog.getInstance();
 
-            dialog.getTagConflictResolverModel().populate(tagsToEdit, completeWayTags.getKeysWithMultipleValues());
-            dialog.getRelationMemberConflictResolverModel().populate(parentRelations, primitives);
-            dialog.prepareDefaultDecisions();
+            dialog.getTagConflictResolverModel().populate(tagsToEdit, completeWayTags.getKeysWithMultipleValues(), false);
+            dialog.getRelationMemberConflictResolverModel().populate(parentRelations, primitives, false);
+            dialog.prepareDefaultDecisions(false);
 
             // Ensure a proper title is displayed instead of a previous target (fix #7925)
             if (targetPrimitives.size() == 1) {
-                dialog.setTargetPrimitive(targetPrimitives.iterator().next());
+                dialog.setTargetPrimitive(targetPrimitives.iterator().next(), false);
             } else {
-                dialog.setTargetPrimitive(null);
+                dialog.setTargetPrimitive(null, false);
             }
 
             // Resolve tag conflicts if necessary
             if (!dialog.isResolvedCompletely()) {
+                GuiHelper.runInEDTAndWait(() -> {
+                    dialog.getTagConflictResolverModel().fireTableDataChanged();
+                    dialog.getRelationMemberConflictResolverModel().fireTableDataChanged();
+                    dialog.updateTitle();
+                });
                 dialog.setVisible(true);
                 if (!dialog.isApplied()) {
                     throw new UserCancelException();
                 }
             }
             for (OsmPrimitive i : targetPrimitives) {
-                dialog.setTargetPrimitive(i);
+                dialog.setTargetPrimitive(i, false);
                 cmds.addAll(dialog.buildResolutionCommands());
             }
         }
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java b/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java
index 9ee5a8b..7ff211a 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java
@@ -8,6 +8,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.Command;
@@ -121,12 +122,8 @@ public class MultiValueResolutionDecision {
      * @param value the new vlaue
      */
     public void setNew(String value) {
-        if (value == null) {
-            value = "";
-        }
-        this.value = value;
+        this.value = Optional.ofNullable(value).orElse("");
         this.type = MultiValueDecisionType.KEEP_ONE;
-
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecision.java b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecision.java
index 8afb420..ca29f88 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecision.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecision.java
@@ -5,6 +5,7 @@ import static org.openstreetmap.josm.gui.conflict.tags.RelationMemberConflictDec
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.util.Objects;
+import java.util.Optional;
 
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
@@ -57,10 +58,7 @@ public class RelationMemberConflictDecision {
     }
 
     public void decide(RelationMemberConflictDecisionType decision) {
-        if (decision == null) {
-            decision = UNDECIDED;
-        }
-        this.decision = decision;
+        this.decision = Optional.ofNullable(decision).orElse(UNDECIDED);
     }
 
     public boolean isDecided() {
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
index 058881a..5560b2c 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
@@ -128,7 +128,7 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
             break;
         case 4: /* decision */
             d.decide((RelationMemberConflictDecisionType) value);
-            refresh();
+            refresh(false);
             break;
         default: // Do nothing
         }
@@ -158,6 +158,19 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
      * @param memberPrimitives the child primitives. Empty list assumed if null.
      */
     public void populate(Collection<Relation> relations, Collection<? extends OsmPrimitive> memberPrimitives) {
+        populate(relations, memberPrimitives, true);
+    }
+
+    /**
+     * Populates the model with the relation members belonging to one of the relations in <code>relations</code>
+     * and referring to one of the primitives in <code>memberPrimitives</code>.
+     *
+     * @param relations  the parent relations. Empty list assumed if null.
+     * @param memberPrimitives the child primitives. Empty list assumed if null.
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    void populate(Collection<Relation> relations, Collection<? extends OsmPrimitive> memberPrimitives, boolean fireEvent) {
         decisions.clear();
         relations = relations == null ? Collections.<Relation>emptyList() : relations;
         memberPrimitives = memberPrimitives == null ? new LinkedList<>() : memberPrimitives;
@@ -168,7 +181,7 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
         }
         this.relations = relations;
         this.primitives = memberPrimitives;
-        refresh();
+        refresh(fireEvent);
     }
 
     /**
@@ -198,7 +211,19 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
      * For multiple occurrences those conditions are tested stepwise for each occurrence.
      */
     public void prepareDefaultRelationDecisions() {
+        prepareDefaultRelationDecisions(true);
+    }
 
+    /**
+     * Prepare the default decisions for the current model.
+     *
+     * Keep/delete decisions are made if every member has the same role and the members are in consecutive order within the relation.
+     * For multiple occurrences those conditions are tested stepwise for each occurrence.
+     *
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    void prepareDefaultRelationDecisions(boolean fireEvent) {
         if (primitives.stream().allMatch(Node.class::isInstance)) {
             final Collection<OsmPrimitive> primitivesInDecisions = new HashSet<>();
             for (final RelationMemberConflictDecision i : decisions) {
@@ -255,7 +280,7 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
             }
         }
 
-        refresh();
+        refresh(fireEvent);
     }
 
     static boolean isCollectionOfConsecutiveNumbers(Collection<Integer> numbers) {
@@ -299,8 +324,20 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
      *
      */
     public void refresh() {
+        refresh(true);
+    }
+
+    /**
+     * Refreshes the model state. Invoke this method to trigger necessary change
+     * events after an update of the model data.
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    void refresh(boolean fireEvent) {
         updateNumConflicts();
-        GuiHelper.runInEDTAndWait(this::fireTableDataChanged);
+        if (fireEvent) {
+            GuiHelper.runInEDTAndWait(this::fireTableDataChanged);
+        }
     }
 
     /**
@@ -384,6 +421,7 @@ public class RelationMemberConflictResolverModel extends DefaultTableModel {
                     return true;
                 if (relation.getMember(i).getMember() != newPrimitive)
                     return true;
+                break;
             case UNDECIDED:
                 // FIXME: handle error
             }
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java
index 1b05b1c..2d9860f 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java
@@ -2,12 +2,24 @@
 package org.openstreetmap.josm.gui.conflict.tags;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+import java.util.stream.Collectors;
 
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Preferences.pref;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.osm.TagCollection;
-import org.openstreetmap.josm.data.osm.TigerUtils;
+import org.openstreetmap.josm.tools.Pair;
 
 /**
  * Collection of utility methods for tag conflict resolution
@@ -15,6 +27,57 @@ import org.openstreetmap.josm.data.osm.TigerUtils;
  */
 public final class TagConflictResolutionUtil {
 
+    /** The OSM key 'source' */
+    private static final String KEY_SOURCE = "source";
+
+    /** The group identifier for French Cadastre choices */
+    private static final String GRP_FR_CADASTRE = "FR:cadastre";
+
+    /** The group identifier for Canadian CANVEC choices */
+    private static final String GRP_CA_CANVEC = "CA:canvec";
+
+    /**
+     * Default preferences for the list of AutomaticCombine tag conflict resolvers.
+     */
+    private static final Collection<AutomaticCombine> defaultAutomaticTagConflictCombines = Arrays.asList(
+        new AutomaticCombine("tiger:tlid", "US TIGER tlid", false, ":", "Integer"),
+        new AutomaticCombine("tiger:(?!tlid$).*", "US TIGER not tlid", true, ":", "String")
+    );
+
+    /**
+     * Default preferences for the list of AutomaticChoice tag conflict resolvers.
+     */
+    private static final Collection<AutomaticChoice> defaultAutomaticTagConflictChoices = Arrays.asList(
+        /* "source" "FR:cadastre" - https://wiki.openstreetmap.org/wiki/FR:WikiProject_France/Cadastre
+         * List of choices for the "source" tag of data exported from the French cadastre,
+         * which ends by the exported year generating many conflicts.
+         * The generated score begins with the year number to select the most recent one.
+         */
+        new AutomaticChoice(KEY_SOURCE, GRP_FR_CADASTRE, "FR cadastre source, manual value", true,
+                "cadastre", "0"),
+        new AutomaticChoice(KEY_SOURCE, GRP_FR_CADASTRE, "FR cadastre source, initial format", true,
+                "extraction vectorielle v1 cadastre-dgi-fr source : Direction G[eé]n[eé]rale des Imp[oô]ts"
+                + " - Cadas\\. Mise [aà] jour : (2[0-9]{3})",
+                "$1 1"),
+        new AutomaticChoice(KEY_SOURCE, GRP_FR_CADASTRE, "FR cadastre source, last format", true,
+                "(?:cadastre-dgi-fr source : )?Direction G[eé]n[eé]rale des (?:Imp[oô]ts|Finances Publiques)"
+                + " - Cadas(?:tre)?(?:\\.| ;) [Mm]ise [aà] jour : (2[0-9]{3})",
+                "$1 2"),
+        /* "source" "CA:canvec" - https://wiki.openstreetmap.org/wiki/CanVec
+         * List of choices for the "source" tag of data exported from Natural Resources Canada (NRCan)
+         */
+        new AutomaticChoice(KEY_SOURCE, GRP_CA_CANVEC, "CA canvec source, initial value", true,
+                "CanVec_Import_2009", "00"),
+        new AutomaticChoice(KEY_SOURCE, GRP_CA_CANVEC, "CA canvec source, 4.0/6.0 value", true,
+                "CanVec ([1-9]).0 - NRCan", "0$1"),
+        new AutomaticChoice(KEY_SOURCE, GRP_CA_CANVEC, "CA canvec source, 7.0/8.0 value", true,
+                "NRCan-CanVec-([1-9]).0", "0$1"),
+        new AutomaticChoice(KEY_SOURCE, GRP_CA_CANVEC, "CA canvec source, 10.0/12.0 value", true,
+                "NRCan-CanVec-(1[012]).0", "$1")
+    );
+
+    private static volatile Collection<AutomaticTagConflictResolver> automaticTagConflictResolvers;
+
     private TagConflictResolutionUtil() {
         // no constructor, just static utility methods
     }
@@ -60,19 +123,6 @@ public final class TagConflictResolutionUtil {
     }
 
     /**
-     * Combines tags from TIGER data
-     *
-     * @param tc the tag collection
-     */
-    public static void combineTigerTags(TagCollection tc) {
-        for (String key: tc.getKeys()) {
-            if (TigerUtils.isTigerTag(key)) {
-                tc.setUniqueForKey(key, TigerUtils.combineTags(tc.getValues(key)));
-            }
-        }
-    }
-
-    /**
      * Completes tags in the tag collection <code>tc</code> with the empty value
      * for each tag. If the empty value is present the tag conflict resolution dialog
      * will offer an option for removing the tag and not only options for selecting
@@ -88,4 +138,354 @@ public final class TagConflictResolutionUtil {
             tc.add(new Tag(key, ""));
         }
     }
+
+    /**
+     * Automatically resolve some tag conflicts.
+     * The list of automatic resolution is taken from the preferences.
+     * @param tc the tag collection
+     * @since 11606
+     */
+    public static void applyAutomaticTagConflictResolution(TagCollection tc) {
+        applyAutomaticTagConflictResolution(tc, getAutomaticTagConflictResolvers());
+    }
+
+    /**
+     * Get the AutomaticTagConflictResolvers configured in the Preferences or the default ones.
+     * @return the configured AutomaticTagConflictResolvers.
+     * @since 11606
+     */
+    public static Collection<AutomaticTagConflictResolver> getAutomaticTagConflictResolvers() {
+        if (automaticTagConflictResolvers == null) {
+            Collection<AutomaticCombine> automaticTagConflictCombines =
+                    Main.pref.getListOfStructs(
+                            "automatic-tag-conflict-resolution.combine",
+                            defaultAutomaticTagConflictCombines, AutomaticCombine.class);
+            Collection<AutomaticChoiceGroup> automaticTagConflictChoiceGroups =
+                    AutomaticChoiceGroup.groupChoices(Main.pref.getListOfStructs(
+                            "automatic-tag-conflict-resolution.choice",
+                            defaultAutomaticTagConflictChoices, AutomaticChoice.class));
+            // Use a tmp variable to fully construct the collection before setting
+            // the volatile variable automaticTagConflictResolvers.
+            ArrayList<AutomaticTagConflictResolver> tmp = new ArrayList<>();
+            tmp.addAll(automaticTagConflictCombines);
+            tmp.addAll(automaticTagConflictChoiceGroups);
+            automaticTagConflictResolvers = tmp;
+        }
+        return Collections.unmodifiableCollection(automaticTagConflictResolvers);
+    }
+
+    /**
+     * An automatic tag conflict resolver interface.
+     * @since 11606
+     */
+    interface AutomaticTagConflictResolver {
+        /**
+         * Check if this resolution apply to the given Tag key.
+         * @param key The Tag key to match.
+         * @return true if this automatic resolution apply to the given Tag key.
+         */
+        boolean matchesKey(String key);
+
+        /**
+         * Try to resolve a conflict between a set of values for a Tag
+         * @param values the set of conflicting values for the Tag.
+         * @return the resolved value or null if resolution was not possible.
+         */
+        String resolve(Set<String> values);
+    }
+
+    /**
+     * Automatically resolve some given conflicts using the given resolvers.
+     * @param tc the tag collection.
+     * @param resolvers the list of automatic tag conflict resolvers to apply.
+     * @since 11606
+     */
+    public static void applyAutomaticTagConflictResolution(TagCollection tc,
+            Collection<AutomaticTagConflictResolver> resolvers) {
+        for (String key: tc.getKeysWithMultipleValues()) {
+            for (AutomaticTagConflictResolver resolver : resolvers) {
+                try {
+                    if (resolver.matchesKey(key)) {
+                        String result = resolver.resolve(tc.getValues(key));
+                        if (result != null) {
+                            tc.setUniqueForKey(key, result);
+                            break;
+                        }
+                    }
+                } catch (PatternSyntaxException e) {
+                    // Can happen if a particular resolver has an invalid regular expression pattern
+                    // but it should not stop the other automatic tag conflict resolution.
+                    Main.error(e);
+                }
+            }
+        }
+    }
+
+    /**
+     * Preference for automatic tag-conflict resolver by combining the tag values using a separator.
+     * @since 11606
+     */
+    public static class AutomaticCombine implements AutomaticTagConflictResolver {
+
+        /** The Tag key to match */
+        @pref public String key;
+
+        /** A free description */
+        @pref public String description = "";
+
+        /** If regular expression must be used to match the Tag key or the value. */
+        @pref public boolean isRegex;
+
+        /** The separator to use to combine the values. */
+        @pref public String separator = ";";
+
+        /** If the combined values must be sorted.
+         * Possible values:
+         * <ul>
+         * <li> Integer - Sort using Integer natural order.</li>
+         * <li> String - Sort using String natural order.</li>
+         * <li> * - No ordering.</li>
+         * </ul>
+         */
+        @pref public String sort;
+
+        /** Default constructor. */
+        public AutomaticCombine() {
+            // needed for instantiation from Preferences
+        }
+
+        /** Instantiate an automatic tag-conflict resolver which combining the values using a separator.
+         * @param key The Tag key to match.
+         * @param description A free description.
+         * @param isRegex If regular expression must be used to match the Tag key or the value.
+         * @param separator The separator to use to combine the values.
+         * @param sort If the combined values must be sorted.
+         */
+        public AutomaticCombine(String key, String description, boolean isRegex, String separator, String sort) {
+            this.key = key;
+            this.description = description;
+            this.isRegex = isRegex;
+            this.separator = separator;
+            this.sort = sort;
+        }
+
+        @Override
+        public boolean matchesKey(String k) {
+            if (isRegex) {
+                return Pattern.matches(this.key, k);
+            } else {
+                return this.key.equals(k);
+            }
+        }
+
+        Set<String> instantiateSortedSet() {
+            if ("String".equals(sort)) {
+                return new TreeSet<>();
+            } else if ("Integer".equals(sort)) {
+                return new TreeSet<>((String v1, String v2) -> Long.valueOf(v1).compareTo(Long.valueOf(v2)));
+            } else {
+                return new LinkedHashSet<>();
+            }
+        }
+
+        @Override
+        public String resolve(Set<String> values) {
+            Set<String> results = instantiateSortedSet();
+            for (String value: values) {
+                for (String part: value.split(Pattern.quote(separator))) {
+                    results.add(part);
+                }
+            }
+            return String.join(separator, results);
+        }
+
+        @Override
+        public String toString() {
+            return AutomaticCombine.class.getSimpleName()
+                    + "(key='" + key + "', description='" + description + "', isRegex="
+                    + isRegex + ", separator='" + separator + "', sort='" + sort + "')";
+        }
+    }
+
+    /**
+     * Preference for a particular choice from a group for automatic tag conflict resolution.
+     * {@code AutomaticChoice}s are grouped into {@link AutomaticChoiceGroup}.
+     * @since 11606
+     */
+    public static class AutomaticChoice {
+
+        /** The Tag key to match. */
+        @pref public String key;
+
+        /** The name of the {link AutomaticChoice group} this choice belongs to. */
+        @pref public String group;
+
+        /** A free description. */
+        @pref public String description = "";
+
+        /** If regular expression must be used to match the Tag key or the value. */
+        @pref public boolean isRegex;
+
+        /** The Tag value to match. */
+        @pref public String value;
+
+        /**
+         * The score to give to this choice in order to choose the best value
+         * Natural String ordering is used to identify the best score.
+         */
+        @pref public String score;
+
+        /** Default constructor. */
+        public AutomaticChoice() {
+            // needed for instantiation from Preferences
+        }
+
+        /**
+         * Instantiate a particular choice from a group for automatic tag conflict resolution.
+         * @param key The Tag key to match.
+         * @param group The name of the {link AutomaticChoice group} this choice belongs to.
+         * @param description A free description.
+         * @param isRegex If regular expression must be used to match the Tag key or the value.
+         * @param value The Tag value to match.
+         * @param score The score to give to this choice in order to choose the best value.
+         */
+        public AutomaticChoice(String key, String group, String description, boolean isRegex, String value, String score) {
+            this.key = key;
+            this.group = group;
+            this.description = description;
+            this.isRegex = isRegex;
+            this.value = value;
+            this.score = score;
+        }
+
+        /**
+         * Check if this choice match the given Tag value.
+         * @param v the Tag value to match.
+         * @return true if this choice correspond to the given tag value.
+         */
+        public boolean matchesValue(String v) {
+            if (isRegex) {
+                return Pattern.matches(this.value, v);
+            } else {
+                return this.value.equals(v);
+            }
+        }
+
+        /**
+         * Return the score associated to this choice for the given Tag value.
+         * For the result to be valid the given tag value must {@link #matchesValue(String) match} this choice.
+         * @param v the Tag value of which to get the score.
+         * @return the score associated to the given Tag value.
+         * @throws PatternSyntaxException if the regular expression syntax is invalid
+         */
+        public String computeScoreFromValue(String v) {
+            if (isRegex) {
+                return v.replaceAll("^" + this.value + "$", this.score);
+            } else {
+                return this.score;
+            }
+        }
+
+        @Override
+        public String toString() {
+            return AutomaticChoice.class.getSimpleName()
+                    + "(key='" + key + "', group='" + group + "', description='" + description
+                    + "', isRegex=" + isRegex + ", value='" + value + "', score='" + score + "')";
+        }
+    }
+
+    /**
+     * Preference for an automatic tag conflict resolver which choose from
+     * a group of possible {@link AutomaticChoice choice} values.
+     * @since 11606
+     */
+    public static class AutomaticChoiceGroup implements AutomaticTagConflictResolver {
+
+        /** The Tag key to match. */
+        @pref public String key;
+
+        /** The name of the group. */
+        final String group;
+
+        /** If regular expression must be used to match the Tag key. */
+        @pref public boolean isRegex;
+
+        /** The list of choice to choose from. */
+        final List<AutomaticChoice> choices;
+
+        /** Instantiate an automatic tag conflict resolver which choose from
+         * a given list of {@link AutomaticChoice choice} values.
+         *
+         * @param key The Tag key to match.
+         * @param group The name of the group.
+         * @param isRegex If regular expression must be used to match the Tag key.
+         * @param choices The list of choice to choose from.
+         */
+        public AutomaticChoiceGroup(String key, String group, boolean isRegex, List<AutomaticChoice> choices) {
+            this.key = key;
+            this.group = group;
+            this.isRegex = isRegex;
+            this.choices = choices;
+        }
+
+        /**
+         * Group a given list of {@link AutomaticChoice} by the Tag key and the choice group name.
+         * @param choices the list of {@link AutomaticChoice choices} to group.
+         * @return the resulting list of group.
+         */
+        public static Collection<AutomaticChoiceGroup> groupChoices(Collection<AutomaticChoice> choices) {
+            HashMap<Pair<String, String>, AutomaticChoiceGroup> results = new HashMap<>();
+            for (AutomaticChoice choice: choices) {
+                Pair<String, String> id = new Pair<>(choice.key, choice.group);
+                AutomaticChoiceGroup group = results.get(id);
+                if (group == null) {
+                    boolean isRegex = choice.isRegex && !Pattern.quote(choice.key).equals(choice.key);
+                    group = new AutomaticChoiceGroup(choice.key, choice.group, isRegex, new ArrayList<>());
+                    results.put(id, group);
+                }
+                group.choices.add(choice);
+            }
+            return results.values();
+        }
+
+        @Override
+        public boolean matchesKey(String k) {
+            if (isRegex) {
+                return Pattern.matches(this.key, k);
+            } else {
+                return this.key.equals(k);
+            }
+        }
+
+        @Override
+        public String resolve(Set<String> values) {
+            String bestScore = "";
+            String bestValue = "";
+            for (String value : values) {
+                String score = null;
+                for (AutomaticChoice choice : choices) {
+                    if (choice.matchesValue(value)) {
+                        score = choice.computeScoreFromValue(value);
+                    }
+                }
+                if (score == null) {
+                    // This value is not matched in this group
+                    // so we can not choose from this group for this key.
+                    return null;
+                }
+                if (score.compareTo(bestScore) >= 0) {
+                    bestScore = score;
+                    bestValue = value;
+                }
+            }
+            return bestValue;
+        }
+
+        @Override
+        public String toString() {
+            Collection<String> stringChoices = choices.stream().map(AutomaticChoice::toString).collect(Collectors.toCollection(ArrayList::new));
+            return AutomaticChoiceGroup.class.getSimpleName() + "(key='" + key + "', group='" + group +
+                    "', isRegex=" + isRegex + ", choices=(\n  " + String.join(",\n  ", stringChoices) + "))";
+        }
+    }
 }
diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
index 45afad4..414a821 100644
--- a/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
+++ b/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
@@ -72,6 +72,15 @@ public class TagConflictResolverModel extends DefaultTableModel {
      *
      */
     public void rebuild() {
+        rebuild(true);
+    }
+
+    /**
+     * initializes the model from the current tags
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    void rebuild(boolean fireEvent) {
         if (tags == null) return;
         for (String key: tags.getKeys()) {
             MultiValueResolutionDecision decision = new MultiValueResolutionDecision(tags.getTagsFor(key));
@@ -101,7 +110,9 @@ public class TagConflictResolverModel extends DefaultTableModel {
         displayedKeys.addAll(keys);
         refreshNumConflicts();
         sort();
-        GuiHelper.runInEDTAndWait(this::fireTableDataChanged);
+        if (fireEvent) {
+            GuiHelper.runInEDTAndWait(this::fireTableDataChanged);
+        }
     }
 
     /**
@@ -112,6 +123,19 @@ public class TagConflictResolverModel extends DefaultTableModel {
      * @throws IllegalArgumentException if tags is null
      */
     public void populate(TagCollection tags, Set<String> keysWithConflicts) {
+        populate(tags, keysWithConflicts, true);
+    }
+
+    /**
+     * Populates the model with the tags for which conflicts are to be resolved.
+     *
+     * @param tags  the tag collection with the tags. Must not be null.
+     * @param keysWithConflicts the set of tag keys with conflicts
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @throws IllegalArgumentException if tags is null
+     * @since 11626
+     */
+    void populate(TagCollection tags, Set<String> keysWithConflicts, boolean fireEvent) {
         CheckParameterUtil.ensureParameterNotNull(tags, "tags");
         this.tags = tags;
         displayedKeys = new ArrayList<>();
@@ -119,7 +143,7 @@ public class TagConflictResolverModel extends DefaultTableModel {
             this.keysWithConflicts.addAll(keysWithConflicts);
         }
         decisions = new HashMap<>();
-        rebuild();
+        rebuild(fireEvent);
     }
 
     /**
@@ -249,6 +273,15 @@ public class TagConflictResolverModel extends DefaultTableModel {
      *
      */
     public void prepareDefaultTagDecisions() {
+        prepareDefaultTagDecisions(true);
+    }
+
+    /**
+     * Prepare the default decisions for the current model
+     * @param fireEvent {@code true} to call {@code fireTableDataChanged} (can be a slow operation)
+     * @since 11626
+     */
+    void prepareDefaultTagDecisions(boolean fireEvent) {
         for (MultiValueResolutionDecision decision: decisions.values()) {
             List<String> values = decision.getValues();
             values.remove("");
@@ -259,7 +292,7 @@ public class TagConflictResolverModel extends DefaultTableModel {
             }
             // else: Do not suggest to keep all values in order to reduce the wrong usage of semicolon values, see #9104!
         }
-        rebuild();
+        rebuild(fireEvent);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java b/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
index a677e6d..f142252 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
@@ -113,6 +113,7 @@ public final class ClipboardUtils {
                 } catch (InterruptedException ex) {
                     Main.warn(ex, "InterruptedException in " + Utils.class.getSimpleName()
                             + " while getting clipboard content");
+                    Thread.currentThread().interrupt();
                 }
             } catch (NullPointerException e) {
                 // JDK-6322854: On Linux/X11, NPE can happen for unknown reasons, on all versions of Java
diff --git a/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java b/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
index a389742..91e9572 100644
--- a/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
+++ b/src/org/openstreetmap/josm/gui/datatransfer/OsmTransferHandler.java
@@ -59,7 +59,7 @@ public class OsmTransferHandler extends AbstractStackTransferHandler {
      * @param mPosition The position to paste at. If it is <code>null</code>, the original position will be used.
      */
     public void pasteOn(OsmDataLayer editLayer, EastNorth mPosition) {
-        Transferable transferable = ClipboardUtils.getClipboard().getContents(null);
+        Transferable transferable = ClipboardUtils.getClipboardContent();
         pasteOn(editLayer, mPosition, transferable);
     }
 
@@ -78,7 +78,7 @@ public class OsmTransferHandler extends AbstractStackTransferHandler {
      * @param primitives The primitives to paste on.
      */
     public void pasteTags(Collection<? extends OsmPrimitive> primitives) {
-        Transferable transferable = ClipboardUtils.getClipboard().getContents(null);
+        Transferable transferable = ClipboardUtils.getClipboardContent();
         importTags(new TransferSupport(Main.panel, transferable), primitives);
     }
 
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
index a4dd813..6d555b2 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java
@@ -524,6 +524,7 @@ public class ChangesetDialog extends ToggleDialog {
                         future.get();
                     } catch (InterruptedException e1) {
                         Main.warn(e1, "InterruptedException in ChangesetDialog while downloading changeset header");
+                        Thread.currentThread().interrupt();
                     } catch (ExecutionException e2) {
                         Main.error(e2);
                         BugReportExceptionHandler.handleException(e2.getCause());
diff --git a/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java b/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java
index d4d85f5..aff2d30 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/LatLonDialog.java
@@ -11,6 +11,7 @@ import java.awt.event.FocusListener;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
 import java.util.Arrays;
+import java.util.Optional;
 
 import javax.swing.BorderFactory;
 import javax.swing.JLabel;
@@ -167,12 +168,10 @@ public class LatLonDialog extends ExtendedDialog {
     }
 
     public void setCoordinates(LatLon ll) {
-        if (ll == null) {
-            ll = LatLon.ZERO;
-        }
-        this.latLonCoordinates = ll;
-        tfLatLon.setText(ll.latToString(CoordinateFormat.getDefaultFormat()) + ' ' + ll.lonToString(CoordinateFormat.getDefaultFormat()));
-        EastNorth en = Main.getProjection().latlon2eastNorth(ll);
+        latLonCoordinates = Optional.ofNullable(ll).orElse(LatLon.ZERO);
+        tfLatLon.setText(latLonCoordinates.latToString(CoordinateFormat.getDefaultFormat()) + ' ' +
+                         latLonCoordinates.lonToString(CoordinateFormat.getDefaultFormat()));
+        EastNorth en = Main.getProjection().latlon2eastNorth(latLonCoordinates);
         tfEastNorth.setText(Double.toString(en.east()) + ' ' + Double.toString(en.north()));
         setOkEnabled(true);
     }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java b/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
index be0d9ee..216bf77 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
@@ -188,10 +188,14 @@ public class RelationListDialog extends ToggleDialog
 
     @Override
     public void destroy() {
+        recentRelationsAction.destroy();
         model.clear();
         super.destroy();
     }
 
+    /**
+     * Enable the "recent relations" dropdown menu next to edit button.
+     */
     public void enableRecentRelations() {
         recentRelationsAction.enableArrow();
     }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
index f6704b4..4afa213 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
@@ -311,7 +311,7 @@ public class ToggleDialog extends JPanel implements ShowHideButtonListener, Help
 
         @Override
         public String toString() {
-            return "ToggleDialogAction [" + ToggleDialog.this.toString() + ']';
+            return "ToggleDialogAction [" + ToggleDialog.this + ']';
         }
     }
 
diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
index 570438f..6bb67a0 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
@@ -752,7 +752,7 @@ public class ChangesetCacheManager extends JFrame {
         Main.worker.submit(() -> {
             if (task.isCanceled() || task.isFailed())
                 return;
-            setSelectedChangesets(task.getDownloadedData());
+            GuiHelper.runInEDT(() -> setSelectedChangesets(task.getDownloadedData()));
         });
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
index 80769b5..f2c271b 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesCellRenderer.java
@@ -11,11 +11,11 @@ import java.awt.Font;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.swing.JLabel;
 import javax.swing.JTable;
-import javax.swing.UIDefaults;
 import javax.swing.UIManager;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.TableCellRenderer;
@@ -41,11 +41,10 @@ public class PropertiesCellRenderer extends DefaultTableCellRenderer {
             = new BooleanProperty("display.discardable-keys", false).cached();
 
     static {
-        UIDefaults defaults = UIManager.getDefaults();
         SELECTED_BG = new ColorProperty(marktr("Discardable key: selection Background"),
-                defaults.getColor("Table.selectionBackground")).cached();
+                Optional.ofNullable(UIManager.getColor("Table.selectionBackground")).orElse(Color.BLUE)).cached();
         NORMAL_BG = new ColorProperty(marktr("Discardable key: background"),
-                defaults.getColor("Table.background")).cached();
+                Optional.ofNullable(UIManager.getColor("Table.background")).orElse(Color.WHITE)).cached();
     }
 
     private final Collection<TableCellRenderer> customRenderer = new CopyOnWriteArrayList<>();
@@ -56,9 +55,8 @@ public class PropertiesCellRenderer extends DefaultTableCellRenderer {
             c.setForeground((isSelected ? SELECTED_FG : NORMAL_FG).get());
             c.setBackground((isSelected ? SELECTED_BG : NORMAL_BG).get());
         } else {
-            UIDefaults defaults = UIManager.getDefaults();
-            c.setForeground(defaults.getColor("Table."+(isSelected ? "selectionF" : "f")+"oreground"));
-            c.setBackground(defaults.getColor("Table."+(isSelected ? "selectionB" : "b")+"ackground"));
+            c.setForeground(UIManager.getColor("Table."+(isSelected ? "selectionF" : "f")+"oreground"));
+            c.setBackground(UIManager.getColor("Table."+(isSelected ? "selectionB" : "b")+"ackground"));
         }
     }
 
diff --git a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
index 5c7293c..2a221f0 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
@@ -27,6 +27,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
@@ -555,11 +556,7 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
         }
 
         // Ignore parameter as we do not want to operate always on real selection here, especially in draw mode
-        Collection<OsmPrimitive> newSel = Main.main.getInProgressSelection();
-        if (newSel == null) {
-            newSel = Collections.<OsmPrimitive>emptyList();
-        }
-
+        Collection<OsmPrimitive> newSel = Optional.ofNullable(Main.main.getInProgressSelection()).orElseGet(Collections::emptyList);
         String selectedTag;
         Relation selectedRelation = null;
         selectedTag = editHelper.getChangedKey(); // select last added or last edited key by default
@@ -615,10 +612,7 @@ implements SelectionChangedListener, ActiveLayerChangeListener, DataSetListenerA
             for (OsmPrimitive ref: primitive.getReferrers(true)) {
                 if (ref instanceof Relation && !ref.isIncomplete() && !ref.isDeleted()) {
                     Relation r = (Relation) ref;
-                    MemberInfo mi = roles.get(r);
-                    if (mi == null) {
-                        mi = new MemberInfo(newSel);
-                    }
+                    MemberInfo mi = Optional.ofNullable(roles.get(r)).orElseGet(() -> new MemberInfo(newSel));
                     roles.put(r, mi);
                     int i = 1;
                     for (RelationMember m : r.getMembers()) {
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java b/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
index 7f3a822..23f3984 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
@@ -326,16 +326,14 @@ public class ChildRelationBrowser extends JPanel {
      * The asynchronous task for downloading relation members.
      */
     class DownloadAllChildrenTask extends DownloadTask {
-        private final Relation relation;
         private final Stack<Relation> relationsToDownload;
         private final Set<Long> downloadedRelationIds;
 
         DownloadAllChildrenTask(Dialog parent, Relation r) {
             super(tr("Download relation members"), parent);
-            this.relation = r;
             relationsToDownload = new Stack<>();
             downloadedRelationIds = new HashSet<>();
-            relationsToDownload.push(this.relation);
+            relationsToDownload.push(r);
         }
 
         /**
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java b/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java
index 7e47bc0..a85c6cc 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java
@@ -6,6 +6,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 import javax.swing.JOptionPane;
 import javax.swing.SwingUtilities;
@@ -124,13 +125,9 @@ public class ParentRelationLoadingTask extends PleaseWaitRunnable {
     }
 
     protected void showLastException() {
-        String msg = lastException.getMessage();
-        if (msg == null) {
-            msg = lastException.toString();
-        }
         JOptionPane.showMessageDialog(
                 Main.parent,
-                msg,
+                Optional.ofNullable(lastException.getMessage()).orElseGet(lastException::toString),
                 tr("Error"),
                 JOptionPane.ERROR_MESSAGE
         );
@@ -163,7 +160,7 @@ public class ParentRelationLoadingTask extends PleaseWaitRunnable {
                 visitor.merge();
 
                 // copy the merged layer's data source info
-                getLayer().data.dataSources.addAll(referrers.dataSources);
+                getLayer().data.addDataSources(referrers.getDataSources());
                 // FIXME: this is necessary because there are dialogs listening
                 // for DataChangeEvents which manipulate Swing components on this thread.
                 SwingUtilities.invokeLater(getLayer()::onPostDownloadFromServer);
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java b/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java
index 3f36752..52ae353 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java
@@ -9,6 +9,7 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Objects;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Relation;
@@ -91,25 +92,19 @@ public class RelationDialogManager extends WindowAdapter implements LayerChangeL
     }
 
     /**
-     * Register the relation editor for a relation managed by a
-     * {@link OsmDataLayer}.
+     * Register the relation editor for a relation managed by a {@link OsmDataLayer}.
      *
      * @param layer the layer
      * @param relation the relation
      * @param editor the editor
      */
     public void register(OsmDataLayer layer, Relation relation, RelationEditor editor) {
-        if (relation == null) {
-            relation = new Relation();
-        }
-        DialogContext context = new DialogContext(layer, relation);
-        openDialogs.put(context, editor);
+        openDialogs.put(new DialogContext(layer, Optional.ofNullable(relation).orElseGet(Relation::new)), editor);
         editor.addWindowListener(this);
     }
 
     public void updateContext(OsmDataLayer layer, Relation relation, RelationEditor editor) {
         // lookup the entry for editor and remove it
-        //
         for (Iterator<Entry<DialogContext, RelationEditor>> it = openDialogs.entrySet().iterator(); it.hasNext();) {
             Entry<DialogContext, RelationEditor> entry = it.next();
             if (Objects.equals(entry.getValue(), editor)) {
@@ -118,9 +113,7 @@ public class RelationDialogManager extends WindowAdapter implements LayerChangeL
             }
         }
         // don't add a window listener. Editor is already known to the relation dialog manager
-        //
-        DialogContext context = new DialogContext(layer, relation);
-        openDialogs.put(context, editor);
+        openDialogs.put(new DialogContext(layer, relation), editor);
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
index 1f68587..5dab2e7 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/PasteMembersAction.java
@@ -41,7 +41,7 @@ public class PasteMembersAction extends AddFromSelectionAction implements Flavor
     }
 
     private TransferSupport getSupport() {
-        return new TransferSupport(memberTable, ClipboardUtils.getClipboard().getContents(null));
+        return new TransferSupport(memberTable, ClipboardUtils.getClipboardContent());
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java
index 6acb7c3..a9af2e8 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/relation/sort/RelationSortUtils.java
@@ -6,6 +6,7 @@ import static org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType
 import static org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType.Direction.ROUNDABOUT_RIGHT;
 
 import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.dialogs.relation.sort.WayConnectionType.Direction;
@@ -27,23 +28,24 @@ final class RelationSortUtils {
     }
 
     static Direction roundaboutType(Way w) {
-        if (w != null &&
-                "roundabout".equals(w.get("junction")) &&
-                w.getNodesCount() < 200 &&
-                w.getNodesCount() > 2 &&
-                w.getNode(0) != null &&
-                w.getNode(1) != null &&
-                w.getNode(2) != null &&
-                w.isClosed()) {
-            /** do some simple determinant / cross pruduct test on the first 3 nodes
-                to see, if the roundabout goes clock wise or ccw */
-            EastNorth en1 = w.getNode(0).getEastNorth();
-            EastNorth en2 = w.getNode(1).getEastNorth();
-            EastNorth en3 = w.getNode(2).getEastNorth();
-            if (en1 != null && en2 != null && en3 != null) {
-                en1 = en2.subtract(en1);
-                en2 = en3.subtract(en2);
-                return en1.north() * en2.east() - en2.north() * en1.east() > 0 ? ROUNDABOUT_LEFT : ROUNDABOUT_RIGHT;
+        if (w != null && w.hasTag("junction", "roundabout")) {
+            int nodesCount = w.getNodesCount();
+            if (nodesCount > 2 && nodesCount < 200) {
+                Node n1 = w.getNode(0);
+                Node n2 = w.getNode(1);
+                Node n3 = w.getNode(2);
+                if (n1 != null && n2 != null && n3 != null && w.isClosed()) {
+                    /** do some simple determinant / cross product test on the first 3 nodes
+                        to see, if the roundabout goes clock wise or ccw */
+                    EastNorth en1 = n1.getEastNorth();
+                    EastNorth en2 = n2.getEastNorth();
+                    EastNorth en3 = n3.getEastNorth();
+                    if (en1 != null && en2 != null && en3 != null) {
+                        en1 = en2.subtract(en1);
+                        en2 = en3.subtract(en2);
+                        return en1.north() * en2.east() - en2.north() * en1.east() > 0 ? ROUNDABOUT_LEFT : ROUNDABOUT_RIGHT;
+                    }
+                }
             }
         }
         return NONE;
diff --git a/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java b/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
index 7732701..8df8678 100644
--- a/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
+++ b/src/org/openstreetmap/josm/gui/download/BoundingBoxSelection.java
@@ -140,7 +140,7 @@ public class BoundingBoxSelection implements DownloadSelection {
         for (int i = 0; i < 4; i++) {
             try {
                 values[i] = Double.parseDouble(latlon[i].getText());
-            } catch (NumberFormatException x) {
+            } catch (NumberFormatException ex) {
                 return null;
             }
         }
diff --git a/src/org/openstreetmap/josm/gui/help/ContextSensitiveHelpAction.java b/src/org/openstreetmap/josm/gui/help/ContextSensitiveHelpAction.java
index f81a02d..8e3f7e4 100644
--- a/src/org/openstreetmap/josm/gui/help/ContextSensitiveHelpAction.java
+++ b/src/org/openstreetmap/josm/gui/help/ContextSensitiveHelpAction.java
@@ -5,6 +5,7 @@ import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.awt.event.ActionEvent;
+import java.util.Optional;
 
 import javax.swing.AbstractAction;
 
@@ -27,9 +28,7 @@ public class ContextSensitiveHelpAction extends AbstractAction {
      * @param relativeHelpTopic the relative help topic
      */
     public void setHelpTopic(String relativeHelpTopic) {
-        if (relativeHelpTopic == null)
-            relativeHelpTopic = "/";
-        this.helpTopic = relativeHelpTopic;
+        helpTopic = Optional.ofNullable(relativeHelpTopic).orElse("/");
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java b/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
index ed5704c..0d6f514 100644
--- a/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
+++ b/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
@@ -308,8 +308,7 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
         if (reference.getId() != history.getId())
             throw new IllegalArgumentException(
                     tr("Failed to set reference. Reference ID {0} does not match history ID {1}.", reference.getId(), history.getId()));
-        HistoryOsmPrimitive primitive = history.getByVersion(reference.getVersion());
-        if (primitive == null)
+        if (history.getByVersion(reference.getVersion()) == null)
             throw new IllegalArgumentException(
                     tr("Failed to set reference. Reference version {0} not available in history.", reference.getVersion()));
 
@@ -339,8 +338,7 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
         if (current.getId() != history.getId())
             throw new IllegalArgumentException(
                     tr("Failed to set reference. Reference ID {0} does not match history ID {1}.", current.getId(), history.getId()));
-        HistoryOsmPrimitive primitive = history.getByVersion(current.getVersion());
-        if (primitive == null)
+        if (history.getByVersion(current.getVersion()) == null)
             throw new IllegalArgumentException(
                     tr("Failed to set current primitive. Current version {0} not available in history.", current.getVersion()));
         this.current = current;
@@ -388,16 +386,13 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
 
     /**
      * Returns true if <code>primitive</code> is the latest primitive
-     * representing the version currently edited in the current data
-     * layer.
+     * representing the version currently edited in the current data layer.
      *
      * @param primitive the primitive to check
      * @return true if <code>primitive</code> is the latest primitive
      */
     public boolean isLatest(HistoryOsmPrimitive primitive) {
-        if (primitive == null)
-            return false;
-        return primitive == latest;
+        return primitive != null && primitive == latest;
     }
 
     /**
@@ -609,9 +604,7 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
 
         public boolean hasTag(String key) {
             HistoryOsmPrimitive primitive = getPointInTime(pointInTimeType);
-            if (primitive == null)
-                return false;
-            return primitive.hasTag(key);
+            return primitive != null && primitive.hasKey(key);
         }
 
         public String getValue(String key) {
@@ -624,9 +617,7 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
         public boolean oppositeHasTag(String key) {
             PointInTimeType opposite = pointInTimeType.opposite();
             HistoryOsmPrimitive primitive = getPointInTime(opposite);
-            if (primitive == null)
-                return false;
-            return primitive.hasTag(key);
+            return primitive != null && primitive.hasKey(key);
         }
 
         public String getOppositeValue(String key) {
@@ -640,9 +631,7 @@ public class HistoryBrowserModel extends ChangeNotifier implements ActiveLayerCh
         public boolean hasSameValueAsOpposite(String key) {
             String value = getValue(key);
             String oppositeValue = getOppositeValue(key);
-            if (value == null || oppositeValue == null)
-                return false;
-            return value.equals(oppositeValue);
+            return value != null && value.equals(oppositeValue);
         }
 
         public PointInTimeType getPointInTimeType() {
diff --git a/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java b/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
index 2b46ed1..34f3c80 100644
--- a/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
+++ b/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
@@ -134,10 +134,9 @@ public class HistoryLoadTask extends PleaseWaitRunnable {
     public HistoryLoadTask add(Collection<? extends OsmPrimitive> primitives) {
         CheckParameterUtil.ensureParameterNotNull(primitives, "primitives");
         for (OsmPrimitive primitive: primitives) {
-            if (primitive == null) {
-                continue;
+            if (primitive != null) {
+                add(primitive);
             }
-            add(primitive);
         }
         return this;
     }
diff --git a/src/org/openstreetmap/josm/gui/io/ActionFlagsTableCell.java b/src/org/openstreetmap/josm/gui/io/ActionFlagsTableCell.java
index c1cd242..1c27c9b 100644
--- a/src/org/openstreetmap/josm/gui/io/ActionFlagsTableCell.java
+++ b/src/org/openstreetmap/josm/gui/io/ActionFlagsTableCell.java
@@ -39,8 +39,6 @@ class ActionFlagsTableCell extends JPanel implements TableCellRenderer, TableCel
     private final JCheckBox[] checkBoxes = new JCheckBox[2];
     private final transient CellEditorSupport cellEditorSupport = new CellEditorSupport(this);
 
-    private final transient ActionListener al = e -> cellEditorSupport.fireEditingStopped();
-
     /**
      * Constructs a new {@code ActionFlagsTableCell}.
      */
@@ -49,6 +47,7 @@ class ActionFlagsTableCell extends JPanel implements TableCellRenderer, TableCel
         checkBoxes[1] = new JCheckBox(tr("Save"));
         setLayout(new GridBagLayout());
 
+        ActionListener al = e -> cellEditorSupport.fireEditingStopped();
         ActionMap am = getActionMap();
         for (final JCheckBox b : checkBoxes) {
             b.setPreferredSize(new Dimension(b.getPreferredSize().width, 19));
diff --git a/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java b/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java
index 7e6fb12..a3213fe 100644
--- a/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java
+++ b/src/org/openstreetmap/josm/gui/io/ChangesetCellRenderer.java
@@ -39,8 +39,9 @@ public class ChangesetCellRenderer extends JLabel implements ListCellRenderer<Ch
             sb.append("<strong>").append(tr("Created at:")).append("</strong>").append(
                     DateUtils.formatDateTime(cs.getCreatedAt(), DateFormat.SHORT, DateFormat.SHORT)).append("<br>");
         }
-        if (cs.get("comment") != null) {
-            sb.append("<strong>").append(tr("Changeset comment:")).append("</strong>").append(cs.get("comment")).append("<br>");
+        String comment = cs.get("comment");
+        if (comment != null) {
+            sb.append("<strong>").append(tr("Changeset comment:")).append("</strong>").append(comment).append("<br>");
         }
         return sb.toString();
     }
@@ -58,8 +59,9 @@ public class ChangesetCellRenderer extends JLabel implements ListCellRenderer<Ch
         if (cs != null) {
             setIcon(icon);
             StringBuilder sb = new StringBuilder();
-            if (cs.get("comment") != null) {
-                sb.append(cs.getId()).append(" - ").append(cs.get("comment"));
+            String comment = cs.get("comment");
+            if (comment != null) {
+                sb.append(cs.getId()).append(" - ").append(comment);
             } else if (cs.get("name") != null) {
                 sb.append(cs.getId()).append(" - ").append(cs.get("name"));
             } else {
diff --git a/src/org/openstreetmap/josm/gui/io/CloseChangesetTask.java b/src/org/openstreetmap/josm/gui/io/CloseChangesetTask.java
index abbb836..e2347ee 100644
--- a/src/org/openstreetmap/josm/gui/io/CloseChangesetTask.java
+++ b/src/org/openstreetmap/josm/gui/io/CloseChangesetTask.java
@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 
 import javax.swing.SwingUtilities;
 
@@ -37,10 +38,7 @@ public class CloseChangesetTask extends PleaseWaitRunnable {
      */
     public CloseChangesetTask(Collection<Changeset> changesets) {
         super(tr("Closing changeset"), false /* don't ignore exceptions */);
-        if (changesets == null) {
-            changesets = new ArrayList<>();
-        }
-        this.changesets = changesets;
+        this.changesets = Optional.ofNullable(changesets).orElseGet(ArrayList::new);
         this.closedChangesets = new ArrayList<>();
     }
 
diff --git a/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java b/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java
index fd346de..7904081 100644
--- a/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java
+++ b/src/org/openstreetmap/josm/gui/io/SaveLayerTask.java
@@ -3,6 +3,8 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.util.Optional;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.SaveAction;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
@@ -37,11 +39,8 @@ public class SaveLayerTask extends AbstractIOTask {
      */
     protected SaveLayerTask(SaveLayerInfo layerInfo, ProgressMonitor monitor) {
         CheckParameterUtil.ensureParameterNotNull(layerInfo, "layerInfo");
-        if (monitor == null) {
-            monitor = NullProgressMonitor.INSTANCE;
-        }
         this.layerInfo = layerInfo;
-        this.parentMonitor = monitor;
+        this.parentMonitor = Optional.ofNullable(monitor).orElse(NullProgressMonitor.INSTANCE);
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
index e6aef0c..0e88b51 100644
--- a/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
@@ -526,7 +526,6 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
         private final ProgressMonitor monitor;
         private final ExecutorService worker;
         private boolean canceled;
-        private Future<?> currentFuture;
         private AbstractIOTask currentTask;
 
         public SaveAndUploadTask(SaveLayersModel model, ProgressMonitor monitor) {
@@ -564,10 +563,9 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
                     model.setUploadState(layer, UploadOrSaveState.FAILED);
                     continue;
                 }
-                currentFuture = worker.submit(currentTask);
+                Future<?> currentFuture = worker.submit(currentTask);
                 try {
                     // wait for the asynchronous task to complete
-                    //
                     currentFuture.get();
                 } catch (CancellationException e) {
                     Main.trace(e);
@@ -587,7 +585,6 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
                     model.setUploadState(layer, UploadOrSaveState.OK);
                 }
                 currentTask = null;
-                currentFuture = null;
             }
         }
 
@@ -605,7 +602,7 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
                     layerInfo.setDoCheckSaveConditions(false);
                 }
                 currentTask = new SaveLayerTask(layerInfo, monitor);
-                currentFuture = worker.submit(currentTask);
+                Future<?> currentFuture = worker.submit(currentTask);
 
                 try {
                     // wait for the asynchronous task to complete
@@ -631,7 +628,6 @@ public class SaveLayersDialog extends JDialog implements TableModelListener {
                     model.setSaveState(layerInfo.getLayer(), UploadOrSaveState.OK);
                 }
                 this.currentTask = null;
-                this.currentFuture = null;
             }
         }
 
diff --git a/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java b/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
index 0b0ff17..e53f680 100644
--- a/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
+++ b/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
@@ -3,6 +3,7 @@ package org.openstreetmap.josm.gui.io;
 
 import java.awt.BorderLayout;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.swing.JPanel;
 import javax.swing.event.ChangeEvent;
@@ -124,10 +125,7 @@ public class TagSettingsPanel extends JPanel implements TableModelListener {
         public void stateChanged(ChangeEvent e) {
             if (e.getSource() instanceof ChangesetCommentModel) {
                 String newValue = ((ChangesetCommentModel) e.getSource()).getComment();
-                String oldValue = getTagEditorValue(key);
-                if (oldValue == null) {
-                    oldValue = "";
-                }
+                String oldValue = Optional.ofNullable(getTagEditorValue(key)).orElse("");
                 if (!oldValue.equals(newValue)) {
                     setProperty(key, newValue);
                 }
diff --git a/src/org/openstreetmap/josm/gui/io/UploadDialog.java b/src/org/openstreetmap/josm/gui/io/UploadDialog.java
index 9e52253..7b4eac5 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadDialog.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadDialog.java
@@ -24,6 +24,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 
 import javax.swing.AbstractAction;
@@ -342,10 +343,7 @@ public class UploadDialog extends AbstractUploadDialog implements PropertyChange
      * @return the current changeset
      */
     public Changeset getChangeset() {
-        Changeset cs = pnlChangesetManagement.getSelectedChangeset();
-        if (cs == null) {
-            cs = new Changeset();
-        }
+        Changeset cs = Optional.ofNullable(pnlChangesetManagement.getSelectedChangeset()).orElseGet(Changeset::new);
         cs.setKeys(pnlTagSettings.getTags(false));
         return cs;
     }
diff --git a/src/org/openstreetmap/josm/gui/io/UploadLayerTask.java b/src/org/openstreetmap/josm/gui/io/UploadLayerTask.java
index cb8d20d..4756059 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadLayerTask.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadLayerTask.java
@@ -5,6 +5,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Optional;
 import java.util.Set;
 
 import org.openstreetmap.josm.Main;
@@ -61,11 +62,8 @@ public class UploadLayerTask extends AbstractIOTask {
     public UploadLayerTask(UploadStrategySpecification strategy, OsmDataLayer layer, ProgressMonitor monitor, Changeset changeset) {
         CheckParameterUtil.ensureParameterNotNull(layer, "layer");
         CheckParameterUtil.ensureParameterNotNull(strategy, "strategy");
-        if (monitor == null) {
-            monitor = NullProgressMonitor.INSTANCE;
-        }
         this.layer = layer;
-        this.monitor = monitor;
+        this.monitor = Optional.ofNullable(monitor).orElse(NullProgressMonitor.INSTANCE);
         this.changeset = changeset;
         this.strategy = strategy;
         processedPrimitives = new HashSet<>();
@@ -84,10 +82,9 @@ public class UploadLayerTask extends AbstractIOTask {
      * an uploaded primitive was already deleted on the server.
      *
      * @param e the exception throw by the API
-     * @param monitor a progress monitor
      * @throws OsmTransferException if we can't recover from the exception
      */
-    protected void recoverFromGoneOnServer(OsmApiPrimitiveGoneException e, ProgressMonitor monitor) throws OsmTransferException {
+    protected void recoverFromGoneOnServer(OsmApiPrimitiveGoneException e) throws OsmTransferException {
         if (!e.isKnownPrimitive()) throw e;
         OsmPrimitive p = getPrimitive(e.getPrimitiveType(), e.getPrimitiveId());
         if (p == null) throw e;
@@ -128,7 +125,7 @@ public class UploadLayerTask extends AbstractIOTask {
                     processedPrimitives.addAll(writer.getProcessedPrimitives()); // OsmPrimitive in => OsmPrimitive out
                     break;
                 } catch (OsmApiPrimitiveGoneException e) {
-                    recoverFromGoneOnServer(e, monitor);
+                    recoverFromGoneOnServer(e);
                 }
             }
             if (strategy.isCloseChangesetAfterUpload() && changeset != null && changeset.getId() > 0) {
diff --git a/src/org/openstreetmap/josm/gui/io/UploadNoteLayerTask.java b/src/org/openstreetmap/josm/gui/io/UploadNoteLayerTask.java
index 1684099..27350e9 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadNoteLayerTask.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadNoteLayerTask.java
@@ -3,6 +3,8 @@ package org.openstreetmap.josm.gui.io;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.util.Optional;
+
 import org.openstreetmap.josm.actions.upload.UploadNotesTask;
 import org.openstreetmap.josm.gui.layer.NoteLayer;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
@@ -28,11 +30,8 @@ public class UploadNoteLayerTask extends AbstractIOTask {
      */
     public UploadNoteLayerTask(NoteLayer layer, ProgressMonitor monitor) {
         CheckParameterUtil.ensureParameterNotNull(layer, "layer");
-        if (monitor == null) {
-            monitor = NullProgressMonitor.INSTANCE;
-        }
         this.layer = layer;
-        this.monitor = monitor;
+        this.monitor = Optional.ofNullable(monitor).orElse(NullProgressMonitor.INSTANCE);
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java b/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java
index dcf421e..9babdd2 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadParameterSummaryPanel.java
@@ -7,6 +7,7 @@ import static org.openstreetmap.josm.tools.I18n.trn;
 import java.awt.BorderLayout;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.util.Optional;
 
 import javax.swing.BorderFactory;
 import javax.swing.JLabel;
@@ -44,11 +45,9 @@ public class UploadParameterSummaryPanel extends JPanel implements HyperlinkList
         if (selectedChangeset == null || selectedChangeset.isNew()) {
             msg.append(tr("Objects are uploaded to a <strong>new changeset</strong>."));
         } else {
-            String uploadComment = selectedChangeset.get("comment") == null ?
-                    "" : selectedChangeset.get("comment");
             msg.append(tr("Objects are uploaded to the <strong>open changeset</strong> {0} with upload comment ''{1}''.",
                     selectedChangeset.getId(),
-                    uploadComment
+                    Optional.ofNullable(selectedChangeset.get("comment")).orElse("")
             ));
         }
         msg.append(' ');
diff --git a/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java b/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java
index 5566b35..5bbcf80 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadPrimitivesTask.java
@@ -39,7 +39,7 @@ import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
  * The task for uploading a collection of primitives.
- *
+ * @since 2599
  */
 public class UploadPrimitivesTask extends AbstractUploadTask {
     private boolean uploadCanceled;
@@ -132,49 +132,44 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
         switch(ret) {
         case 0: return MaxChangesetSizeExceededPolicy.AUTOMATICALLY_OPEN_NEW_CHANGESETS;
         case 1: return MaxChangesetSizeExceededPolicy.FILL_ONE_CHANGESET_AND_RETURN_TO_UPLOAD_DIALOG;
-        case 2: return MaxChangesetSizeExceededPolicy.ABORT;
-        case JOptionPane.CLOSED_OPTION: return MaxChangesetSizeExceededPolicy.ABORT;
+        case 2:
+        case JOptionPane.CLOSED_OPTION:
+        default: return MaxChangesetSizeExceededPolicy.ABORT;
         }
-        // should not happen
-        return null;
     }
 
+    /**
+     * Opens a new changeset.
+     */
     protected void openNewChangeset() {
         // make sure the current changeset is removed from the upload dialog.
-        //
         ChangesetCache.getInstance().update(changeset);
         Changeset newChangeSet = new Changeset();
         newChangeSet.setKeys(this.changeset.getKeys());
         this.changeset = newChangeSet;
     }
 
-    protected boolean recoverFromChangesetFullException() {
+    protected boolean recoverFromChangesetFullException() throws OsmTransferException {
         if (toUpload.getSize() - processedPrimitives.size() == 0) {
             strategy.setPolicy(MaxChangesetSizeExceededPolicy.ABORT);
             return false;
         }
         if (strategy.getPolicy() == null || strategy.getPolicy().equals(MaxChangesetSizeExceededPolicy.ABORT)) {
-            MaxChangesetSizeExceededPolicy policy = askMaxChangesetSizeExceedsPolicy();
-            strategy.setPolicy(policy);
+            strategy.setPolicy(askMaxChangesetSizeExceedsPolicy());
         }
         switch(strategy.getPolicy()) {
-        case ABORT:
-            // don't continue - finish() will send the user back to map editing
-            //
-            return false;
-        case FILL_ONE_CHANGESET_AND_RETURN_TO_UPLOAD_DIALOG:
-            // don't continue - finish() will send the user back to the upload dialog
-            //
-            return false;
         case AUTOMATICALLY_OPEN_NEW_CHANGESETS:
             // prepare the state of the task for a next iteration in uploading.
-            //
+            closeChangesetIfRequired();
             openNewChangeset();
             toUpload.removeProcessed(processedPrimitives);
             return true;
+        case ABORT:
+        case FILL_ONE_CHANGESET_AND_RETURN_TO_UPLOAD_DIALOG:
+        default:
+            // don't continue - finish() will send the user back to map editing or upload dialog
+            return false;
         }
-        // should not happen
-        return false;
     }
 
     /**
@@ -229,6 +224,7 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
         } catch (InterruptedException e) {
             Main.trace(e);
             lastException = e;
+            Thread.currentThread().interrupt();
         } catch (InvocationTargetException e) {
             Main.trace(e);
             lastException = new OsmTransferException(e.getCause());
@@ -248,7 +244,6 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
                     writer.uploadOsm(strategy, toUpload.getPrimitives(), changeset, getProgressMonitor().createSubTaskMonitor(1, false));
 
                     // if we get here we've successfully uploaded the data. Exit the loop.
-                    //
                     break;
                 } catch (OsmTransferCanceledException e) {
                     Main.error(e);
@@ -256,33 +251,30 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
                     break uploadloop;
                 } catch (OsmApiPrimitiveGoneException e) {
                     // try to recover from  410 Gone
-                    //
                     recoverFromGoneOnServer(e, getProgressMonitor());
                 } catch (ChangesetClosedException e) {
                     if (writer != null) {
                         processedPrimitives.addAll(writer.getProcessedPrimitives()); // OsmPrimitive in => OsmPrimitive out
                     }
-                    changeset.setOpen(false);
                     switch(e.getSource()) {
-                    case UNSPECIFIED:
-                        throw e;
-                    case UPDATE_CHANGESET:
-                        // The changeset was closed when we tried to update it. Probably, our
-                        // local list of open changesets got out of sync with the server state.
-                        // The user will have to select another open changeset.
-                        // Rethrow exception - this will be handled later.
-                        //
-                        throw e;
                     case UPLOAD_DATA:
                         // Most likely the changeset is full. Try to recover and continue
                         // with a new changeset, but let the user decide first (see
                         // recoverFromChangesetFullException)
-                        //
                         if (recoverFromChangesetFullException()) {
                             continue;
                         }
                         lastException = e;
                         break uploadloop;
+                    case UNSPECIFIED:
+                    case UPDATE_CHANGESET:
+                    default:
+                        // The changeset was closed when we tried to update it. Probably, our
+                        // local list of open changesets got out of sync with the server state.
+                        // The user will have to select another open changeset.
+                        // Rethrow exception - this will be handled later.
+                        changeset.setOpen(false);
+                        throw e;
                     }
                 } finally {
                     if (writer != null) {
@@ -294,10 +286,7 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
                 }
             }
             // if required close the changeset
-            //
-            if (strategy.isCloseChangesetAfterUpload() && changeset != null && !changeset.isNew() && changeset.isOpen()) {
-                OsmApi.getOsmApi().closeChangeset(changeset, progressMonitor.createSubTaskMonitor(0, false));
-            }
+            closeChangesetIfRequired();
         } catch (OsmTransferException e) {
             if (uploadCanceled) {
                 Main.info(tr("Ignoring caught exception because upload is canceled. Exception is: {0}", e.toString()));
@@ -309,6 +298,12 @@ public class UploadPrimitivesTask extends AbstractUploadTask {
         cleanupAfterUpload();
     }
 
+    private void closeChangesetIfRequired() throws OsmTransferException {
+        if (strategy.isCloseChangesetAfterUpload() && changeset != null && !changeset.isNew() && changeset.isOpen()) {
+            OsmApi.getOsmApi().closeChangeset(changeset, progressMonitor.createSubTaskMonitor(0, false));
+        }
+    }
+
     @Override protected void finish() {
 
         // depending on the success of the upload operation and on the policy for
diff --git a/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java b/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java
index dfc6cce..3064c3e 100644
--- a/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java
+++ b/src/org/openstreetmap/josm/gui/io/UploadedObjectsSummaryPanel.java
@@ -8,6 +8,7 @@ import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 import javax.swing.AbstractListModel;
 import javax.swing.JLabel;
@@ -173,11 +174,7 @@ public class UploadedObjectsSummaryPanel extends JPanel {
         }
 
         public void setPrimitives(List<OsmPrimitive> primitives) {
-            if (primitives == null) {
-                this.primitives = new ArrayList<>();
-            } else {
-                this.primitives = primitives;
-            }
+            this.primitives = Optional.ofNullable(primitives).orElseGet(ArrayList::new);
             fireContentsChanged(this, 0, getSize());
         }
 
diff --git a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
index 87cccd7..ceefa9f 100644
--- a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
@@ -278,10 +278,8 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
      *
      * If the current tileLoader is an instance of OsmTileLoader, a new
      * TmsTileClearController is created and passed to the according clearCache method.
-     *
-     * @param monitor not used in this implementation - as cache clear is instaneus
      */
-    public void clearTileCache(ProgressMonitor monitor) {
+    public void clearTileCache() {
         if (tileLoader instanceof CachedTileLoader) {
             ((CachedTileLoader) tileLoader).clearCache(tileSource);
         }
@@ -620,7 +618,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
             new PleaseWaitRunnable(tr("Flush tile cache")) {
                 @Override
                 protected void realRun() {
-                    clearTileCache(getProgressMonitor());
+                    clearTileCache();
                 }
 
                 @Override
@@ -1235,7 +1233,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         int yCursor = -1;
         if (Main.isDebugEnabled()) {
             if (yCursor < t.getYtile()) {
-                if (t.getYtile() % 32 == 31) {
+                if (Math.abs(t.getYtile() % 32) == 31) {
                     g.fillRect(0, y - 1, mv.getWidth(), 3);
                 } else {
                     g.drawLine(0, y, mv.getWidth(), y);
@@ -1433,18 +1431,20 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
         List<Tile> allTiles = ts.allExistingTiles();
         TileSetInfo result = new TileSetInfo();
         result.hasLoadingTiles = allTiles.size() < ts.size();
+        result.hasAllLoadedTiles = true;
         for (Tile t : allTiles) {
             if ("no-tile".equals(t.getValue("tile-info"))) {
                 result.hasOverzoomedTiles = true;
             }
-            result.hasAllLoadedTiles &= t.isLoaded();
-
             if (t.isLoaded()) {
                 if (!t.hasError()) {
                     result.hasVisibleTiles = true;
                 }
-            } else if (t.isLoading()) {
-                result.hasLoadingTiles = true;
+            } else {
+                result.hasAllLoadedTiles = false;
+                if (t.isLoading()) {
+                    result.hasLoadingTiles = true;
+                }
             }
         }
         return result;
diff --git a/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java b/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
index 79f6f78..ab50958 100644
--- a/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
@@ -177,7 +177,6 @@ public abstract class ImageryLayer extends Layer {
     public static ImageryLayer create(ImageryInfo info) {
         switch(info.getImageryType()) {
         case WMS:
-        case HTML:
             return new WMSLayer(info);
         case WMTS:
             return new WMTSLayer(info);
diff --git a/src/org/openstreetmap/josm/gui/layer/Layer.java b/src/org/openstreetmap/josm/gui/layer/Layer.java
index 93d19d1..12f0668 100644
--- a/src/org/openstreetmap/josm/gui/layer/Layer.java
+++ b/src/org/openstreetmap/josm/gui/layer/Layer.java
@@ -10,6 +10,7 @@ import java.beans.PropertyChangeListener;
 import java.beans.PropertyChangeSupport;
 import java.io.File;
 import java.util.List;
+import java.util.Optional;
 
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -300,12 +301,8 @@ public abstract class Layer extends AbstractMapViewPaintable implements Destroya
         if (this.name != null) {
             removeColorPropertyListener();
         }
-        if (name == null) {
-            name = "";
-        }
-
         String oldValue = this.name;
-        this.name = name;
+        this.name = Optional.ofNullable(name).orElse("");
         if (!this.name.equals(oldValue)) {
             propertyChangeSupport.firePropertyChange(NAME_PROP, oldValue, this.name);
         }
diff --git a/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java b/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
index 4f3532e..3a2b88b 100644
--- a/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
@@ -16,6 +16,7 @@ import java.awt.Rectangle;
 import java.awt.TexturePaint;
 import java.awt.event.ActionEvent;
 import java.awt.geom.Area;
+import java.awt.geom.Path2D;
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
 import java.io.File;
@@ -405,21 +406,24 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
 
         // draw the hatched area for non-downloaded region. only draw if we're the active
         // and bounds are defined; don't draw for inactive layers or loaded GPX files etc
-        if (active && Main.pref.getBoolean("draw.data.downloaded_area", true) && !data.dataSources.isEmpty()) {
+        if (active && Main.pref.getBoolean("draw.data.downloaded_area", true) && !data.getDataSources().isEmpty()) {
             // initialize area with current viewport
             Rectangle b = mv.getBounds();
             // on some platforms viewport bounds seem to be offset from the left,
             // over-grow it just to be sure
             b.grow(100, 100);
-            Area a = new Area(b);
+            Path2D p = new Path2D.Double();
 
-            // now successively subtract downloaded areas
+            // combine successively downloaded areas
             for (Bounds bounds : data.getDataSourceBounds()) {
                 if (bounds.isCollapsed()) {
                     continue;
                 }
-                a.subtract(mv.getState().getArea(bounds));
+                p.append(mv.getState().getArea(bounds), false);
             }
+            // subtract combined areas
+            Area a = new Area(b);
+            a.subtract(new Area(p));
 
             // paint remainder
             MapViewPoint anchor = mv.getState().getPointFor(new EastNorth(0, 0));
@@ -495,9 +499,9 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
 
         // copy the merged layer's data source info.
         // only add source rectangles if they are not contained in the layer already.
-        for (DataSource src : from.dataSources) {
+        for (DataSource src : from.getDataSources()) {
             if (a == null || !a.contains(src.bounds.asRect())) {
-                data.dataSources.add(src);
+                data.addDataSource(src);
             }
         }
 
@@ -664,8 +668,9 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
             Collection<Collection<WayPoint>> trk = new ArrayList<>();
             Map<String, Object> trkAttr = new HashMap<>();
 
-            if (w.get("name") != null) {
-                trkAttr.put("name", w.get("name"));
+            String name = w.get("name");
+            if (name != null) {
+                trkAttr.put("name", name);
             }
 
             List<WayPoint> trkseg = null;
@@ -844,11 +849,11 @@ public class OsmDataLayer extends AbstractModifiableLayer implements Listener, S
     public boolean containsPoint(LatLon coor) {
         // we'll assume that if this has no data sources
         // that it also has no borders
-        if (this.data.dataSources.isEmpty())
+        if (this.data.getDataSources().isEmpty())
             return true;
 
         boolean layerBoundsPoint = false;
-        for (DataSource src : this.data.dataSources) {
+        for (DataSource src : this.data.getDataSources()) {
             if (src.bounds.contains(coor)) {
                 layerBoundsPoint = true;
                 break;
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java b/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
index cf3b409..8bbc2b4 100644
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
@@ -36,6 +36,7 @@ import java.util.Hashtable;
 import java.util.List;
 import java.util.Locale;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.TimeZone;
 import java.util.concurrent.TimeUnit;
 import java.util.zip.GZIPInputStream;
@@ -289,20 +290,20 @@ public class CorrelateGpxWithImages extends AbstractAction {
                     data = reader.getGpxData();
                     data.storageFile = sel;
 
-                } catch (SAXException x) {
-                    Main.error(x);
+                } catch (SAXException ex) {
+                    Main.error(ex);
                     JOptionPane.showMessageDialog(
                             Main.parent,
-                            tr("Error while parsing {0}", sel.getName())+": "+x.getMessage(),
+                            tr("Error while parsing {0}", sel.getName())+": "+ex.getMessage(),
                             tr("Error"),
                             JOptionPane.ERROR_MESSAGE
                     );
                     return;
-                } catch (IOException x) {
-                    Main.error(x);
+                } catch (IOException ex) {
+                    Main.error(ex);
                     JOptionPane.showMessageDialog(
                             Main.parent,
-                            tr("Could not read \"{0}\"", sel.getName())+'\n'+x.getMessage(),
+                            tr("Could not read \"{0}\"", sel.getName())+'\n'+ex.getMessage(),
                             tr("Error"),
                             JOptionPane.ERROR_MESSAGE
                     );
@@ -580,12 +581,8 @@ public class CorrelateGpxWithImages extends AbstractAction {
 
         JPanel panelTf = new JPanel(new GridBagLayout());
 
-        String prefTimezone = Main.pref.get("geoimage.timezone", "0:00");
-        if (prefTimezone == null) {
-            prefTimezone = "0:00";
-        }
         try {
-            timezone = Timezone.parseTimezone(prefTimezone);
+            timezone = Timezone.parseTimezone(Optional.ofNullable(Main.pref.get("geoimage.timezone", "0:00")).orElse("0:00"));
         } catch (ParseException e) {
             timezone = Timezone.ZERO;
         }
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java b/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
index b8987cc..682291e 100644
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
@@ -81,6 +81,7 @@ public class ImageDisplay extends JComponent {
                     Thread.sleep(5);
                 } catch (InterruptedException e) {
                     Main.warn("InterruptedException in "+getClass().getSimpleName()+" while loading image "+file.getPath());
+                    Thread.currentThread().interrupt();
                 }
             }
 
@@ -164,7 +165,7 @@ public class ImageDisplay extends JComponent {
             // again if there was less than 1.5seconds since the last event.
             if (e.getWhen() - lastTimeForMousePoint > 1500 || mousePointInImg == null) {
                 lastTimeForMousePoint = e.getWhen();
-                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY());
+                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
             }
 
             // Applicate the zoom to the visible rectangle in image coordinates
@@ -197,7 +198,7 @@ public class ImageDisplay extends JComponent {
             checkVisibleRectSize(image, visibleRect);
 
             // Set the position of the visible rectangle, so that the mouse cursor doesn't move on the image.
-            Rectangle drawRect = calculateDrawImageRectangle(visibleRect);
+            Rectangle drawRect = calculateDrawImageRectangle(visibleRect, getSize());
             visibleRect.x = mousePointInImg.x + ((drawRect.x - e.getX()) * visibleRect.width) / drawRect.width;
             visibleRect.y = mousePointInImg.y + ((drawRect.y - e.getY()) * visibleRect.height) / drawRect.height;
 
@@ -233,7 +234,7 @@ public class ImageDisplay extends JComponent {
                 return;
 
             // Calculate the translation to set the clicked point the center of the view.
-            Point click = comp2imgCoord(visibleRect, e.getX(), e.getY());
+            Point click = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
             Point center = getCenterImgCoord(visibleRect);
 
             visibleRect.x += click.x - center.x;
@@ -271,11 +272,11 @@ public class ImageDisplay extends JComponent {
                 return;
 
             if (e.getButton() == DRAG_BUTTON) {
-                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY());
+                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
                 mouseIsDragging = true;
                 selectedRect = null;
             } else if (e.getButton() == ZOOM_BUTTON) {
-                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY());
+                mousePointInImg = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
                 checkPointInVisibleRect(mousePointInImg, visibleRect);
                 mouseIsDragging = false;
                 selectedRect = new Rectangle(mousePointInImg.x, mousePointInImg.y, 0, 0);
@@ -308,7 +309,7 @@ public class ImageDisplay extends JComponent {
             }
 
             if (mouseIsDragging) {
-                Point p = comp2imgCoord(visibleRect, e.getX(), e.getY());
+                Point p = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
                 visibleRect.x += mousePointInImg.x - p.x;
                 visibleRect.y += mousePointInImg.y - p.y;
                 checkVisibleRectPos(image, visibleRect);
@@ -320,7 +321,7 @@ public class ImageDisplay extends JComponent {
                 ImageDisplay.this.repaint();
 
             } else if (selectedRect != null) {
-                Point p = comp2imgCoord(visibleRect, e.getX(), e.getY());
+                Point p = comp2imgCoord(visibleRect, e.getX(), e.getY(), getSize());
                 checkPointInVisibleRect(p, visibleRect);
                 Rectangle rect = new Rectangle(
                         p.x < mousePointInImg.x ? p.x : mousePointInImg.x,
@@ -430,6 +431,9 @@ public class ImageDisplay extends JComponent {
         }
     }
 
+    /**
+     * Constructs a new {@code ImageDisplay}.
+     */
     public ImageDisplay() {
         ImgDisplayMouseListener mouseListener = new ImgDisplayMouseListener();
         addMouseListener(mouseListener);
@@ -469,11 +473,11 @@ public class ImageDisplay extends JComponent {
             errorLoading = this.errorLoading;
         }
 
+        Dimension size = getSize();
         if (file == null) {
             g.setColor(Color.black);
             String noImageStr = tr("No image");
             Rectangle2D noImageSize = g.getFontMetrics(g.getFont()).getStringBounds(noImageStr, g);
-            Dimension size = getSize();
             g.drawString(noImageStr,
                     (int) ((size.width - noImageSize.getWidth()) / 2),
                     (int) ((size.height - noImageSize.getHeight()) / 2));
@@ -486,21 +490,20 @@ public class ImageDisplay extends JComponent {
                 loadingStr = tr("Error on file {0}", file.getName());
             }
             Rectangle2D noImageSize = g.getFontMetrics(g.getFont()).getStringBounds(loadingStr, g);
-            Dimension size = getSize();
             g.drawString(loadingStr,
                     (int) ((size.width - noImageSize.getWidth()) / 2),
                     (int) ((size.height - noImageSize.getHeight()) / 2));
         } else {
-            Rectangle target = calculateDrawImageRectangle(visibleRect);
+            Rectangle target = calculateDrawImageRectangle(visibleRect, size);
             g.drawImage(image,
                     target.x, target.y, target.x + target.width, target.y + target.height,
                     visibleRect.x, visibleRect.y, visibleRect.x + visibleRect.width, visibleRect.y + visibleRect.height,
                     null);
             if (selectedRect != null) {
-                Point topLeft = img2compCoord(visibleRect, selectedRect.x, selectedRect.y);
+                Point topLeft = img2compCoord(visibleRect, selectedRect.x, selectedRect.y, size);
                 Point bottomRight = img2compCoord(visibleRect,
                         selectedRect.x + selectedRect.width,
-                        selectedRect.y + selectedRect.height);
+                        selectedRect.y + selectedRect.height, size);
                 g.setColor(new Color(128, 128, 128, 180));
                 g.fillRect(target.x, target.y, target.width, topLeft.y - target.y);
                 g.fillRect(target.x, target.y, topLeft.x - target.x, target.height);
@@ -512,7 +515,6 @@ public class ImageDisplay extends JComponent {
             if (errorLoading) {
                 String loadingStr = tr("Error on file {0}", file.getName());
                 Rectangle2D noImageSize = g.getFontMetrics(g.getFont()).getStringBounds(loadingStr, g);
-                Dimension size = getSize();
                 g.drawString(loadingStr,
                         (int) ((size.width - noImageSize.getWidth()) / 2),
                         (int) ((size.height - noImageSize.getHeight()) / 2));
@@ -548,25 +550,25 @@ public class ImageDisplay extends JComponent {
         }
     }
 
-    private Point img2compCoord(Rectangle visibleRect, int xImg, int yImg) {
-        Rectangle drawRect = calculateDrawImageRectangle(visibleRect);
+    static Point img2compCoord(Rectangle visibleRect, int xImg, int yImg, Dimension compSize) {
+        Rectangle drawRect = calculateDrawImageRectangle(visibleRect, compSize);
         return new Point(drawRect.x + ((xImg - visibleRect.x) * drawRect.width) / visibleRect.width,
                 drawRect.y + ((yImg - visibleRect.y) * drawRect.height) / visibleRect.height);
     }
 
-    private Point comp2imgCoord(Rectangle visibleRect, int xComp, int yComp) {
-        Rectangle drawRect = calculateDrawImageRectangle(visibleRect);
+    static Point comp2imgCoord(Rectangle visibleRect, int xComp, int yComp, Dimension compSize) {
+        Rectangle drawRect = calculateDrawImageRectangle(visibleRect, compSize);
         return new Point(visibleRect.x + ((xComp - drawRect.x) * visibleRect.width) / drawRect.width,
                 visibleRect.y + ((yComp - drawRect.y) * visibleRect.height) / drawRect.height);
     }
 
-    private static Point getCenterImgCoord(Rectangle visibleRect) {
+    static Point getCenterImgCoord(Rectangle visibleRect) {
         return new Point(visibleRect.x + visibleRect.width / 2,
-                visibleRect.y + visibleRect.height / 2);
+                         visibleRect.y + visibleRect.height / 2);
     }
 
-    private Rectangle calculateDrawImageRectangle(Rectangle visibleRect) {
-        return calculateDrawImageRectangle(visibleRect, new Rectangle(0, 0, getSize().width, getSize().height));
+    static Rectangle calculateDrawImageRectangle(Rectangle visibleRect, Dimension compSize) {
+        return calculateDrawImageRectangle(visibleRect, new Rectangle(0, 0, compSize.width, compSize.height));
     }
 
     /**
@@ -577,11 +579,10 @@ public class ImageDisplay extends JComponent {
      * @return the part of compRect with the same width/height ratio as the image
      */
     static Rectangle calculateDrawImageRectangle(Rectangle imgRect, Rectangle compRect) {
-        int x, y, w, h;
-        x = 0;
-        y = 0;
-        w = compRect.width;
-        h = compRect.height;
+        int x = 0;
+        int y = 0;
+        int w = compRect.width;
+        int h = compRect.height;
 
         int wFact = w * imgRect.height;
         int hFact = h * imgRect.width;
@@ -631,7 +632,7 @@ public class ImageDisplay extends JComponent {
         repaint();
     }
 
-    private static void checkVisibleRectPos(Image image, Rectangle visibleRect) {
+    static void checkVisibleRectPos(Image image, Rectangle visibleRect) {
         if (visibleRect.x < 0) {
             visibleRect.x = 0;
         }
@@ -646,7 +647,7 @@ public class ImageDisplay extends JComponent {
         }
     }
 
-    private static void checkVisibleRectSize(Image image, Rectangle visibleRect) {
+    static void checkVisibleRectSize(Image image, Rectangle visibleRect) {
         if (visibleRect.width > image.getWidth(null)) {
             visibleRect.width = image.getWidth(null);
         }
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java b/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
index 87be247..9927c46 100644
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
@@ -451,8 +451,8 @@ public final class ImageEntry implements Comparable<ImageEntry>, Cloneable {
             metadata = JpegMetadataReader.readMetadata(file);
             dirExif = metadata.getFirstDirectoryOfType(ExifIFD0Directory.class);
             dirGps = metadata.getFirstDirectoryOfType(GpsDirectory.class);
-        } catch (CompoundException | IOException p) {
-            Main.warn(p);
+        } catch (CompoundException | IOException ex) {
+            Main.warn(ex);
             setExifCoor(null);
             setPos(null);
             return;
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java b/src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java
index 63c5960..87dd3f2 100644
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java
@@ -114,6 +114,7 @@ public class ThumbsLoader implements Runnable {
             tracker.waitForID(0);
         } catch (InterruptedException e) {
             Main.error(" InterruptedException while loading thumb");
+            Thread.currentThread().interrupt();
             return null;
         }
         if (tracker.isErrorID(1) || img.getWidth(null) <= 0 || img.getHeight(null) <= 0) {
@@ -148,8 +149,9 @@ public class ThumbsLoader implements Runnable {
         while (!g.drawImage(img, scale, null)) {
             try {
                 Thread.sleep(10);
-            } catch (InterruptedException ie) {
+            } catch (InterruptedException e) {
                 Main.warn("InterruptedException while drawing thumb");
+                Thread.currentThread().interrupt();
             }
         }
         g.dispose();
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java b/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java
index 504fe1f..3618447 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/ChooseTrackVisibilityAction.java
@@ -16,6 +16,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.swing.AbstractAction;
 import javax.swing.JComponent;
@@ -110,11 +111,11 @@ public class ChooseTrackVisibilityAction extends AbstractAction {
         int i = 0;
         for (GpxTrack trk : layer.data.tracks) {
             Map<String, Object> attr = trk.getAttributes();
-            String name = (String) (attr.containsKey(GpxConstants.GPX_NAME) ? attr.get(GpxConstants.GPX_NAME) : "");
-            String desc = (String) (attr.containsKey(GpxConstants.GPX_DESC) ? attr.get(GpxConstants.GPX_DESC) : "");
+            String name = (String) Optional.ofNullable(attr.get(GpxConstants.GPX_NAME)).orElse("");
+            String desc = (String) Optional.ofNullable(attr.get(GpxConstants.GPX_DESC)).orElse("");
             String time = GpxLayer.getTimespanForTrack(trk);
             TrackLength length = new TrackLength(trk.length());
-            String url = (String) (attr.containsKey("url") ? attr.get("url") : "");
+            String url = (String) Optional.ofNullable(attr.get("url")).orElse("");
             tracks[i] = new Object[]{name, desc, time, length, url};
             i++;
         }
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java b/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java
index 57c1d27..0408cc9 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/DateFilterPanel.java
@@ -63,15 +63,15 @@ public class DateFilterPanel extends JPanel {
 
         setEnabled(enabled);
 
+        ChangeListener changeListener = e -> {
+            if (isEnabled()) applyFilterWithDelay();
+        };
+
         dateFrom.addDateListener(changeListener);
         dateTo.addDateListener(changeListener);
         noTimestampCb.addChangeListener(changeListener);
     }
 
-    private final transient ChangeListener changeListener = e -> {
-        if (isEnabled()) applyFilterWithDelay();
-    };
-
     private final Timer t = new Timer(200, e -> applyFilter());
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java b/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java
index 32c1fd5..947bca9 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/DownloadWmsAlongTrackAction.java
@@ -66,6 +66,7 @@ public class DownloadWmsAlongTrackAction extends AbstractAction {
                     }
                 } catch (InterruptedException ex) {
                     Main.warn("InterruptedException in "+getClass().getSimpleName()+" while precaching WMS");
+                    Thread.currentThread().interrupt();
                 }
             }
         }
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
index a1893bb..1630219 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java
@@ -27,6 +27,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 
 import javax.swing.ImageIcon;
 
@@ -95,6 +96,9 @@ public class GpxDrawHelper implements SoMChangeListener {
     private ColorMode computeCacheColored;
     private int computeCacheColorTracksTune;
     private int computeCacheHeatMapDrawColorTableIdx;
+    private boolean computeCacheHeatMapDrawPointMode;
+    private int computeCacheHeatMapDrawGain;
+    private int computeCacheHeatMapDrawLowerLimit;
 
     //// Color-related fields
     /** Mode of the line coloring **/
@@ -134,6 +138,12 @@ public class GpxDrawHelper implements SoMChangeListener {
     private boolean heatMapDrawExtraLine;
     // used index for color table (parameter)
     private int heatMapDrawColorTableIdx;
+    // use point or line draw mode
+    private boolean heatMapDrawPointMode;
+    // extra gain > 0 or < 0 attenuation, 0 = default
+    private int heatMapDrawGain;
+    // do not draw elements with value lower than this limit
+    private int heatMapDrawLowerLimit;
 
     // normal buffered image and draw object (cached)
     private BufferedImage heatMapImgGray;
@@ -155,7 +165,7 @@ public class GpxDrawHelper implements SoMChangeListener {
     private static Color[] heatMapLutColorJosmRed2Blue = createColorFromResource("red2blue");
 
     // user defined heatmap color
-    private Color[] heatMapLutColor = createColorLut(Color.BLACK, Color.WHITE);
+    private Color[] heatMapLutColor = createColorLut(0, Color.BLACK, Color.WHITE);
 
     private void setupColors() {
         hdopAlpha = Main.pref.getInteger("hdop.color.alpha", -1);
@@ -277,7 +287,13 @@ public class GpxDrawHelper implements SoMChangeListener {
         // get heatmap parameters
         heatMapEnabled = Main.pref.getBoolean("draw.rawgps.heatmap.enabled", spec, false);
         heatMapDrawExtraLine = Main.pref.getBoolean("draw.rawgps.heatmap.line-extra", spec, false);
-        heatMapDrawColorTableIdx = Main.pref.getInteger("draw.rawgps.heatmap.colormap", specName(layerName), 0);
+        heatMapDrawColorTableIdx = Main.pref.getInteger("draw.rawgps.heatmap.colormap", spec, 0);
+        heatMapDrawPointMode = Main.pref.getBoolean("draw.rawgps.heatmap.use-points", spec, false);
+        heatMapDrawGain = Main.pref.getInteger("draw.rawgps.heatmap.gain", spec, 0);
+        heatMapDrawLowerLimit = Main.pref.getInteger("draw.rawgps.heatmap.lower-limit", spec, 0);
+
+        // shrink to range
+        heatMapDrawGain = Math.min(Math.max(-10, heatMapDrawGain), 10);
 
         neutralColor = getColor(layerName, true);
         velocityScale.setNoDataColor(neutralColor);
@@ -513,8 +529,9 @@ public class GpxDrawHelper implements SoMChangeListener {
         // heat mode
         if (ColorMode.HEATMAP == colored) {
 
-            // generate and get new user color map
-            heatMapLutColor = selectColorMap(neutralColor != null ? neutralColor : Color.WHITE, heatMapDrawColorTableIdx);
+            // get new user color map and refresh visibility level
+            heatMapLutColor = createColorLut(heatMapDrawLowerLimit,
+                                             selectColorMap(neutralColor != null ? neutralColor : Color.WHITE, heatMapDrawColorTableIdx));
 
             // force redraw of image
             heatMapMapViewState = null;
@@ -794,11 +811,12 @@ public class GpxDrawHelper implements SoMChangeListener {
     }
 
     /**
-     * Creates a linear distributed colormap by linear blending between colors
+     * Creates a distributed colormap by linear blending between colors
+     * @param lowerLimit lower limit for first visible color
      * @param colors 1..n colors
      * @return array of Color objects
      */
-    protected static Color[] createColorLut(Color... colors) {
+    protected static Color[] createColorLut(int lowerLimit, Color... colors) {
 
         // number of lookup entries
         final int tableSize = 256;
@@ -824,10 +842,10 @@ public class GpxDrawHelper implements SoMChangeListener {
             Color c = new Color(pixel[0]);
 
             // smooth alpha like sin curve
-            int alpha = (int) (Math.sin(i * mapTo90Deg) * 255);
+            int alpha = (i > lowerLimit) ? (int) (Math.sin((i-lowerLimit) * mapTo90Deg) * 255) : 0;
 
             // alpha with pre-offset, first color -> full transparent
-            alpha = i > 0 ? (10 + alpha) : 0;
+            alpha = alpha > 0 ? (20 + alpha) : 0;
 
             // shrink to maximum bound
             if (alpha > 255) {
@@ -915,7 +933,7 @@ public class GpxDrawHelper implements SoMChangeListener {
             colorList.add(darkerColor(lastColor, 0.950f));
         }
 
-        return createColorLut(colorList.toArray(new Color[ colorList.size() ]));
+        return createColorLut(0, colorList.toArray(new Color[ colorList.size() ]));
     }
 
     /**
@@ -927,24 +945,35 @@ public class GpxDrawHelper implements SoMChangeListener {
      */
     protected static Color[] selectColorMap(Color userColor, int tableIdx) {
 
+        // generate new user color map ( dark, user color, white )
+        Color[] userColor1 = createColorLut(0, userColor.darker(), userColor, userColor.brighter(), Color.WHITE);
+
+        // generate new user color map ( white -> color )
+        Color[] userColor2 = createColorLut(0, Color.WHITE, Color.WHITE, userColor);
+
         // generate new user color map
-        Color[] nextUserColor = createColorLut(Color.BLACK, userColor.darker(),
-                                               userColor, userColor.brighter(), Color.WHITE);
+        Color[] colorTrafficLights = createColorLut(0, Color.WHITE, Color.GREEN.darker(), Color.YELLOW, Color.RED);
 
         // decide what, keep order is sync with setting on GUI
         Color[][] lut = {
-                nextUserColor,
+                userColor1,
+                userColor2,
+                colorTrafficLights,
                 heatMapLutColorJosmInferno,
                 heatMapLutColorJosmViridis,
                 heatMapLutColorJosmBrown2Green,
                 heatMapLutColorJosmRed2Blue
         };
 
+        // default case
+        Color[] nextUserColor = userColor1;
+
         // select by index
         if (tableIdx < lut.length) {
             nextUserColor = lut[ tableIdx ];
         }
 
+        // adjust color map
         return nextUserColor;
     }
 
@@ -970,9 +999,9 @@ public class GpxDrawHelper implements SoMChangeListener {
      * @param backComp        composite use to draw background objects
      * @param backStroke      stroke use to draw background objects
      */
-    private void drawHeatGrayMap(Graphics2D gB, MapView mv, List<WayPoint> listSegm,
-                                 Composite foreComp, Stroke foreStroke,
-                                 Composite backComp, Stroke backStroke) {
+    private void drawHeatGrayLineMap(Graphics2D gB, MapView mv, List<WayPoint> listSegm,
+                                     Composite foreComp, Stroke foreStroke,
+                                     Composite backComp, Stroke backStroke) {
 
         // draw foreground
         boolean drawForeground = foreComp != null && foreStroke != null;
@@ -1036,7 +1065,7 @@ public class GpxDrawHelper implements SoMChangeListener {
         final int maxPixelY = imgGray.getHeight();
 
         // always full or outlines at big samples rasters
-        final boolean drawOutlines = (outlineWidth > 0) && ((0 == sampleRaster) || (sampleRaster > 8));
+        final boolean drawOutlines = (outlineWidth > 0) && ((0 == sampleRaster) || (sampleRaster > 10));
 
         // backup stroke
         final Stroke oldStroke = g.getStroke();
@@ -1142,6 +1171,15 @@ public class GpxDrawHelper implements SoMChangeListener {
             heatMapGraph2d.setBackground(new Color(0, 0, 0, 255));
             heatMapGraph2d.setColor(Color.WHITE);
 
+            // fast draw ( maybe help or not )
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_SPEED);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
+            heatMapGraph2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_SPEED);
+
             // cache it
             heatMapCacheScreenBounds = screenBounds;
         }
@@ -1149,39 +1187,152 @@ public class GpxDrawHelper implements SoMChangeListener {
         // 2nd. determine current scale factors -------------------------------
 
         // the line width (foreground: draw extra small footprint line of track)
-        final int lineWidthB = (int) Math.max(1.5f * (globalLineWidth / zoomScale) + 1, 2);
-        final int lineWidthF = lineWidthB > 2 ? (globalLineWidth - 1) : 0;
+        int lineWidthB = (int) Math.max(1.5f * (globalLineWidth / zoomScale) + 1, 2);
+        int lineWidthF = lineWidthB > 2 ? (globalLineWidth - 1) : 0;
+
+        // global alpha adjustment
+        float lineAlpha = Math.min(Math.max((0.40f/(float) zoomScale)/(globalLineWidth+1), 0.01f), 0.40f);
+
+        // adjust 0.15 .. 1.85
+        float scaleAlpha = 1.0f + ((heatMapDrawGain/10.0f) * 0.85f);
+
+        // add to calculated values
+        float lineAlphaBPoint = Math.max(Math.min(((lineAlpha * 0.65f) * scaleAlpha), 0.90f), 0.001f);
+        float lineAlphaBLine = Math.max(Math.min(((lineAlpha * 1.00f) * scaleAlpha), 0.90f), 0.001f);
+        float lineAlphaFLine = Math.max(Math.min(((lineAlpha / 1.50f) * scaleAlpha), 0.90f), 0.001f);
+
+        // 3rd Calculate the heat map data by draw GPX traces with alpha value ----------
 
         // recalculation of image needed
         final boolean imageRecalc = !mapViewState.equalsInWindow(heatMapMapViewState) ||
                                     heatMapCacheLineWith != globalLineWidth;
 
-        // 3rd Calculate the heat map data by draw GPX traces with alpha value ----------
-
         // need re-generation of gray image ?
         if (imageSetup || imageRecalc) {
 
             // clear background
             heatMapGraph2d.clearRect(0, 0, heatMapImgGray.getWidth(), heatMapImgGray.getHeight());
 
-            // alpha combines both values, therefore the foreground shall be lighter
-            final float lineAlphaB = Math.min(Math.max((0.40f/(float) zoomScale)/(globalLineWidth + 1), 0.01f), 0.40f);
-            final float lineAlphaF = lineAlphaB / 1.5f;
+            // point or line blending
+            if (heatMapDrawPointMode) {
+                heatMapGraph2d.setComposite(AlphaComposite.SrcOver.derive(lineAlphaBPoint));
+                drawHeatGrayDotMap(heatMapGraph2d, mv, visibleSegments, lineWidthB);
 
-            // derive draw parameters and draw
-            drawHeatGrayMap(heatMapGraph2d, mv, visibleSegments,
-                            lineWidthF > 1 ? AlphaComposite.SrcOver.derive(lineAlphaF) : null,
-                            new BasicStroke(lineWidthF, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND),
-                            AlphaComposite.SrcOver.derive(lineAlphaB),
-                            new BasicStroke(lineWidthB, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+            } else {
+                drawHeatGrayLineMap(heatMapGraph2d, mv, visibleSegments,
+                                    lineWidthF > 1 ? AlphaComposite.SrcOver.derive(lineAlphaFLine) : null,
+                                    new BasicStroke(lineWidthF, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND),
+                                    AlphaComposite.SrcOver.derive(lineAlphaBLine),
+                                    new BasicStroke(lineWidthB, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
+            }
 
-            // remember draw parameters
+            // remember draw parameter
             heatMapMapViewState = mapViewState;
             heatMapCacheLineWith = globalLineWidth;
         }
 
         // 4th. Draw data on target layer, map data via color lookup table --------------
-        drawHeatMapGrayMap(g, heatMapImgGray, lineWidthB > 2 ? (lineWidthB / 2) : 1, lineWidth > 2 ? (lineWidth - 2) : 1);
+        drawHeatMapGrayMap(g, heatMapImgGray, lineWidthB > 2 ? (int) (lineWidthB*1.25f) : 1, lineWidth > 2 ? (lineWidth - 2) : 1);
+    }
+
+    /**
+     * Draw a dotted heat map
+     *
+     * @param gB              the common draw object to use
+     * @param mv              the meta data to current displayed area
+     * @param listSegm        segments visible in the current scope of mv
+     * @param drawSize        draw size of draw element
+     */
+    private static void drawHeatGrayDotMap(Graphics2D gB, MapView mv, List<WayPoint> listSegm, int drawSize) {
+
+        // typical rendering rate -> use realtime preview instead of accurate display
+        final double maxSegm = 25000, nrSegms = listSegm.size();
+
+        // determine random drop rate
+        final double randomDrop = Math.min(nrSegms > maxSegm ? (nrSegms - maxSegm) / nrSegms : 0, 0.70f);
+
+        // http://www.nstb.tc.faa.gov/reports/PAN94_0716.pdf#page=22
+        // Global Average Position Domain Accuracy, typical -> not worst case !
+        // < 4.218 m Vertical
+        // < 2.168 m Horizontal
+        final double pixelRmsX = (100 / mv.getDist100Pixel()) * 2.168;
+        final double pixelRmsY = (100 / mv.getDist100Pixel()) * 4.218;
+
+        Point lastPnt = null;
+
+        // for all points, draw single lines
+        for (WayPoint trkPnt : listSegm) {
+
+            // get transformed coordinates
+            final Point paintPnt = mv.getPoint(trkPnt.getEastNorth());
+
+            // end of line segment or end of list reached
+            if (trkPnt.drawLine && null != lastPnt) {
+                drawHeatSurfaceLine(gB, paintPnt, lastPnt, drawSize, pixelRmsX, pixelRmsY, randomDrop);
+            }
+
+            // remember
+            lastPnt = paintPnt;
+        }
+    }
+
+    /**
+     * Draw a dotted surface line
+     *
+     * @param g                 the common draw object to use
+     * @param fromPnt           start point
+     * @param toPnt             end point
+     * @param drawSize          size of draw elements
+     * @param rmsSizeX          RMS size of circle for X (width)
+     * @param rmsSizeY          RMS size of circle for Y (height)
+     * @param dropRate          Pixel render drop rate
+     */
+    private static void drawHeatSurfaceLine(Graphics2D g,
+            Point fromPnt, Point toPnt, int drawSize, double rmsSizeX, double rmsSizeY, double dropRate) {
+
+        // collect frequently used items
+        final int fromX = (int) fromPnt.getX(); final int deltaX = (int) (toPnt.getX() - fromX);
+        final int fromY = (int) fromPnt.getY(); final int deltaY = (int) (toPnt.getY() - fromY);
+
+        // use same random values for each point
+        final Random heatMapRandom = new Random(fromX+fromY+deltaX+deltaY);
+
+        // cache distance between start and end point
+        final int dist = (int) Math.abs(fromPnt.distance(toPnt));
+
+        // number of increment ( fill wide distance tracks )
+        double scaleStep = Math.max(1.0f / dist, dist > 100 ? 0.10f : 0.20f);
+
+        // number of additional random points
+        int rounds = Math.min(drawSize/2, 1)+1;
+
+        // decrease random noise at high drop rate ( more accurate draw of fewer points )
+        rmsSizeX *= (1.0d - dropRate);
+        rmsSizeY *= (1.0d - dropRate);
+
+        double scaleVal = 0;
+
+        // interpolate line draw ( needs separate point instead of line )
+        while (scaleVal < (1.0d-0.0001d)) {
+
+            // get position
+            final double pntX = fromX + scaleVal * deltaX;
+            final double pntY = fromY + scaleVal * deltaY;
+
+            // add random distribution around sampled point
+            for (int k = 0; k < rounds; k++) {
+
+                // add error distribution, first point with less error
+                int x = (int) (pntX + heatMapRandom.nextGaussian() * (k > 0 ? rmsSizeX : rmsSizeX/4));
+                int y = (int) (pntY + heatMapRandom.nextGaussian() * (k > 0 ? rmsSizeY : rmsSizeY/4));
+
+                // draw it, even drop is requested
+                if (heatMapRandom.nextDouble() >= dropRate) {
+                    g.fillRect(x-drawSize, y-drawSize, drawSize, drawSize);
+                }
+            }
+            scaleVal += scaleStep;
+        }
     }
 
     /**
@@ -1200,13 +1351,18 @@ public class GpxDrawHelper implements SoMChangeListener {
      * Check cache validity set necessary flags
      */
     private void checkCache() {
+        // CHECKSTYLE.OFF: BooleanExpressionComplexity
         if ((computeCacheMaxLineLengthUsed != maxLineLength)
                 || (computeCacheColored != colored)
                 || (computeCacheColorTracksTune != colorTracksTune)
                 || (computeCacheColorDynamic != colorModeDynamic)
                 || (computeCacheHeatMapDrawColorTableIdx != heatMapDrawColorTableIdx)
-                || (!neutralColor.equals(computeCacheColorUsed))
-      ) {
+                || (!neutralColor.equals(computeCacheColorUsed)
+                || (computeCacheHeatMapDrawPointMode != heatMapDrawPointMode)
+                || (computeCacheHeatMapDrawGain != heatMapDrawGain))
+                || (computeCacheHeatMapDrawLowerLimit != heatMapDrawLowerLimit)
+        ) {
+            // CHECKSTYLE.ON: BooleanExpressionComplexity
             computeCacheMaxLineLengthUsed = maxLineLength;
             computeCacheInSync = false;
             computeCacheColorUsed = neutralColor;
@@ -1214,6 +1370,9 @@ public class GpxDrawHelper implements SoMChangeListener {
             computeCacheColorTracksTune = colorTracksTune;
             computeCacheColorDynamic = colorModeDynamic;
             computeCacheHeatMapDrawColorTableIdx = heatMapDrawColorTableIdx;
+            computeCacheHeatMapDrawPointMode = heatMapDrawPointMode;
+            computeCacheHeatMapDrawGain = heatMapDrawGain;
+            computeCacheHeatMapDrawLowerLimit = heatMapDrawLowerLimit;
         }
     }
 
diff --git a/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java b/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java
index c03f1ab..c1fa741 100644
--- a/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java
+++ b/src/org/openstreetmap/josm/gui/layer/gpx/ImportAudioAction.java
@@ -276,20 +276,17 @@ public class ImportAudioAction extends AbstractAction {
             }
         }
 
-        /* we must have got at least one waypoint now */
-
+        // we must have got at least one waypoint now
         ((ArrayList<WayPoint>) waypoints).sort(Comparator.comparingDouble(o -> o.time));
 
-        firstTime = -1.0; /* this time of the first waypoint, not first trackpoint */
+        firstTime = -1.0; // this time of the first waypoint, not first trackpoint
         for (WayPoint w : waypoints) {
             if (firstTime < 0.0) {
                 firstTime = w.time;
             }
             double offset = w.time - firstTime;
             AudioMarker am = new AudioMarker(w.getCoor(), w, url, ml, w.time, offset);
-            /*
-             * timeFromAudio intended for future use to shift markers of this type on synchronization
-             */
+            // timeFromAudio intended for future use to shift markers of this type on synchronization
             if (w == wayPointFromTimeStamp) {
                 am.timeFromAudio = true;
             }
@@ -297,19 +294,13 @@ public class ImportAudioAction extends AbstractAction {
         }
 
         if (timedMarkersOmitted && !markers.timedMarkersOmitted) {
-            JOptionPane
-            .showMessageDialog(
-                    Main.parent,
-                    // CHECKSTYLE.OFF: LineLength
-                    tr("Some waypoints with timestamps from before the start of the track or after the end were omitted or moved to the start."));
-                    // CHECKSTYLE.ON: LineLength
+            JOptionPane.showMessageDialog(Main.parent,
+                tr("Some waypoints with timestamps from before the start of the track or after the end were omitted or moved to the start."));
             markers.timedMarkersOmitted = timedMarkersOmitted;
         }
         if (untimedMarkersOmitted && !markers.untimedMarkersOmitted) {
-            JOptionPane
-            .showMessageDialog(
-                    Main.parent,
-                    tr("Some waypoints which were too far from the track to sensibly estimate their time were omitted."));
+            JOptionPane.showMessageDialog(Main.parent,
+                tr("Some waypoints which were too far from the track to sensibly estimate their time were omitted."));
             markers.untimedMarkersOmitted = untimedMarkersOmitted;
         }
     }
diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
index b30bc19..bcc3264 100644
--- a/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
+++ b/src/org/openstreetmap/josm/gui/layer/imagery/ColorfulImageProcessor.java
@@ -10,6 +10,7 @@ import java.awt.image.BufferedImageOp;
 import java.awt.image.ColorModel;
 import java.awt.image.DataBuffer;
 import java.awt.image.DataBufferByte;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.layer.ImageProcessor;
@@ -81,10 +82,7 @@ public class ColorfulImageProcessor implements ImageProcessor {
                 return src;
             }
 
-            BufferedImage dest = dst;
-            if (dest == null) {
-                dest = createCompatibleDestImage(src, null);
-            }
+            BufferedImage dest = Optional.ofNullable(dst).orElseGet(() -> createCompatibleDestImage(src, null));
             DataBuffer srcBuffer = src.getRaster().getDataBuffer();
             DataBuffer destBuffer = dest.getRaster().getDataBuffer();
             if (!(srcBuffer instanceof DataBufferByte) || !(destBuffer instanceof DataBufferByte)) {
diff --git a/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java b/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
index efd4f54..452a5d3 100644
--- a/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
+++ b/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.TimeZone;
 
 import javax.swing.ImageIcon;
@@ -195,12 +196,8 @@ public class Marker implements TemplateEngineDataProvider {
             }
 
             URL url = uriToUrl(uri, relativePath);
-
             String urlStr = url == null ? "" : url.toString();
-            String symbolName = wpt.getString("symbol");
-            if (symbolName == null) {
-                symbolName = wpt.getString(GpxConstants.PT_SYM);
-            }
+            String symbolName = Optional.ofNullable(wpt.getString("symbol")).orElseGet(() -> wpt.getString(GpxConstants.PT_SYM));
             // text marker is returned in every case, see #10208
             final Marker marker = new Marker(wpt.getCoor(), wpt, symbolName, parentLayer, time, offset);
             if (url == null) {
diff --git a/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java b/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
index bc3be5c..d46e45c 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
@@ -387,7 +387,7 @@ public class ElemStyles implements PreferenceChangedListener {
                     addIfNotNull(sl, LineElement.createLine(env));
                     addIfNotNull(sl, LineElement.createCasing(env));
                     addIfNotNull(sl, LineTextElement.create(env));
-                } else if ("restriction".equals(osm.get("type"))) {
+                } else if (osm.hasTag("type", "restriction")) {
                     addIfNotNull(sl, NodeElement.create(env));
                 }
             }
diff --git a/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java b/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
index c22a1eb..448e951 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
@@ -273,7 +273,7 @@ public final class MapPaintStyles {
         if (Main.pref.getBoolean("mappaint.auto_reload_local_styles", true) && source.isLocal()) {
             try {
                 Main.fileWatcher.registerStyleSource(source);
-            } catch (IOException e) {
+            } catch (IOException | IllegalStateException e) {
                 Main.error(e);
             }
         }
diff --git a/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java b/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
index 919d778..d59b219 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/StyleCache.java
@@ -2,6 +2,7 @@
 package org.openstreetmap.josm.gui.mappaint;
 
 import java.util.Arrays;
+import java.util.Optional;
 
 import org.openstreetmap.josm.data.osm.Storage;
 import org.openstreetmap.josm.tools.Pair;
@@ -43,11 +44,7 @@ public final class StyleCache {
         StyleCache s = new StyleCache(this);
 
         int idx = getIndex(selected);
-        DividedScale<StyleElementList> ds = s.states[idx];
-        if (ds == null) {
-            ds = new DividedScale<>();
-        }
-        s.states[idx] = ds.put(o, r);
+        s.states[idx] = Optional.ofNullable(s.states[idx]).orElseGet(DividedScale::new).put(o, r);
         return s.intern();
     }
 
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
index f0e61cd..3eb4730 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
@@ -13,6 +13,7 @@ import java.util.function.BiFunction;
 import java.util.function.IntFunction;
 import java.util.function.Predicate;
 import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
@@ -50,12 +51,18 @@ public final class ConditionFactory {
      * @param context The type of context to use.
      * @param considerValAsKey whether to consider {@code v} as another key and compare the values of key {@code k} and key {@code v}.
      * @return The new condition.
+     * @throws MapCSSException if the arguments are incorrect
      */
     public static Condition createKeyValueCondition(String k, String v, Op op, Context context, boolean considerValAsKey) {
         switch (context) {
         case PRIMITIVE:
-            if (KeyValueRegexpCondition.SUPPORTED_OPS.contains(op) && !considerValAsKey)
-                return new KeyValueRegexpCondition(k, v, op, false);
+            if (KeyValueRegexpCondition.SUPPORTED_OPS.contains(op) && !considerValAsKey) {
+                try {
+                    return new KeyValueRegexpCondition(k, v, op, false);
+                } catch (PatternSyntaxException e) {
+                    throw new MapCSSException(e);
+                }
+            }
             if (!considerValAsKey && op.equals(Op.EQ))
                 return new SimpleKeyValueCondition(k, v);
             return new KeyValueCondition(k, v, op, considerValAsKey);
@@ -338,6 +345,7 @@ public final class ConditionFactory {
          * @param v value
          * @param op operation
          * @param considerValAsKey must be false
+         * @throws PatternSyntaxException if the value syntax is invalid
          */
         public KeyValueRegexpCondition(String k, String v, Op op, boolean considerValAsKey) {
             super(k, v, op, considerValAsKey);
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSException.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSException.java
index 9a959dc..3c0b61c 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSException.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSException.java
@@ -1,20 +1,45 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.mappaint.mapcss;
 
+/**
+ * MapCSS parsing error, with line/columnn information in error message.
+ */
 public class MapCSSException extends RuntimeException {
 
-    protected final String specialmessage;
+    /** line number at which the parse error occured */
     protected Integer line;
+    /** column number at which the parse error occured */
     protected Integer column;
 
+    /**
+     * Constructs a new {@code MapCSSException} with an explicit error message.
+     * @param specialmessage error message
+     */
     public MapCSSException(String specialmessage) {
-        this.specialmessage = specialmessage;
+        super(specialmessage);
     }
 
+    /**
+     * Constructs a new {@code MapCSSException} with a cause.
+     * @param cause the root cause
+     * @since 11562
+     */
+    public MapCSSException(Throwable cause) {
+        super(cause);
+    }
+
+    /**
+     * Sets the column number at which the parse error occured.
+     * @param column the column number at which the parse error occured
+     */
     public void setColumn(int column) {
         this.column = column;
     }
 
+    /**
+     * Sets the line number at which the parse error occured.
+     * @param line the line number at which the parse error occured
+     */
     public void setLine(int line) {
         this.line = line;
     }
@@ -22,7 +47,7 @@ public class MapCSSException extends RuntimeException {
     @Override
     public String getMessage() {
         if (line == null || column == null)
-            return specialmessage;
-        return String.format("Error at line %s, column %s: %s", line, column, specialmessage);
+            return super.getMessage();
+        return String.format("Error at line %s, column %s: %s", line, column, super.getMessage());
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
index 1d5d21a..0411770 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
@@ -18,6 +18,7 @@ import java.util.List;
 import java.util.Locale;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.ColorProperty;
 import org.openstreetmap.josm.gui.mappaint.Keyword;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition;
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
@@ -1132,7 +1133,7 @@ Object literal() :
 {
         LOOKAHEAD(2)
         pref=ident() t=<HEXCOLOR>
-        { return Main.pref.getColor("mappaint." + (sheet == null ? "MapCSS" : sheet.title) + "." + pref, ColorHelper.html2color(t.image)); }
+        { return new ColorProperty("mappaint." + (sheet == null ? "MapCSS" : sheet.title) + "." + pref, t.image).get(); }
     |
         t=<IDENT> { return new Keyword(t.image); }
     |
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LabelCompositionStrategy.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LabelCompositionStrategy.java
index b2e2647..b3aee0b 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LabelCompositionStrategy.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LabelCompositionStrategy.java
@@ -27,11 +27,9 @@ import org.openstreetmap.josm.tools.LanguageInfo;
  *   tag whose name specified in the MapCSS style file</li>
  *
  *   <li>{@link DeriveLabelFromNameTagsCompositionStrategy} - the label is given by the value
- *   of one
- *   of the configured "name tags". The list of relevant name tags can be configured
+ *   of one of the configured "name tags". The list of relevant name tags can be configured
  *   in the JOSM preferences
- *   content of a tag whose name specified in the MapCSS style file, see the preference
- *   options <tt>mappaint.nameOrder</tt> and <tt>mappaint.nameComplementOrder</tt>.</li>
+ *   see the preference options <tt>mappaint.nameOrder</tt> and <tt>mappaint.nameComplementOrder</tt>.</li>
  * </ul>
  * @since  3987 (creation)
  * @since 10599 (functional interface)
@@ -49,6 +47,9 @@ public interface LabelCompositionStrategy {
      */
     String compose(OsmPrimitive primitive);
 
+    /**
+     * Strategy where the label is given by a static text specified in the MapCSS style file.
+     */
     class StaticLabelCompositionStrategy implements LabelCompositionStrategy {
         private final String defaultLabel;
 
@@ -84,6 +85,9 @@ public interface LabelCompositionStrategy {
         }
     }
 
+    /**
+     * Strategy where the label is given by the content of a tag whose name specified in the MapCSS style file.
+     */
     class TagLookupCompositionStrategy implements LabelCompositionStrategy {
 
         private final String defaultLabelTag;
@@ -128,6 +132,11 @@ public interface LabelCompositionStrategy {
         }
     }
 
+    /**
+     * Strategy where the label is given by the value of one of the configured "name tags".
+     * The list of relevant name tags can be configured in the JOSM preferences
+     * see the preference options <tt>mappaint.nameOrder</tt> and <tt>mappaint.nameComplementOrder</tt>
+     */
     class DeriveLabelFromNameTagsCompositionStrategy implements LabelCompositionStrategy, PreferenceChangedListener {
 
         /**
@@ -162,19 +171,18 @@ public interface LabelCompositionStrategy {
         }
 
         private static List<String> buildNameTags(List<String> nameTags) {
-            if (nameTags == null) {
-                nameTags = Collections.emptyList();
-            }
             List<String> result = new ArrayList<>();
-            for (String tag: nameTags) {
-                if (tag == null) {
-                    continue;
-                }
-                tag = tag.trim();
-                if (tag.isEmpty()) {
-                    continue;
+            if (nameTags != null) {
+                for (String tag: nameTags) {
+                    if (tag == null) {
+                        continue;
+                    }
+                    tag = tag.trim();
+                    if (tag.isEmpty()) {
+                        continue;
+                    }
+                    result.add(tag);
                 }
-                result.add(tag);
             }
             return result;
         }
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
index 3446fff..59db0be 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/LineElement.java
@@ -5,6 +5,7 @@ import java.awt.BasicStroke;
 import java.awt.Color;
 import java.util.Arrays;
 import java.util.Objects;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.Node;
@@ -356,11 +357,7 @@ public class LineElement extends StyleElement {
                 }
                 if (casingWidth == null)
                     return null;
-                width = getWidth(c, WIDTH, getWidth(cDef, WIDTH, null));
-                if (width == null) {
-                    width = 0f;
-                }
-                width += 2 * casingWidth;
+                width = Optional.ofNullable(getWidth(c, WIDTH, getWidth(cDef, WIDTH, null))).orElse(0f) + 2 * casingWidth;
                 break;
             case LEFT_CASING:
             case RIGHT_CASING:
@@ -377,10 +374,7 @@ public class LineElement extends StyleElement {
         if (realWidth > 0 && MapPaintSettings.INSTANCE.isUseRealWidth()) {
 
             /* if we have a "width" tag, try use it */
-            String widthTag = env.osm.get("width");
-            if (widthTag == null) {
-                widthTag = env.osm.get("est_width");
-            }
+            String widthTag = Optional.ofNullable(env.osm.get("width")).orElseGet(() -> env.osm.get("est_width"));
             if (widthTag != null) {
                 try {
                     realWidth = Float.parseFloat(widthTag);
diff --git a/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java b/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
index 3802943..9331d83 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
@@ -166,12 +166,7 @@ public class NodeElement extends StyleElement {
         if (sizeOnDefault != null && sizeOnDefault <= 0) {
             sizeOnDefault = null;
         }
-        Float size = getWidth(c, "symbol-size", sizeOnDefault);
-
-        if (size == null) {
-            size = 10f;
-        }
-
+        Float size = Optional.ofNullable(getWidth(c, "symbol-size", sizeOnDefault)).orElse(10f);
         if (size <= 0)
             return null;
 
diff --git a/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java b/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
index a3791fb..6cd8254 100644
--- a/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
+++ b/src/org/openstreetmap/josm/gui/oauth/FullyAutomaticAuthorizationUI.java
@@ -413,7 +413,7 @@ public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
             // Do nothing
         }
 
-        protected void alertAuthorisationFailed(OsmOAuthAuthorizationException e) {
+        protected void alertAuthorisationFailed() {
             HelpAwareOptionPane.showOptionDialog(
                     FullyAutomaticAuthorizationUI.this,
                     tr("<html>"
@@ -444,7 +444,7 @@ public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
             );
         }
 
-        protected void alertLoginFailed(OsmLoginFailedException e) {
+        protected void alertLoginFailed() {
             final String loginUrl = getAdvancedPropertiesPanel().getAdvancedParameters().getOsmLoginUrl();
             HelpAwareOptionPane.showOptionDialog(
                     FullyAutomaticAuthorizationUI.this,
@@ -465,9 +465,9 @@ public class FullyAutomaticAuthorizationUI extends AbstractAuthorizationUI {
         protected void handleException(final OsmOAuthAuthorizationException e) {
             Runnable r = () -> {
                 if (e instanceof OsmLoginFailedException) {
-                    alertLoginFailed((OsmLoginFailedException) e);
+                    alertLoginFailed();
                 } else {
-                    alertAuthorisationFailed(e);
+                    alertAuthorisationFailed();
                 }
             };
             Main.error(e);
diff --git a/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java b/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java
index ca91539..7bdb949 100644
--- a/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java
+++ b/src/org/openstreetmap/josm/gui/oauth/RetrieveAccessTokenTask.java
@@ -65,7 +65,7 @@ public class RetrieveAccessTokenTask extends PleaseWaitRunnable {
     @Override
     protected void finish() { /* not used in this task */}
 
-    protected void alertRetrievingAccessTokenFailed(OsmOAuthAuthorizationException e) {
+    protected void alertRetrievingAccessTokenFailed() {
         HelpAwareOptionPane.showOptionDialog(
                 parent,
                 tr(
@@ -90,7 +90,7 @@ public class RetrieveAccessTokenTask extends PleaseWaitRunnable {
             return;
         } catch (final OsmOAuthAuthorizationException e) {
             Main.error(e);
-            GuiHelper.runInEDT(() -> alertRetrievingAccessTokenFailed(e));
+            GuiHelper.runInEDT(this::alertRetrievingAccessTokenFailed);
             accessToken = null;
         } finally {
             synchronized (this) {
diff --git a/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java b/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java
index 6695c48..04ae537 100644
--- a/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java
+++ b/src/org/openstreetmap/josm/gui/oauth/RetrieveRequestTokenTask.java
@@ -59,7 +59,7 @@ public class RetrieveRequestTokenTask extends PleaseWaitRunnable {
     @Override
     protected void finish() { /* not used in this task */}
 
-    protected void alertRetrievingRequestTokenFailed(OsmOAuthAuthorizationException e) {
+    protected void alertRetrievingRequestTokenFailed() {
         HelpAwareOptionPane.showOptionDialog(
                 parent,
                 tr(
@@ -84,7 +84,7 @@ public class RetrieveRequestTokenTask extends PleaseWaitRunnable {
             return;
         } catch (final OsmOAuthAuthorizationException e) {
             Main.error(e);
-            GuiHelper.runInEDT(() -> alertRetrievingRequestTokenFailed(e));
+            GuiHelper.runInEDT(this::alertRetrievingRequestTokenFailed);
             requestToken = null;
         } finally {
             synchronized (this) {
diff --git a/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java b/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
index 3ae77a1..1c57c6d 100644
--- a/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
+++ b/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.swing.AbstractAction;
@@ -159,10 +160,7 @@ public class ToolbarPreferences implements PreferenceSettingFactory {
         public Icon getDisplayIcon() {
             if (ico != null)
                 return ico;
-            Object o = action.getValue(Action.LARGE_ICON_KEY);
-            if (o == null)
-                o = action.getValue(Action.SMALL_ICON);
-            return (Icon) o;
+            return (Icon) Optional.ofNullable(action.getValue(Action.LARGE_ICON_KEY)).orElseGet(() -> action.getValue(Action.SMALL_ICON));
         }
 
         /**
@@ -1192,16 +1190,10 @@ public class ToolbarPreferences implements PreferenceSettingFactory {
             paramCode = action.parameters.hashCode();
         }
 
-        String tt = action.getDisplayTooltip();
-        if (tt == null) {
-            tt = "";
-        }
+        String tt = Optional.ofNullable(action.getDisplayTooltip()).orElse("");
 
         if (sc == null || paramCode != 0) {
-            String name = (String) action.getAction().getValue("toolbar");
-            if (name == null) {
-                name = action.getDisplayName();
-            }
+            String name = Optional.ofNullable((String) action.getAction().getValue("toolbar")).orElseGet(action::getDisplayName);
             if (paramCode != 0) {
                 name = name+paramCode;
             }
diff --git a/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java b/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java
index 79b18f7..2c3ca47 100644
--- a/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java
+++ b/src/org/openstreetmap/josm/gui/preferences/advanced/PrefEntry.java
@@ -112,9 +112,7 @@ public class PrefEntry implements Comparable<PrefEntry> {
     public boolean equals(Object obj) {
         if (this == obj)
             return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
+        if (obj == null || getClass() != obj.getClass())
             return false;
         PrefEntry other = (PrefEntry) obj;
         if (key == null) {
diff --git a/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java b/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
index 3dcb69d..375d9e0 100644
--- a/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/display/GPXSettingsPanel.java
@@ -9,7 +9,9 @@ import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.GridBagLayout;
 import java.awt.event.ActionListener;
+import java.util.Enumeration;
 
+import javax.swing.AbstractButton;
 import javax.swing.BorderFactory;
 import javax.swing.Box;
 import javax.swing.ButtonGroup;
@@ -18,6 +20,7 @@ import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JRadioButton;
+import javax.swing.JSlider;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.ExpertToggleAction;
@@ -63,11 +66,16 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
     private final JRadioButton colorTypeGlobal = new JRadioButton(tr("Use global settings"));
     private final JosmComboBox<String> colorTypeVelocityTune = new JosmComboBox<>(new String[] {tr("Car"), tr("Bicycle"), tr("Foot")});
     private final JosmComboBox<String> colorTypeHeatMapTune = new JosmComboBox<>(new String[] {
-        trc("Heat map", "User"),
+        trc("Heat map", "User Normal"),
+        trc("Heat map", "User Light"),
+        trc("Heat map", "Traffic Lights"),
         trc("Heat map", "Inferno"),
         trc("Heat map", "Viridis"),
         trc("Heat map", "Wood"),
         trc("Heat map", "Heat")});
+    private final JCheckBox colorTypeHeatMapPoints = new JCheckBox(tr("Use points instead of lines for heat map"));
+    private final JSlider colorTypeHeatMapGain = new JSlider();
+    private final JSlider colorTypeHeatMapLowerLimit = new JSlider();
     private final JCheckBox makeAutoMarkers = new JCheckBox(tr("Create markers when reading GPX"));
     private final JCheckBox drawGpsArrows = new JCheckBox(tr("Draw Direction Arrows"));
     private final JCheckBox drawGpsArrowsFast = new JCheckBox(tr("Fast drawing (looks uglier)"));
@@ -110,6 +118,7 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         loadPreferences(); // preferences -> controls
     }
 
+    // CHECKSTYLE.OFF: ExecutableStatementCountCheck
     private void initComponents() {
         setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
 
@@ -238,18 +247,6 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         colorGroup.add(colorTypeTime);
         colorGroup.add(colorTypeHeatMap);
 
-        colorTypeVelocity.addChangeListener(e -> {
-            colorTypeVelocityTune.setEnabled(colorTypeVelocity.isSelected());
-            colorDynamic.setEnabled(colorTypeVelocity.isSelected() || colorTypeDilution.isSelected());
-        });
-
-        colorTypeHeatMap.addChangeListener(e -> {
-            colorTypeHeatMapTune.setEnabled(colorTypeHeatMap.isSelected());
-            colorDynamic.setEnabled(false);
-        });
-
-        colorTypeDilution.addChangeListener(e -> colorDynamic.setEnabled(colorTypeVelocity.isSelected() || colorTypeDilution.isSelected()));
-
         colorTypeNone.setToolTipText(tr("All points and track segments will have the same color. Can be customized in Layer Manager."));
         colorTypeVelocity.setToolTipText(tr("Colors points and track segments by velocity."));
         colorTypeDirection.setToolTipText(tr("Colors points and track segments by direction."));
@@ -280,7 +277,47 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         add(colorTypeHeatIconLabel, GBC.std().insets(5, 0, 0, 5));
         add(colorTypeHeatMapTune, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
 
-        colorTypeHeatMapTune.addPropertyChangeListener(e -> {
+        JLabel colorTypeHeatMapGainLabel = new JLabel(tr("Overlay gain adjustment"));
+        JLabel colorTypeHeatMapLowerLimitLabel = new JLabel(tr("Lower limit of visibility"));
+        add(colorTypeHeatMapGainLabel, GBC.std().insets(80, 0, 0, 0));
+        add(colorTypeHeatMapGain, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
+        add(colorTypeHeatMapLowerLimitLabel, GBC.std().insets(80, 0, 0, 0));
+        add(colorTypeHeatMapLowerLimit, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
+        add(colorTypeHeatMapPoints, GBC.eol().insets(60, 0, 0, 0));
+
+        colorTypeHeatMapGain.setToolTipText(tr("Adjust the gain of overlay blending."));
+        colorTypeHeatMapGain.setOrientation(JSlider.HORIZONTAL);
+        colorTypeHeatMapGain.setPaintLabels(true);
+        colorTypeHeatMapGain.setMinimum(-10);
+        colorTypeHeatMapGain.setMaximum(+10);
+        colorTypeHeatMapGain.setMinorTickSpacing(1);
+        colorTypeHeatMapGain.setMajorTickSpacing(5);
+
+        colorTypeHeatMapLowerLimit.setToolTipText(tr("Draw all GPX traces that exceed this threshold."));
+        colorTypeHeatMapLowerLimit.setOrientation(JSlider.HORIZONTAL);
+        colorTypeHeatMapLowerLimit.setMinimum(0);
+        colorTypeHeatMapLowerLimit.setMaximum(254);
+        colorTypeHeatMapLowerLimit.setPaintLabels(true);
+        colorTypeHeatMapLowerLimit.setMinorTickSpacing(10);
+        colorTypeHeatMapLowerLimit.setMajorTickSpacing(100);
+
+        colorTypeHeatMapPoints.setToolTipText(tr("Render engine uses points with simulated position error instead of lines. "));
+
+        // iterate over the buttons, add change listener to any change event
+        for (Enumeration<AbstractButton> button = colorGroup.getElements(); button.hasMoreElements();) {
+            (button.nextElement()).addChangeListener(e -> {
+                colorTypeVelocityTune.setEnabled(colorTypeVelocity.isSelected());
+                colorTypeHeatMapTune.setEnabled(colorTypeHeatMap.isSelected());
+                colorTypeHeatMapPoints.setEnabled(colorTypeHeatMap.isSelected());
+                colorTypeHeatMapGain.setEnabled(colorTypeHeatMap.isSelected());
+                colorTypeHeatMapLowerLimit.setEnabled(colorTypeHeatMap.isSelected());
+                colorTypeHeatMapGainLabel.setEnabled(colorTypeHeatMap.isSelected());
+                colorTypeHeatMapLowerLimitLabel.setEnabled(colorTypeHeatMap.isSelected());
+                colorDynamic.setEnabled(colorTypeVelocity.isSelected() || colorTypeDilution.isSelected());
+            });
+        }
+
+        colorTypeHeatMapTune.addActionListener(e -> {
             final Dimension dim = colorTypeHeatMapTune.getPreferredSize();
             if (null != dim) {
                 // get image size of environment
@@ -298,6 +335,8 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
 
         ExpertToggleAction.addVisibilitySwitcher(colorTypeDirection);
         ExpertToggleAction.addVisibilitySwitcher(colorTypeDilution);
+        ExpertToggleAction.addVisibilitySwitcher(colorTypeHeatMapLowerLimit);
+        ExpertToggleAction.addVisibilitySwitcher(colorTypeHeatMapLowerLimitLabel);
 
         colorDynamic.setToolTipText(tr("Colors points and track segments by data limits."));
         add(colorDynamic, GBC.eop().insets(40, 0, 0, 0));
@@ -338,6 +377,7 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
 
         add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH));
     }
+    // CHECKSTYLE.ON: ExecutableStatementCountCheck
 
     /**
      * Loads preferences to UI controls
@@ -377,6 +417,9 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
             colorTypeGlobal.setSelected(true);
             colorDynamic.setSelected(false);
             colorDynamic.setEnabled(false);
+            colorTypeHeatMapPoints.setSelected(false);
+            colorTypeHeatMapGain.setValue(0);
+            colorTypeHeatMapLowerLimit.setValue(0);
         } else {
             int colorType = Main.pref.getInteger("draw.rawgps.colors", layerName, 0);
             switch (colorType) {
@@ -390,13 +433,11 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
             }
             int ccts = Main.pref.getInteger("draw.rawgps.colorTracksTune", layerName, 45);
             colorTypeVelocityTune.setSelectedIndex(ccts == 10 ? 2 : (ccts == 20 ? 1 : 0));
-            colorTypeVelocityTune.setEnabled(colorTypeVelocity.isSelected() && colorTypeVelocity.isEnabled());
-
             colorTypeHeatMapTune.setSelectedIndex(Main.pref.getInteger("draw.rawgps.heatmap.colormap", layerName, 0));
-            colorTypeHeatMapTune.setEnabled(colorTypeHeatMap.isSelected() && colorTypeHeatMap.isEnabled());
-
             colorDynamic.setSelected(Main.pref.getBoolean("draw.rawgps.colors.dynamic", layerName, false));
-            colorDynamic.setEnabled(colorTypeVelocity.isSelected() || colorTypeDilution.isSelected());
+            colorTypeHeatMapPoints.setSelected(Main.pref.getBoolean("draw.rawgps.heatmap.use-points", layerName, false));
+            colorTypeHeatMapGain.setValue(Main.pref.getInteger("draw.rawgps.heatmap.gain", layerName, 0));
+            colorTypeHeatMapLowerLimit.setValue(Main.pref.getInteger("draw.rawgps.heatmap.lower-limit", layerName, 0));
         }
     }
 
@@ -467,8 +508,10 @@ public class GPXSettingsPanel extends JPanel implements ValidationListener {
         Main.pref.put("draw.rawgps.colors.dynamic"+layerNameDot, colorDynamic.isSelected());
         int ccti = colorTypeVelocityTune.getSelectedIndex();
         Main.pref.putInteger("draw.rawgps.colorTracksTune"+layerNameDot, ccti == 2 ? 10 : (ccti == 1 ? 20 : 45));
-
         Main.pref.putInteger("draw.rawgps.heatmap.colormap"+layerNameDot, colorTypeHeatMapTune.getSelectedIndex());
+        Main.pref.put("draw.rawgps.heatmap.use-points"+layerNameDot, colorTypeHeatMapPoints.isSelected());
+        Main.pref.putInteger("draw.rawgps.heatmap.gain"+layerNameDot, colorTypeHeatMapGain.getValue());
+        Main.pref.putInteger("draw.rawgps.heatmap.lower-limit"+layerNameDot, colorTypeHeatMapLowerLimit.getValue());
 
         return false;
     }
diff --git a/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java b/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
index 1e2c11e..a425cc5 100644
--- a/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
@@ -325,7 +325,7 @@ public final class ImageryPreference extends DefaultTabPreferenceSetting {
 
             mod = activeTable.getColumnModel();
             mod.getColumn(1).setPreferredWidth(800);
-            mod.getColumn(1).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getDefaultLayers()));
+            mod.getColumn(1).setCellRenderer(new ImageryURLTableCellRenderer(layerInfo.getAllDefaultLayers()));
             mod.getColumn(0).setPreferredWidth(200);
 
             RemoveEntryAction remove = new RemoveEntryAction();
@@ -741,17 +741,17 @@ public final class ImageryPreference extends DefaultTabPreferenceSetting {
              * @return The imagery info at the given row number
              */
             public ImageryInfo getRow(int row) {
-                return layerInfo.getDefaultLayers().get(row);
+                return layerInfo.getAllDefaultLayers().get(row);
             }
 
             @Override
             public int getRowCount() {
-                return layerInfo.getDefaultLayers().size();
+                return layerInfo.getAllDefaultLayers().size();
             }
 
             @Override
             public Object getValueAt(int row, int column) {
-                ImageryInfo info = layerInfo.getDefaultLayers().get(row);
+                ImageryInfo info = layerInfo.getAllDefaultLayers().get(row);
                 switch (column) {
                 case 0:
                     return info.getCountryCode();
diff --git a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
index 8d4028e..8dbea0c 100644
--- a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
+++ b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
@@ -491,7 +491,10 @@ public final class PluginPreference extends DefaultTabPreferenceSetting {
             String[] lines = textField.getText().split("\n");
             List<String> toActivate = new ArrayList<>();
             List<String> notFound = new ArrayList<>();
-            Pattern regex = Pattern.compile("^[-+\\s]*|\\s[\\(\\)\\d\\s]*");
+            // This pattern matches the default list format JOSM uses for bug reports.
+            // It removes a list item mark at the beginning of the line: +, -, *
+            // It removes the version number after the plugin, like: 123, (123), (v5.7alpha3), (1b3), (v1-SNAPSHOT-1)...
+            Pattern regex = Pattern.compile("^[-+\\*\\s]*|\\s[\\d\\s]*(\\([^\\(\\)\\[\\]]*\\))?[\\d\\s]*$");
             for (String line : lines) {
                 String name = regex.matcher(line).replaceAll("");
                 if (name.isEmpty()) {
diff --git a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java
index ea6a526..8746c6d 100644
--- a/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java
@@ -10,6 +10,7 @@ import java.awt.Insets;
 import java.util.EnumMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.swing.ButtonGroup;
 import javax.swing.JLabel;
@@ -172,28 +173,18 @@ public class PluginUpdatePolicyPanel extends JPanel {
      * Loads the relevant preference values from the JOSM preferences
      */
     public final void initFromPreferences() {
-        String pref = Main.pref.get("pluginmanager.version-based-update.policy", "ask");
-        Policy p = Policy.fromPreferenceValue(pref);
-        if (p == null) {
-            p = Policy.ASK;
-        }
-        rbVersionBasedUpatePolicy.get(p).setSelected(true);
-
-        pref = Main.pref.get("pluginmanager.time-based-update.policy", "ask");
-        p = Policy.fromPreferenceValue(pref);
-        if (p == null) {
-            p = Policy.ASK;
-        }
-        rbTimeBasedUpatePolicy.get(p).setSelected(true);
+        rbVersionBasedUpatePolicy.get(Optional.ofNullable(Policy.fromPreferenceValue(
+                Main.pref.get("pluginmanager.version-based-update.policy", "ask"))).orElse(Policy.ASK)).setSelected(true);
+        rbTimeBasedUpatePolicy.get(Optional.ofNullable(Policy.fromPreferenceValue(
+                Main.pref.get("pluginmanager.time-based-update.policy", "ask"))).orElse(Policy.ASK)).setSelected(true);
 
-        pref = Main.pref.get("pluginmanager.warntime", null);
+        String pref = Main.pref.get("pluginmanager.warntime", null);
         int days = 0;
         if (pref != null) {
             // remove legacy preference
             Main.pref.put("pluginmanager.warntime", null);
-            pref = pref.trim();
             try {
-                days = Integer.parseInt(pref);
+                days = Integer.parseInt(pref.trim());
             } catch (NumberFormatException e) {
                 // ignore - load from preference pluginmanager.time-based-update.interval
                 Main.trace(e);
diff --git a/src/org/openstreetmap/josm/gui/preferences/projection/AbstractProjectionChoice.java b/src/org/openstreetmap/josm/gui/preferences/projection/AbstractProjectionChoice.java
index ca56578..92c237e 100644
--- a/src/org/openstreetmap/josm/gui/preferences/projection/AbstractProjectionChoice.java
+++ b/src/org/openstreetmap/josm/gui/preferences/projection/AbstractProjectionChoice.java
@@ -1,6 +1,8 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.preferences.projection;
 
+import java.util.Optional;
+
 import org.openstreetmap.josm.data.projection.CustomProjection;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.projection.Projections;
@@ -59,9 +61,7 @@ public abstract class AbstractProjectionChoice implements ProjectionChoice {
     @Override
     public Projection getProjection() {
         String code = getCurrentCode();
-        String pref = Projections.getInit(code);
-        if (pref == null)
-            throw new AssertionError("Error: Unknown projection code");
-        return new CustomProjection(getProjectionName(), code, pref, getCacheDir());
+        return new CustomProjection(getProjectionName(), code, Optional.ofNullable(Projections.getInit(code))
+                .orElseThrow(() -> new AssertionError("Error: Unknown projection code: " + code)), getCacheDir());
     }
 }
diff --git a/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java b/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java
index 2fac5bb..10c06e2 100644
--- a/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java
@@ -154,8 +154,8 @@ public class OsmApiUrlInputPanel extends JPanel {
         if (!oldUrl.equals(newUrl)) {
             try {
                 OsmApi.getOsmApi().initialize(null);
-            } catch (OsmTransferCanceledException | OsmApiInitializationException x) {
-                Main.warn(x);
+            } catch (OsmTransferCanceledException | OsmApiInitializationException ex) {
+                Main.warn(ex);
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java b/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
index 0aefc50..28880d1 100644
--- a/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
+++ b/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
@@ -17,6 +17,7 @@ import java.net.ProxySelector;
 import java.util.EnumMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 
 import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
@@ -321,11 +322,7 @@ public class ProxyPreferencesPanel extends VerticallyScrollablePanel {
      * Initializes the panel with the values from the preferences
      */
     public final void initFromPreferences() {
-        String policy = Main.pref.get(PROXY_POLICY, null);
-        ProxyPolicy pp = ProxyPolicy.fromName(policy);
-        if (pp == null) {
-            pp = ProxyPolicy.NO_PROXY;
-        }
+        ProxyPolicy pp = Optional.ofNullable(ProxyPolicy.fromName(Main.pref.get(PROXY_POLICY, null))).orElse(ProxyPolicy.NO_PROXY);
         rbProxyPolicy.get(pp).setSelected(true);
         String value = Main.pref.get("proxy.host", null);
         if (value != null) {
@@ -418,10 +415,7 @@ public class ProxyPreferencesPanel extends VerticallyScrollablePanel {
                 break;
             }
         }
-        if (policy == null) {
-            policy = ProxyPolicy.NO_PROXY;
-        }
-        Main.pref.put(PROXY_POLICY, policy.getName());
+        Main.pref.put(PROXY_POLICY, Optional.ofNullable(policy).orElse(ProxyPolicy.NO_PROXY).getName());
         Main.pref.put(PROXY_HTTP_HOST, tfProxyHttpHost.getText());
         Main.pref.put(PROXY_HTTP_PORT, tfProxyHttpPort.getText());
         Main.pref.put(PROXY_SOCKS_HOST, tfProxySocksHost.getText());
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
index 202160e..a575b47 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/ComboMultiSelect.java
@@ -507,11 +507,8 @@ public abstract class ComboMultiSelect extends KeyedItem {
     @Override
     public void addCommands(List<Tag> changedTags) {
         Object obj = getSelectedItem();
-        String display = (obj == null) ? null : obj.toString();
+        String display = obj == null ? getDisplayIfNull() : obj.toString();
         String value = null;
-        if (display == null) {
-            display = getDisplayIfNull();
-        }
 
         if (display != null) {
             for (Entry<String, PresetListEntry> entry : lhm.entrySet()) {
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/Link.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/Link.java
index 4108f64..1f78c0f 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/Link.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/Link.java
@@ -25,10 +25,7 @@ public class Link extends TextItem {
     @Override
     public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
         initializeLocaleText(tr("More information about this feature"));
-        String url = locale_href;
-        if (url == null) {
-            url = href;
-        }
+        String url = java.util.Optional.ofNullable(locale_href).orElse(href);
         if (url != null) {
             p.add(new UrlLabel(url, locale_text, 2), GBC.eol().insets(0, 10, 0, 0).fill(GBC.HORIZONTAL));
         }
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
index 6eb5ae7..6f56332 100644
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
@@ -140,7 +140,7 @@ public class Text extends KeyedItem {
                     if (auto_increment_selected == buttonvalue) aibutton.setSelected(true);
                     aibutton.addActionListener(e -> auto_increment_selected = buttonvalue);
                     pnl.add(aibutton, GBC.std());
-                } catch (ParseException x) {
+                } catch (ParseException ex) {
                     Main.error("Cannot parse auto-increment value of '" + ai + "' into an integer");
                 }
             }
diff --git a/src/org/openstreetmap/josm/gui/util/CursorManager.java b/src/org/openstreetmap/josm/gui/util/CursorManager.java
index d3dcf99..3c351e6 100644
--- a/src/org/openstreetmap/josm/gui/util/CursorManager.java
+++ b/src/org/openstreetmap/josm/gui/util/CursorManager.java
@@ -5,6 +5,7 @@ import java.awt.Component;
 import java.awt.Cursor;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
@@ -49,9 +50,7 @@ public class CursorManager {
      * @param reference A reference object that can be passed to the next set/reset calls to identify the caller.
      */
     public synchronized void setNewCursor(Cursor cursor, Object reference) {
-        if (reference == null) {
-            throw new NullPointerException("Cannot register a cursor that can never be removed.");
-        }
+        Objects.requireNonNull(reference, "Cannot register a cursor that can never be removed.");
         // re-insert to allow overriding.
         cursors.remove(reference);
         cursors.put(reference, cursor);
diff --git a/src/org/openstreetmap/josm/gui/widgets/ButtonColumn.java b/src/org/openstreetmap/josm/gui/widgets/ButtonColumn.java
index d6954c0..3157541 100644
--- a/src/org/openstreetmap/josm/gui/widgets/ButtonColumn.java
+++ b/src/org/openstreetmap/josm/gui/widgets/ButtonColumn.java
@@ -1,5 +1,4 @@
 // License: GPL. For details, see LICENSE file.
-
 package org.openstreetmap.josm.gui.widgets;
 
 import java.awt.Color;
@@ -18,10 +17,9 @@ import javax.swing.table.TableCellEditor;
 import javax.swing.table.TableCellRenderer;
 
 /**
- *
  * Class based on:  http://www.camick.com/java/source/ButtonColumn.java
  * https://tips4java.wordpress.com/2009/07/12/table-button-column/
- *
+ * @since 10536
  */
 public class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener {
     private final Action action;
@@ -37,12 +35,16 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere
         this(null);
     }
 
+    /**
+     * Constructs a new {@code ButtonColumn}.
+     * @param action action
+     * @param buttonName button name
+     */
     public ButtonColumn(Action action, String buttonName) {
         this(action);
         this.buttonName = buttonName;
     }
 
-
     /**
      * Creates a column that is rendered as a button
      *
@@ -115,5 +117,4 @@ public class ButtonColumn extends AbstractCellEditor implements TableCellRendere
         }
         return renderButton;
     }
-
 }
diff --git a/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java b/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java
index b9fbacc..af36710 100644
--- a/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java
+++ b/src/org/openstreetmap/josm/gui/widgets/HtmlPanel.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.gui.widgets;
 import java.awt.BorderLayout;
 import java.awt.Font;
 import java.text.MessageFormat;
+import java.util.Optional;
 
 import javax.swing.JEditorPane;
 import javax.swing.JPanel;
@@ -29,23 +30,20 @@ public class HtmlPanel extends JPanel {
         jepMessage.setEditable(false);
         Font f = UIManager.getFont("Label.font");
         StyleSheet ss = new StyleSheet();
-        String rule = MessageFormat.format(
+        ss.addRule("body {" + MessageFormat.format(
                 "font-family: ''{0}'';font-size: {1,number}pt; font-weight: {2}; font-style: {3}",
                 f.getName(),
                 f.getSize(),
                 f.isBold() ? "bold" : "normal",
-                        f.isItalic() ? "italic" : "normal"
-        );
-        rule = "body {" + rule + '}';
-        rule = MessageFormat.format(
+                f.isItalic() ? "italic" : "normal"
+        ) + '}');
+        ss.addRule("strong {" + MessageFormat.format(
                 "font-family: ''{0}'';font-size: {1,number}pt; font-weight: {2}; font-style: {3}",
                 f.getName(),
                 f.getSize(),
                 "bold",
                 f.isItalic() ? "italic" : "normal"
-        );
-        rule = "strong {" + rule + '}';
-        ss.addRule(rule);
+        ) + '}');
         ss.addRule("a {text-decoration: underline; color: blue}");
         ss.addRule("ul {margin-left: 1cm; list-style-type: disc}");
         JosmHTMLEditorKit kit = new JosmHTMLEditorKit();
@@ -87,9 +85,6 @@ public class HtmlPanel extends JPanel {
      * @param text the text to display
      */
     public final void setText(String text) {
-        if (text == null) {
-            text = "";
-        }
-        jepMessage.setText(text);
+        jepMessage.setText(Optional.ofNullable(text).orElse(""));
     }
 }
diff --git a/src/org/openstreetmap/josm/io/DiffResultProcessor.java b/src/org/openstreetmap/josm/io/DiffResultProcessor.java
index 8d5be9c..c463836 100644
--- a/src/org/openstreetmap/josm/io/DiffResultProcessor.java
+++ b/src/org/openstreetmap/josm/io/DiffResultProcessor.java
@@ -11,6 +11,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.xml.parsers.ParserConfigurationException;
@@ -60,10 +61,7 @@ public class DiffResultProcessor {
      * assumes an empty collection.
      */
     public DiffResultProcessor(Collection<? extends OsmPrimitive> primitives) {
-        if (primitives == null) {
-            primitives = Collections.emptyList();
-        }
-        this.primitives = primitives;
+        this.primitives = Optional.ofNullable(primitives).orElseGet(Collections::emptyList);
         this.processed = new HashSet<>();
     }
 
diff --git a/src/org/openstreetmap/josm/io/FileWatcher.java b/src/org/openstreetmap/josm/io/FileWatcher.java
index a91759d..e9e5b43 100644
--- a/src/org/openstreetmap/josm/io/FileWatcher.java
+++ b/src/org/openstreetmap/josm/io/FileWatcher.java
@@ -51,7 +51,7 @@ public class FileWatcher {
      * Starts the File Watcher thread.
      */
     public final void start() {
-        if (!thread.isAlive()) {
+        if (thread != null && !thread.isAlive()) {
             thread.start();
         }
     }
@@ -112,7 +112,8 @@ public class FileWatcher {
             WatchKey key;
             try {
                 key = watcher.take();
-            } catch (InterruptedException x) {
+            } catch (InterruptedException ex) {
+                Thread.currentThread().interrupt();
                 return;
             }
 
diff --git a/src/org/openstreetmap/josm/io/GpxExporter.java b/src/org/openstreetmap/josm/io/GpxExporter.java
index 96fe5aa..a9e9e1f 100644
--- a/src/org/openstreetmap/josm/io/GpxExporter.java
+++ b/src/org/openstreetmap/josm/io/GpxExporter.java
@@ -12,6 +12,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.text.MessageFormat;
 import java.time.Year;
+import java.util.Optional;
 
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
@@ -203,9 +204,9 @@ public class GpxExporter extends FileExporter implements GpxConstants {
         try (OutputStream fo = Compression.getCompressedFileOutputStream(file)) {
             new GpxWriter(fo).write(gpxData);
             fo.flush();
-        } catch (IOException x) {
-            Main.error(x);
-            JOptionPane.showMessageDialog(Main.parent, tr("Error while exporting {0}:\n{1}", fn, x.getMessage()),
+        } catch (IOException ex) {
+            Main.error(ex);
+            JOptionPane.showMessageDialog(Main.parent, tr("Error while exporting {0}:\n{1}", fn, ex.getMessage()),
                     tr("Error"), JOptionPane.ERROR_MESSAGE);
         }
     }
@@ -222,18 +223,12 @@ public class GpxExporter extends FileExporter implements GpxConstants {
 
         if (enable) {
             if (copyrightYear.getText().isEmpty()) {
-                String sCopyrightYear = data.getString(META_COPYRIGHT_YEAR);
-                if (sCopyrightYear == null) {
-                    sCopyrightYear = Year.now().toString();
-                }
-                copyrightYear.setText(sCopyrightYear);
+                copyrightYear.setText(Optional.ofNullable(data.getString(META_COPYRIGHT_YEAR)).orElseGet(
+                        () -> Year.now().toString()));
             }
             if (copyright.getText().isEmpty()) {
-                String sCopyright = data.getString(META_COPYRIGHT_LICENSE);
-                if (sCopyright == null) {
-                    sCopyright = Main.pref.get("lastCopyright", "https://creativecommons.org/licenses/by-sa/2.5");
-                }
-                copyright.setText(sCopyright);
+                copyright.setText(Optional.ofNullable(data.getString(META_COPYRIGHT_LICENSE)).orElseGet(
+                        () -> Main.pref.get("lastCopyright", "https://creativecommons.org/licenses/by-sa/2.5")));
                 copyright.setCaretPosition(0);
             }
         } else {
@@ -281,16 +276,8 @@ public class GpxExporter extends FileExporter implements GpxConstants {
             nameLabel.setEnabled(b);
             emailLabel.setEnabled(b);
             if (b) {
-                String sAuthorName = data.getString(META_AUTHOR_NAME);
-                if (sAuthorName == null) {
-                    sAuthorName = Main.pref.get("lastAuthorName");
-                }
-                authorName.setText(sAuthorName);
-                String sEmail = data.getString(META_AUTHOR_EMAIL);
-                if (sEmail == null) {
-                    sEmail = Main.pref.get("lastAuthorEmail");
-                }
-                email.setText(sEmail);
+                authorName.setText(Optional.ofNullable(data.getString(META_AUTHOR_NAME)).orElseGet(() -> Main.pref.get("lastAuthorName")));
+                email.setText(Optional.ofNullable(data.getString(META_AUTHOR_EMAIL)).orElseGet(() -> Main.pref.get("lastAuthorEmail")));
             } else {
                 authorName.setText("");
                 email.setText("");
diff --git a/src/org/openstreetmap/josm/io/NameFinder.java b/src/org/openstreetmap/josm/io/NameFinder.java
index 1265ebf..7e84529 100644
--- a/src/org/openstreetmap/josm/io/NameFinder.java
+++ b/src/org/openstreetmap/josm/io/NameFinder.java
@@ -237,12 +237,12 @@ public final class NameFinder {
                     }
                     data.add(currentResult);
                 }
-            } catch (NumberFormatException x) {
-                Main.error(x); // SAXException does not chain correctly
-                throw new SAXException(x.getMessage(), x);
-            } catch (NullPointerException x) {
-                Main.error(x); // SAXException does not chain correctly
-                throw new SAXException(tr("Null pointer exception, possibly some missing tags."), x);
+            } catch (NumberFormatException ex) {
+                Main.error(ex); // SAXException does not chain correctly
+                throw new SAXException(ex.getMessage(), ex);
+            } catch (NullPointerException ex) {
+                Main.error(ex); // SAXException does not chain correctly
+                throw new SAXException(tr("Null pointer exception, possibly some missing tags."), ex);
             }
         }
 
diff --git a/src/org/openstreetmap/josm/io/NmeaReader.java b/src/org/openstreetmap/josm/io/NmeaReader.java
index f9ab0ee..f569d5b 100644
--- a/src/org/openstreetmap/josm/io/NmeaReader.java
+++ b/src/org/openstreetmap/josm/io/NmeaReader.java
@@ -12,6 +12,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
+import java.util.Optional;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -111,10 +112,8 @@ public class NmeaReader {
     private final SimpleDateFormat rmcTimeFmtStd = new SimpleDateFormat("ddMMyyHHmmss");
 
     private Date readTime(String p) {
-        Date d = rmcTimeFmt.parse(p, new ParsePosition(0));
-        if (d == null) {
-            d = rmcTimeFmtStd.parse(p, new ParsePosition(0));
-        }
+        Date d = Optional.ofNullable(rmcTimeFmt.parse(p, new ParsePosition(0)))
+                .orElseGet(() -> rmcTimeFmtStd.parse(p, new ParsePosition(0)));
         if (d == null)
             throw new JosmRuntimeException("Date is malformed");
         return d;
@@ -415,9 +414,9 @@ public class NmeaReader {
             }
             return true;
 
-        } catch (RuntimeException x) {
+        } catch (RuntimeException ex) {
             // out of bounds and such
-            Main.debug(x);
+            Main.debug(ex);
             ps.malformed++;
             ps.pWp = null;
             return false;
diff --git a/src/org/openstreetmap/josm/io/NoteReader.java b/src/org/openstreetmap/josm/io/NoteReader.java
index 4561713..60026f5 100644
--- a/src/org/openstreetmap/josm/io/NoteReader.java
+++ b/src/org/openstreetmap/josm/io/NoteReader.java
@@ -9,6 +9,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
+import java.util.Optional;
 
 import javax.xml.parsers.ParserConfigurationException;
 
@@ -109,21 +110,11 @@ public class NoteReader {
                 thisNote.setCreatedAt(DateUtils.fromString(attrs.getValue("created_at")));
                 break;
             case "comment":
-                String uidStr = attrs.getValue("uid");
-                if (uidStr == null) {
-                    commentUid = 0;
-                } else {
-                    commentUid = Long.parseLong(uidStr);
-                }
+                commentUid = Long.parseLong(Optional.ofNullable(attrs.getValue("uid")).orElse("0"));
                 commentUsername = attrs.getValue("user");
                 noteAction = Action.valueOf(attrs.getValue("action").toUpperCase(Locale.ENGLISH));
                 commentCreateDate = DateUtils.fromString(attrs.getValue("timestamp"));
-                String isNew = attrs.getValue("is_new");
-                if (isNew == null) {
-                    commentIsNew = false;
-                } else {
-                    commentIsNew = Boolean.parseBoolean(isNew);
-                }
+                commentIsNew = Boolean.parseBoolean(Optional.ofNullable(attrs.getValue("is_new")).orElse("false"));
                 break;
             default: // Do nothing
             }
diff --git a/src/org/openstreetmap/josm/io/OsmApi.java b/src/org/openstreetmap/josm/io/OsmApi.java
index 271db71..a1dadfd 100644
--- a/src/org/openstreetmap/josm/io/OsmApi.java
+++ b/src/org/openstreetmap/josm/io/OsmApi.java
@@ -233,19 +233,6 @@ public class OsmApi extends OsmConnection {
                 initialized = true;
             }
 
-            /* This is an interim solution for openstreetmap.org not currently
-             * transmitting their imagery blacklist in the capabilities call.
-             * remove this as soon as openstreetmap.org adds blacklists.
-             * If you want to update this list, please ask for update of
-             * http://trac.openstreetmap.org/ticket/5024
-             * This list should not be maintained by each OSM editor (see #9210) */
-            if (this.serverUrl.matches(".*openstreetmap.org/api.*") && capabilities.getImageryBlacklist().isEmpty()) {
-                capabilities.put("blacklist", "regex", ".*\\.google\\.com/.*");
-                capabilities.put("blacklist", "regex", ".*209\\.85\\.2\\d\\d.*");
-                capabilities.put("blacklist", "regex", ".*209\\.85\\.1[3-9]\\d.*");
-                capabilities.put("blacklist", "regex", ".*209\\.85\\.12[89].*");
-            }
-
             /* This checks if there are any layers currently displayed that
              * are now on the blacklist, and removes them. This is a rare
              * situation - probably only occurs if the user changes the API URL
@@ -575,6 +562,7 @@ public class OsmApi extends OsmConnection {
                 Thread.sleep(1000);
             } catch (InterruptedException ex) {
                 Main.warn("InterruptedException in "+getClass().getSimpleName()+" during sleep");
+                Thread.currentThread().interrupt();
             }
         }
         Main.info(tr("OK - trying again."));
diff --git a/src/org/openstreetmap/josm/io/OsmConnection.java b/src/org/openstreetmap/josm/io/OsmConnection.java
index fe711c4..289ab0a 100644
--- a/src/org/openstreetmap/josm/io/OsmConnection.java
+++ b/src/org/openstreetmap/josm/io/OsmConnection.java
@@ -66,17 +66,16 @@ public class OsmConnection {
         } catch (CredentialsAgentException e) {
             throw new OsmTransferException(e);
         }
-        String token;
-        if (response == null) {
-            token = ":";
-        } else if (response.isCanceled()) {
-            cancel = true;
-            return;
-        } else {
-            String username = response.getUsername() == null ? "" : response.getUsername();
-            String password = response.getPassword() == null ? "" : String.valueOf(response.getPassword());
-            token = username + ':' + password;
-            con.setHeader("Authorization", "Basic "+Base64.getEncoder().encodeToString(token.getBytes(StandardCharsets.UTF_8)));
+        if (response != null) {
+            if (response.isCanceled()) {
+                cancel = true;
+                return;
+            } else {
+                String username = response.getUsername() == null ? "" : response.getUsername();
+                String password = response.getPassword() == null ? "" : String.valueOf(response.getPassword());
+                String token = username + ':' + password;
+                con.setHeader("Authorization", "Basic "+Base64.getEncoder().encodeToString(token.getBytes(StandardCharsets.UTF_8)));
+            }
         }
     }
 
diff --git a/src/org/openstreetmap/josm/io/OsmReader.java b/src/org/openstreetmap/josm/io/OsmReader.java
index 17905c8..6bb702a 100644
--- a/src/org/openstreetmap/josm/io/OsmReader.java
+++ b/src/org/openstreetmap/josm/io/OsmReader.java
@@ -197,7 +197,7 @@ public class OsmReader extends AbstractReader {
                 Main.info("Bbox " + copy + " is out of the world, normalized to " + bounds);
             }
             DataSource src = new DataSource(bounds, origin);
-            ds.dataSources.add(src);
+            ds.addDataSource(src);
         } else {
             throwException(tr("Missing mandatory attributes on element ''bounds''. " +
                     "Got minlon=''{0}'',minlat=''{1}'',maxlon=''{3}'',maxlat=''{4}'', origin=''{5}''.",
diff --git a/src/org/openstreetmap/josm/io/OsmWriter.java b/src/org/openstreetmap/josm/io/OsmWriter.java
index d9f2557..355d856 100644
--- a/src/org/openstreetmap/josm/io/OsmWriter.java
+++ b/src/org/openstreetmap/josm/io/OsmWriter.java
@@ -173,7 +173,7 @@ public class OsmWriter extends XmlWriter implements PrimitiveVisitor {
     }
 
     public void writeDataSources(DataSet ds) {
-        for (DataSource s : ds.dataSources) {
+        for (DataSource s : ds.getDataSources()) {
             out.println("  <bounds minlat='"
                     + s.bounds.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES)
                     +"' minlon='"
diff --git a/src/org/openstreetmap/josm/io/OverpassDownloadReader.java b/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
index 7865a12..a37d57b 100644
--- a/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
+++ b/src/org/openstreetmap/josm/io/OverpassDownloadReader.java
@@ -6,7 +6,6 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.EnumMap;
-import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
@@ -113,10 +112,10 @@ public class OverpassDownloadReader extends BoundingBoxDownloader {
         idOffset.put(OsmPrimitiveType.WAY, 2_400_000_000L);
         idOffset.put(OsmPrimitiveType.RELATION, 3_600_000_000L);
         try {
-            final List<NameFinder.SearchResult> results = NameFinder.queryNominatim(area);
-            final PrimitiveId osmId = results.get(0).getOsmId();
+            final PrimitiveId osmId = NameFinder.queryNominatim(area).stream().filter(
+                    x -> !OsmPrimitiveType.NODE.equals(x.getOsmId().getType())).iterator().next().getOsmId();
             return String.format("area(%d)", osmId.getUniqueId() + idOffset.get(osmId.getType()));
-        } catch (IOException | NoSuchElementException ex) {
+        } catch (IOException | NoSuchElementException | IndexOutOfBoundsException ex) {
             throw new UncheckedParseException(ex);
         }
     }
@@ -169,19 +168,19 @@ public class OverpassDownloadReader extends BoundingBoxDownloader {
         DataSet ds = super.parseOsm(progressMonitor);
 
         // add bounds if necessary (note that Overpass API does not return bounds in the response XML)
-        if (ds != null && ds.dataSources.isEmpty() && overpassQuery.contains("{{bbox}}")) {
+        if (ds != null && ds.getDataSources().isEmpty() && overpassQuery.contains("{{bbox}}")) {
             if (crosses180th) {
                 Bounds bounds = new Bounds(lat1, lon1, lat2, 180.0);
                 DataSource src = new DataSource(bounds, getBaseUrl());
-                ds.dataSources.add(src);
+                ds.addDataSource(src);
 
                 bounds = new Bounds(lat1, -180.0, lat2, lon2);
                 src = new DataSource(bounds, getBaseUrl());
-                ds.dataSources.add(src);
+                ds.addDataSource(src);
             } else {
                 Bounds bounds = new Bounds(lat1, lon1, lat2, lon2);
                 DataSource src = new DataSource(bounds, getBaseUrl());
-                ds.dataSources.add(src);
+                ds.addDataSource(src);
             }
         }
 
diff --git a/src/org/openstreetmap/josm/io/ProgressInputStream.java b/src/org/openstreetmap/josm/io/ProgressInputStream.java
index 0312053..e571d8d 100644
--- a/src/org/openstreetmap/josm/io/ProgressInputStream.java
+++ b/src/org/openstreetmap/josm/io/ProgressInputStream.java
@@ -6,6 +6,7 @@ import static org.openstreetmap.josm.tools.I18n.tr;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLConnection;
+import java.util.Optional;
 
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -30,10 +31,8 @@ public class ProgressInputStream extends InputStream {
      */
     public ProgressInputStream(InputStream in, long size, ProgressMonitor progressMonitor) {
         CheckParameterUtil.ensureParameterNotNull(in, "in");
-        if (progressMonitor == null) {
-            progressMonitor = NullProgressMonitor.INSTANCE;
-        }
-        this.updater = new StreamProgressUpdater(size, progressMonitor, tr("Downloading data..."));
+        this.updater = new StreamProgressUpdater(size,
+                Optional.ofNullable(progressMonitor).orElse(NullProgressMonitor.INSTANCE), tr("Downloading data..."));
         this.in = in;
     }
 
diff --git a/src/org/openstreetmap/josm/io/StreamProgressUpdater.java b/src/org/openstreetmap/josm/io/StreamProgressUpdater.java
index c4aae37..e8a13a2 100644
--- a/src/org/openstreetmap/josm/io/StreamProgressUpdater.java
+++ b/src/org/openstreetmap/josm/io/StreamProgressUpdater.java
@@ -2,6 +2,7 @@
 package org.openstreetmap.josm.io;
 
 import java.util.Locale;
+import java.util.Optional;
 
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -16,11 +17,8 @@ final class StreamProgressUpdater {
     private int lastDialogUpdate;
 
     StreamProgressUpdater(long size, ProgressMonitor progressMonitor, String taskTitle) {
-        if (progressMonitor == null) {
-            progressMonitor = NullProgressMonitor.INSTANCE;
-        }
         this.size = size;
-        this.progressMonitor = progressMonitor;
+        this.progressMonitor = Optional.ofNullable(progressMonitor).orElse(NullProgressMonitor.INSTANCE);
         this.taskTitle = taskTitle;
         initProgressMonitor();
     }
diff --git a/src/org/openstreetmap/josm/io/UTFInputStreamReader.java b/src/org/openstreetmap/josm/io/UTFInputStreamReader.java
index 8ababbe..8fdbaa2 100644
--- a/src/org/openstreetmap/josm/io/UTFInputStreamReader.java
+++ b/src/org/openstreetmap/josm/io/UTFInputStreamReader.java
@@ -6,6 +6,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.PushbackInputStream;
 import java.io.UnsupportedEncodingException;
+import java.util.Optional;
 
 /**
  * Detects the different UTF encodings from byte order mark.
@@ -66,10 +67,6 @@ public final class UTFInputStreamReader extends InputStreamReader {
         } else if (unread < -1) {
             pushbackStream.unread(bom, 0, 0);
         }
-
-        if (encoding == null) {
-            encoding = "UTF-8";
-        }
-        return new UTFInputStreamReader(pushbackStream, encoding);
+        return new UTFInputStreamReader(pushbackStream, Optional.ofNullable(encoding).orElse("UTF-8"));
     }
 }
diff --git a/src/org/openstreetmap/josm/io/XmlStreamParsingException.java b/src/org/openstreetmap/josm/io/XmlStreamParsingException.java
index db61439..efc09b3 100644
--- a/src/org/openstreetmap/josm/io/XmlStreamParsingException.java
+++ b/src/org/openstreetmap/josm/io/XmlStreamParsingException.java
@@ -3,6 +3,8 @@ package org.openstreetmap.josm.io;
 
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.util.Optional;
+
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
 
@@ -36,10 +38,7 @@ public class XmlStreamParsingException extends XMLStreamException {
 
     @Override
     public String getMessage() {
-        String msg = super.getMessage();
-        if (msg == null) {
-            msg = getClass().getName();
-        }
+        String msg = Optional.ofNullable(super.getMessage()).orElseGet(() -> getClass().getName());
         if (getLocation() == null)
             return msg;
         msg += ' ' + tr("(at line {0}, column {1})", getLocation().getLineNumber(), getLocation().getColumnNumber());
diff --git a/src/org/openstreetmap/josm/io/imagery/ImageryReader.java b/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
index c8c09f7..6e0a1e9 100644
--- a/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
+++ b/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
@@ -153,6 +153,10 @@ public class ImageryReader implements Closeable {
                     noTileHeaders = new MultiMap<>();
                     noTileChecksums = new MultiMap<>();
                     metadataHeaders = new HashMap<>();
+                    String best = atts.getValue("eli-best");
+                    if ("true".equals(best)) {
+                        entry.setBestMarked(true);
+                    }
                 }
                 break;
             case MIRROR:
@@ -189,6 +193,7 @@ public class ImageryReader implements Closeable {
                         "terms-of-use-url",
                         "country-code",
                         "icon",
+                        "date",
                         "tile-size",
                         "valid-georeference",
                         "epsg4326to3857Supported",
@@ -357,6 +362,9 @@ public class ImageryReader implements Closeable {
                 case "description":
                     entry.setDescription(lang, accumulator.toString());
                     break;
+                case "date":
+                    entry.setDate(accumulator.toString());
+                    break;
                 case "id":
                     entry.setId(accumulator.toString());
                     break;
diff --git a/src/org/openstreetmap/josm/io/imagery/WMSImagery.java b/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
index 01113ef..fb0fc13 100644
--- a/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
+++ b/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
@@ -267,11 +267,19 @@ public class WMSImagery {
     static boolean isImageFormatSupported(final String format) {
         return ImageIO.getImageReadersByMIMEType(format).hasNext()
                 // handles image/tiff image/tiff8 image/geotiff image/geotiff8
-                || ((format.startsWith("image/tiff") || format.startsWith("image/geotiff"))
-                        && ImageIO.getImageReadersBySuffix("tiff").hasNext())
-                || (format.startsWith("image/png") && ImageIO.getImageReadersBySuffix("png").hasNext())
-                || (format.startsWith("image/svg") && ImageIO.getImageReadersBySuffix("svg").hasNext())
-                || (format.startsWith("image/bmp") && ImageIO.getImageReadersBySuffix("bmp").hasNext());
+                || isImageFormatSupported(format, "tiff", "geotiff")
+                || isImageFormatSupported(format, "png")
+                || isImageFormatSupported(format, "svg")
+                || isImageFormatSupported(format, "bmp");
+    }
+
+    static boolean isImageFormatSupported(String format, String ... mimeFormats) {
+        for (String mime : mimeFormats) {
+            if (format.startsWith("image/" + mime)) {
+                return ImageIO.getImageReadersBySuffix(mimeFormats[0]).hasNext();
+            }
+        }
+        return false;
     }
 
     static boolean imageFormatHasTransparency(final String format) {
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java b/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java
index d9ff0d0..899507b 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpServer.java
@@ -102,9 +102,9 @@ public class RemoteControlHttpServer extends Thread {
                 @SuppressWarnings("resource")
                 Socket request = server.accept();
                 RequestProcessor.processRequest(request);
-            } catch (SocketException se) {
+            } catch (SocketException e) {
                 if (!server.isClosed()) {
-                    Main.error(se);
+                    Main.error(e);
                 } else {
                     // stop the thread automatically if server is stopped
                     return;
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpsServer.java b/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpsServer.java
index 455b439..27a6fe3 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpsServer.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/RemoteControlHttpsServer.java
@@ -416,9 +416,9 @@ public class RemoteControlHttpsServer extends Thread {
                     Main.trace("SSL socket - Session: "+sslSocket.getSession());
                 }
                 RequestProcessor.processRequest(request);
-            } catch (SocketException se) {
+            } catch (SocketException e) {
                 if (!server.isClosed()) {
-                    Main.error(se);
+                    Main.error(e);
                 }
             } catch (IOException ioe) {
                 Main.error(ioe);
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java b/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
index 7281c7f..67c7e10 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
@@ -474,13 +474,13 @@ public class RequestProcessor extends Thread {
             if (sample.getUsage() != null && !sample.getUsage().isEmpty()) {
                 usage.append(" — <i>").append(sample.getUsage()).append("</i>");
             }
-            if (mandatory != null) {
+            if (mandatory != null && mandatory.length > 0) {
                 usage.append("<br/>mandatory parameters: ").append(Utils.join(", ", Arrays.asList(mandatory)));
             }
-            if (optional != null) {
+            if (optional != null && optional.length > 0) {
                 usage.append("<br/>optional parameters: ").append(Utils.join(", ", Arrays.asList(optional)));
             }
-            if (examples != null) {
+            if (examples != null && examples.length > 0) {
                 usage.append("<br/>examples: ");
                 for (String ex: examples) {
                     usage.append("<br/> <a href=\"http://localhost:8111").append(ex).append("\">").append(ex).append("</a>");
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java b/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java
index 6d84211..4f68860 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/handler/FeaturesHandler.java
@@ -63,7 +63,7 @@ public class FeaturesHandler extends RequestHandler {
 
     @Override
     public String[] getMandatoryParams() {
-        return null;
+        return new String[0];
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java b/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java
index cd83e6d..5850305 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java
@@ -110,7 +110,7 @@ public abstract class RequestHandler {
     public abstract String[] getMandatoryParams();
 
     public String[] getOptionalParams() {
-        return null;
+        return new String[0];
     }
 
     public String getUsage() {
@@ -118,7 +118,7 @@ public abstract class RequestHandler {
     }
 
     public String[] getUsageExamples() {
-        return null;
+        return new String[0];
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/handler/VersionHandler.java b/src/org/openstreetmap/josm/io/remotecontrol/handler/VersionHandler.java
index 97ea539..5406321 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/handler/VersionHandler.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/handler/VersionHandler.java
@@ -38,7 +38,7 @@ public class VersionHandler extends RequestHandler {
 
     @Override
     public String[] getMandatoryParams() {
-        return null;
+        return new String[0];
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/io/session/SessionReader.java b/src/org/openstreetmap/josm/io/session/SessionReader.java
index c97b427..82842aa 100644
--- a/src/org/openstreetmap/josm/io/session/SessionReader.java
+++ b/src/org/openstreetmap/josm/io/session/SessionReader.java
@@ -601,8 +601,8 @@ public class SessionReader {
             try {
                 zipFile = new ZipFile(sessionFile, StandardCharsets.UTF_8);
                 return getZipInputStream(zipFile);
-            } catch (ZipException ze) {
-                throw new IOException(ze);
+            } catch (ZipException ex) {
+                throw new IOException(ex);
             }
         } else {
             try {
diff --git a/src/org/openstreetmap/josm/plugins/PluginHandler.java b/src/org/openstreetmap/josm/plugins/PluginHandler.java
index bc12b19..7fead59 100644
--- a/src/org/openstreetmap/josm/plugins/PluginHandler.java
+++ b/src/org/openstreetmap/josm/plugins/PluginHandler.java
@@ -134,6 +134,7 @@ public final class PluginHandler {
             new DeprecatedPlugin("kendzi3d-jogl", tr("replaced by new {0} plugin", "jogl")),
             new DeprecatedPlugin("josm-geojson", tr("replaced by new {0} plugin", "geojson")),
             new DeprecatedPlugin("proj4j", inCore),
+            new DeprecatedPlugin("OpenStreetView", tr("replaced by new {0} plugin", "OpenStreetCam")),
         });
     }
 
diff --git a/src/org/openstreetmap/josm/plugins/PluginInformation.java b/src/org/openstreetmap/josm/plugins/PluginInformation.java
index 81eb35f..eb20c7a 100644
--- a/src/org/openstreetmap/josm/plugins/PluginInformation.java
+++ b/src/org/openstreetmap/josm/plugins/PluginInformation.java
@@ -17,6 +17,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 import java.util.TreeMap;
 import java.util.jar.Attributes;
 import java.util.jar.JarInputStream;
@@ -198,10 +199,7 @@ public class PluginInformation {
         String lang = LanguageInfo.getLanguageCodeManifest();
         Attributes attr = manifest.getMainAttributes();
         className = attr.getValue("Plugin-Class");
-        String s = attr.getValue(lang+"Plugin-Link");
-        if (s == null) {
-            s = attr.getValue("Plugin-Link");
-        }
+        String s = Optional.ofNullable(attr.getValue(lang+"Plugin-Link")).orElseGet(() -> attr.getValue("Plugin-Link"));
         if (s != null && !Utils.isValidUrl(s)) {
             Main.info(tr("Invalid URL ''{0}'' in plugin {1}", s, name));
             s = null;
diff --git a/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java b/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
index 4545ffe..998eb1a 100644
--- a/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
+++ b/src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.swing.JLabel;
@@ -53,10 +54,7 @@ public class ReadRemotePluginInformationTask extends PleaseWaitRunnable {
     private boolean displayErrMsg;
 
     protected final void init(Collection<String> sites, boolean displayErrMsg) {
-        this.sites = sites;
-        if (sites == null) {
-            this.sites = Collections.emptySet();
-        }
+        this.sites = Optional.ofNullable(sites).orElseGet(Collections::emptySet);
         this.availablePlugins = new LinkedList<>();
         this.displayErrMsg = displayErrMsg;
     }
diff --git a/src/org/openstreetmap/josm/tools/ExceptionUtil.java b/src/org/openstreetmap/josm/tools/ExceptionUtil.java
index 789b650..c66230b 100644
--- a/src/org/openstreetmap/josm/tools/ExceptionUtil.java
+++ b/src/org/openstreetmap/josm/tools/ExceptionUtil.java
@@ -14,6 +14,7 @@ import java.text.DateFormat;
 import java.text.ParseException;
 import java.util.Collection;
 import java.util.Date;
+import java.util.Optional;
 import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -361,13 +362,6 @@ public final class ExceptionUtil {
      */
     public static String explainGenericOsmApiException(OsmApiException e) {
         Main.error(e);
-        String errMsg = e.getErrorHeader();
-        if (errMsg == null) {
-            errMsg = e.getErrorBody();
-        }
-        if (errMsg == null) {
-            errMsg = tr("no error message available");
-        }
         return tr("<html>"
                 + "Communication with the OSM server ''{0}''failed. The server replied<br>"
                 + "the following error code and the following error message:<br>"
@@ -376,7 +370,8 @@ public final class ExceptionUtil {
                 + "</html>",
                 getUrlFromException(e),
                 e.getResponseCode(),
-                errMsg
+                Optional.ofNullable(Optional.ofNullable(e.getErrorHeader()).orElseGet(e::getErrorBody))
+                    .orElse(tr("no error message available"))
         );
     }
 
diff --git a/src/org/openstreetmap/josm/tools/HttpClient.java b/src/org/openstreetmap/josm/tools/HttpClient.java
index 30e50f1..a45ecfd 100644
--- a/src/org/openstreetmap/josm/tools/HttpClient.java
+++ b/src/org/openstreetmap/josm/tools/HttpClient.java
@@ -18,6 +18,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Optional;
 import java.util.Scanner;
 import java.util.TreeMap;
 import java.util.concurrent.TimeUnit;
@@ -147,9 +148,8 @@ public final class HttpClient {
                 final String redirectLocation = connection.getHeaderField("Location");
                 if (redirectLocation == null) {
                     /* I18n: argument is HTTP response code */
-                    String msg = tr("Unexpected response from HTTP server. Got {0} response without ''Location'' header." +
-                            " Can''t redirect. Aborting.", connection.getResponseCode());
-                    throw new IOException(msg);
+                    throw new IOException(tr("Unexpected response from HTTP server. Got {0} response without ''Location'' header." +
+                            " Can''t redirect. Aborting.", connection.getResponseCode()));
                 } else if (maxRedirects > 0) {
                     url = new URL(url, redirectLocation);
                     maxRedirects--;
@@ -283,10 +283,7 @@ public final class HttpClient {
                 in = connection.getInputStream();
             } catch (IOException ioe) {
                 Main.debug(ioe);
-                in = connection.getErrorStream();
-                if (in == null) {
-                    in = new ByteArrayInputStream(new byte[]{});
-                }
+                in = Optional.ofNullable(connection.getErrorStream()).orElseGet(() -> new ByteArrayInputStream(new byte[]{}));
             }
             in = new ProgressInputStream(in, getContentLength(), monitor);
             in = "gzip".equalsIgnoreCase(getContentEncoding()) ? new GZIPInputStream(in) : in;
@@ -663,6 +660,7 @@ public final class HttpClient {
             Thread.sleep(100);
         } catch (InterruptedException ex) {
             Main.warn("InterruptedException in " + HttpClient.class + " during cancel");
+            Thread.currentThread().interrupt();
         }
         connection.disconnect();
     }
diff --git a/src/org/openstreetmap/josm/tools/ImageProvider.java b/src/org/openstreetmap/josm/tools/ImageProvider.java
index 33626b0..5198a5d 100644
--- a/src/org/openstreetmap/josm/tools/ImageProvider.java
+++ b/src/org/openstreetmap/josm/tools/ImageProvider.java
@@ -1226,9 +1226,9 @@ public class ImageProvider {
                  InputStream is = cf.getInputStream()) {
                 parser.parse(new InputSource(is));
             }
-        } catch (SAXReturnException r) {
-            Main.trace(r);
-            return r.getResult();
+        } catch (SAXReturnException e) {
+            Main.trace(e);
+            return e.getResult();
         } catch (IOException | SAXException | ParserConfigurationException e) {
             Main.warn("Parsing " + base + fn + " failed:\n" + e);
             return null;
diff --git a/src/org/openstreetmap/josm/tools/Logging.java b/src/org/openstreetmap/josm/tools/Logging.java
index 510a4ea..253897f 100644
--- a/src/org/openstreetmap/josm/tools/Logging.java
+++ b/src/org/openstreetmap/josm/tools/Logging.java
@@ -69,7 +69,7 @@ public final class Logging {
             }
 
             @Override
-            public void publish(LogRecord record) {
+            public synchronized void publish(LogRecord record) {
                 if (!stderr.isLoggable(record)) {
                     super.publish(record);
                 }
diff --git a/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java b/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java
index 683d4c6..28dbd32 100644
--- a/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java
+++ b/src/org/openstreetmap/josm/tools/OsmUrlToBounds.java
@@ -40,8 +40,8 @@ public final class OsmUrlToBounds {
             if (url.contains("%")) {
                 url = Utils.decodeUrl(url);
             }
-        } catch (IllegalArgumentException x) {
-            Main.error(x);
+        } catch (IllegalArgumentException ex) {
+            Main.error(ex);
         }
         Bounds b = parseShortLink(url);
         if (b != null)
@@ -81,8 +81,8 @@ public final class OsmUrlToBounds {
                         parseDouble(map, "lon"),
                         z == null ? 18 : Integer.parseInt(z));
             }
-        } catch (NumberFormatException | NullPointerException | ArrayIndexOutOfBoundsException x) {
-            Main.error(x);
+        } catch (NumberFormatException | NullPointerException | ArrayIndexOutOfBoundsException ex) {
+            Main.error(ex);
         }
         return b;
     }
diff --git a/src/org/openstreetmap/josm/tools/Pair.java b/src/org/openstreetmap/josm/tools/Pair.java
index fcc394e..1a70ad5 100644
--- a/src/org/openstreetmap/josm/tools/Pair.java
+++ b/src/org/openstreetmap/josm/tools/Pair.java
@@ -61,7 +61,7 @@ public final class Pair<A, B> {
 
     @Override
     public String toString() {
-        return '<'+a.toString()+','+b.toString()+'>';
+        return "<" + a + ',' + b + '>';
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/tools/PlatformHookOsx.java b/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
index c704875..36223f7 100644
--- a/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
+++ b/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
@@ -132,6 +132,7 @@ public class PlatformHookOsx implements PlatformHook, InvocationHandler {
                                         Thread.sleep(25);
                                     } catch (InterruptedException e) {
                                         Main.warn(e);
+                                        Thread.currentThread().interrupt();
                                     }
                                 }
                                 super.realRun();
diff --git a/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java b/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
index 32c0011..0d42a6a 100644
--- a/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
+++ b/src/org/openstreetmap/josm/tools/PlatformHookUnixoid.java
@@ -383,7 +383,7 @@ public class PlatformHookUnixoid implements PlatformHook {
      * Currently this is the case, if the dot directory already exists.
      * @return true if the dot directory should be used
      */
-    private boolean useDotDirectory() {
+    private static boolean useDotDirectory() {
         return getDotDirectory().exists();
     }
 
diff --git a/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java b/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java
index 65f4c66..f17b6bc 100644
--- a/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java
+++ b/src/org/openstreetmap/josm/tools/RightAndLefthandTraffic.java
@@ -103,13 +103,13 @@ public final class RightAndLefthandTraffic {
             w.removeAll();
         }
         // Purge all other ways and relations so dataset only contains lefthand traffic data
-        new PurgeAction().getPurgeCommand(toPurge).executeCommand();
+        new PurgeAction(false).getPurgeCommand(toPurge).executeCommand();
         // Combine adjacent countries into a single polygon
         Collection<Way> optimizedWays = new ArrayList<>();
         List<Multipolygon> areas = JoinAreasAction.collectMultipolygons(ways);
         if (areas != null) {
             try {
-                JoinAreasResult result = new JoinAreasAction().joinAreas(areas);
+                JoinAreasResult result = new JoinAreasAction(false).joinAreas(areas);
                 if (result.hasChanges()) {
                     for (Multipolygon mp : result.getPolygons()) {
                         optimizedWays.add(mp.getOuterWay());
diff --git a/src/org/openstreetmap/josm/tools/Shortcut.java b/src/org/openstreetmap/josm/tools/Shortcut.java
index 13dbffc..34b80ad 100644
--- a/src/org/openstreetmap/josm/tools/Shortcut.java
+++ b/src/org/openstreetmap/josm/tools/Shortcut.java
@@ -383,10 +383,7 @@ public final class Shortcut {
     }
 
     private static int getGroupModifier(int group) {
-        Integer m = groups.get(group);
-        if (m == null)
-            m = -1;
-        return m;
+        return Optional.ofNullable(groups.get(group)).orElse(-1);
     }
 
     private static int findModifier(int group, Integer modifier) {
diff --git a/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java b/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java
index 9ce2b62..ea5ac27 100644
--- a/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java
+++ b/src/org/openstreetmap/josm/tools/bugreport/BugReportQueue.java
@@ -81,6 +81,7 @@ public class BugReportQueue {
                 }
             } catch (InterruptedException e) {
                 displayFor(BugReport.intercept(e));
+                Thread.currentThread().interrupt();
             }
         }
     }
diff --git a/src/org/openstreetmap/josm/tools/date/DateUtils.java b/src/org/openstreetmap/josm/tools/date/DateUtils.java
index 836ccaf..481d6b1 100644
--- a/src/org/openstreetmap/josm/tools/date/DateUtils.java
+++ b/src/org/openstreetmap/josm/tools/date/DateUtils.java
@@ -49,12 +49,15 @@ public final class DateUtils {
         DatatypeFactory fact = null;
         try {
             fact = DatatypeFactory.newInstance();
-        } catch (DatatypeConfigurationException ce) {
-            Main.error(ce);
+        } catch (DatatypeConfigurationException e) {
+            Main.error(e);
         }
         XML_DATE = fact;
     }
 
+    /**
+     * Constructs a new {@code DateUtils}.
+     */
     protected DateUtils() {
         // Hide default constructor for utils classes
     }
diff --git a/styles/standard/elemstyles.mapcss b/styles/standard/elemstyles.mapcss
index 4dc87b2..36cdfe1 100644
--- a/styles/standard/elemstyles.mapcss
+++ b/styles/standard/elemstyles.mapcss
@@ -2475,8 +2475,13 @@ node[amenity=clock] {
     icon-image: "presets/service/clock.svg";
     set icon_z17;
 }
+node[amenity=photo_booth] {
+    icon-image: "presets/service/photo_booth.svg";
+    set icon_z17;
+}
 area[amenity=toilets],
 area[amenity=shower],
+area[amenity=internet_cafe],
 area[amenity=recycling],
 area[amenity=sanitary_dump_station] {
     fill-color: amenity_light#f7efb7;
@@ -2489,6 +2494,10 @@ node[amenity=shower] {
     icon-image: "presets/service/shower.svg";
     set icon_z17;
 }
+node[amenity=internet_cafe] { 
+    icon-image: "presets/service/internet_cafe.svg";
+    set icon_z17;
+}
 node[amenity=recycling] {
     icon-image: "presets/service/recycling/recycling.svg";
     set icon_z17;
@@ -3036,10 +3045,20 @@ node[tourism=caravan_site] {
     icon-image: "presets/accommodation/caravan.svg";
     set icon_z17;
 }
+area[tourism=attraction]:closed {
+    fill-color: tourism#e180a2;
+}
+way[tourism=attraction] {
+    width: 2;
+    color: tourism#e180a2;
+}
+node[tourism=attraction] {
+    icon-image: "presets/sightseeing/attraction.svg";
+    set icon_z17;
+}
 area[tourism=picnic_site],
 area[tourism=viewpoint],
 area[tourism=theme_park],
-area[tourism=attraction],
 area[tourism=zoo],
 area[tourism=museum] {
     fill-color: tourism#e180a2;
@@ -3056,10 +3075,6 @@ node[tourism=theme_park] {
     icon-image: "presets/leisure/theme_park.svg";
     set icon_z17;
 }
-node[tourism=attraction] {
-    icon-image: "presets/sightseeing/attraction.svg";
-    set icon_z17;
-}
 node[tourism=zoo] {
     icon-image: "presets/leisure/zoo.svg";
     set icon_z17;
diff --git a/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java b/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java
index 8381f68..15a9f6a 100644
--- a/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java
+++ b/test/unit/org/openstreetmap/josm/actions/AddImageryLayerActionTest.java
@@ -34,7 +34,7 @@ public final class AddImageryLayerActionTest {
      */
     @Test
     public void testEnabledState() {
-        assertTrue(new AddImageryLayerAction(new ImageryInfo()).isEnabled());
+        assertTrue(new AddImageryLayerAction(new ImageryInfo("foo")).isEnabled());
         assertTrue(new AddImageryLayerAction(new ImageryInfo("foo_tms", "http://bar", "tms", null, null)).isEnabled());
         assertTrue(new AddImageryLayerAction(new ImageryInfo("foo_bing", "http://bar", "bing", null, null)).isEnabled());
         assertTrue(new AddImageryLayerAction(new ImageryInfo("foo_scanex", "http://bar", "scanex", null, null)).isEnabled());
@@ -70,7 +70,7 @@ public final class AddImageryLayerActionTest {
     public void testActionPerformedDisabled() {
         assertTrue(Main.getLayerManager().getLayersOfType(TMSLayer.class).isEmpty());
         try {
-            new AddImageryLayerAction(new ImageryInfo()).actionPerformed(null);
+            new AddImageryLayerAction(new ImageryInfo("foo")).actionPerformed(null);
         } catch (IllegalArgumentException expected) {
             assertEquals("Parameter 'info.url' must not be null", expected.getMessage());
         }
diff --git a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
index cde24a9..aa1f4fa 100644
--- a/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
+++ b/test/unit/org/openstreetmap/josm/command/AddPrimitivesCommandTest.java
@@ -175,6 +175,45 @@ public class AddPrimitivesCommandTest {
     }
 
     /**
+     * Tests if the undo command does not remove
+     * data ignored by by the add command because they where already existing.
+     */
+    @Test
+    public void testUndoIgnoresExisting() {
+        OsmDataLayer layer1 = new OsmDataLayer(new DataSet(), "l1", null);
+        Main.getLayerManager().addLayer(layer1);
+
+        List<PrimitiveData> testData = createTestData();
+
+        assertTrue(new AddPrimitivesCommand(testData).executeCommand());
+        assertEquals(2, layer1.data.getNodes().size());
+        assertEquals(1, layer1.data.getWays().size());
+
+        testData.set(2, createTestNode(7));
+
+        AddPrimitivesCommand command = new AddPrimitivesCommand(testData);
+
+        assertTrue(command.executeCommand());
+
+        assertEquals(3, layer1.data.getNodes().size());
+        assertEquals(1, layer1.data.getWays().size());
+
+        for (int i = 0; i < 2; i++) {
+            // Needs to work multiple times.
+            command.undoCommand();
+
+            assertEquals(2, layer1.data.getNodes().size());
+            assertEquals(1, layer1.data.getWays().size());
+
+            // redo
+            assertTrue(command.executeCommand());
+
+            assertEquals(3, layer1.data.getNodes().size());
+            assertEquals(1, layer1.data.getWays().size());
+        }
+    }
+
+    /**
      * Test {@link AddCommand#getParticipatingPrimitives()}
      */
     @Test
diff --git a/test/unit/org/openstreetmap/josm/data/PreferencesTest.java b/test/unit/org/openstreetmap/josm/data/PreferencesTest.java
index 11b28d3..5be0075 100644
--- a/test/unit/org/openstreetmap/josm/data/PreferencesTest.java
+++ b/test/unit/org/openstreetmap/josm/data/PreferencesTest.java
@@ -42,7 +42,7 @@ public class PreferencesTest {
     public void testColorAlpha() {
         assertEquals(0x12, new ColorProperty("foo", new Color(0x12345678, true)).get().getAlpha());
         assertTrue(Main.pref.putColor("bar", new Color(0x12345678, true)));
-        assertEquals(0x12, new ColorProperty("bar", (String) null).get().getAlpha());
+        assertEquals(0x12, new ColorProperty("bar", Color.RED).get().getAlpha());
     }
 
     /**
diff --git a/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java b/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
index 4c2d8b0..d2e5c99 100644
--- a/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
+++ b/test/unit/org/openstreetmap/josm/data/osm/NodeTest.java
@@ -34,7 +34,7 @@ public class NodeTest {
     @Test
     public void testTicket12060() {
         DataSet ds = new DataSet();
-        ds.dataSources.add(new DataSource(new Bounds(LatLon.ZERO), null));
+        ds.addDataSource(new DataSource(new Bounds(LatLon.ZERO), null));
         Node n = new Node(1, 1);
         n.setCoor(LatLon.ZERO);
         ds.addPrimitive(n);
diff --git a/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTest.java b/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTest.java
index f0efdec..1005cf4 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTest.java
@@ -266,10 +266,10 @@ public class DomainValidatorTest {
             assertEquals(s, DomainValidator.unicodeToASCII(s));
         }
         // RFC3490 3.1. 1)
-//      Whenever dots are used as label separators, the following
-//      characters MUST be recognized as dots: U+002E (full stop), U+3002
-//      (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61
-//      (halfwidth ideographic full stop).
+        // Whenever dots are used as label separators, the following
+        // characters MUST be recognized as dots: U+002E (full stop), U+3002
+        // (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61
+        // (halfwidth ideographic full stop).
         final String[][] otherDots = {
                 {"b\u3002", "b."},
                 {"b\uFF0E", "b."},
diff --git a/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTestIT.java b/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTestIT.java
index af2fadf..338772e 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTestIT.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTestIT.java
@@ -188,12 +188,8 @@ public class DomainValidatorTestIT {
     private static Map<String, String[]> getHtmlInfo(final File f) throws IOException {
         final Map<String, String[]> info = new HashMap<>();
 
-//        <td><span class="domain tld"><a href="/domains/root/db/ax.html">.ax</a></span></td>
         final Pattern domain = Pattern.compile(".*<a href=\"/domains/root/db/([^.]+)\\.html");
-//        <td>country-code</td>
         final Pattern type = Pattern.compile("\\s+<td>([^<]+)</td>");
-//        <!-- <td>Åland Islands<br/><span class="tld-table-so">Ålands landskapsregering</span></td> </td> -->
-//        <td>Ålands landskapsregering</td>
         final Pattern comment = Pattern.compile("\\s+<td>([^<]+)</td>");
 
         try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8))) {
@@ -227,11 +223,8 @@ public class DomainValidatorTestIT {
                             com = n.group(1);
                         }
                         // Don't save unused entries
-                        if (com.contains("Not assigned") || com.contains("Retired") || typ.equals("test")) {
-    //                        System.out.println("Ignored: " + typ + " " + dom + " " +com);
-                        } else {
+                        if (!com.contains("Not assigned") && !com.contains("Retired") && !typ.equals("test")) {
                             info.put(dom.toLowerCase(Locale.ENGLISH), new String[]{typ, com});
-    //                        System.out.println("Storing: " + typ + " " + dom + " " +com);
                         }
                     } else {
                         System.err.println("Unexpected type: " + line);
diff --git a/test/unit/org/openstreetmap/josm/data/validation/routines/ResultPair.java b/test/unit/org/openstreetmap/josm/data/validation/routines/ResultPair.java
index 8da81ed..2b1b739 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/routines/ResultPair.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/routines/ResultPair.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- package org.openstreetmap.josm.data.validation.routines;
+package org.openstreetmap.josm.data.validation.routines;
 
 /**
  * Groups tests and expected results.
diff --git a/test/unit/org/openstreetmap/josm/data/validation/routines/UrlValidatorTest.java b/test/unit/org/openstreetmap/josm/data/validation/routines/UrlValidatorTest.java
index 5573456..ada3f7e 100644
--- a/test/unit/org/openstreetmap/josm/data/validation/routines/UrlValidatorTest.java
+++ b/test/unit/org/openstreetmap/josm/data/validation/routines/UrlValidatorTest.java
@@ -407,7 +407,6 @@ public class UrlValidatorTest {
    public void testValidator290() {
         UrlValidator validator = new UrlValidator();
         assertTrue(validator.isValid("http://xn--h1acbxfam.idn.icann.org/"));
-//        assertTrue(validator.isValid("http://xn--e1afmkfd.xn--80akhbyknj4f"));
         // Internationalized country code top-level domains
         assertTrue(validator.isValid("http://test.xn--lgbbat1ad8j")); //Algeria
         assertTrue(validator.isValid("http://test.xn--fiqs8s")); // China
@@ -440,26 +439,6 @@ public class UrlValidatorTest {
         assertTrue(validator.isValid("http://test.xn--o3cw4h")); // Thailand
         assertTrue(validator.isValid("http://test.xn--pgbs0dh")); // Tunisia
         assertTrue(validator.isValid("http://test.xn--mgbaam7a8h")); // United Arab Emirates
-        // Proposed internationalized ccTLDs
-//        assertTrue(validator.isValid("http://test.xn--54b7fta0cc")); // Bangladesh
-//        assertTrue(validator.isValid("http://test.xn--90ae")); // Bulgaria
-//        assertTrue(validator.isValid("http://test.xn--node")); // Georgia
-//        assertTrue(validator.isValid("http://test.xn--4dbrk0ce")); // Israel
-//        assertTrue(validator.isValid("http://test.xn--mgb9awbf")); // Oman
-//        assertTrue(validator.isValid("http://test.xn--j1amh")); // Ukraine
-//        assertTrue(validator.isValid("http://test.xn--mgb2ddes")); // Yemen
-        // Test TLDs
-//        assertTrue(validator.isValid("http://test.xn--kgbechtv")); // Arabic
-//        assertTrue(validator.isValid("http://test.xn--hgbk6aj7f53bba")); // Persian
-//        assertTrue(validator.isValid("http://test.xn--0zwm56d")); // Chinese
-//        assertTrue(validator.isValid("http://test.xn--g6w251d")); // Chinese
-//        assertTrue(validator.isValid("http://test.xn--80akhbyknj4f")); // Russian
-//        assertTrue(validator.isValid("http://test.xn--11b5bs3a9aj6g")); // Hindi
-//        assertTrue(validator.isValid("http://test.xn--jxalpdlp")); // Greek
-//        assertTrue(validator.isValid("http://test.xn--9t4b11yi5a")); // Korean
-//        assertTrue(validator.isValid("http://test.xn--deba0ad")); // Yiddish
-//        assertTrue(validator.isValid("http://test.xn--zckzah")); // Japanese
-//        assertTrue(validator.isValid("http://test.xn--hlcj6aya9esc7a")); // Tamil
     }
 
    /**
diff --git a/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java b/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java
new file mode 100644
index 0000000..9177332
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtilTest.java
@@ -0,0 +1,444 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.conflict.tags;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.data.osm.TagCollection;
+import org.openstreetmap.josm.gui.conflict.tags.TagConflictResolutionUtil.AutomaticChoice;
+import org.openstreetmap.josm.gui.conflict.tags.TagConflictResolutionUtil.AutomaticChoiceGroup;
+import org.openstreetmap.josm.gui.conflict.tags.TagConflictResolutionUtil.AutomaticCombine;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import com.google.common.collect.Sets;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link TagConflictResolutionUtil} class.
+ */
+public class TagConflictResolutionUtilTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Unit test of {@link TagConflictResolutionUtil#applyAutomaticTagConflictResolution}.
+     * assume predefined rules for US TIGER and French Cadastre.
+     */
+    @Test
+    public void testApplyAutomaticTagConflictResolution() {
+        // Check that general tag conflict are not resolved
+        TagCollection tc = new TagCollection();
+        tc.add(new Tag("building", "school"));
+        tc.add(new Tag("building", "garage"));
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(tc);
+        assertEquals(Sets.newHashSet("school", "garage"), new HashSet<>(tc.getValues("building")));
+
+        // Check US Tiger tag conflict resolution
+        tc = new TagCollection();
+        tc.add(new Tag("tiger:test", "A:B"));
+        tc.add(new Tag("tiger:test", "A"));
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(tc);
+        assertEquals(Sets.newHashSet("A:B"), new HashSet<>(tc.getValues("tiger:test")));
+
+        // Check FR:cadastre source tag conflict resolution (most common values from taginfo except last one without accentuated characters)
+        tc = new TagCollection();
+        // CHECKSTYLE.OFF: LineLength
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre ; mise à jour : 2007"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre ; mise à jour : 2008"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre ; mise à jour : 2009"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre ; mise à jour : 2010"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2008"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2010"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2011"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2012"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2013"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2014"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Impôts - Cadas. Mise à jour : 2010"));
+        tc.add(new Tag("source", "extraction vectorielle v1 cadastre-dgi-fr source : Direction Générale des Impôts - Cadas. Mise à jour : 2010"));
+        tc.add(new Tag("source", "Direction Générale des Finances Publiques - Cadastre ; mise à jour : 2010"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Finances Publiques - Cadastre. Mise à jour : 2013"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Générale des Finances Publiques - Cadastre. Mise à jour : 2014"));
+        tc.add(new Tag("source", "cadastre-dgi-fr source : Direction Generale des Finances Publiques - Cadastre. Mise a jour : 2015"));
+        // CHECKSTYLE.ON: LineLength
+        Tag otherSource = new Tag("source", "other");
+        tc.add(otherSource); // other source should prevent resolution
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(tc);
+        assertSame(18, tc.getValues("source").size());
+        tc.remove(otherSource);
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(tc);
+        assertEquals(Sets.newHashSet("cadastre-dgi-fr source : Direction Generale des Finances Publiques - Cadastre. Mise a jour : 2015"),
+                new HashSet<>(tc.getValues("source")));
+
+        // Check CA:canvec source tag conflict resolution
+        tc = new TagCollection();
+        tc.add(new Tag("source", "CanVec_Import_2009"));
+        tc.add(new Tag("source", "CanVec 4.0 - NRCan"));
+        tc.add(new Tag("source", "CanVec 6.0 - NRCan"));
+        tc.add(new Tag("source", "NRCan-CanVec-7.0"));
+        tc.add(new Tag("source", "NRCan-CanVec-8.0"));
+        tc.add(new Tag("source", "NRCan-CanVec-10.0"));
+        tc.add(new Tag("source", "NRCan-CanVec-12.0"));
+        TagConflictResolutionUtil.applyAutomaticTagConflictResolution(tc);
+        assertEquals(Sets.newHashSet("NRCan-CanVec-12.0"), new HashSet<>(tc.getValues("source")));
+    }
+
+    /**
+     * Unit tests of {@link AutomaticCombine} class.
+     */
+    public static class AutomaticCombineTest {
+
+        /**
+         * Return AutomaticCombine instantiated with the two possible constructors.
+         * @param ac a model for the constructed object.
+         * @return AutomaticCombine object constructed with the two different constructors.
+         */
+        private static List<AutomaticCombine> differentlyConstructed(AutomaticCombine ac) {
+            AutomaticCombine fullyConstructed = new AutomaticCombine(ac.key, ac.description, ac.isRegex, ac.separator, ac.sort);
+            AutomaticCombine defaultConstructed = new AutomaticCombine();
+            defaultConstructed.key = ac.key;
+            defaultConstructed.description = ac.description;
+            defaultConstructed.isRegex = ac.isRegex;
+            defaultConstructed.separator = ac.separator;
+            defaultConstructed.sort = ac.sort;
+            return Arrays.asList(defaultConstructed, fullyConstructed);
+        }
+
+        /**
+         * Setup test.
+         */
+        @Rule
+        @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+        public JOSMTestRules test = new JOSMTestRules();
+
+        /**
+         * Unit test of {@link AutomaticCombine#matchesKey} with empty key.
+         */
+        @Test
+        public void testMatchesKeyEmptyKey() {
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("", "random description", true, ";", null))) {
+                assertFalse(resolver.matchesKey("a"));
+                assertTrue(resolver.matchesKey(""));
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticCombine#matchesKey} when regex not used.
+         */
+        @Test
+        public void testMatchesKeyNotRegex() {
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine(
+                    "keyname", "random description", false, "|", null))) {
+                assertFalse(resolver.matchesKey("key"));
+                assertFalse(resolver.matchesKey("keyname2"));
+                assertFalse(resolver.matchesKey("name"));
+                assertFalse(resolver.matchesKey("key.*("));
+                assertTrue(resolver.matchesKey("keyname"));
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticCombine#matchesKey} when regex used.
+         */
+        @Test
+        public void testMatchesKeyRegex() {
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("test[45].*", "", true, ";", "Integer"))) {
+                assertFalse(resolver.matchesKey("key"));
+                assertFalse(resolver.matchesKey("test[45].*"));
+                assertTrue(resolver.matchesKey("test400 !"));
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticCombine} with invalid regex.
+         */
+        @Test
+        public void testInvalidRegex() {
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("invalidregex.(]", "", false, ";", null))) {
+                // Should not raise exception if the resolver.isRexEx == false:
+                assertTrue(resolver.matchesKey("invalidregex.(]"));
+            }
+
+            // Should not raise exception if isRexEx, invalid regex but only constructed:
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("invalidregex.(]", "", true, ";", null))) {
+                assertTrue(resolver.isRegex);
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticCombine} with invalid regex.
+         */
+        @Test(expected = java.util.regex.PatternSyntaxException.class)
+        public void testInvalidRegexExceptionDefaultConstructed() {
+            AutomaticCombine resolver = new AutomaticCombine("AB.(]", "", true, ";", null);
+            resolver.matchesKey("AB");
+        }
+
+
+        /**
+         * Unit test of {@link AutomaticCombine} with invalid regex.
+         */
+        @Test(expected = java.util.regex.PatternSyntaxException.class)
+        public void testInvalidRegexExceptionFullyConstructed() {
+            AutomaticCombine resolver = new AutomaticCombine();
+            resolver.key = "AB.(]";
+            resolver.isRegex = true;
+            resolver.matchesKey("AB");
+        }
+
+        /**
+         * Unit test of {@link AutomaticCombine#resolve}.
+         */
+        @Test
+        public void testResolve() {
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("random", "", true, "|", "String"))) {
+                assertEquals(resolver.resolve(Sets.newHashSet("value1", "value2")), "value1|value2");
+                assertEquals(resolver.resolve(Sets.newHashSet("3|1", "4|2|1", "6|05", "3;1")), "05|1|2|3|3;1|4|6");
+            }
+
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("test[45].*", "", true, ";", "Integer"))) {
+                assertEquals(resolver.resolve(Sets.newHashSet("1254545;95;24", "25;24;3")), "3;24;25;95;1254545");
+            }
+
+            for (AutomaticCombine resolver: differentlyConstructed(new AutomaticCombine("AB", "", true, ";", null))) {
+                String resolution = resolver.resolve(Sets.newHashSet("3;x;1", "4;x"));
+                assertTrue(resolution.equals("3;x;1;4") || resolution.equals("4;x;3;1"));
+            }
+        }
+    }
+
+    /**
+     * Unit tests of {@link AutomaticChoice} class.
+     */
+    public static class AutomaticChoiceTest {
+        /**
+         * Setup test.
+         */
+        @Rule
+        @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+        public JOSMTestRules test = new JOSMTestRules();
+
+        /**
+
+         * Return AutomaticCombine instantiated with the two possible constructors.
+         * @param ac a model for the constructed object.
+         * @return AutomaticCombine object constructed with the two different constructors.
+         */
+        private static List<AutomaticChoice> differentlyConstructed(AutomaticChoice ac) {
+            AutomaticChoice fullyConstructed = new AutomaticChoice(ac.key, ac.group, ac.description, ac.isRegex, ac.value, ac.score);
+            AutomaticChoice defaultConstructed = new AutomaticChoice();
+            defaultConstructed.key = ac.key;
+            defaultConstructed.group = ac.group;
+            defaultConstructed.description = ac.description;
+            defaultConstructed.isRegex = ac.isRegex;
+            defaultConstructed.value = ac.value;
+            defaultConstructed.score = ac.score;
+            return Arrays.asList(defaultConstructed, fullyConstructed);
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoice#matchesValue}.
+         */
+        @Test
+        public void testMatchesValue() {
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "random key", "random group", "random description", false, ".*valueToMatch", "Score$0\\1"))) {
+                assertTrue(resolver.matchesValue(".*valueToMatch"));
+                assertFalse(resolver.matchesValue(".*valueToMatch.*"));
+                assertFalse(resolver.matchesValue("test"));
+                assertFalse(resolver.matchesValue(""));
+            }
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "", "", "", true, "test([ab].*)", "ok $1"))) {
+                assertTrue(resolver.matchesValue("testa"));
+                assertTrue(resolver.matchesValue("testb129"));
+                assertFalse(resolver.matchesValue("test[ab].*"));
+                assertFalse(resolver.matchesValue("test"));
+                assertFalse(resolver.matchesValue(""));
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoice#computeScoreFromValue}.
+         */
+        @Test
+        public void testComputeScoreFromValue() {
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "random key", "random group", "random description", false, ".*valueToMatch", "Score$0\\1"))) {
+                assertEquals(resolver.computeScoreFromValue(".*valueToMatch"), "Score$0\\1");
+            }
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "", "", "", true, "test([ab].*)", "ok $1"))) {
+                assertEquals(resolver.computeScoreFromValue("testa"), "ok a");
+                assertEquals(resolver.computeScoreFromValue("testb129"), "ok b129");
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoice} when invalid regex is used.
+         */
+        @Test
+        public void testInvalidRegex() {
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "k", "g", "", false, "invalidregex.(]", "InvalidScore$0\\1$-4"))) {
+                // Should not raise exception if the resolver.isRexEx == false:
+                assertTrue(resolver.matchesValue("invalidregex.(]"));
+                assertFalse(resolver.matchesValue("test"));
+                assertEquals(resolver.computeScoreFromValue("invalidregex.(]"), "InvalidScore$0\\1$-4");
+            }
+            // Should not raise exception if isRexEx, invalid regex but only constructed:
+            for (AutomaticChoice resolver: differentlyConstructed(new AutomaticChoice(
+                    "k", "g", "", true, "invalidregex.(]", "InvalidScore$0\\1$-4"))) {
+                assertTrue(resolver.isRegex);
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoice} when invalid regex is used.
+         */
+        @Test(expected = java.util.regex.PatternSyntaxException.class)
+        public void testMatchesValueInvalidRegex() {
+            AutomaticChoice resolver = new AutomaticChoice("k", "g", "", true, "invalidregex.(]", "InvalidScore$0\\1$-4");
+            resolver.matchesValue("test");
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoice} when invalid regex is used.
+         */
+        @Test(expected = java.util.regex.PatternSyntaxException.class)
+        public void testComputeScoreFromValueInvalidRegex() {
+            AutomaticChoice resolver = new AutomaticChoice("k", "g", "", true, "invalidregex.(]", "valid");
+            resolver.computeScoreFromValue("valid");
+        }
+
+
+        /**
+         * Unit test of {@link AutomaticChoice} when invalid score replacement is used.
+         */
+        @Test
+        public void testComputeScoreFromValueInvalidReplacement() {
+            AutomaticChoice resolver = new AutomaticChoice("k", "g", "", true, "valid", "InvalidScore$0\\1$-4");
+            boolean exceptionThrown = false;
+            try {
+                resolver.computeScoreFromValue("valid");
+            } catch (Exception e) {
+                exceptionThrown = true;
+            }
+            assertTrue(exceptionThrown);
+        }
+    }
+
+    /**
+     * Unit tests of {@link AutomaticChoiceGroup} class.
+     */
+    public static class AutomaticChoiceGroupTest {
+        /**
+         * Setup test.
+         */
+        @Rule
+        @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+        public JOSMTestRules test = new JOSMTestRules();
+
+        AutomaticChoice choiceKey1Group1 = new AutomaticChoice("Key1", "Group1", "", false, "value1", "score1");
+        AutomaticChoice choiceKey1Group1bis = new AutomaticChoice("Key1", "Group1", "", false, "value2", "score2");
+        AutomaticChoice choiceKey1Group2 = new AutomaticChoice("Key1", "Group2", "", false, "value1", "score1");
+        AutomaticChoice choiceKey1Group2bis = new AutomaticChoice("Key1", "Group2", "", false, "value2", "score2");
+        AutomaticChoice choiceKey2Group1 = new AutomaticChoice("test[45].*", "Group1", "", true, "value1", "score1");
+        AutomaticChoice choiceKey2Group1bis = new AutomaticChoice("test[45].*", "Group1", "", true, "value2", "score2");
+        AutomaticChoice choiceKey2Group2 = new AutomaticChoice("test[45].*", "Group2", "", true, "value1(.*)", "$1");
+        AutomaticChoice choiceKey2Group2bis = new AutomaticChoice("test[45].*", "Group2", "", true, "value2(.*)", "$1");
+        AutomaticChoice choiceEmpty = new AutomaticChoice();
+
+        /**
+         * Unit test of {@link AutomaticChoiceGroup#groupChoices}.
+         */
+        @Test
+        public void testGroupChoices() {
+            Collection<AutomaticChoiceGroup> groups = AutomaticChoiceGroup.groupChoices(Arrays.asList(choiceKey1Group1, choiceKey1Group2));
+            assertSame(2, groups.size());
+
+            groups = AutomaticChoiceGroup.groupChoices(Arrays.asList(
+                choiceKey1Group1, choiceKey1Group2, choiceKey2Group1, choiceKey2Group2, choiceEmpty));
+            assertSame(5, groups.size());
+
+            groups = AutomaticChoiceGroup.groupChoices(Arrays.asList(choiceKey1Group1, choiceKey1Group1bis));
+            assertSame(1, groups.size());
+            AutomaticChoiceGroup group1 = groups.iterator().next();
+            assertEquals(group1.key, choiceKey1Group1.key);
+            assertEquals(group1.group, choiceKey1Group1.group);
+            assertEquals(new HashSet<>(group1.choices), Sets.newHashSet(choiceKey1Group1, choiceKey1Group1bis));
+
+            groups = AutomaticChoiceGroup.groupChoices(Arrays.asList(
+                choiceKey1Group1, choiceKey1Group1bis, choiceKey1Group2, choiceKey1Group2bis,
+                choiceKey2Group1, choiceKey2Group1bis, choiceKey2Group2, choiceKey2Group2bis));
+            assertSame(4, groups.size());
+            for (AutomaticChoiceGroup group: groups) {
+                for (AutomaticChoice choice: group.choices) {
+                    assertEquals(choice.key, group.key);
+                    assertEquals(choice.group, group.group);
+                    assertEquals(choice.isRegex, group.isRegex);
+                }
+            }
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoiceGroup#matchesKey}.
+         */
+        @Test
+        public void testMatchesKey() {
+            AutomaticChoiceGroup group = new AutomaticChoiceGroup(
+                    choiceKey1Group1.key, choiceKey1Group1.group, choiceKey1Group1.isRegex,
+                    Arrays.asList(choiceKey1Group1, choiceKey1Group1bis));
+            assertFalse(group.matchesKey("key"));
+            assertFalse(group.matchesKey("keyname2"));
+            assertFalse(group.matchesKey("name"));
+            assertFalse(group.matchesKey("key.*("));
+            assertTrue(group.matchesKey(choiceKey1Group1.key));
+
+            group = new AutomaticChoiceGroup(
+                    choiceKey2Group1.key, choiceKey2Group2.group, choiceKey2Group2.isRegex,
+                    Arrays.asList(choiceKey2Group2, choiceKey2Group2bis));
+            assertFalse(group.matchesKey("key"));
+            assertFalse(group.matchesKey("test[45].*"));
+            assertTrue(group.matchesKey("test400 !"));
+        }
+
+        /**
+         * Unit test of {@link AutomaticChoiceGroup#resolve}.
+         */
+        @Test
+        public void testResolve() {
+            AutomaticChoiceGroup group = new AutomaticChoiceGroup(
+                    choiceKey1Group1.key, choiceKey1Group1.group, choiceKey1Group1.isRegex,
+                    Arrays.asList(choiceKey1Group1, choiceKey1Group1bis));
+            assertEquals(group.resolve(Sets.newHashSet(choiceKey1Group1.value)), choiceKey1Group1.value);
+            assertEquals(group.resolve(Sets.newHashSet(choiceKey1Group1.value, choiceKey1Group1bis.value)), choiceKey1Group1bis.value);
+            assertNull(group.resolve(Sets.newHashSet("random", choiceKey1Group1.value, choiceKey1Group1bis.value)));
+
+            group = new AutomaticChoiceGroup(
+                    choiceKey2Group1.key, choiceKey2Group2.group, choiceKey2Group2.isRegex,
+                    Arrays.asList(choiceKey2Group2, choiceKey2Group2bis));
+            assertEquals(group.resolve(Sets.newHashSet("value1")), "value1");
+            assertEquals(group.resolve(Sets.newHashSet("value1Z", "value2A")), "value1Z");
+            assertEquals(group.resolve(Sets.newHashSet("value1A", "value2Z")), "value2Z");
+            assertNull(group.resolve(Sets.newHashSet("value1Z", "value2A", "other not matched value")));
+        }
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplayTest.java b/test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplayTest.java
new file mode 100644
index 0000000..45c8da4
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplayTest.java
@@ -0,0 +1,44 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.layer.geoimage;
+
+import static org.junit.Assert.assertEquals;
+
+import java.awt.Dimension;
+import java.awt.Rectangle;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link ImageDisplay} class.
+ */
+public class ImageDisplayTest {
+    /**
+     * We need prefs for this.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Unit test of {@link ImageDisplay#calculateDrawImageRectangle}.
+     */
+    @Test
+    public void testCalculateDrawImageRectangle() {
+        assertEquals(new Rectangle(),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(), new Dimension()));
+        assertEquals(new Rectangle(0, 0, 10, 5),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(0, 0, 10, 5), new Dimension(10, 5)));
+        assertEquals(new Rectangle(0, 0, 10, 5),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(0, 0, 20, 10), new Dimension(10, 5)));
+        assertEquals(new Rectangle(0, 0, 20, 10),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(0, 0, 10, 5), new Dimension(20, 10)));
+        assertEquals(new Rectangle(5, 0, 24, 12),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(0, 0, 10, 5), new Dimension(35, 12)));
+        assertEquals(new Rectangle(0, 1, 8, 4),
+                ImageDisplay.calculateDrawImageRectangle(new Rectangle(0, 0, 10, 5), new Dimension(8, 6)));
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java
new file mode 100644
index 0000000..9432cb4
--- /dev/null
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java
@@ -0,0 +1,32 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.mappaint.mapcss;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link ConditionFactory}.
+ */
+public class ConditionFactoryTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/14368">#14368</a>.
+     * @throws Exception if an error occurs
+     */
+    @Test(expected = MapCSSException.class)
+    public void testTicket14368() throws Exception {
+        ConditionFactory.createKeyValueCondition("name", "Rodovia ([A-Z]{2,3}-[0-9]{2,4}", Op.REGEX, Context.PRIMITIVE, false);
+    }
+}
diff --git a/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandlerTest.java b/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandlerTest.java
index eb342d6..e3aadf0 100644
--- a/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandlerTest.java
+++ b/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandlerTest.java
@@ -86,9 +86,8 @@ public class RequestHandlerTest {
     @Test
     public void testRequestParameter4() throws RequestHandlerBadRequestException {
         assertEquals(Collections.singletonMap("/?:@-._~!$'()* ,;", "/?:@-._~!$'()* ,;=="), getRequestParameter(
-                // CHECKSTYLE.OFF: LineLength
-                "http://example.com/:@-._~!$&'()*+,=;:@-._~!$&'()*+,=:@-._~!$&'()*+,==?/?:@-._~!$'()*+,;=/?:@-._~!$'()*+,;==#/?:@-._~!$&'()*+,;="));
-                // CHECKSTYLE.ON: LineLength
+            "http://example.com/:@-._~!$&'()*+,=;:@-._~!$&'()*+,=:@-._~!$&'()*+,==?/?:@-._~!$'()*+,;=/?:@-._~!$'()*+,;==#/?:@-._~!$&'()*+,;="
+        ));
     }
 
     /**
diff --git a/tools/checkstyle/josm_checks.xml b/tools/checkstyle/josm_checks.xml
index e4fdf70..44dbe86 100644
--- a/tools/checkstyle/josm_checks.xml
+++ b/tools/checkstyle/josm_checks.xml
@@ -13,6 +13,13 @@ JOSM Checkstyle rules
   <property name="severity" value="warning"/>
   <property name="charset" value="UTF-8"/>
   <module name="TreeWalker">
+    <module name="BooleanExpressionComplexity">
+      <property name="max" value="6"/>
+    </module>
+    <module name="CatchParameterName">
+      <property name="format" value="^(e[1-9]?|t|ex[1-9]?|[a-z][a-z][a-zA-Z]+)$"/>
+    </module>
+    <module name="CommentsIndentation"/>
     <module name="FileContentsHolder"/>
     <module name="MissingDeprecated"/>
     <module name="MissingOverride"/>

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



More information about the Pkg-grass-devel mailing list