[Git][debian-gis-team/gpsprune][trixie-backports] 7 commits: New upstream version 27.1

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Sun Oct 11 06:59:00 BST 2026



Bas Couwenberg pushed to branch trixie-backports at Debian GIS Project / gpsprune


Commits:
3b230f1d by Bas Couwenberg at 2026-10-05T18:38:47+02:00
New upstream version 27.1
- - - - -
e0dfbe2d by Bas Couwenberg at 2026-10-05T18:38:48+02:00
Update upstream source from tag 'upstream/27.1'

Update to upstream version '27.1'
with Debian dir 9142fbb67aef8748dbb03147c184e94f242048f8
- - - - -
aef1070f by Bas Couwenberg at 2026-10-05T18:39:06+02:00
New upstream release.

- - - - -
1f10e73b by Bas Couwenberg at 2026-10-05T18:42:55+02:00
Update lintian overrides.

- - - - -
e14d546b by Bas Couwenberg at 2026-10-05T18:42:55+02:00
Set distribution to unstable.

- - - - -
b5e593d3 by Bas Couwenberg at 2026-10-11T07:53:35+02:00
Merge tag 'debian/27.1-1' into trixie-backports

releasing package gpsprune version 27.1-1

- - - - -
349b1104 by Bas Couwenberg at 2026-10-11T07:53:46+02:00
Rebuild for trixie-backports.

- - - - -


20 changed files:

- build.sh
- debian/changelog
- debian/source/lintian-overrides
- tim/prune/GpsPrune.java
- tim/prune/cmd/EditPointCmd.java
- tim/prune/data/Coordinate.java
- tim/prune/data/DataPoint.java
- tim/prune/lang/prune-texts_ca.properties
- tim/prune/lang/prune-texts_es.properties
- tim/prune/lang/prune-texts_fa.properties
- tim/prune/lang/prune-texts_hu.properties
- tim/prune/lang/prune-texts_it.properties
- tim/prune/lang/prune-texts_ja.properties
- tim/prune/lang/prune-texts_nl.properties
- tim/prune/lang/prune-texts_no.properties
- tim/prune/lang/prune-texts_pt.properties
- tim/prune/lang/prune-texts_ru.properties
- tim/prune/lang/prune-texts_sv.properties
- tim/prune/load/json/JsonFileLoader.java
- tim/prune/readme.txt


Changes:

=====================================
build.sh
=====================================
@@ -1,6 +1,6 @@
 # Build script
 # Version number
-PRUNENAME=gpsprune_27
+PRUNENAME=gpsprune_27.1
 # remove compile directory
 rm -rf compile
 # remove dist directory


=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+gpsprune (27.1-1~bpo13+1) trixie-backports; urgency=medium
+
+  * Rebuild for trixie-backports.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Sun, 11 Oct 2026 07:53:42 +0200
+
+gpsprune (27.1-1) unstable; urgency=medium
+
+  * New upstream release.
+  * Update lintian overrides.
+
+ -- Bas Couwenberg <sebastic at debian.org>  Mon, 05 Oct 2026 18:39:28 +0200
+
 gpsprune (27+ds-1~bpo13+1) trixie-backports; urgency=medium
 
   * Rebuild for trixie-backports.


=====================================
debian/source/lintian-overrides
=====================================
@@ -1,6 +1,3 @@
 # Not supported by devscripts in trixie
 older-debian-watch-file-standard 4 *
 
-# Hotfix specifically for Debian, not published on download page.
-missing-explanation-for-repacked-upstream-tarball *
-


=====================================
tim/prune/GpsPrune.java
=====================================
@@ -42,9 +42,9 @@ import tim.prune.gui.profile.ProfileChart;
 public class GpsPrune
 {
 	/** Version number of application, used in about screen and for version check */
-	public static final String VERSION_NUMBER = "27";
+	public static final String VERSION_NUMBER = "27.1";
 	/** Build number, just used for about screen */
-	public static final String BUILD_NUMBER = "437";
+	public static final String BUILD_NUMBER = "439";
 	/** Static reference to App object */
 	private static App APP = null;
 


=====================================
tim/prune/cmd/EditPointCmd.java
=====================================
@@ -49,14 +49,21 @@ public class EditPointCmd extends Command
 	@Override
 	protected boolean executeCommand(TrackInfo inInfo)
 	{
-		DataPoint point = inInfo.getTrack().getPoint(_pointIndex);
+		final DataPoint point = inInfo.getTrack().getPoint(_pointIndex);
 		if (point == null) {
 			return false;
 		}
+		// Check first whether all the edits would be accepted
+		for (FieldEdit edit : _editList)
+		{
+			if (!point.wouldAcceptEdit(edit.getField(), edit.getValue())) {
+				return false;
+			}
+		}
 		boolean coordsChanged = false;
 		for (FieldEdit edit : _editList)
 		{
-			Field field = edit.getField();
+			final Field field = edit.getField();
 			point.setFieldValue(field, edit.getValue(), _unitSet, isUndo());
 			inInfo.getTrack().getFieldList().addField(field);
 			coordsChanged |= (field.equals(Field.LATITUDE)
@@ -76,13 +83,13 @@ public class EditPointCmd extends Command
 	@Override
 	protected Command makeInverse(TrackInfo inInfo)
 	{
-		DataPoint pointToEdit = inInfo.getTrack().getPoint(_pointIndex);
+		final DataPoint pointToEdit = inInfo.getTrack().getPoint(_pointIndex);
 		return new EditPointCmd(this, _pointIndex, makeOppositeEdits(pointToEdit), _unitSet);
 	}
 
 	private List<FieldEdit> makeOppositeEdits(DataPoint pointToEdit)
 	{
-		List<FieldEdit> opposite = new ArrayList<>();
+		final List<FieldEdit> opposite = new ArrayList<>();
 		for (FieldEdit fieldEdit : _editList) {
 			final Field field = fieldEdit.getField();
 			opposite.add(new FieldEdit(field, pointToEdit.getFieldValue(field)));


=====================================
tim/prune/data/Coordinate.java
=====================================
@@ -88,7 +88,12 @@ public class Coordinate
 		// parse fields according to number found
 		final FractionalSeconds seconds;
 		final Format originalFormat;
-		if (numFields == 2)
+		if (numFields == 1) {
+			// String is just whole degrees as an integer
+			originalFormat = cardinalSpecified ? Format.DEG : Format.DEG_WITHOUT_CARDINAL;
+			seconds = new FractionalSeconds(fields[0], 0, 1);
+		}
+		else if (numFields == 2)
 		{
 			if (!otherDelims[1])
 			{
@@ -179,6 +184,30 @@ public class Coordinate
 	private record ParseResult(int numFields, boolean isNegative) {
 	}
 
+	static class DelimsFound
+	{
+		private boolean _decimalChar = false;
+		private boolean _spaceChar = false;
+		private boolean _otherChar = false;
+
+		void found(char c)
+		{
+			if (c == ' ') {
+				_spaceChar = true;
+			}
+			else if (c == ',' || c == '.') {
+				_decimalChar = true;
+			}
+			else if ("0123456789".indexOf(c) < 0) {
+				_otherChar = true;
+			}
+		}
+
+		boolean isOtherDelimiter() {
+			return _otherChar || (_spaceChar && !_decimalChar);
+		}
+	}
+
 	/**
 	 * @param inSource source string to parse
 	 * @param inFields array of field values to populate
@@ -189,6 +218,10 @@ public class Coordinate
 	{
 		int numFields = 0;
 		boolean isNegative = false;
+		final DelimsFound[] delimsFound = new DelimsFound[inOtherDelims.length];
+		for (int i=0; i<delimsFound.length; i++) {
+			delimsFound[i] = new DelimsFound();
+		}
 		try
 		{
 			final int strLen = inSource.length();
@@ -220,13 +253,18 @@ public class Coordinate
 				{
 					isNumeric = false;
 					// Remember delimiters
-					if (currChar != ',' && currChar != '.') {
-						inOtherDelims[numFields] = true;
-					}
+					delimsFound[numFields].found(currChar);
 				}
 			}
 		}
 		catch (ArrayIndexOutOfBoundsException ignored) {}
+		// Copy flags back into array parameter
+		for (int i=0; i<inOtherDelims.length; i++)
+		{
+			if (delimsFound[i].isOtherDelimiter()) {
+				inOtherDelims[i] = true;
+			}
+		}
 		return new ParseResult(numFields, isNegative);
 	}
 


=====================================
tim/prune/data/DataPoint.java
=====================================
@@ -134,11 +134,10 @@ public class DataPoint
 		// Only these three fields are available
 		_fieldValues = new String[3];
 		_fieldList = getSharedLatLonFieldList();
-		// TODO: Check if either latitude or longitude is null - in which case do what?
 		_latitude = inLatitude;
-		_fieldValues[0] = inLatitude.toString();
+		_fieldValues[0] = getStringOf(inLatitude);
 		_longitude = inLongitude;
-		_fieldValues[1] = inLongitude.toString();
+		_fieldValues[1] = getStringOf(inLongitude);
 		if (inAltitude == null) {
 			_altitude = Altitude.NONE;
 		}
@@ -149,6 +148,10 @@ public class DataPoint
 		_timestamp = new TimestampUtc(null);
 	}
 
+	private String getStringOf(Coordinate inValue) {
+		return inValue == null ? "<null>" : inValue.toString();
+	}
+
 	/** Simplified constructor just giving raw values for latitude and longitude */
 	public DataPoint(double inLatitude, double inLongitude) {
 		this(Latitude.make(inLatitude), Longitude.make(inLongitude), null);
@@ -198,6 +201,17 @@ public class DataPoint
 		_waypointName = inValue;
 	}
 
+	public boolean wouldAcceptEdit(Field inField, String inValue)
+	{
+		if (inField.equals(Field.LATITUDE)) {
+			return Latitude.make(inValue) != null;
+		}
+		if (inField.equals(Field.LONGITUDE)) {
+			return Longitude.make(inValue) != null;
+		}
+		return true;
+	}
+
 	/**
 	 * Set (or edit) the specified field value, without specifying a unit set
 	 * @param inField Field to set
@@ -610,6 +624,6 @@ public class DataPoint
 	 * Get string for debug
 	 */
 	public String toString() {
-		return "[Lat=" + getLatitude().toString() + ", Lon=" + getLongitude().toString() + "]";
+		return "[Lat=" + getStringOf(getLatitude()) + ", Lon=" + getStringOf(getLongitude()) + "]";
 	}
 }


=====================================
tim/prune/lang/prune-texts_ca.properties
=====================================
@@ -12,7 +12,8 @@ menu.online=En l\u00ednia
 menu.track=Pista
 menu.track.undo=Desfer
 menu.track.clearundo=Netejar la llista de desfer
-menu.track.markinsiderectangle=Seleccionar punts en rectangle
+menu.track.markinsiderectangle=Seleccionar punts dins del rectangle
+menu.track.markoutsiderectangle=Seleccionar punts fora del rectangle
 menu.range=Interval
 menu.range.all=Seleccionar-ho tot
 menu.range.none=No seleccionar
@@ -34,11 +35,6 @@ menu.audio=\u00c0udio
 menu.view=Vista
 menu.view.showsidebars=Mostra les barres laterals
 menu.view.browser=Mostra a una finestra del navegador
-menu.view.browser.google=Google maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing maps
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Prefer\u00e8ncies
 menu.settings.onlinemode=Carregar mapes des d'Internet
 menu.settings.autosave=Desa les prefer\u00e8ncies a la sortida
@@ -138,6 +134,7 @@ function.setlanguage=Idioma
 function.connecttopoint=Connectar al punt
 function.disconnectfrompoint=Desconnectar del punt
 function.removephoto=Esborrar foto
+function.removeallphotos=Esborrar totes les fotos
 function.correlatephotos=Correlacionar fotos
 function.rearrangephotos=Reorganitzar fotos
 function.rotatephotoleft=Girar foto a l'esquerra
@@ -171,7 +168,10 @@ dialog.deletepoint.deletephoto=Esborrar la foto '%s' associada a aquest punt?
 dialog.deletepoints.title=Esborrar punts
 dialog.deletephoto.title=Esborrar la foto
 dialog.deletephoto.deletepoint=Esborrar el punt associat a aquesta foto?
+dialog.deletephoto.deletepointandaudio=Esborrar el punt i l'\u00e0udio associat a aquesta foto?
 dialog.deleteaudio.deletepoint=Esborrar el punt associat a aquest \u00e1udio clip?
+dialog.removeallphotos.deletepoints=Esborrar els punts adjunts a aquestes fotos?
+dialog.removeallphotos.deletepointsandaudios=Esborrar els punts i els \u00e0udios adjunts a aquestes fotos?
 dialog.openoptions.title=Opcions d'apertura
 dialog.openoptions.filesnippet=Extracte de l'arxiu
 dialog.load.table.field=Camp
@@ -253,6 +253,7 @@ dialog.exportgpx.name=Nom
 dialog.exportgpx.desc=Descripci\u00f3
 dialog.exportgpx.extensions=Extensions a xml
 dialog.exportgpx.includetimestamps=Incloure marques de temps
+dialog.exportgpx.descriptionstocomments=Copieu les descripcions als comentaris
 dialog.exportgpx.encoding=Codificaci\u00f3
 dialog.exportgpx.encoding.system=Sistema
 dialog.exportgpx.encoding.utf8=UTF-8
@@ -427,11 +428,17 @@ dialog.rearrange.nosort=No ordenar
 dialog.rearrange.sortbyfilename=Ordena per nom de l'arxiu
 dialog.rearrange.sortbyname=Ordena per nom
 dialog.rearrange.sortbytime=Ordena per temps
+dialog.compress.method.none=Cap
+dialog.compress.method.duplicates=Dupicats
+dialog.compress.method.timelimit=L\u00edmit de temps
+dialog.compress.method.tooslow=Massa lent
+dialog.compress.method.toofast=Massa r\u00e0pid
 dialog.compress.method.skilifts=Remuntadors
 dialog.compress.closepoints.paramdesc=Factor d'expansi\u00f3
 dialog.compress.wackypoints.paramdesc=Factor de dist\u00e0ncia
 dialog.compress.singletons.paramdesc=Factor de dist\u00e0ncia
 dialog.compress.douglaspeucker.paramdesc=Factor d'expansi\u00f3
+dialog.compress.timedifference.paramdesc=L\u00edmit de temps (s)
 dialog.compress.summarylabel=Punts a esborrar
 dialog.compress.confirm=%d punts s'han seleccionat.\n Esborrar-los?
 dialog.compress.confirmnone=No s'ha seleccionat cap punt
@@ -544,6 +551,7 @@ dialog.deletefieldvalues.nofields=No hi ha camps per eliminar per a aquest inter
 dialog.displaysettings.linewidth=Gruix de l\u00ednies per a les vies (1-4)
 dialog.displaysettings.antialias=Utilitzeu l'antialiasing
 dialog.displaysettings.doublesizedicons=Duplicar la mida de les icones
+dialog.displaysettings.textscaling=Factor d'escala de text (%)
 dialog.displaysettings.waypointicons=Icones dels punts de refer\u00e8ncia
 dialog.displaysettings.wpicon.default=Defecte
 dialog.displaysettings.wpicon.ringpt=Marcador rod\u00f3
@@ -644,6 +652,7 @@ dialog.comparesegments.segments=Segments
 # 3d window
 dialog.3d.title=Vista en 3-D de GpsPrune
 dialog.3d.altitudefactor=Factor d'exageraci\u00f3 d'altitud
+dialog.3d.symbolscalefactor=Factor d'escala per a formes
 
 # Confirm messages
 confirm.loadfile=Dades carregades de l'arxiu
@@ -673,6 +682,7 @@ confirm.media.connect=media connectat
 confirm.photo.disconnect=foto desconectada
 confirm.audio.disconnect=\u00e0udio desconectat
 confirm.media.removed=%s esborrar
+confirm.allphotos.removed=s'han eliminat %d fotos
 confirm.correlatephotos.single=s'ha correlacionat la foto
 confirm.correlatephotos.multi=s'han correlacionat %d fotos
 confirm.createpoint=punt creat
@@ -731,10 +741,14 @@ button.keepselected=Mantenir seleccionat
 button.deleteselected=Esborrar seleccionat
 button.apply=Aplicar
 button.allow=Permetre
+button.allowall=Permetre-ho tot
 button.block=Denegar
+button.blockall=Negar-ho tot
 button.search=Cerca
 button.exportdata=Exportar les dades
 button.chart=Mostrar un gr\u00e0fic
+button.photo.previous=Anterior
+button.photo.next=Seg\u00fcent
 
 # File types for filtering
 filetypefilter.txt=Arxius TXT
@@ -759,6 +773,7 @@ display.nodata=No s'han carregat dades
 display.noaltitudes=Les dades de la pista no inclouen altituds
 display.notimestamps=Les dades de la pista no inclouen marques de temps
 display.novalues=Les dades de la pista no inclouen valors per a aquest camp
+display.zoomlevel=Nivell de zoom
 details.trackdetails=Detalls de la pista
 details.notrack=No hi ha cap pista carregada
 details.track.points=Punts
@@ -830,6 +845,7 @@ fieldname.symbol=S\u00edmbol
 fieldname.photo=Foto
 fieldname.audio=\u00c0udio
 fieldname.heartrate=Freq\u00fc\u00e8ncia card\u00edaca
+fieldname.cadence=Cad\u00e8ncia
 
 # Measurement units
 units.original=Original
@@ -885,23 +901,26 @@ cardinal.w=O
 # Undo operations
 undo.loadfile=Carregar dades %s
 undo.loadpoints=Carregar %d punts
-undo.loadphotos=carregar %d fotos
-undo.loadaudios=carregar %d clips d'\u00e0udio
-undo.editpoint=editar un punt
-undo.editpoint.withname=editar punt '%s'
-undo.deletepoint=esborrar un punt
-undo.deletepoint.withname=esborrar punt '%s'
-undo.deletepoints=esborrar %d punts
-undo.removephoto=esborrar una foto %s
-undo.removeaudio=esborrar un clip d'\u00e0udio %s
-undo.connect=connectar %s
-undo.disconnect=desconnectar %s
-undo.correlatephoto=correlacionar foto
-undo.correlatephotos=correlacionar %d fotos
-undo.createpoint=crear punt
-undo.deletefieldvalues=suprimir els valors del camp '%s'
-undo.correlateaudio=correlacionar \u00e0udio
-undo.correlateaudios=correlacionar %d \u00e0udios
+undo.loadphoto=Carregar foto %s
+undo.loadphotos=Carregar %d fotos
+undo.loadaudio=Carregar clip d'\u00e0udio %s
+undo.loadaudios=Carregar %d clips d'\u00e0udio
+undo.editpoint=Editar un punt
+undo.editpoint.withname=Editar punt '%s'
+undo.deletepoint=Esborrar un punt
+undo.deletepoint.withname=Esborrar punt '%s'
+undo.deletepoints=Esborrar %d punts
+undo.removephoto=Esborrar una foto %s
+undo.removeaudio=Esborrar un clip d'\u00e0udio %s
+undo.removeallphotos=Esborrar totes les fotos
+undo.connect=Connectar %s
+undo.disconnect=Desconnectar %s
+undo.correlatephoto=Correlacionar foto
+undo.correlatephotos=Correlacionar %d fotos
+undo.createpoint=Crear punt
+undo.deletefieldvalues=Suprimir els valors del camp '%s'
+undo.correlateaudio=Correlacionar \u00e0udio
+undo.correlateaudios=Correlacionar %d \u00e0udios
 undo.applytimestamps=Aplicar marques temporals
 
 # Error messages


=====================================
tim/prune/lang/prune-texts_es.properties
=====================================
@@ -37,12 +37,7 @@ menu.audio=Audio
 menu.view=Ver
 menu.view.showsidebars=Mostrar barras laterales
 menu.view.browser=Mapa en una ventana del navegador
-menu.view.browser.google=Google maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
 menu.view.browser.bing=Mapas Bing
-menu.view.browser.mapillary=Mapillary
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Configuraci\u00f3n
 menu.settings.onlinemode=Cargar mapas de Internet
 menu.settings.autosave=Auto Guardar al salir


=====================================
tim/prune/lang/prune-texts_fa.properties
=====================================
@@ -35,10 +35,6 @@ function.disconnectfrompoint=\u0642\u0637\u0639 \u0627\u062a\u0635\u0627\u0644 \
 function.removephoto=\u0628\u0631\u062f\u0627\u0634\u062a\u0646 \u0639\u06a9\u0633
 menu.view=\u062f\u064a\u062f
 menu.view.browser=\u0646\u0642\u0634\u0647 \u062f\u0631\u062c\u0633\u062a\u062c\u0648\u06af\u0631
-menu.view.browser.google=Google Maps
-menu.view.browser.openstreetmap=OpenStreetMap
-menu.view.browser.mapquest=MapQuest
-menu.view.browser.bing=Bing Maps
 menu.settings=\u062a\u0646\u0638\u06cc\u0645\u0627\u062a
 menu.settings.onlinemode=\u062f\u0627\u0646\u0644\u0648\u062f \u0646\u0642\u0634\u0647 \u0627\u0632 \u0627\u064a\u0646\u062a\u0631\u0646\u062a
 menu.help=\u0631\u0627\u0647\u0646\u0645\u0627


=====================================
tim/prune/lang/prune-texts_hu.properties
=====================================
@@ -31,10 +31,6 @@ menu.view=N\u00e9zet
 menu.view.showsidebars=Oldals\u00e1vok megjelen\u00edt\u00e9se
 menu.view.browser=T\u00e9rk\u00e9p b\u00f6ng\u00e9sz\u0151ablakban
 menu.view.browser.google=Google T\u00e9rk\u00e9p
-menu.view.browser.openstreetmap=OpenStreetMap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing Maps
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Be\u00e1ll\u00edt\u00e1sok
 menu.settings.onlinemode=T\u00e9rk\u00e9pek bet\u00f6lt\u00e9se internetr\u0151l
 menu.settings.autosave=Be\u00e1ll\u00edt\u00e1sok automatikus ment\u00e9se kil\u00e9p\u00e9skor


=====================================
tim/prune/lang/prune-texts_it.properties
=====================================
@@ -37,9 +37,6 @@ menu.audio=Audio
 menu.view=Vista
 menu.view.showsidebars=Mostra barre laterali
 menu.view.browser=Mappa sul browser
-menu.view.browser.google=Google maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
 menu.view.browser.bing=Mappe Bing
 menu.settings=Preferenze
 menu.settings.onlinemode=Carica mappa da internet


=====================================
tim/prune/lang/prune-texts_ja.properties
=====================================
@@ -1,57 +1,64 @@
 # Text entries for the GpsPrune application
-# Japanese entries
+# Japanese entries, thanks to Bun
 
 # Menu entries
 menu.file=\u30d5\u30a1\u30a4\u30eb(F)
 menu.file.addphotos=\u5199\u771f\u3092\u8ffd\u52a0
+menu.file.findfile=\u30c8\u30e9\u30c3\u30af\u30d5\u30a1\u30a4\u30eb\u306e\u691c\u7d22
 menu.file.recentfiles=\u6700\u8fd1\u4f7f\u7528\u3057\u305f\u30d5\u30a1\u30a4\u30eb
 menu.file.save=\u4fdd\u5b58
+menu.file.export=\u30c8\u30e9\u30c3\u30af\u306e\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
 menu.file.exit=\u7d42\u4e86
+menu.online=\u30aa\u30f3\u30e9\u30a4\u30f3(N)
 menu.track=\u30c8\u30e9\u30c3\u30af(T)
 menu.track.undo=\u30a2\u30f3\u30c9\u30a5
+menu.track.redo=\u30ea\u30c9\u30a5
 menu.track.clearundo=\u30a2\u30f3\u30c9\u30a5\u30ea\u30b9\u30c8\u3092\u7a7a\u306b\u3059\u308b
-menu.track.markinsiderectangle=\u56db\u89d2\u306e\u4e2d\u306b\u5370\u3092\u3064\u3051\u308b
-function.deletemarked=\u5370\u306e\u4ed8\u3044\u305f\u70b9\u3092\u524a\u9664
-function.rearrangewaypoints=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u4e26\u3079\u66ff\u3048
+menu.track.markinsiderectangle=\u30c9\u30e9\u30c3\u30b0\u7bc4\u56f2\u5185\u306e\u5730\u70b9\u3092\u62bd\u51fa
+menu.track.markoutsiderectangle=\u30c9\u30e9\u30c3\u30b0\u7bc4\u56f2\u5916\u306e\u5730\u70b9\u3092\u62bd\u51fa
 menu.range=\u7bc4\u56f2(R)
 menu.range.all=\u5168\u3066\u9078\u629e
 menu.range.none=\u9078\u629e\u89e3\u9664
-menu.range.start=\u958b\u59cb\u70b9\u3092\u8a2d\u5b9a
-menu.range.end=\u7d42\u4e86\u70b9\u3092\u8a2d\u5b9a
-menu.range.average=\u9078\u629e\u7bc4\u56f2\u3092\u5e73\u5747\u5316
-function.reverserange=\u7bc4\u56f2\u3092\u53cd\u8ee2
+menu.range.start=\u958b\u59cb\u5730\u70b9\u3092\u8a2d\u5b9a
+menu.range.end=\u7d42\u4e86\u5730\u70b9\u3092\u8a2d\u5b9a
+menu.range.average=\u9078\u629e\u5730\u70b9\u7fa4\u306e\u5e73\u5747\u5730\u70b9\u3092\u4f5c\u6210
 menu.range.mergetracksegments=\u30c8\u30e9\u30c3\u30af\u30bb\u30b0\u30e1\u30f3\u30c8\u3092\u7d71\u5408
 menu.range.cutandmove=\u9078\u629e\u7bc4\u56f2\u3092\u79fb\u52d5
-menu.point=\u70b9(P)
-menu.point.editpoint=\u70b9\u3092\u7de8\u96c6
-menu.point.deletepoint=\u70b9\u3092\u524a\u9664
-menu.photo=\u5199\u771f
+menu.point=\u5730\u70b9(P)
+menu.point.editpoint=\u5730\u70b9\u3092\u7de8\u96c6
+menu.point.deletepoint=\u5730\u70b9\u3092\u524a\u9664
+menu.point.goto=\u6307\u5b9a\u5730\u70b9\u306b\u79fb\u52d5
+menu.point.goto.highest=\u6700\u9ad8\u5730\u70b9
+menu.point.goto.lowest=\u6700\u4f4e\u5730\u70b9
+menu.point.goto.fastest=\u6700\u901f\u5730\u70b9
+menu.photo=\u5199\u771f(O)
 menu.photo.saveexif=Exif\u306b\u4fdd\u5b58
-menu.audio=\u30aa\u30fc\u30c7\u30a3\u30aa(A)
+menu.audio=\u97f3\u58f0(A)
 menu.view=\u30d3\u30e5\u30fc(V)
 menu.view.showsidebars=\u30b5\u30a4\u30c9\u30d0\u30fc\u3092\u8868\u793a
 menu.view.browser=\u5730\u56f3\u3092\u30d6\u30e9\u30a6\u30b6\u30fc\u3067\u898b\u308b
 menu.view.browser.google=Google \u30de\u30c3\u30d7
-menu.view.browser.openstreetmap=OpenStreetMap
-menu.view.browser.mapquest=Mapquest
 menu.view.browser.bing=Bing \u5730\u56f3
 menu.settings=\u8a2d\u5b9a(S)
 menu.settings.onlinemode=\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u304b\u3089\u5730\u56f3\u3092\u30ed\u30fc\u30c9
-menu.settings.autosave=\u7d42\u4e86\u6642\u306b\u81ea\u52d5\u4fdd\u5b58
+menu.settings.autosave=\u7d42\u4e86\u6642\u306b\u8a2d\u5b9a\u3092\u81ea\u52d5\u4fdd\u5b58
 menu.help=\u30d8\u30eb\u30d7(H)
+
 # Popup menu for map
 menu.map.zoomin=\u62e1\u5927
 menu.map.zoomout=\u7e2e\u5c0f
 menu.map.zoomfull=\u6700\u5927\u62e1\u5927
-menu.map.newpoint=\u70b9\u3092\u4f5c\u308b
-menu.map.drawpoints=\u9023\u7d9a\u3057\u305f\u70b9\u3092\u4f5c\u308b
+menu.map.newpoint=\u5730\u70b9\u3092\u4f5c\u6210
+menu.map.drawpoints=\u9023\u7d9a\u3057\u305f\u5730\u70b9\u3092\u4f5c\u6210
 menu.map.connect=\u30c8\u30e9\u30c3\u30af\u30dd\u30a4\u30f3\u30c8\u306b\u63a5\u7d9a
-menu.map.autopan=\u81ea\u52d5\u79fb\u52d5
+menu.map.autopan=\u30d3\u30e5\u30fc\u306e\u81ea\u52d5\u79fb\u52d5
 menu.map.showmap=\u5730\u56f3\u3092\u8868\u793a
-menu.map.showscalebar=\u7e2e\u5c3a\u8868\u793a
+menu.map.showscalebar=\u7e2e\u5c3a\u30d0\u30fc\u3092\u8868\u793a
+menu.map.editmode=\u5730\u70b9\u306e\u4f4d\u7f6e\u3092\u7de8\u96c6
 
 # Alt keys for menus
 altkey.menu.file=F
+altkey.menu.online=N
 altkey.menu.track=T
 altkey.menu.range=R
 altkey.menu.point=P
@@ -68,59 +75,95 @@ shortcut.menu.file.save=S
 shortcut.menu.track.undo=Z
 shortcut.menu.track.compress=C
 shortcut.menu.range.all=A
+shortcut.menu.point.edit=E
+shortcut.menu.view.details=I
 shortcut.menu.help.help=H
 
 # Functions
 function.open=\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f
 function.importwithgpsbabel=GPSBabel\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30dd\u30fc\u30c8
-function.loadfromgps=GPS\u304b\u3089\u30c7\u30fc\u30bf\u3092\u8aad\u3080
-function.sendtogps=GPS\u3078\u4fdd\u5b58
-function.exportkml=KML\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
-function.exportgpx=GPX\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
-function.exportpov=POV\u306b\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
-function.exportimage=\u30a4\u30e1\u30fc\u30b8\u3092\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+function.loadfromgps=GPS\u304b\u3089\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080
+function.sendtogps=GPS\u306b\u30c7\u30fc\u30bf\u3092\u9001\u308b
+function.exportkml=KML\u30d5\u30a1\u30a4\u30eb\u3067\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+function.exportgpx=GPX\u30d5\u30a1\u30a4\u30eb\u3067\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+function.exportpov=POV\u30d5\u30a1\u30a4\u30eb\u3067\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
+function.exportimage=\u30de\u30c3\u30d7\u753b\u50cf\u3067\u30a8\u30af\u30b9\u30dd\u30fc\u30c8
 function.editwaypointname=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u306e\u540d\u524d\u3092\u7de8\u96c6
+function.togglesegmentflag=\u30bb\u30b0\u30e1\u30f3\u30c8\u30d5\u30e9\u30b0\u306e\u5207\u308a\u66ff\u3048
 function.compress=\u30c8\u30e9\u30c3\u30af\u3092\u5727\u7e2e
-function.deleterange=\u7bc4\u56f2\u3092\u524a\u9664
-function.interpolate=\u70b9\u3092\u88dc\u5b8c\u3059\u308b
-function.addtimeoffset=\u6642\u9593\u306e\u504f\u4f4d\u3092\u52a0\u3048\u308b
-function.addaltitudeoffset=\u9ad8\u5ea6\u306b\u504f\u4f4d\u3092\u52a0\u3048\u308b
-function.deletefieldvalues=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5024\u3092\u524a\u9664\u3059\u308b
-function.findwaypoint=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u63a2\u3059
-function.pastecoordinates=\u65b0\u3057\u3044\u5ea7\u6a19\u3092\u5165\u529b
+function.deletemarked=\u9078\u629e\u5730\u70b9\u3092\u524a\u9664
+function.deleterange=\u9078\u629e\u7bc4\u56f2\u3092\u524a\u9664
+function.croptrack=\u30c8\u30e9\u30c3\u30af\u3092\u30c8\u30ea\u30df\u30f3\u30b0
+function.reverserange=\u9078\u629e\u5730\u70b9\u306e\u9806\u5e8f\u3092\u53cd\u8ee2
+function.interpolate=\u5730\u70b9\u3092\u88dc\u5b8c
+function.interpolatetimestamps=\u5730\u70b9\u306b\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u88dc\u9593
+function.deletebydate=\u65e5\u4ed8\u3067\u306e\u5730\u70b9\u3092\u524a\u9664
+function.addtimeoffset=\u6642\u9593\u306b\u30aa\u30d5\u30bb\u30c3\u30c8\u3092\u52a0\u3048\u308b
+function.addaltitudeoffset=\u9ad8\u5ea6\u306b\u30aa\u30d5\u30bb\u30c3\u30c8\u3092\u52a0\u3048\u308b
+function.projectrange=\u9078\u629e\u7bc4\u56f2\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5316
+function.rearrangewaypoints=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u4e26\u3079\u66ff\u3048
+function.dedupewaypoints=\u91cd\u8907\u3059\u308b\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u524a\u9664
+function.deletefieldvalues=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5024\u3092\u524a\u9664
+function.findwaypoint=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u691c\u7d22
+function.pastecoordinates=\u5ea7\u6a19\u5165\u529b\u3067\u65b0\u898f\u5730\u70b9\u3092\u4f5c\u6210
+function.pastecoordinatelist=\u5ea7\u6a19\u30ea\u30b9\u30c8\u5165\u529b\u3067\u65b0\u898f\u5730\u70b9\u7fa4\u3092\u4f5c\u6210
+function.enterpluscode=\u30d7\u30e9\u30b9\u30b3\u30fc\u30c9\u3092\u5165\u529b
 function.charts=\u9ad8\u5ea6\u901f\u5ea6\u30c1\u30e3\u30fc\u30c8
-function.show3d=3-D\u30d3\u30e5\u30fc
-function.distances=\u8ddd\u96e2
-function.setmapbg=\u80cc\u666f\u5730\u56f3
-function.setpaths=\u5916\u90e8\u30d7\u30ed\u30b0\u30e9\u30e0\u30d1\u30b9\u3092\u8a2d\u5b9a
-function.lookupsrtm=SRTM\u304b\u3089\u6a19\u9ad8\u3092\u53d6\u5f97\u3059\u308b
-function.getwikipedia=Wikipedia\u304b\u3089\u5468\u56f2\u306e\u8a18\u4e8b\u3092\u53d6\u5f97\u3059\u308b
+function.show3d=3D\u30d3\u30e5\u30fc\u3092\u8868\u793a
+function.distances=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u9593\u306e\u8ddd\u96e2\u4e00\u89a7
+function.viewfulldetails=\u8a73\u7d30\u60c5\u5831
+function.estimatetime=\u6240\u8981\u6642\u9593\u3092\u63a8\u5b9a
+function.learnestimationparams=\u6642\u9593\u63a8\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5b66\u7fd2
+function.autoplay=\u30c8\u30e9\u30c3\u30af\u3092\u81ea\u52d5\u518d\u751f
+function.setmapbg=\u80cc\u666f\u5730\u56f3\u3092\u8a2d\u5b9a
+function.setpaths=\u5916\u90e8\u30d7\u30ed\u30b0\u30e9\u30e0\u3078\u306e\u30d1\u30b9\u3092\u8a2d\u5b9a
+function.selectsegment=\u73fe\u5728\u306e\u30bb\u30b0\u30e1\u30f3\u30c8\u3092\u9078\u629e
+function.splitsegments=\u30c8\u30e9\u30c3\u30af\u3092\u30bb\u30b0\u30e1\u30f3\u30c8\u306b\u5206\u5272
+function.sewsegments=\u30c8\u30e9\u30c3\u30af\u306e\u5404\u30bb\u30b0\u30e1\u30f3\u30c8\u3092\u7de8\u96c6
+function.createmarkerwaypoints=\u30de\u30fc\u30ab\u30fc\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u3092\u4f5c\u6210
+function.comparesegments=2\u3064\u306e\u30bb\u30b0\u30e1\u30f3\u30c8\u3092\u6bd4\u8f03
+function.lookupsrtm=SRTM\u304b\u3089\u6a19\u9ad8\u3092\u53d6\u5f97
+function.configuresrtmsources=SRTM\u30bd\u30fc\u30b9\u3092\u8a2d\u5b9a
+function.getwikipedia=\u5468\u8fba\u306b\u95a2\u3059\u308b\u8a18\u4e8b\u3092Wikipedia\u304b\u3089\u53d6\u5f97
 function.searchwikipedianames=\u540d\u524d\u3067Wikipedia\u3092\u691c\u7d22
-function.downloadosm=\u30a8\u30ea\u30a2\u306eOSM\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
-function.duplicatepoint=\u91cd\u8907\u70b9
+function.searchosmpois=\u5468\u8fba\u306eOSM\u30dd\u30a4\u30f3\u30c8\u3092\u53d6\u5f97
+function.searchopencachingde=\u5468\u8fba\u306e\u30b8\u30aa\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u691c\u7d22
+function.opengeocachepage=\u30b8\u30aa\u30ad\u30e3\u30c3\u30b7\u30e5\u60c5\u5831\u30a6\u30a7\u30d6\u30da\u30fc\u30b8
+function.downloadosm=\u30c8\u30e9\u30c3\u30af\u30a8\u30ea\u30a2\u306eOSM\u30c7\u30fc\u30bf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
+function.truncatecoords=\u5ea7\u6a19\u5024\u306e\u5c0f\u6570\u70b9\u4ee5\u4e0b\u306e\u6841\u6570\u3092\u63c3\u3048\u308b
+function.duplicatepoint=\u73fe\u5728\u5730\u70b9\u3092\u7d42\u4e86\u5730\u70b9\u306b\u8ffd\u52a0
+function.projectpoint=\u65b9\u89d2\u3068\u8ddd\u96e2\u304b\u3089\u65b0\u898f\u5730\u70b9\u3092\u7b56\u5b9a
+function.projectcircle=\u5186\u74b0\u72b6\u306b\u65b0\u898f\u5730\u70b9\u3092\u7b56\u5b9a
 function.setcolours=\u8272\u3092\u8a2d\u5b9a
+function.setdisplaysettings=\u8868\u793a\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a
+function.setwaypointdisplay=\u30a6\u30a7\u30a4\u30dd\u30a4\u30f3\u30c8\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a
 function.setlanguage=\u8a00\u8a9e\u8a2d\u5b9a
-function.connecttopoint=\u70b9\u306b\u63a5\u7d9a
-function.disconnectfrompoint=\u70b9\u304b\u3089\u63a5\u7d9a\u89e3\u9664
-function.removephoto=\u5199\u771f\u3092\u53d6\u308a\u9664\u304f
-function.correlatephotos=\u5199\u771f\u3068\u95a2\u9023\u3055\u305b\u308b
-function.rearrangephotos=\u5199\u771f\u306e\u4e26\u3079\u76f4\u3057
-function.rotatephotoleft=\u5199\u771f\u3092\u5de6\u306b\u56de\u3059
-function.rotatephotoright=\u5199\u771f\u3092\u53f3\u306b\u56de\u3059
-function.photopopup=\u5199\u771f\u306e\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3092\u8868\u793a
+function.connecttopoint=\u5730\u70b9\u306b\u5199\u771f\u306a\u3069\u3092\u7d10\u3065\u3051
+function.disconnectfrompoint=\u5730\u70b9\u306e\u7d10\u3065\u3051\u3092\u89e3\u9664
+function.removephoto=\u5199\u771f\u3092\u4e00\u89a7\u304b\u3089\u524a\u9664
+function.removeallphotos=\u5168\u5199\u771f\u3092\u4e00\u89a7\u304b\u3089\u524a\u9664
+function.correlatephotos=\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3067\u306e\u5199\u771f\u3068\u306e\u95a2\u9023\u3065\u3051
+function.rearrangephotos=\u5199\u771f\u306e\u4e26\u3079\u66ff\u3048
+function.rotatephotoleft=\u5199\u771f\u3092\u5de6\u306b90\u5ea6\u56de\u8ee2
+function.rotatephotoright=\u5199\u771f\u3092\u53f3\u306b90\u5ea6\u56de\u8ee2
+function.photopopup=\u62e1\u5927\u5199\u771f\u3092\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u8868\u793a
 function.ignoreexifthumb=Exif\u30b5\u30e0\u30cd\u30a4\u30eb\u3092\u7121\u8996
-function.loadaudio=\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0
-function.removeaudio=\u4e00\u89a7\u304b\u3089\u73fe\u5728\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a1\u30a4\u30eb\u3092\u524a\u9664
-function.correlateaudios=\u30aa\u30fc\u30c7\u30a3\u30aa\u3092\u95a2\u9023\u4ed8\u3051\u308b
-function.playaudio=\u518d\u751f
-function.stopaudio=\u505c\u6b62
+function.loadaudio=\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u3092\u8ffd\u52a0
+function.removeaudio=\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u3092\u4e00\u89a7\u304b\u3089\u524a\u9664
+function.correlateaudios=\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3067\u306e\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u3068\u306e\u95a2\u9023\u3065\u3051
+function.playaudio=\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u3092\u518d\u751f
+function.stopaudio=\u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\u3092\u505c\u6b62
 function.help=\u30d8\u30eb\u30d7
 function.showkeys=\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u30ad\u30fc\u3092\u8868\u793a
 function.about=GpsPrune \u306b\u3064\u3044\u3066
-function.checkversion=\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8868\u793a
+function.checkversion=\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d
 function.saveconfig=\u8a2d\u5b9a\u3092\u4fdd\u5b58
+function.migrateconfig=\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u79fb\u884c
 function.diskcache=\u30c7\u30a3\u30b9\u30af\u306b\u30de\u30c3\u30d7\u3092\u4fdd\u5b58
-function.managetilecache=\u30bf\u30a4\u30eb\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u64cd\u4f5c
+function.managetilecache=\u30de\u30c3\u30d7\u30bf\u30a4\u30eb\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u7ba1\u7406
+function.getweatherforecast=\u5929\u6c17\u4e88\u5831\u3092\u53d6\u5f97
+function.setaltitudetolerance=\u9ad8\u5ea6\u8a31\u5bb9\u5024\u3092\u8a2d\u5b9a
+function.selecttimezone=\u30bf\u30a4\u30e0\u30be\u30fc\u30f3\u3092\u8a2d\u5b9a
 
 # Dialogs
 dialog.exit.confirm.title=GpsPrune \u3092\u7d42\u4e86
@@ -263,7 +306,6 @@ dialog.correlate.photoselect.intro=\u6642\u9593\u504f\u4f4d\u3092\u4f5c\u308b\u3
 dialog.correlate.select.photoname=\u5199\u771f\u540d
 dialog.correlate.select.timediff=\u6642\u9593\u5dee
 dialog.correlate.select.photolater=\u5199\u771f\u304c\u5f8c
-tip.manuallycorrelateone=\u63d0\u793a\uff1a\u5c11\u306a\u304f\u3068\u3082\u4e00\u3064\u306e\u5199\u771f\u3092\u624b\u52d5\u3067\u95a2\u9023\u4ed8\u3051\u308b\u3068\u3001\u6642\u9593\u504f\u4f4d\u3092\u8a08\u7b97\u3059\u308b\u4e8b\u304c\u3067\u304d\u307e\u3059\u3002
 dialog.correlate.options.intro=\u81ea\u52d5\u95a2\u9023\u4ed8\u3051\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
 dialog.correlate.options.offsetpanel=\u6642\u9593\u504f\u4f4d
 dialog.correlate.options.offset=\u504f\u4f4d
@@ -404,6 +446,9 @@ confirm.audiosloaded=%d \u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a1\u30a4\u30eb\u
 confirm.correlateaudios.single=\u30aa\u30fc\u30c7\u30a3\u30aa\u304c\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f
 confirm.correlateaudios.multi=%d \u8907\u6570\u306e\u30aa\u30fc\u30c7\u30a3\u30aa\u304c\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f
 
+# Tips, shown just once when appropriate
+tip.manuallycorrelateone=\u63d0\u793a\uff1a\u5c11\u306a\u304f\u3068\u3082\u4e00\u3064\u306e\u5199\u771f\u3092\u624b\u52d5\u3067\u95a2\u9023\u4ed8\u3051\u308b\u3068\u3001\u6642\u9593\u504f\u4f4d\u3092\u8a08\u7b97\u3059\u308b\u4e8b\u304c\u3067\u304d\u307e\u3059\u3002
+
 # Buttons
 button.ok=\u6c7a\u5b9a
 button.back=\u623b\u308b
@@ -432,7 +477,7 @@ button.browse=\u95b2\u89a7...
 button.addnew=\u65b0\u3057\u304f\u8ffd\u52a0
 button.delete=\u524a\u9664
 
-# File types
+# File types for filtering
 filetypefilter.txt=TXT\u30d5\u30a1\u30a4\u30eb
 filetypefilter.jpeg=JPG\u30d5\u30a1\u30a4\u30eb
 filetypefilter.kmlkmz=KML,KMZ\u30d5\u30a1\u30a4\u30eb
@@ -527,7 +572,7 @@ units.degmin=\u5ea6-\u5206
 units.deg=\u5ea6
 units.iso8601=ISO 8601
 
-# External urls
+# External urls and services
 url.googlemaps=maps.google.co.jp
 wikipedia.lang=ja
 
@@ -584,7 +629,6 @@ error.readme.notfound=Readme \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u3
 error.osmimage.dialogtitle=\u5730\u56f3\u753b\u50cf\u3092\u8aad\u307f\u8fbc\u307f\u6642\u306e\u30a8\u30e9\u30fc
 error.osmimage.failed=\u5730\u56f3\u753b\u50cf\u3092\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u63a5\u7d9a\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
 error.language.wrongfile=\u9078\u629e\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306fGpsPrune \u7528\u306e\u8a00\u8a9e\u30d5\u30a1\u30a4\u30eb\u306b\u898b\u3048\u307e\u305b\u3093\u3002
-
 error.lookupsrtm.nonefound=\u3069\u306e\u6a19\u9ad8\u5024\u3082\u3053\u308c\u3089\u306e\u30dd\u30a4\u30f3\u30c8\u304b\u3089\u53d6\u5f97\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002
 error.lookupsrtm.nonerequired=\u5168\u3066\u306e\u30dd\u30a4\u30f3\u30c8\u306f\u6a19\u9ad8\u5024\u3092\u6301\u3063\u3066\u3044\u308b\u305f\u3081\u3001\u691c\u7d22\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f\u3002
 error.playaudiofailed=\u30aa\u30fc\u30c7\u30a3\u30aa\u30d5\u30a1\u30a4\u30eb\u306e\u518d\u751f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002


=====================================
tim/prune/lang/prune-texts_nl.properties
=====================================
@@ -37,12 +37,6 @@ menu.audio=Audio
 menu.view=Bekijken
 menu.view.showsidebars=Toon panelen
 menu.view.browser=Kaart in browser
-menu.view.browser.google=Google maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing maps
-menu.view.browser.mapillary=Mapillary
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Instellingen
 menu.settings.onlinemode=Kaarten van internet ophalen
 menu.settings.autosave=Automatisch opslaan bij afsluiten
@@ -145,6 +139,7 @@ function.setlanguage=Instellen taal
 function.connecttopoint=Aan punt vastzetten
 function.disconnectfrompoint=Van punt losmaken
 function.removephoto=Verwijder foto
+function.removeallphotos=Alle foto's verwijderen
 function.correlatephotos=Correleer foto's
 function.rearrangephotos=Foto's herschikken
 function.rotatephotoleft=Roteer foto linksom
@@ -179,12 +174,15 @@ dialog.deletepoint.deletephoto=Wilt u de foto '%s' die aan dit punt is gekoppeld
 dialog.deletepoint.deleteaudio=Verwijder audio '%s' gekoppeld aan dit punt?
 dialog.deletepoint.deletephotoandaudio=Verwijder zowel foto als audio gekoppeld aan dit punt?
 dialog.deletepoints.title=Verwijder punten
+dialog.deletepoints.deletemedia.single=Er is \u00e9\u00e9n media gekoppeld aan de te verwijderen punten.\nVerwijder ook de gekoppelde media?
 dialog.deletepoints.deletemedia=Er zijn %d media gekoppeld aan de te verwijderen punten.\nVerwijder ook de gekoppelde media?
 dialog.deletephoto.title=Verwijder foto
 dialog.deletephoto.deletepoint=Wilt u het punt dat aan deze foto is gekoppeld verwijderen?
 dialog.deletephoto.deletepointandaudio=Verwijder zowel de punt als audio gekoppeld aan deze foto?
 dialog.deleteaudio.deletepoint=Wilt u het punt dat aan dit geluidsbestand is gekoppeld verwijderen?
 dialog.deleteaudio.deletepointandphoto=Verwijder zowel de punt als foto gekoppeld aan deze audioclip?
+dialog.removeallphotos.deletepoints=Verwijder de punten die aan deze foto's zijn gekoppeld
+dialog.removeallphotos.deletepointsandaudios=Verwijder de punten en de audiobestanden die aan deze foto's zijn gekoppeld
 dialog.openoptions.title=Instellingen openen
 dialog.openoptions.filesnippet=Samenvatting van bestand
 dialog.load.table.field=Veld
@@ -585,6 +583,7 @@ dialog.displaysettings.linewidth=Geef lijndikte voor routes (1-4)
 dialog.displaysettings.antialias=Gebruik anti-aliasering
 dialog.displaysettings.allowosscaling=Laat OS toe om kaarten op te schalen
 dialog.displaysettings.doublesizedicons=Maak pictogrammen dubbel zo groot
+dialog.displaysettings.textscaling=Tekstschaal factor (%)
 dialog.displaysettings.showzoomlevel=Toon zoomniveau in statusbar
 dialog.displaysettings.waypointicons=Waypoint iconen
 dialog.displaysettings.wpicon.default=Standaard
@@ -757,6 +756,7 @@ confirm.media.connect=Media gekoppeld
 confirm.photo.disconnect=foto's ontkoppeld
 confirm.audio.disconnect=audio ontkoppeld
 confirm.media.removed=%s verwijderd
+confirm.allphotos.removed=%d foto's verwijderd
 confirm.correlatephotos.single=foto was gecorreleerd
 confirm.correlatephotos.multi=%d foto's waren gecorreleerd
 confirm.createpoint=punt aangemaakt
@@ -824,6 +824,8 @@ button.search=Zoeken
 button.compareselected=Geselecteerde vergelijken
 button.exportdata=Gegevens exporteren
 button.chart=Grafiek weergeven
+button.photo.previous=Vorige
+button.photo.next=Volgende
 
 # File types for filtering
 filetypefilter.txt=TXT bestanden
@@ -992,6 +994,7 @@ undo.deletepoint.withname=Verwijder punt '%s'
 undo.deletepoints=verwijderen %d punten
 undo.removephoto=verwijderen foto %s
 undo.removeaudio=verwijderen audiobestand %s
+undo.removeallphotos=Alle foto's verwijderen
 undo.connect=koppel %s
 undo.disconnect=loskoppelen %s
 undo.correlatephoto=correleer foto


=====================================
tim/prune/lang/prune-texts_no.properties
=====================================
@@ -38,11 +38,6 @@ menu.view=Vis
 menu.view.showsidebars=Vis sidepaneler
 menu.view.browser=Vis kart i nettleser
 menu.view.browser.google=Google kart
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing maps
-menu.view.browser.mapillary=Mapillary
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Innstillinger
 menu.settings.onlinemode=Last kart fra Internet
 menu.settings.autosave=Auto-lagre innstillinger ved avslutning
@@ -179,6 +174,7 @@ dialog.deletepoint.deletephoto=Slette bildet '%s' som er knyttet til dette punkt
 dialog.deletepoint.deleteaudio=Slette lyden '%s' som er knyttet til dette punktet?
 dialog.deletepoint.deletephotoandaudio=Slette b\u00e5de bildet og lyden som er knyttet til dette punktet?
 dialog.deletepoints.title=Slett punkter
+dialog.deletepoints.deletemedia.single=Det er 1 medieelement knyttet til punktene som skal slettes.\nSlette de tilknyttede mediene ogs\u00e5?
 dialog.deletepoints.deletemedia=Det er %d medieelementer knyttet til punktene som skal slettes.\nSlette de tilknyttede mediene ogs\u00e5?
 dialog.deletephoto.title=Slett foto
 dialog.deletephoto.deletepoint=Slette punkt knyttet til dette bildet?
@@ -377,6 +373,7 @@ dialog.estimatetime.parameters.timefor=Tid for
 dialog.estimatetime.results=Resultater
 dialog.estimatetime.results.estimatedtime=Beregnet tid
 dialog.estimatetime.results.actualtime=Faktisk tid
+dialog.estimatetime.error.nodistance=Tidsanslagene krever sammenhengende sporpunkter for \u00e5 kunne beregne avstanden
 dialog.estimatetime.error.noaltitudes=Utvalget har ingen h\u00f8ydeinformasjon
 dialog.learnestimationparams.intro=Dette er parameterne som beregnes fra dette sporet
 dialog.learnestimationparams.averageerror=Gjennomsnittsfeil
@@ -446,6 +443,8 @@ dialog.compress.panel.deletes=Sletter
 dialog.compress.wackypoints.paramdesc=Distansefaktor
 dialog.compress.singletons.paramdesc=Distansefaktor
 dialog.compress.speedlimit.paramdesc=Fartsgrense
+dialog.compress.distancelimit.paramdesc=Avstandsgrense
+dialog.compress.timedifference.paramdesc=Tidsbegrensning (sek)
 dialog.compress.summarylabel=Punkter \u00e5 slette
 dialog.compress.confirm=%d punkter har blitt markerte.\nSlette disse markerte punktene n\u00e5?
 dialog.compress.confirmnone=ingen punkter har blitt markert
@@ -458,9 +457,11 @@ dialog.pastecoordinatelist.desc=Angi koordinatene for de nye punktene med ett pu
 dialog.pluscode.desc=Skriv inn eller lim inn koden her
 dialog.pluscode.code=Plusskode
 dialog.pluscode.nothingfound=Sjekk koden og pr\u00f8v igjen
+dialog.help.help=Se https://gpsprune.activityworkshop.net/\nfor mer informasjon og tips,\nblant annet en e-bok med brukerveiledning som du kan kj\u00f8pe.
 dialog.about.version=Versjon
 dialog.about.build=Byggversjon
 dialog.about.summarytext1=GpsPrune er et program for \u00e5 laste inn, vise og redigere data fra GPS-mottagere.
+dialog.about.summarytext3=Se <code style="font-weight:bold">https://gpsprune.activityworkshop.net/</code> for mer informasjon og tips,<br>blant annet en e-bok med brukerveiledning som du kan kj\u00f8pe.
 dialog.about.languages=Tilgjengelige spr\u00e5k
 dialog.about.translatedby=Norsk oversettelse av:
 dialog.about.systeminfo=System-info
@@ -520,6 +521,7 @@ dialog.colourer.type.bydate=Etter dato
 dialog.colourer.start=Startfarge
 dialog.colourer.end=Sluttfarge
 dialog.colourer.maxcolours=Maksimalt antall farger
+dialog.colourer.huesmode=Fargeinterpolering
 dialog.setlanguage.firstintro=Du kan enten velge ett av de inkluderte spr\u00e5kene,<p>eller velg en tekstfil \u00e5 bruke isteden.
 dialog.setlanguage.secondintro=Innstillingene dine m\u00e5 lagres og s\u00e5<p>start GpsPrune p\u00e5 nytt for \u00e5 endre spr\u00e5ket.
 dialog.setlanguage.language=Spr\u00e5k
@@ -547,6 +549,7 @@ dialog.displaysettings.linewidth=Linjetykkelse for sporene (1-4)
 dialog.displaysettings.antialias=Bruk kantutjevning
 dialog.displaysettings.allowosscaling=Tillat OS \u00e5 skalere kart
 dialog.displaysettings.doublesizedicons=Gj\u00f8r ikoner dobbelt s\u00e5 store
+dialog.displaysettings.textscaling=Tekstskaleringsfaktor (%)
 dialog.displaysettings.showzoomlevel=Vis zoom-niv\u00e5 i statuslinje
 dialog.displaysettings.waypointicons=Veipunktikoner
 dialog.displaysettings.wpicon.default=Standard
@@ -561,6 +564,7 @@ dialog.displaysettings.size.large=Store
 dialog.displaysettings.restart=Lagre innstillingene og start GpsPrune p\u00e5 nytt\nfor at visningsendringene skal tre i kraft.
 dialog.waypointsettings.usecustomicon=Bruk eget ikon
 dialog.waypointsettings.saltvalue=Fargesett
+dialog.waypointsettings.notypesintrack=Den n\u00e5v\u00e6rende ruten inneholder ingen veipunktstyper.
 dialog.displaysettings.windowstyle=Vindusstil
 dialog.displaysettings.windowstyle.default=Standard
 dialog.displaysettings.windowstyle.nimbus=Nimbus
@@ -607,6 +611,7 @@ dialog.autoplay.usetimestamps=Bruk punkttidsstempler
 dialog.autoplay.rewind=Tilbake til begynnelsen
 dialog.autoplay.pause=Pause
 dialog.autoplay.play=Spill av
+dialog.markers.halves=Mellomliggende punkter
 dialog.projectcircle.desc=Angi avstanden fra dette punktet til sirkelen rundt
 dialog.projectrange.createcopies=Opprett nye punkter
 dialog.configuresrtm.intro1=H\u00f8yder fra SRTM kan enten komme fra lavoppl\u00f8sningsdata uten innlogging,
@@ -619,6 +624,7 @@ dialog.configuresrtm.onesecond.desc2=Opprett en konto p\u00e5 https://urs.earthd
 dialog.findfile.dir=S\u00f8k mappe
 dialog.findfile.searchtext=Tekst
 dialog.findfile.daterange=Datointervall
+dialog.findfile.locationfilter=Stedsfilter
 dialog.findfile.resultscolumn.file=Fil
 dialog.findfile.resultscolumn.contents=Innhold
 dialog.findfile.filepath.none=Ingen fil valgt
@@ -660,6 +666,7 @@ dialog.comparesegments.starttime=Starttid
 
 # 3d window
 dialog.3d.title=GpsPrune - visning i tre dimensjoner
+dialog.3d.symbolscalefactor=Skaleringsfaktor for figurer
 
 # Confirm messages
 confirm.loadfile=Data lastet fra fil
@@ -738,6 +745,8 @@ button.search=S\u00f8k
 button.compareselected=Sammenlign valgte
 button.exportdata=Eksporter data
 button.chart=Vis diagram
+button.photo.previous=Forrige
+button.photo.next=Neste
 
 # File types for filtering
 filetypefilter.txt=TXT-filer
@@ -839,6 +848,7 @@ fieldname.course=Kurs
 fieldname.bearing=Peiling
 
 # Measurement units
+units.original=Opprinnelig
 units.default=Standard
 units.metres=Meter
 units.metres.short=m


=====================================
tim/prune/lang/prune-texts_pt.properties
=====================================
@@ -143,6 +143,7 @@ function.setlanguage=Definir idioma
 function.connecttopoint=Conectar ao ponto
 function.disconnectfrompoint=Desconectar do ponto
 function.removephoto=Remover foto
+function.removeallphotos=Remover todas as fotos
 function.correlatephotos=Correlacionar fotos
 function.rearrangephotos=Rearrumar fotos
 function.rotatephotoleft=Roda foto \u00e0 esquerda
@@ -184,6 +185,8 @@ dialog.deletephoto.deletepoint=Remover ponto anexado a esta foto?
 dialog.deletephoto.deletepointandaudio=Remover o ponto e o clipe \u00e1udio anexado a esta foto?
 dialog.deleteaudio.deletepoint=Remover ponto anexado a este clipe de \u00e1udio?
 dialog.deleteaudio.deletepointandphoto=Remover o ponto e a foto anexado a este clipe?
+dialog.removeallphotos.deletepoints=Remover os puntos associados a essas fotos?
+dialog.removeallphotos.deletepointsandaudios=Remover os puntos e os \u00e1udios associados a essas fotos?
 dialog.openoptions.title=Op\u00e7\u00f5es de abertura
 dialog.openoptions.filesnippet=Extrair do arquivo
 dialog.load.table.field=Campo
@@ -579,6 +582,7 @@ dialog.displaysettings.linewidth=Espessura das linhas para desenhar as rotas (1-
 dialog.displaysettings.antialias=Utilizar anti-serrilhamento
 dialog.displaysettings.allowosscaling=Permitir que o sistema operacional redimensione os mapas
 dialog.displaysettings.doublesizedicons=Dobrar o tamanho dos \u00edcones
+dialog.displaysettings.textscaling=Fator de escala do texto (%)
 dialog.displaysettings.showzoomlevel=Mostrar o n\u00edvel de zoom na barra de status
 dialog.displaysettings.waypointicons=\u00cdcone para pontos nomeados
 dialog.displaysettings.wpicon.default=Padr\u00e3o
@@ -749,6 +753,7 @@ confirm.media.connect=m\u00eddia conectada
 confirm.photo.disconnect=foto desconectada
 confirm.audio.disconnect=\u00e1udio desconectado
 confirm.media.removed=%s removido
+confirm.allphotos.removed=foram removidas %d fotos
 confirm.correlatephotos.single=foto foi correlacionada
 confirm.correlatephotos.multi=%d fotos foram correlacionadas
 confirm.createpoint=ponto criado
@@ -986,6 +991,7 @@ undo.deletepoint.withname=Remover ponto '%s'
 undo.deletepoints=Remover %d pontos
 undo.removephoto=Remover foto %s
 undo.removeaudio=Remover arquivo de \u00e1udio %s
+undo.removeallphotos=Remover todas as fotos
 undo.connect=Conectar %s
 undo.disconnect=Desconectar %s
 undo.correlatephoto=Conectar foto


=====================================
tim/prune/lang/prune-texts_ru.properties
=====================================
@@ -30,10 +30,6 @@ menu.audio=\u0417\u0432\u0443\u043a
 menu.view=\u0412\u0438\u0434
 menu.view.showsidebars=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c
 menu.view.browser=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435
-menu.view.browser.google=Google maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing maps
 menu.settings=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
 menu.settings.onlinemode=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u0443 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430
 menu.settings.autosave=\u0410\u0432\u0442\u043e\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0432\u044b\u0445\u043e\u0434\u0435


=====================================
tim/prune/lang/prune-texts_sv.properties
=====================================
@@ -37,12 +37,6 @@ menu.audio=Ljud
 menu.view=Visa
 menu.view.showsidebars=Visa sidopaneler
 menu.view.browser=Karta i webbl\u00e4sare
-menu.view.browser.google=Google Maps
-menu.view.browser.openstreetmap=Openstreetmap
-menu.view.browser.mapquest=Mapquest
-menu.view.browser.bing=Bing maps
-menu.view.browser.mapillary=Mapillary
-menu.view.browser.graphhopper=GraphHopper
 menu.settings=Inst\u00e4llningar
 menu.settings.onlinemode=H\u00e4mta kartor fr\u00e5n Internet
 menu.settings.autosave=Autospara inst\u00e4llningar vid avslut
@@ -145,6 +139,7 @@ function.setlanguage=V\u00e4lj spr\u00e5k
 function.connecttopoint=Koppla till punkt
 function.disconnectfrompoint=Ta bort koppling till punkt
 function.removephoto=Ta bort foto
+function.removeallphotos=Ta bort alla foton
 function.correlatephotos=Korrelera foton
 function.rearrangephotos=Arrangera om foton
 function.rotatephotoleft=Rotera foto moturs
@@ -179,12 +174,15 @@ dialog.deletepoint.deletephoto=Ta bort fotot som \u00e4r bifogat till denna punk
 dialog.deletepoint.deleteaudio=Ta bort ljud '%s' angivet till denna punkt?
 dialog.deletepoint.deletephotoandaudio=Ta bort b\u00e5de bild och ljud angivet till denna punkt?
 dialog.deletepoints.title=Ta bort punkter
+dialog.deletepoints.deletemedia.single=Det finns 1 mediefil angivna till punkterna att ta bort.\nTa \u00e4ven bort angivna media?
 dialog.deletepoints.deletemedia=Det finns %d mediafiler angivna till punkterna att ta bort.\nTa \u00e4ven bort angivna media?
 dialog.deletephoto.title=Ta bort foto
 dialog.deletephoto.deletepoint=Ta bort punkten som \u00e4r bifogad till detta foto?
 dialog.deletephoto.deletepointandaudio=Ta bort b\u00e5de punkten och ljudet angivet till detta foto?
 dialog.deleteaudio.deletepoint=Ta bort punkten som \u00e4r bifogad till detta ljudklipp?
 dialog.deleteaudio.deletepointandphoto=Ta bort b\u00e5de punkt och bild angivet till detta ljudklipp?
+dialog.removeallphotos.deletepoints=Ta bort punkten som \u00e4r bifogad till dessa foton?
+dialog.removeallphotos.deletepointsandaudios=Ta bort b\u00e5de punkten och ljudet angivet till dessa foton?
 dialog.openoptions.title=\u00d6ppna inst\u00e4llningar
 dialog.openoptions.filesnippet=Filextrakt
 dialog.load.table.field=F\u00e4lt
@@ -585,6 +583,7 @@ dialog.displaysettings.linewidth=Linjetjocklek f\u00f6r sp\u00e5ren (1-4)
 dialog.displaysettings.antialias=Anv\u00e4nd kantutj\u00e4mning ("antialiasing")
 dialog.displaysettings.allowosscaling=Till\u00e5t OS:et att skala kartor
 dialog.displaysettings.doublesizedicons=G\u00f6r ikonerna dubbla storleken
+dialog.displaysettings.textscaling=Textstorleksfaktor (%)
 dialog.displaysettings.showzoomlevel=Visa zoomniv\u00e5 p\u00e5 statusraden
 dialog.displaysettings.waypointicons=V\u00e4gpunkt-ikon
 dialog.displaysettings.wpicon.default=Standardmark\u00f6r
@@ -757,6 +756,7 @@ confirm.media.connect=media kopplats
 confirm.photo.disconnect=foto kopplats bort
 confirm.audio.disconnect=ljud kopplats bort
 confirm.media.removed=%s togs bort
+confirm.allphotos.removed=%d foton har tagits bort
 confirm.correlatephotos.single=foto korrelerat
 confirm.correlatephotos.multi=%d foton korrelerade
 confirm.createpoint=punkt skapad
@@ -824,6 +824,8 @@ button.search=S\u00f6k
 button.compareselected=J\u00e4mf\u00f6r vald
 button.exportdata=Exportera data
 button.chart=Visa graf
+button.photo.previous=F\u00f6reg\u00e5ende
+button.photo.next=N\u00e4sta
 
 # File types for filtering
 filetypefilter.txt=TXT-filer
@@ -992,6 +994,7 @@ undo.deletepoint.withname=Ta bort punkt '%s'
 undo.deletepoints=Ta bort punkterna '%d'
 undo.removephoto=ta bort foto %s
 undo.removeaudio=ta bort ljudklipp %s
+undo.removeallphotos=Ta bort alla foton
 undo.connect=koppla %s
 undo.disconnect=koppla bort %s
 undo.correlatephoto=Korrelera foto


=====================================
tim/prune/load/json/JsonFileLoader.java
=====================================
@@ -159,10 +159,10 @@ public class JsonFileLoader extends FileTypeLoader
 	 */
 	private List<DataPoint> makePointList()
 	{
-		ArrayList<DataPoint> points = new ArrayList<>();
+		final ArrayList<DataPoint> points = new ArrayList<>();
 		for (JsonPoint jsonPoint : _jsonPoints)
 		{
-			DataPoint point = new DataPoint(Latitude.make(jsonPoint.latitude()),
+			final DataPoint point = new DataPoint(Latitude.make(jsonPoint.latitude()),
 				Longitude.make(jsonPoint.longitude()),
 				new Altitude(jsonPoint.altitude(), UnitSetLibrary.UNITS_METRES));
 			if (point.isValid())


=====================================
tim/prune/readme.txt
=====================================
@@ -1,5 +1,5 @@
-GpsPrune version 27
-===================
+GpsPrune version 27.1
+=====================
 
 GpsPrune is an application for viewing, editing and managing coordinate data from GPS systems,
 including format conversion, charting, 3d visualisation, audio and photo correlation, and online resource lookup.
@@ -17,7 +17,7 @@ Running
 =======
 
 To run GpsPrune from the jar file, simply call it from a command prompt or shell:
-   java -jar gpsprune_27.jar
+   java -jar gpsprune_27.1.jar
 
 If the jar file is saved in a different directory, you will need to include the path.
 Depending on your system settings, you may be able to click or double-click on the jar file
@@ -25,9 +25,16 @@ in a file manager window to execute it.  A shortcut, menu item, alias, desktop i
 or other link can of course be made should you wish.
 
 To specify a language other than the default, use an additional parameter, eg:
-   java -jar gpsprune_27.jar --lang=DE
+   java -jar gpsprune_27.1.jar --lang=DE
 
 
+New with version 27.1
+=====================
+The following fixes and additions were made since version 27:
+  - Fix bugs when parsing integer values of coordinates from openstreetmap's routing
+  - Fix bugs when parsing fractional minutes when there's a space between the dot and the fraction
+  - GpsPrune became twenty years old!
+
 New with version 27
 ===================
 The following fixes and additions were made since version 26:



View it on GitLab: https://salsa.debian.org/debian-gis-team/gpsprune/-/compare/17b3969da17b78a4725e360245a540d74f76326c...349b11042d6b6c31748829a4b75cceb463d210cd

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/gpsprune/-/compare/17b3969da17b78a4725e360245a540d74f76326c...349b11042d6b6c31748829a4b75cceb463d210cd
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20261011/4056551c/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list