[Git][debian-gis-team/gpsprune][upstream] New upstream version 24.3

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Mon Aug 19 04:47:14 BST 2024



Bas Couwenberg pushed to branch upstream at Debian GIS Project / gpsprune


Commits:
9f3e8847 by Bas Couwenberg at 2024-08-19T05:40:01+02:00
New upstream version 24.3
- - - - -


12 changed files:

- build.sh
- tim/prune/GpsPrune.java
- tim/prune/data/Altitude.java
- tim/prune/data/DataPoint.java
- tim/prune/data/NumberUtils.java
- tim/prune/data/TimestampUtc.java
- tim/prune/function/RearrangePhotosFunction.java
- tim/prune/function/RearrangeWaypointsFunction.java
- tim/prune/function/info/ShowFullDetails.java
- tim/prune/lang/prune-texts_cy.properties
- tim/prune/lang/prune-texts_no.properties
- tim/prune/readme.txt


Changes:

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


=====================================
tim/prune/GpsPrune.java
=====================================
@@ -41,9 +41,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 = "24.2";
+	public static final String VERSION_NUMBER = "24.3";
 	/** Build number, just used for about screen */
-	public static final String BUILD_NUMBER = "415";
+	public static final String BUILD_NUMBER = "417";
 	/** Static reference to App object */
 	private static App APP = null;
 


=====================================
tim/prune/data/Altitude.java
=====================================
@@ -45,20 +45,10 @@ public class Altitude
 	{
 		_stringValue = inValue;
 		_unit = inUnit;
-		if (inValue == null || inValue.equals("")) {
-			_valid = false;
-		}
-		else
-		{
-			try
-			{
-				_value = Double.parseDouble(inValue.trim());
-				_valid = true;
-			}
-			catch (NumberFormatException nfe) {
-				_valid = false;
-			}
-		}
+		final String trimmedValue = (inValue == null ? "" : inValue.trim());
+		final Double result = NumberUtils.parseDoubleUsingLocale(trimmedValue);
+		_value = (result != null ? result : 0.0);
+		_valid = (result != null);
 	}
 
 	/**


=====================================
tim/prune/data/DataPoint.java
=====================================
@@ -490,7 +490,12 @@ public class DataPoint
 		Coordinate latitude = Latitude.interpolate(_latitude, inEndPoint.getLatitude(), inIndex, inNumPoints);
 		Coordinate longitude = Longitude.interpolate(_longitude, inEndPoint.getLongitude(), inIndex, inNumPoints);
 		Altitude altitude = Altitude.interpolate(_altitude, inEndPoint.getAltitude(), inIndex, inNumPoints);
-		return new DataPoint(latitude, longitude, altitude);
+		DataPoint point = new DataPoint(latitude, longitude, altitude);
+		if (hasTimestamp() && inEndPoint.hasTimestamp()) {
+			String value = TimestampUtc.interpolate(getTimestamp(), inEndPoint.getTimestamp(), inIndex, inNumPoints);
+			point.setFieldValue(Field.TIMESTAMP, value, false);
+		}
+		return point;
 	}
 
 	/**


=====================================
tim/prune/data/NumberUtils.java
=====================================
@@ -3,6 +3,7 @@ package tim.prune.data;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
+import java.text.ParseException;
 import java.util.Locale;
 
 /**
@@ -79,8 +80,74 @@ public abstract class NumberUtils
 	 * @param inNumber double number to format
 	 * @param inPattern example string showing decimals
 	 */
-	public static String formatNumberLocalToMatch(double inNumber, String inPattern)
-	{
+	public static String formatNumberLocalToMatch(double inNumber, String inPattern) {
 		return formatNumberLocal(inNumber, numberOfDecimalPlaces(inPattern));
 	}
+
+	/**
+	 * @param inValue string value, can be null or empty
+	 * @return value extracted using either java formatting or locale formatting
+	 */
+	static Double parseDoubleUsingLocale(String inValue)
+	{
+		final String trimmedValue = (inValue == null ? "" : inValue.trim());
+		if (trimmedValue.isEmpty()) {
+			return null;
+		}
+		// We have some contents, so try parsing using the regular java formatting (decimal dot)
+		try {
+			return Double.parseDouble(trimmedValue);
+		}
+		catch (NumberFormatException ignored) {
+		}
+
+		// That threw an exception, so try with the system's locale instead (for example, using decimal comma)
+		if (isLocalDecimal(inValue))
+		{
+			try
+			{
+				NumberFormat nf = NumberFormat.getInstance(Locale.getDefault());
+				return nf.parse(trimmedValue).doubleValue();
+			}
+			catch (ParseException ignored) {
+			}
+		}
+		// Neither worked
+		return null;
+	}
+
+	/** @return true if the given string looks like a local decimal value */
+	private static boolean isLocalDecimal(String inValue)
+	{
+		if (inValue == null || inValue.isEmpty()) {
+			return false;
+		}
+		String allowedChars = "-0123456789";
+		NumberFormat nf = NumberFormat.getInstance(Locale.getDefault());
+		if (nf instanceof DecimalFormat) {
+			allowedChars += ((DecimalFormat) nf).getDecimalFormatSymbols().getDecimalSeparator();
+		}
+		for (int i=0; i<inValue.length(); i++)
+		{
+			if (allowedChars.indexOf(inValue.charAt(i)) < 0) {
+				return false; // another character found
+			}
+		}
+		// only contains allowed characters
+		return true;
+	}
+
+	/** @return String to use between numbers, depending on the decimal character */
+	public static String getValueSeparator()
+	{
+		NumberFormat nf = NumberFormat.getInstance(Locale.getDefault());
+		if (nf instanceof DecimalFormat)
+		{
+			char decimalChar = ((DecimalFormat) nf).getDecimalFormatSymbols().getDecimalSeparator();
+			if (decimalChar == ',') {
+				return "; ";
+			}
+		}
+		return ", ";
+	}
 }


=====================================
tim/prune/data/TimestampUtc.java
=====================================
@@ -367,6 +367,22 @@ public class TimestampUtc extends Timestamp
 		return super.getText(inFormat, inTimezone);
 	}
 
+	/** @return a string describing the interpolated timestamp between two existing ones */
+	public static String interpolate(Timestamp inStartStamp, Timestamp inEndStamp, int inIndex, int inNumPoints)
+	{
+		if (inStartStamp == null || !inStartStamp.isValid()
+			|| inEndStamp == null || !inEndStamp.isValid()
+			|| inEndStamp.isBefore(inStartStamp))
+		{
+			return "";
+		}
+		final double fraction = 1.0 * (inIndex + 1) / (inNumPoints + 1);
+		final long startMillis = inStartStamp.getMilliseconds(TimeZone.getTimeZone("UTC"));
+		final long endMillis = inEndStamp.getMilliseconds(TimeZone.getTimeZone("UTC"));
+		final long middleMillis = startMillis + (long) (fraction * (endMillis - startMillis));
+		return "" + middleMillis;
+	}
+
 	/**
 	 * Utility method for formatting dates / times
 	 * @param inFormat formatter object


=====================================
tim/prune/function/RearrangePhotosFunction.java
=====================================
@@ -77,7 +77,7 @@ public class RearrangePhotosFunction extends RearrangeFunction
 				.addCommand(RearrangePointsCmd.from(result))
 				.addCommand(segmentCommand);
 			command.setDescription(getName());
-			command.setConfirmText("confirm.rearrangephotos");
+			command.setConfirmText(I18nManager.getText("confirm.rearrangephotos"));
 			_app.execute(command);
 		}
 	}


=====================================
tim/prune/function/RearrangeWaypointsFunction.java
=====================================
@@ -78,7 +78,7 @@ public class RearrangeWaypointsFunction extends RearrangeFunction
 		{
 			RearrangePointsCmd command = RearrangePointsCmd.from(result);
 			command.setDescription(getName());
-			command.setConfirmText("confirm.rearrangewaypoints");
+			command.setConfirmText(I18nManager.getText("confirm.rearrangewaypoints"));
 			_app.execute(command);
 		}
 	}


=====================================
tim/prune/function/info/ShowFullDetails.java
=====================================
@@ -25,6 +25,7 @@ import tim.prune.data.AudioClip;
 import tim.prune.data.Coordinate;
 import tim.prune.data.DataPoint;
 import tim.prune.data.Field;
+import tim.prune.data.NumberUtils;
 import tim.prune.data.Photo;
 import tim.prune.data.RangeStatsWithGradients;
 import tim.prune.data.Selection;
@@ -215,7 +216,7 @@ public class ShowFullDetails extends GenericFunction
 		final String lonStr = CoordDisplay.makeCoordinateLabel(point.getLongitude(), coordDisplayFormat);
 		addTextPair(result, "fieldname.latitude", latStr);
 		addTextPair(result, "fieldname.longitude", lonStr);
-		addTextPair(result, "fieldname.coordinates", latStr + ", " + lonStr);
+		addTextPair(result, "fieldname.coordinates", latStr + NumberUtils.getValueSeparator() + lonStr);
 
 		UnitSet unitSet = getConfig().getUnitSet();
 		if (point.hasAltitude())


=====================================
tim/prune/lang/prune-texts_cy.properties
=====================================
@@ -35,6 +35,7 @@ menu.map.zoomin=Chwyddo i mewn
 menu.map.zoomout=Chwyddo allan
 menu.map.showmap=Dangoswch y map
 menu.map.showscalebar=Dangoswch y bar graddfa
+menu.map.editmode=Modd golygu
 
 # Alt keys for menus
 altkey.menu.file=F
@@ -56,8 +57,11 @@ function.exportpov=Cadw POV
 function.exportimage=Cadw llun
 function.editwaypointname=Golygu enw'r pwynt
 function.deleterange=Dileu'r amrediad
+function.croptrack=Tocio'r wysg
 function.findwaypoint=Chwilio am enw
+function.deletefieldvalues=Dileu'r gwerthoedd
 function.charts=Siartiau
+function.show3d=Dangos mewn 3d
 function.distances=Pellterau
 function.viewfulldetails=Manylion
 function.setcolours=Eiliwiau
@@ -108,6 +112,11 @@ dialog.colourchooser.red=Coch
 dialog.colourchooser.green=Gwyrdd
 dialog.colourchooser.blue=Glas
 dialog.colourer.type.none=Dim
+dialog.colourer.start=Lliw dechreuol
+dialog.colourer.end=Lliw olaf
+dialog.colourer.huesmode=Rhyngosodiad rhwng arlliwiau
+dialog.colourer.huesmode.narrow=Cul
+dialog.colourer.huesmode.wide=Llydan
 dialog.setlanguage.language=Iaith
 dialog.diskcache.table.megabytes=Megabeitiau
 dialog.displaysettings.wpicon.ring=Cylch


=====================================
tim/prune/lang/prune-texts_no.properties
=====================================
@@ -17,11 +17,11 @@ menu.track.markrectangle=Marker punkter i rektangel
 menu.range=Intervall
 menu.range.all=Velg alle
 menu.range.none=Velg ingen
-menu.range.start=Velg intervallets startpunkt
-menu.range.end=Velg intervallets slutpunkt
+menu.range.start=Angi intervallets startpunkt
+menu.range.end=Angi intervallets sluttpunkt
 menu.range.average=Gjennomsnittsposisjon for utvalg
 menu.range.mergetracksegments=Sl\u00e5 sammen delintervaller
-menu.range.cutandmove=Kutt av og flytt valgt intervall
+menu.range.cutandmove=Klipp ut og flytt utvalg
 menu.point=Punkt
 menu.point.editpoint=Rediger punkt
 menu.point.deletepoint=Slett punkt
@@ -52,7 +52,7 @@ menu.map.zoomout=Zoom ut
 menu.map.zoomfull=Zoom til hele sporet
 menu.map.newpoint=Lag nytt punkt
 menu.map.drawpoints=Lag en serie punkter
-menu.map.connect=Knyt sporpunkter til linje
+menu.map.connect=Forbind sporpunkter
 menu.map.autopan=Autosentrering
 menu.map.showmap=Vis kart
 menu.map.showscalebar=Vis m\u00e5lestokk
@@ -134,11 +134,11 @@ function.setcolours=Velg farger
 function.setdisplaysettings=Velg visningsalternativer
 function.setwaypointdisplay=Velg veipunktalternativer
 function.setlanguage=Velg spr\u00e5k
-function.connecttopoint=Knytt til punkt
+function.connecttopoint=Forbind til punkt
 function.disconnectfrompoint=Koble fra punkt
 function.removephoto=Fjern foto
 function.correlatephotos=Relater alle bilder
-function.rearrangephotos=Omarranger bilder
+function.rearrangephotos=Omorganiser bilder
 function.rotatephotoleft=Roter bilde mot venstre
 function.rotatephotoright=Roter bilde mot h\u00f8yre
 function.photopopup=Vis bilde popup
@@ -151,11 +151,599 @@ function.stopaudio=Stopp lydklipp
 function.help=Hjelp
 function.showkeys=Vis hurtigtaster
 function.about=Om GpsPrune
-function.checkversion=Sjekk etter nye versjoner
+function.checkversion=Se etter ny versjon
 function.saveconfig=Lagre innstillinger
 function.migrateconfig=Migrer innstillingsfil
-function.diskcache=Om lagring av kart
-function.managetilecache=H\u00e5ndter kart-flis-lager
+function.diskcache=Lagre kart til disk
+function.managetilecache=H\u00e5ndter kartflislager
+function.getweatherforecast=Hent v\u00e6rvarsel
+function.setaltitudetolerance=Still inn h\u00f8ydetoleranse
+function.selecttimezone=Still inn tidssone
+
+# Dialogs
+dialog.exit.confirm.title=Avslutt GpsPrune
+dialog.exit.unsaveddata.text=Dine data er ikke lagret. Er du sikker p\u00e5 at du vil avslutte?
+dialog.deletepoint.title=Slett punkt
+dialog.deletepoint.deletephoto=Slette bildet '%s' som er knyttet til dette punktet?
+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=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?
+dialog.deletephoto.deletepointandaudio=Slette b\u00e5de punktet og lyden som er knyttet til dette bildet?
+dialog.deleteaudio.deletepoint=Slette punkt knyttet til dette lydklippet?
+dialog.deleteaudio.deletepointandphoto=Slette b\u00e5de punktet og bildet som er knyttet til dette lydklippet?
+dialog.load.table.field=Felt
+dialog.load.table.datatype=Datatype
+dialog.load.table.description=Beskrivelse
+dialog.delimiter.label=Feltskilletegn
+dialog.delimiter.comma=Komma ,
+dialog.delimiter.tab=Tabulator
+dialog.delimiter.space=Mellomrom
+dialog.delimiter.semicolon=Semikolon ;
+dialog.delimiter.other=Annet
+dialog.openoptions.deliminfo.fields=felt
+dialog.openoptions.altitudeunits=H\u00f8ydeenheter
+dialog.openoptions.speedunits=Hastighetsenheter
+dialog.openoptions.vertspeedunits=Vertikale hastighetsenheter
+dialog.open.contentsdoubled=Denne filen inneholder to kopier av hvert punkt.
+dialog.open.contentsdoubled.wayandtrack=Denne filen inneholder to kopier av hvert punkt,\nen gang som veipunkt og en gang som sporpunkt.
+dialog.open.includesubdirectories=Inkluder undermapper
+dialog.jpegload.loadjpegswithoutcoords=Inkluder bilder uten koordinater
+dialog.jpegload.loadjpegsoutsidearea=Inkluder bilder utenfor aktuelt omr\u00e5de
+dialog.jpegload.progress.title=Laster bilder
+dialog.jpegload.progress=Vent mens bildene s\u00f8kes gjennom
+dialog.loadlinkedmedia.title=Last ned lenket media
+dialog.loadlinkedmedia.allowdomain=Tillate media fra '%s'?
+dialog.gpsload.nogpsbabel=Ikke noe GPSBabel-program ble funnet. Fortsette?
+dialog.gpsload.device=Enhetsnavn
+dialog.gpsload.format=Format
+dialog.gpsload.getwaypoints=Last veipunkter
+dialog.gpsload.gettracks=Last spor
+dialog.gpsload.save=Lagre til fil
+dialog.gpssend.sendwaypoints=Send veipunkter
+dialog.gpssend.sendtracks=Send spor
+dialog.gpssend.trackname=Spornavn
+dialog.gpsbabel.filters=Filtre
+dialog.addfilter.title=Legg til filter
+dialog.gpsbabel.filter.discard=Forkast
+dialog.gpsbabel.filter.simplify=Forenkle
+dialog.gpsbabel.filter.distance=Distanse
+dialog.gpsbabel.filter.interpolate=Interpolere
+dialog.gpsbabel.filter.discard.intro=Forkast punkter hvis
+dialog.gpsbabel.filter.discard.hdop=Hdop >
+dialog.gpsbabel.filter.discard.vdop=Vdop >
+dialog.gpsbabel.filter.discard.numsats=Antall satellitter <
+dialog.gpsbabel.filter.simplify.maxpoints=Antall punkter <
+dialog.gpsbabel.filter.simplify.length=lengdeforskjell
+dialog.gpsbabel.filter.simplify.relative=relativ til hdop
+dialog.gpsbabel.filter.distance.intro=Fjern punkter hvis n\u00e6r foreg\u00e5ende punkter
+dialog.gpsbabel.filter.distance.distance=Hvis distanse <
+dialog.gpsbabel.filter.distance.time=og tidsforskjell <
+dialog.gpsbabel.filter.interpolate.intro=Legg til ekstra punkter mellom sporpunkter
+dialog.gpsbabel.filter.interpolate.distance=Hvis distanse >
+dialog.gpsbabel.filter.interpolate.time=eller tidsforskjell >
+dialog.saveoptions.title=Lagre fil
+dialog.save.fieldstosave=Felter \u00e5 lagre
+dialog.save.table.field=Felt
+dialog.save.table.hasdata=Har data
+dialog.save.table.save=Lagre
+dialog.save.coordinateunits=Koordinatformat
+dialog.save.altitudeunits=H\u00f8ydeenheter
+dialog.save.timestampformat=Tidsstempelformat
+dialog.save.overwrite.title=Fil finnes allerede
+dialog.save.overwrite.text=Denne filen finnes allerede. Er du sikker p\u00e5 at du vil overskrive filen?
+dialog.exportkml.kmz=Komprimer for \u00e5 lage kmz-fil
+dialog.exportkml.exportimages=Eksporter miniatyrbilder til kmz
+dialog.exportkml.imagesize=Bildest\u00f8rrelse
+dialog.exportkml.trackcolour=Sporfarge
+dialog.exportgpx.name=Navn
+dialog.exportgpx.desc=Beskrivelse
+dialog.exportgpx.includetimestamps=Inkluder tidsstempler
+dialog.exportgpx.descriptionstocomments=Kopier beskrivelser til kommentarer
+dialog.exportgpx.encoding=Koding
+dialog.exportgpx.encoding.system=System
+dialog.exportgpx.encoding.utf8=UTF-8
+dialog.exportpov.text=Angi parametrene for POV-eksporten
+dialog.exportpov.font=Skrift
+dialog.exportpov.camerax=Kamera X
+dialog.exportpov.cameray=Kamera Y
+dialog.exportpov.cameraz=Kamera Z
+dialog.exportpov.modelstyle=Modellstil
+dialog.3d.useterrain=Vis terreng
+dialog.3d.terraingridsize=Rutenettst\u00f8rrelse
+dialog.baseimage.title=Kartbilde
+dialog.baseimage.useimage=Bruk bilde
+dialog.baseimage.mapsource=Kartkilde
+dialog.baseimage.zoom=Zoom-niv\u00e5
+dialog.baseimage.tiles=Fliser
+dialog.baseimage.size=Bildest\u00f8rrelse
+dialog.exportimage.noimagepossible=Kartbilder m\u00e5 hurtiglagres p\u00e5 disk for \u00e5 kunne brukes til eksport.
+dialog.exportimage.drawtrack=Tegn spor p\u00e5 kart
+dialog.exportimage.drawtrackpoints=Tegn sporpunkter
+dialog.exportimage.textscalepercent=Tekstskaleringsfaktor (%)
+dialog.pointtype.desc=Lagre f\u00f8lgende punkttyper:
+dialog.pointtype.track=Sporpunkter
+dialog.pointtype.waypoint=Veipunkter
+dialog.pointtype.photo=Fotopunkter
+dialog.pointtype.audio=Lydpunkter
+dialog.confirmmangletimes.title=Bekreft handling
+dialog.undo.title=Angrehandling(er)
+dialog.undo.pretext=Velg handlingen(e) \u00e5 angre
+dialog.undo.none.title=Kan ikke angre
+dialog.undo.none.text=Ingen handlinger \u00e5 angre!
+dialog.clearundo.title=T\u00f8m angreliste
+dialog.clearundo.text=Er du sikker p\u00e5 at du vil t\u00f8mme angrelisten?\nAll angreinformasjon blir tapt!
+dialog.pointedit.title=Rediger punkt
+dialog.pointedit.intro=Velg hvert felt etter tur for \u00e5 vise og endre verdien
+dialog.pointedit.table.field=Felt
+dialog.pointedit.nofield=Ingen felt valgt
+dialog.pointedit.table.value=Verdi
+dialog.pointnameedit.name=Veipunktnavn
+dialog.pointnameedit.uppercase=STORE bokstaver
+dialog.pointnameedit.lowercase=sm\u00e5 bokstaver
+dialog.truncatecoords.intro=Velg koordinatformatet og antallet desimaler
+dialog.truncatecoords.numdigits=Antall desimaler
+dialog.truncatecoords.preview=Forh\u00e5ndsvisning
+dialog.addtimeoffset.add=Legg til tid
+dialog.addtimeoffset.subtract=Trekk fra tid
+dialog.addtimeoffset.weeks=Uker
+dialog.addtimeoffset.days=Dager
+dialog.addtimeoffset.hours=Timer
+dialog.addtimeoffset.minutes=Minutter
+dialog.addtimeoffset.notimestamps=Kan ikke legge til en tidsforskyvning ettersom dette markeringsomr\u00e5det ikke inneholder noen tidsstempelinformasjon
+dialog.findwaypoint.intro=Angi en del av veipunktnavnet
+dialog.findwaypoint.search=S\u00f8k
+dialog.saveexif.title=Lagre Exif
+dialog.saveexif.intro=Velg bildene som skal lagres med avkrysningsboksene
+dialog.saveexif.nothingtosave=Koordinatdata er uendret, ingenting \u00e5 lagre
+dialog.saveexif.noexiftool=Ikke noe ExifTool-program ble funnet. Fortsette?
+dialog.saveexif.table.photoname=Bildenavn
+dialog.saveexif.table.status=Status
+dialog.saveexif.table.save=Lagre
+dialog.saveexif.photostatus.modified=Endret
+dialog.saveexif.overwrite=Overskriv filer
+dialog.charts.xaxis=X-akse
+dialog.charts.yaxis=Y-akser
+dialog.charts.output=Utdata
+dialog.charts.screen=Utdata til skjerm
+dialog.charts.svg=Utdata til SVG-fil
+dialog.charts.svgwidth=SVG-bredde
+dialog.charts.svgheight=SVG-h\u00f8yde
+dialog.charts.gnuplotnotfound=Fant ikke Gnuplot med den angitte banen
+dialog.distances.intro=Luftlinjeavstander mellom punkter
+dialog.distances.column.from=Fra punkt
+dialog.distances.column.to=Til punkt
+dialog.distances.currentpoint=Gjeldende punkt
+dialog.distances.toofewpoints=Denne funksjonen trenger veipunkter for \u00e5 kunne beregne avstandene mellom dem
+dialog.estimatetime.details=Detaljer
+dialog.estimatetime.gentle=Lett
+dialog.estimatetime.steep=Bratt
+dialog.estimatetime.climb=Oppstigning
+dialog.estimatetime.descent=Nedstigning
+dialog.estimatetime.parameters=Parametre
+dialog.estimatetime.parameters.timefor=Tid for
+dialog.estimatetime.results=Resultater
+dialog.estimatetime.results.estimatedtime=Beregnet tid
+dialog.estimatetime.results.actualtime=Faktisk tid
+dialog.learnestimationparams.averageerror=Gjennomsnittsfeil
+dialog.learnestimationparams.combine=Disse parameterne kan kombineres med de gjeldende verdiene
+dialog.learnestimationparams.combinedresults=Kombinerte resultater
+dialog.learnestimationparams.weight.100pccurrent=Behold gjeldende verdier
+dialog.learnestimationparams.weight.current=gjeldende
+dialog.learnestimationparams.weight.calculated=beregnet
+dialog.learnestimationparams.weight.50pc=Gjennomsnitt av gjeldende og beregnede verdier
+dialog.learnestimationparams.weight.100pccalculated=Bruk nye beregnede verdier
+dialog.setmapbg.intro=Velg en av kartkildene eller legg til en ny
+dialog.addmapsource.title=Legg til ny kartkilde
+dialog.addmapsource.sourcename=Navn p\u00e5 kilde
+dialog.addmapsource.maxzoom=Maksimum zoom-niv\u00e5
+dialog.addmapsource.noname=Navnl\u00f8s
+dialog.pointdownload.description=Beskrivelse
+dialog.pointdownload.nodescription=Ingen beskrivelse
+dialog.wikipedia.column.name=Artikkelnavn
+dialog.osmpois.column.name=Navn
+dialog.osmpois.column.type=Type
+dialog.osmpois.nonefound=Ingen punkter funnet
+dialog.correlate.select.photoname=Bildenavn
+dialog.correlate.select.timediff=Tidsforskjell
+dialog.correlate.select.photolater=Foto senere
+dialog.correlate.options.offsetpanel=Tidsforskyvning
+dialog.correlate.options.offset.hours=timer,
+dialog.correlate.options.offset.minutes=minutter og
+dialog.correlate.options.offset.seconds=sekunder
+dialog.correlate.options.photolater=Foto senere enn punkt
+dialog.correlate.options.pointlaterphoto=Punkt senere enn foto
+dialog.correlate.options.audiolater=Lyd senere enn punkt
+dialog.correlate.options.pointlateraudio=Punkt senere enn lyd
+dialog.rearrangewaypoints.desc=Velg bestemmelsesstedet og sorteringsrekkef\u00f8lge for veipunktene
+dialog.rearrangephotos.desc=Velg bestemmelsesstedet og sorteringsrekkef\u00f8lge for fotopunktene
+dialog.rearrange.nosort=Ikke sorter
+dialog.rearrange.sortbyfilename=Sorter etter filnavn
+dialog.rearrange.sortbyname=Sorter etter navn
+dialog.rearrange.sortbytime=Sorter etter tid
+dialog.compress.duplicates.title=Duplikatfjerning
+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
+dialog.deletemarked.nonefound=Ingen datapunkter kunne fjernes
+dialog.dedupewaypoints.nonefound=Ingen duplikatveipunkter ble funnet
+dialog.pastecoordinates.desc=Skriv inn eller lim inn koordinatene her
+dialog.pastecoordinates.coords=Koordinater
+dialog.pastecoordinates.nothingfound=Sjekk koordinatene og pr\u00f8v igjen
+dialog.pastecoordinatelist.desc=Angi koordinatene for de nye punktene med ett punkt per linje
+dialog.about.version=Versjon
+dialog.about.languages=Tilgjengelige spr\u00e5k
+dialog.about.translatedby=Norsk oversettelse av:
+dialog.about.systeminfo=System-info
+dialog.about.systeminfo.os=Operativsystem
+dialog.about.systeminfo.java=Java Runtime
+dialog.about.systeminfo.java3d=Java3d installert
+dialog.about.systeminfo.exiftool=ExifTool installert
+dialog.about.systeminfo.gpsbabel=GPSBabel installert
+dialog.about.systeminfo.gnuplot=Gnuplot installert
+dialog.about.yes=Ja
+dialog.about.no=Nei
+dialog.keys.normalmodifier=Ctrl
+dialog.paths.prune.gnuplotpath=Bane til Gnuplot
+dialog.paths.prune.gpsbabelpath=Bane til GPSBabel
+dialog.paths.prune.exiftoolpath=Bane til ExifTool
+dialog.setpaths.intro=Om du beh\u00f8ver, kan du velge banene til de eksterne programmene:
+dialog.setpaths.found=Bane funnet?
+dialog.addaltitude.desc=H\u00f8ydeforskyvning \u00e5 legge til
+dialog.setcolours.background=Bakgrunn
+dialog.setcolours.borders=Kanter
+dialog.setcolours.lines=Linjer
+dialog.setcolours.primary=Prim\u00e6r
+dialog.setcolours.secondary=Sekund\u00e6r
+dialog.setcolours.point=Punkter
+dialog.setcolours.selection=Markering
+dialog.setcolours.text=Tekst
+dialog.colourchooser.title=Velg farge
+dialog.colourchooser.red=R\u00f8d
+dialog.colourchooser.green=Gr\u00f8nn
+dialog.colourchooser.blue=Bl\u00e5
+dialog.colourer.start=Startfarge
+dialog.colourer.end=Sluttfarge
+dialog.colourer.maxcolours=Maksimalt antall farger
+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
+dialog.setlanguage.languagefile=Spr\u00e5kfil
+dialog.setlanguage.endmessage=Lagre innstillingene dine og start GpsPrune p\u00e5 nytt\nfor at spr\u00e5kendringen skal tre i kraft.
+dialog.setlanguage.endmessagewithautosave=Start GpsPrune p\u00e5 nytt for at spr\u00e5kendringen skal tre i kraft.
+dialog.diskcache.save=Lagre kartbilder p\u00e5 disk
+dialog.diskcache.dir=Hurtiglagermappe
+dialog.diskcache.createdir=Opprett mappe
+dialog.diskcache.nocreate=Hurtiglagermappe ikke opprettet
+dialog.diskcache.cannotwrite=Kartfliser kan ikke lagres i den valgte mappen
+dialog.diskcache.table.path=Bane
+dialog.diskcache.table.usedby=Brukt av
+dialog.diskcache.table.zoom=Zoom
+dialog.diskcache.table.tiles=Fliser
+dialog.diskcache.table.megabytes=Megabyte
+dialog.diskcache.deleteold=Slett gamle fliser
+dialog.diskcache.maximumage=Maksimal alder (dager)
+dialog.diskcache.deleteall=Slett alle fliser
+dialog.diskcache.deleted=Slettet %d filer fra hurtiglageret
+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.waypointicons=Veipunktikoner
+dialog.displaysettings.wpicon.default=Standard
+dialog.displaysettings.wpicon.plectrum=Plektrum
+dialog.displaysettings.wpicon.ring=Ring
+dialog.displaysettings.size.small=Sm\u00e5
+dialog.displaysettings.size.medium=Middels
+dialog.displaysettings.size.large=Store
+dialog.displaysettings.windowstyle.default=Standard
+dialog.displaysettings.windowstyle.nimbus=Nimbus
+dialog.displaysettings.windowstyle.gtk=GTK
+dialog.downloadosm.desc=Bekreft for \u00e5 laste ned OSM-r\u00e5data for det angitte omr\u00e5det:
+dialog.searchwikipedianames.search=S\u00f8k etter:
+dialog.weather.location=Sted
+dialog.weather.update=Varsel oppdatert
+dialog.weather.sunrise=Soloppgang
+dialog.weather.sunset=Solnedgang
+dialog.weather.temperatureunits=Temperaturer
+dialog.weather.currentforecast=Gjeldende v\u00e6r
+dialog.weather.dailyforecast=Daglig varsel
+dialog.weather.3hourlyforecast=Tretimers varsel
+dialog.weather.day.now=Gjeldende v\u00e6r
+dialog.weather.day.today=I dag
+dialog.weather.day.tomorrow=I morgen
+dialog.weather.day.monday=Mandag
+dialog.weather.day.tuesday=Tirsdag
+dialog.weather.day.wednesday=Onsdag
+dialog.weather.day.thursday=Torsdag
+dialog.weather.day.friday=Fredag
+dialog.weather.day.saturday=L\u00f8rdag
+dialog.weather.day.sunday=S\u00f8ndag
+dialog.weather.wind=Vind
+dialog.weather.temp=Temp
+dialog.weather.humidity=Fuktighet
+dialog.weather.creditnotice=Disse dataene er gjort tilgjengelige av openweathermap.org. Nettstedet deres har flere detaljer.
+dialog.deletebydate.nodate=Ingen tidsstempel
+dialog.deletebydate.column.keep=Behold
+dialog.deletebydate.column.delete=Slett
+dialog.setaltitudetolerance.text.metres=Grense (i meter) under hvilken sm\u00e5 stigninger og nedstigninger blir ignorert
+dialog.setaltitudetolerance.text.feet=Grense (i fot) under hvilken sm\u00e5 stigninger og nedstigninger blir ignorert
+dialog.settimezone.system=Bruk systemets tidssone
+dialog.settimezone.custom=Bruk f\u00f8lgende tidssone:
+dialog.settimezone.list.toomany=For mange \u00e5 velge mellom
+dialog.settimezone.selectedzone=Valgt tidssone
+dialog.settimezone.offsetfromutc=Forskjell fra UTC
+dialog.autoplay.duration=Lengde (sek)
+dialog.autoplay.usetimestamps=Bruk punkttidsstempler
+dialog.autoplay.rewind=Tilbake til begynnelsen
+dialog.autoplay.pause=Pause
+dialog.autoplay.play=Spill av
+dialog.projectcircle.desc=Angi avstanden fra dette punktet til sirkelen rundt
+dialog.findfile.dir=S\u00f8k mappe
+dialog.findfile.searchtext=Tekst
+dialog.findfile.resultscolumn.file=Fil
+dialog.findfile.resultscolumn.contents=Innhold
+dialog.editdaterange.yearmonthday=\u00c5r/M\u00e5ned/Dag
+dialog.editdaterange.daterange=Start- og sluttdato
+dialog.editdaterange.month.all=Helt \u00e5r
+dialog.editdaterange.month.jan=Januar
+dialog.editdaterange.month.feb=Februar
+dialog.editdaterange.month.mar=Mars
+dialog.editdaterange.month.apr=April
+dialog.editdaterange.month.may=Mai
+dialog.editdaterange.month.jun=Juni
+dialog.editdaterange.month.jul=Juli
+dialog.editdaterange.month.aug=August
+dialog.editdaterange.month.sep=September
+dialog.editdaterange.month.oct=Oktober
+dialog.editdaterange.month.nov=November
+dialog.editdaterange.month.dec=Desember
+dialog.editdaterange.year=\u00c5r
+dialog.editdaterange.month=M\u00e5ned
+dialog.editdaterange.day=Dag
+dialog.editdaterange.to=til
+dialog.editdaterange.result=Resultat
+dialog.locationfilter.nofilter=Ingen filter
+dialog.locationfilter.distance=Etter distanse
+dialog.locationfilter.frompoint=fra punkt
+
+# Confirm messages
+confirm.loadfile=Data lastet fra fil
+confirm.save.ok1=Lagret
+confirm.save.ok2=punkter til filen
+confirm.deletepoint.single=datapunkt ble fjernet
+confirm.deletepoint.multi=%d datapunkter ble fjernet
+confirm.point.edit=punkt redigert
+confirm.addtimeoffset=Tidsforskyvning lagt til
+confirm.addaltitudeoffset=H\u00f8ydeforskyvning lagt til
+confirm.rearrangewaypoints=Veipunkter omorganiserte
+confirm.rearrangephotos=Bilder omorganiserte
+confirm.pointadded=punkt lagt til
+confirm.pointsadded=%d punkter lagt til
+confirm.saveexif.ok=Lagret %d bildefiler
+confirm.jpegload.single=1 bilde ble lagt til
+confirm.jpegload.multi=%d bilder ble lagt til
+confirm.media.removed=%s ble fjernet
+confirm.createpoint=punkt opprettet
+confirm.rotatephoto=foto rotert
+confirm.lookupsrtm=Fant %d h\u00f8ydeverdier
+confirm.downloadsrtm=Lastet ned %d filer til hurtiglageret
+confirm.downloadsrtm.1=Lastet ned %d fil til hurtiglageret
+confirm.deletefieldvalues=Feltverdier slettet
+confirm.audiosloaded.single=1 lydfil lagt til
+confirm.audiosloaded=%d lydfiler lagt til
+
+# Buttons
+button.ok=OK
+button.back=Tilbake
+button.next=Neste
+button.finish=Fullf\u00f8r
+button.cancel=Avbryt
+button.overwrite=Overskriv
+button.moveup=Flytt opp
+button.movedown=Flytt ned
+button.edit=Rediger
+button.exit=Avslutt
+button.close=Lukk
+button.continue=Fortsett
+button.yes=Ja
+button.no=Nei
+button.always=Alltid
+button.select=Velg
+button.selectall=Velg alle
+button.selectnone=Velg ingen
+button.preview=Forh\u00e5ndsvis
+button.load=Last
+button.showwebpage=Vis nettside
+button.resettodefaults=Tilbakestill til standard
+button.browse=Bla gjennom...
+button.addnew=Legg til ny
+button.delete=Slett
+button.manage=H\u00e5ndter
+button.combine=Kombiner
+button.apply=Bruk
+button.allow=Tillat
+button.block=Blokker
+button.search=S\u00f8k
+
+# File types for filtering
+filetypefilter.txt=TXT-filer
+filetypefilter.jpeg=JPG-filer
+filetypefilter.kmlkmz=KML-, KMZ-filer
+filetypefilter.kml=KML-filer
+filetypefilter.kmz=KMZ-filer
+filetypefilter.gpx=GPX-filer
+filetypefilter.pov=POV-filer
+filetypefilter.svg=SVG-filer
+filetypefilter.png=PNG-filer
+filetypefilter.audio=MP3-, OGG-, WAV-filer
+
+# Display components
+display.nodata=Ingen data lastet
+display.noaltitudes=Spordata inkluder ikke h\u00f8yde
+display.notimestamps=Spordata inkluder ikke tidsstempler
+display.novalues=Spordata inkluder ikke verdier for dette feltet
+details.trackdetails=Spordetaljer
+details.notrack=Ingen spor lastet
+details.track.points=Punkter
+details.track.file=Fil
+details.track.numfiles=Antall filer
+details.pointdetails=Punktdetaljer
+details.index.selected=Indeks
+details.index.of=av
+details.photofile=Bildefil
+details.rangedetails=Intervalldetaljer
+details.range.selected=Valgte
+details.range.to=til
+details.altitude.to=til
+details.range.climb=Oppstigning
+details.range.descent=Nedstigning
+details.coordformat=Koordinatformat
+details.distanceunits=Distanseenheter
+display.range.time.secs=s
+display.range.time.mins=min
+display.range.time.hours=t
+display.range.time.days=d
+details.range.avespeed=Gj. hastighet
+details.range.maxspeed=Maks. hastighet
+details.range.numsegments=Antall segmenter
+details.range.pace=Tempo
+details.lists.waypoints=Veipunkter
+details.lists.photos=Bilder
+details.lists.audio=Lyd
+details.photodetails=Bildedetaljer
+details.nophoto=Ikke noe bilde valgt
+details.photo.loading=Laster
+details.photo.bearing=Retning
+details.media.fullpath=Full bane
+details.audiodetails=Lyddetaljer
+details.noaudio=Ingen lydklipp valgt
+details.audio.file=Lydfil
+details.audio.playing=spiller...
+map.overzoom=Ingen kart tilgjengelige p\u00e5 dette zoom-niv\u00e5et
+
+# Field names
+fieldname.latitude=Breddegrad
+fieldname.longitude=Lengdegrad
+fieldname.coordinates=Koordinater
+fieldname.altitude=H\u00f8yde
+fieldname.timestamp=Tid
+fieldname.time=Tid
+fieldname.date=Dato
+fieldname.waypointname=Navn
+fieldname.waypointtype=Type
+fieldname.newsegment=Segment
+fieldname.custom=Tilpasset
+fieldname.prefix=Felt
+fieldname.distance=Distanse
+fieldname.duration=Varighet
+fieldname.speed=Hastighet
+fieldname.verticalspeed=Vertikal hastighet
+fieldname.description=Beskrivelse
+fieldname.comment=Kommentar
+fieldname.symbol=Symbol
+fieldname.photo=Foto
+fieldname.audio=Lyd
+
+# Measurement units
+units.default=Standard
+units.metres=Meter
+units.metres.short=m
+units.feet=Fot
+units.feet.short=ft
+units.kilometres=Kilometer
+units.kilometres.short=km
+units.kilometresperhour=km i timen
+units.kilometresperhour.short=km/t
+units.nauticalmiles=Nautiske mil
+units.nauticalmiles.short=N.m.
+units.nauticalmilesperhour.short=kn
+units.metrespersec=meter per sekund
+units.metrespersec.short=m/s
+units.feetpersec=fot per sekund
+units.feetpersec.short=ft/s
+units.hours=timer
+units.minutes=minutter
+units.seconds=sekunder
+units.degminsec=Grad-min-sek
+units.degmin=Grad-min
+units.deg=Grader
+units.iso8601=ISO 8601
+units.degreescelsius=Celsius
+units.degreescelsius.short=\u00b0C
+units.degreesfahrenheit=Fahrenheit
+units.degreesfahrenheit.short=\u00b0F
+
+# How to combine conditions, such as filters
+logic.and=og
+logic.or=eller
+
+# External urls and services
+wikipedia.lang=no
+openweathermap.lang=no
+webservice.peakfinder=\u00c5pne Peakfinder.org
+webservice.geohack=\u00c5pne Geohack-side
+
+# Cardinals for 3d plots
+cardinal.n=N
+cardinal.s=S
+cardinal.e=\u00d8
+cardinal.w=V
+
+# Undo operations
+undo.loadfile=Last fil %s
+undo.loadpoints=Last %d punkter
+undo.loadphoto=Last bilde %s
+undo.loadphotos=Last %d bilder
+undo.loadaudio=Last lydklipp '%s'
+undo.loadaudios=Last %d lydklipp
+undo.loadmedia=Last media '%s'
+undo.editpoint=Rediger punkt
+undo.editpoint.withname=Rediger punkt '%s'
+undo.deletepoint=Slett punkt
+undo.deletepoint.withname=Slett punkt '%s'
+undo.deletepoints=Slett %d punkter
+undo.removephoto=Fjern bilde %s
+undo.removeaudio=Fjern lydklipp %s
+undo.createpoint=Opprett punkt
+undo.applytimestamps=Bruk tidsstempler
+
+# Error messages
+error.save.dialogtitle=Feil ved lagring av data
+error.save.nodata=Ingen data \u00e5 lagre
+error.save.failed=Kunne ikke lagre dataene til fil
+error.saveexif.filenotfound=Fant ikke bildefil
+error.saveexif.cannotoverwrite=Bildefilen %s er skrivebeskyttet og kan ikke overskrives. Skrive til kopi?
+error.saveexif.failed=Kunne ikke lagre %d av bildene
+error.load.dialogtitle=Feil ved lasting av data
+error.load.noread=Kan ikke lese fil
+error.load.nopoints=Ingen koordinatinformasjon funnet i filen
+error.load.unknownxml=Ikke gjenkjent xml-format:
+error.load.noxmlinzip=Ingen xml-fil funnet i zip-filen
+error.load.othererror=Feil ved lesing av fil:
+error.load.nopointsintext=Ingen koordinatinformasjon funnet
+error.jpegload.dialogtitle=Feil ved lasting av bilder
+error.jpegload.nofilesfound=Ingen filer funnet
+error.jpegload.nojpegsfound=Ingen jpeg-filer funnet
+error.jpegload.nogpsfound=Ingen GPS-informasjon funnet
+error.audioload.nofilesfound=Ingen lydklipp funnet
+error.gpsload.unknown=Ukjent feil
+error.undofailed.title=Angre mislyktes
+error.language.wrongfile=Den valgte filen ser ikke ut til \u00e5 v\u00e6re en spr\u00e5kfil for GpsPrune
+error.lookupsrtm.nonefound=Ingen h\u00f8ydeverdier tilgjengelige for disse punktene
+error.showphoto.failed=Kunne ikke laste bildet
+error.playaudiofailed=Kunne ikke spille av lydklippet
+error.cache.notthere=Flishurtiglager-mappen ble ikke funnet
+error.cache.empty=Flishurtiglager-mappen er tom
+error.cache.cannotdelete=Ingen fliser kunne slettes
+error.tracksplit.nosplit=Sporet kunne ikke deles
+error.sewsegments.nothingdone=Ingen segmenter kan sys sammen.\nDet er n\u00e5 %d segmenter i sporet.
+error.sewsegments.nothingdone.single=Ingen segmenter kan sys sammen.\nDet er bare ett enkelt segment i sporet.
+error.findfile.nofilesfound=Ingen filer ble funnet i denne mappen.
+error.migrateconfig.couldnotcreatedirectory=Kunne ikke opprette mappen %s.\nInnstillinger kunne ikke migreres.
+error.migrateconfig.couldnotdeletefile=Kunne ikke slette filen %s.\nSlett denne filen manuelt.
 function.getweatherforecast=Hent v\u00e6rvarsel
 function.setaltitudetolerance=Still inn h\u00f8ydetoleranse
 function.selecttimezone=Still inn tidssone


=====================================
tim/prune/readme.txt
=====================================
@@ -1,4 +1,4 @@
-GpsPrune version 24.2
+GpsPrune version 24.3
 =====================
 
 GpsPrune is an application for viewing, editing and managing coordinate data from GPS systems,
@@ -17,7 +17,7 @@ Running
 =======
 
 To run GpsPrune from the jar file, simply call it from a command prompt or shell:
-   java -jar gpsprune_24.2.jar
+   java -jar gpsprune_24.3.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_24.2.jar --lang=DE
+   java -jar gpsprune_24.3.jar --lang=DE
 
 
+New with version 24.3
+=====================
+The following fixes were made since version 24.2:
+  - When interpolating new points between existing points, interpolate the timestamps too
+  - Bugfix: parsing of altitudes using decimal commas
+  - Norwegian translations
+
 New with version 24.2
 =====================
 The following fixes were made since version 24.1:



View it on GitLab: https://salsa.debian.org/debian-gis-team/gpsprune/-/commit/9f3e8847b38840b13e122636f13a314cea7f2c3f

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/gpsprune/-/commit/9f3e8847b38840b13e122636f13a314cea7f2c3f
You're receiving this email because of your account on salsa.debian.org.


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


More information about the Pkg-grass-devel mailing list