This is an automated email from the git hooks/post-receive script. monica pushed a commit to branch master in repository gpsprune.
commit 38815e4495b9a81cab374e2703d2296695d60b9d Author: Mònica Ramírez Arceda <mon...@debian.org> Date: Tue Aug 5 18:34:33 2014 +0200 Imported Upstream version 16.3 --- build.sh | 2 +- tim/prune/GpsPrune.java | 4 +- tim/prune/function/PhotoComparer.java | 2 +- .../weather/GetWeatherForecastFunction.java | 8 ++- tim/prune/gui/TerrainDefinitionPanel.java | 2 +- tim/prune/lang/prune-texts_cz.properties | 1 - tim/prune/lang/prune-texts_de.properties | 1 - tim/prune/lang/prune-texts_de_CH.properties | 1 - tim/prune/lang/prune-texts_en.properties | 1 - tim/prune/lang/prune-texts_es.properties | 49 ++++++++++++-- tim/prune/lang/prune-texts_fr.properties | 25 ++++++- tim/prune/lang/prune-texts_hu.properties | 1 - tim/prune/lang/prune-texts_it.properties | 9 ++- tim/prune/lang/prune-texts_ja.properties | 1 - tim/prune/lang/prune-texts_ko.properties | 1 - tim/prune/lang/prune-texts_nl.properties | 1 - tim/prune/lang/prune-texts_pl.properties | 1 - tim/prune/lang/prune-texts_pt.properties | 1 - tim/prune/lang/prune-texts_ru.properties | 78 +++++++++++++++++----- tim/prune/lang/prune-texts_sv.properties | 74 +++++++++++++++----- tim/prune/lang/prune-texts_zh.properties | 1 - tim/prune/readme.txt | 15 ++++- tim/prune/save/GpsSaver.java | 2 +- tim/prune/save/GpxExporter.java | 27 ++++---- tim/prune/save/xml/GpxCacher.java | 18 +++-- tim/prune/threedee/Java3DWindow.java | 35 +++++++--- 26 files changed, 272 insertions(+), 89 deletions(-) diff --git a/build.sh b/build.sh index d6f0c68..15030ac 100644 --- a/build.sh +++ b/build.sh @@ -1,6 +1,6 @@ # Build script using external exif library # Version number -PRUNENAME=gpsprune_16.2 +PRUNENAME=gpsprune_16.3 # remove compile directory rm -rf compile # remove dist directory diff --git a/tim/prune/GpsPrune.java b/tim/prune/GpsPrune.java index d8e9549..dd90765 100644 --- a/tim/prune/GpsPrune.java +++ b/tim/prune/GpsPrune.java @@ -35,9 +35,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 = "16.2"; + public static final String VERSION_NUMBER = "16.3"; /** Build number, just used for about screen */ - public static final String BUILD_NUMBER = "303b"; + public static final String BUILD_NUMBER = "303c"; /** Static reference to App object */ private static App APP = null; diff --git a/tim/prune/function/PhotoComparer.java b/tim/prune/function/PhotoComparer.java index 86252d1..b15d57c 100644 --- a/tim/prune/function/PhotoComparer.java +++ b/tim/prune/function/PhotoComparer.java @@ -48,7 +48,7 @@ public class PhotoComparer implements Comparator<DataPoint> if (result == 0) { result = compareSizes(inP1, inP2); } - return 0; + return result; } /** diff --git a/tim/prune/function/weather/GetWeatherForecastFunction.java b/tim/prune/function/weather/GetWeatherForecastFunction.java index 7b6f8c7..970d022 100644 --- a/tim/prune/function/weather/GetWeatherForecastFunction.java +++ b/tim/prune/function/weather/GetWeatherForecastFunction.java @@ -73,6 +73,8 @@ public class GetWeatherForecastFunction extends GenericFunction implements Runna /** True to just simulate the calls and read files instead, false to call real API */ private static final boolean SIMULATE_WITH_FILES = false; + /** Unique API key for GpsPrune */ + private static final String OPENWEATHERMAP_API_KEY = "d1c5d792362f5a5c2eacf70a3b72ecd6"; /** @@ -365,7 +367,8 @@ public class GetWeatherForecastFunction extends GenericFunction implements Runna + (_locationId == null ? ("lat=" + NumberUtils.formatNumberUk(lat, 5) + "&lon=" + NumberUtils.formatNumberUk(lon, 5)) : ("id=" + _locationId)) + "&lang=" + I18nManager.getText("openweathermap.lang") - + "&mode=xml&units=" + (inUseCelsius ? "metric" : "imperial"); + + "&mode=xml&units=" + (inUseCelsius ? "metric" : "imperial") + + "&APPID=" + OPENWEATHERMAP_API_KEY; // System.out.println(urlString); // Parse the returned XML with a special handler @@ -431,7 +434,8 @@ public class GetWeatherForecastFunction extends GenericFunction implements Runna final String forecastCount = inDaily ? "8" : "3"; final String urlString = "http://api.openweathermap.org/data/2.5/forecast" + (inDaily ? "/daily" : "") + "?id=" + _locationId + "&lang=" + I18nManager.getText("openweathermap.lang") - + "&mode=xml&units=" + (inCelsius ? "metric" : "imperial") + "&cnt=" + forecastCount; + + "&mode=xml&units=" + (inCelsius ? "metric" : "imperial") + "&cnt=" + forecastCount + + "&APPID=" + OPENWEATHERMAP_API_KEY; // System.out.println(urlString); // Parse the returned XML with a special handler diff --git a/tim/prune/gui/TerrainDefinitionPanel.java b/tim/prune/gui/TerrainDefinitionPanel.java index 690c1ae..064aa11 100644 --- a/tim/prune/gui/TerrainDefinitionPanel.java +++ b/tim/prune/gui/TerrainDefinitionPanel.java @@ -44,7 +44,7 @@ public class TerrainDefinitionPanel extends JPanel JLabel label = new JLabel(I18nManager.getText("dialog.3d.terraingridsize") + ": "); add(label); _gridSizeField = new WholeNumberField(4); - _gridSizeField.setValue(10); + _gridSizeField.setValue(50); // default grid size _gridSizeField.setMaximumSize(new Dimension(100, 50)); _gridSizeField.setEnabled(false); add(_gridSizeField); diff --git a/tim/prune/lang/prune-texts_cz.properties b/tim/prune/lang/prune-texts_cz.properties index 4d7a661..cab34c7 100644 --- a/tim/prune/lang/prune-texts_cz.properties +++ b/tim/prune/lang/prune-texts_cz.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=N\u00e1zev zdroje dialog.addmapsource.layer1url=URL prvn\u00ed vrstvy dialog.addmapsource.layer2url=Voliteln\u011b URL druh\u00e9 vrstvy dialog.addmapsource.maxzoom=Maxim\u00e1ln\u00ed zv\u011bt\u0161en\u00ed -dialog.addmapsource.cloudstyle=\u010c\u00edslo stylu dialog.addmapsource.noname=Bez n\u00e1zvu dialog.gpsies.column.name=N\u00e1zev stopy dialog.gpsies.column.length=D\u00e9lka diff --git a/tim/prune/lang/prune-texts_de.properties b/tim/prune/lang/prune-texts_de.properties index 021a5f0..19b6b02 100644 --- a/tim/prune/lang/prune-texts_de.properties +++ b/tim/prune/lang/prune-texts_de.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Name der Quelle dialog.addmapsource.layer1url=URL f\u00fcr erste Ebene dialog.addmapsource.layer2url=URL f\u00fcr obere Ebene (falls n\u00f6tig) dialog.addmapsource.maxzoom=Maximales Zoom -dialog.addmapsource.cloudstyle=Stilnummer dialog.addmapsource.noname=Unbenannt dialog.gpsies.column.name=Name des Tracks dialog.gpsies.column.length=L\u00e4nge diff --git a/tim/prune/lang/prune-texts_de_CH.properties b/tim/prune/lang/prune-texts_de_CH.properties index 0c192e8..7e9b304 100644 --- a/tim/prune/lang/prune-texts_de_CH.properties +++ b/tim/prune/lang/prune-texts_de_CH.properties @@ -353,7 +353,6 @@ dialog.addmapsource.sourcename=Sourcename dialog.addmapsource.layer1url=URL f\u00fcr erschti Ebene dialog.addmapsource.layer2url=URL f\u00fcr oberi Ebene (falls n\u00f6tig) dialog.addmapsource.maxzoom=Maximali Zoom -dialog.addmapsource.cloudstyle=Stilnummere dialog.addmapsource.noname=Unbenannt dialog.gpsies.column.name=Track Name dialog.gpsies.column.length=L\u00e4nge diff --git a/tim/prune/lang/prune-texts_en.properties b/tim/prune/lang/prune-texts_en.properties index 0e8976c..bfef0df 100644 --- a/tim/prune/lang/prune-texts_en.properties +++ b/tim/prune/lang/prune-texts_en.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Name of source dialog.addmapsource.layer1url=URL of first layer dialog.addmapsource.layer2url=Optional URL of second layer dialog.addmapsource.maxzoom=Maximum zoom level -dialog.addmapsource.cloudstyle=Style number dialog.addmapsource.noname=Unnamed dialog.gpsies.column.name=Track name dialog.gpsies.column.length=Length diff --git a/tim/prune/lang/prune-texts_es.properties b/tim/prune/lang/prune-texts_es.properties index 491134d..b752c7c 100644 --- a/tim/prune/lang/prune-texts_es.properties +++ b/tim/prune/lang/prune-texts_es.properties @@ -105,6 +105,8 @@ function.fullrangedetails=Detalles adicionales de rango function.estimatetime=Estimar duraci\u00f3n function.setmapbg=Configurar fondo de mapa function.setpaths=Configurar rutas del programas +function.splitsegments=Segmentar el track +function.sewsegments=Ensamblar los segmentos function.getgpsies=Bajar ruta de Gpsies function.uploadgpsies=Subir recorrido a Gpsies function.lookupsrtm=Obtener altitudes de SRTM @@ -193,7 +195,11 @@ dialog.gpsbabel.filter.discard.intro=Desechar puntos si dialog.gpsbabel.filter.discard.hdop=Hdop > dialog.gpsbabel.filter.discard.vdop=Vdop > dialog.gpsbabel.filter.discard.numsats=N\u00famero de sat\u00e9lites < -dialog.gpsbabel.filter.simplify.maxpoints=Numero de puntos < +dialog.gpsbabel.filter.discard.nofix=Posici\u00f3n no precisa +dialog.gpsbabel.filter.discard.unknownfix=Precisi\u00f3n desconocida +dialog.gpsbabel.filter.simplify.intro=Desechar puntos hasta +dialog.gpsbabel.filter.simplify.maxpoints=N\u00famero de puntos < +dialog.gpsbabel.filter.simplify.maxerror=o desviaci\u00f3n < dialog.gpsbabel.filter.distance.distance=Si distancia < dialog.gpsbabel.filter.distance.time=y differencia horaria < dialog.gpsbabel.filter.interpolate.distance=Si distancia > @@ -226,6 +232,9 @@ dialog.exportgpx.encoding=Codificaci\u00f3n dialog.exportgpx.encoding.system=Sistema dialog.exportgpx.encoding.utf8=UTF-8 dialog.3d.useterrain=Terreno +dialog.3d.terraingridsize=Dimensi\u00f3n de la cuadr\u00edcula +dialog.exportpov.cannotmakebaseimage=Fallo al guardar la imagen +dialog.exportpov.baseimage=Imagen de mapa dialog.exportpov.text=Introduca los par\u00e1metros para exportar dialog.exportpov.font=Fuente dialog.exportpov.camerax=C\u00e1mara X @@ -234,7 +243,7 @@ dialog.exportpov.cameraz=C\u00e1mara Z dialog.exportpov.modelstyle=Estilo dialog.exportpov.ballsandsticks=Balas en palos dialog.exportpov.tubesandwalls=Tubos y paredes -dialog.3d.warningtracksize=Este track contiene un gran numero de puntos. Puede ser que Java3D no los pueda visualizar. Est\u00e1 seguro de que desea continuar? +dialog.3d.warningtracksize=Este track contiene un gran n\u00famero de puntos. Puede ser que Java3D no los pueda visualizar. Est\u00e1 seguro de que desea continuar? dialog.baseimage.title=Imagen de mapa dialog.baseimage.mapsource=Proveedor de mapas dialog.baseimage.useimage=Usar imagen @@ -248,6 +257,7 @@ dialog.exportsvg.theta=\u00c1ngulo de elevaci\u00f3n dialog.exportsvg.gradients=Usar degradado para sombras dialog.exportimage.drawtrack=Dibujar track dialog.exportimage.drawtrackpoints=Dibujar puntos del track +dialog.exportimage.textscalepercent=Agrandamiento del texto (%) dialog.pointtype.desc=Salvar los siguientes tipos de puntos: dialog.pointtype.track=Puntos del track dialog.pointtype.waypoint=Waypoints @@ -257,14 +267,15 @@ dialog.pointtype.selection=Solo selecci\u00f3n dialog.confirmreversetrack.title=Confirmar inversi\u00f3n dialog.confirmreversetrack.text=Este track contiene informaci\u00f3n sobre la fecha, que estar\u00e1 fuera de secuencia despu\u00e9s de la inversi\u00f3n. \u00bfEst\u00e1 seguro que desea invertir esta secci\u00f3n? dialog.confirmcutandmove.title=Confirmar accion cortar/pegar -dialog.confirmcutandmove.text=Este track contiene informaci\u00f3n sobre la fecha, que estar\u00e1 fuera de secuencia despu\u00e9s de mover.\n\u00bfEsta seguro que desea mover esta secci\u00f3n? +dialog.confirmcutandmove.text=Este track contiene informaci\u00f3n sobre la fecha, que estar\u00e1 fuera de secuencia despu\u00e9s de mover.\n\u00bfEst\u00e1 seguro que desea mover esta secci\u00f3n? dialog.interpolate.parameter.text=N\u00famero de los puntos a insertar entre los puntos elegidos +dialog.interpolate.betweenwaypoints=Interpolar entre los waypoints? dialog.undo.title=Deshacer dialog.undo.pretext=Por favor, seleccione la operaci\u00f3n(es) a deshacer dialog.undo.none.title=No se puede deshacer dialog.undo.none.text=Ninguna operaci\u00f3n a deshacer dialog.clearundo.title=Despejar la lista de deshacer -dialog.clearundo.text=\u00bfEsta seguro que desea despejar la lista de deshacer?, \u00a1se perder\u00e1 toda la informaci\u00f3n! +dialog.clearundo.text=\u00bfEst\u00e1 seguro que desea despejar la lista de deshacer?, \u00a1se perder\u00e1 toda la informaci\u00f3n! dialog.pointedit.title=Editar punto dialog.pointedit.intro=Seleccione cada campo para modificar el valor dialog.pointedit.table.field=Campo @@ -310,19 +321,27 @@ dialog.distances.currentpoint=Punto actual dialog.distances.toofewpoints=Esta funcion necesita "waypoints" para poder calcular las distancias entre ellos dialog.fullrangedetails.intro=Aqui estan los detalles para la selecci\u00f3n de rangos dialog.estimatetime.details=Detalles +dialog.estimatetime.gentle=Inclinaci\u00f3n peque\u00f1a +dialog.estimatetime.steep=Inclinaci\u00f3n grande dialog.estimatetime.climb=Ascenso dialog.estimatetime.descent=Descenso dialog.estimatetime.parameters=Par\u00e1metros +dialog.estimatetime.parameters.timefor=Duraci\u00f3n para dialog.estimatetime.results=Resultados dialog.estimatetime.results.estimatedtime=Duraci\u00f3n estimada dialog.estimatetime.results.actualtime=Duraci\u00f3n real +dialog.learnestimationparams.combinedresults=Resultados combinados +dialog.learnestimationparams.weight.100pccurrent=Mantener datos actuales +dialog.learnestimationparams.weight.current=actuales +dialog.learnestimationparams.weight.calculated=calculados +dialog.learnestimationparams.weight.50pc=La media entre actuales y calculados +dialog.learnestimationparams.weight.100pccalculated=Nuevos datos calculados dialog.setmapbg.intro=Seleccione un proveedor de mapas o a\u00f1ada uno nuevo dialog.addmapsource.title=A\u00f1adir un proveedor de mapas dialog.addmapsource.sourcename=Nombre del proveedor dialog.addmapsource.layer1url=URL de la primera capa dialog.addmapsource.layer2url=URL opcional de la segunda capa dialog.addmapsource.maxzoom=M\u00e1ximo nivel de zoom -dialog.addmapsource.cloudstyle=N\u00famero del estilo dialog.addmapsource.noname=Innominada dialog.gpsies.column.name=Nombre del track dialog.gpsies.column.length=Distancia @@ -432,7 +451,7 @@ dialog.about.credits.devtools=Herramientas de desarrollo dialog.about.credits.othertools=Otras herramientas dialog.about.credits.thanks=Gracias a dialog.about.readme=Readme -dialog.checkversion.error=El numero de versi\u00f3n no pudo ser verificada.\n Por favor verificar la conexi\u00f3n de Internet +dialog.checkversion.error=El n\u00famero de versi\u00f3n no pudo ser verificada.\n Por favor verificar la conexi\u00f3n de Internet dialog.checkversion.uptodate=Esta usted utilizando la \u00faltima versi\u00f3n de GpsPrune dialog.checkversion.newversion1=\u00a1Una nueva versi\u00f3n de GpsPrune est\u00e1 disponible! La \u00faltima es ahora la versi\u00f3n dialog.checkversion.newversion2=. @@ -506,6 +525,14 @@ dialog.deletefieldvalues.nofields=No hay campos a eliminar para el rango actual dialog.setlinewidth.text=Introduzca la anchura de las l\u00edneas a dibujar para los recorridos (1-4) dialog.downloadosm.desc=Confirmar la descarga de datos en bruto de OSM para el \u00e1rea especificada. dialog.searchwikipedianames.search=Buscar: +dialog.weather.location=Localidad +dialog.weather.update=Actualizado +dialog.weather.sunrise=Salida del sol +dialog.weather.sunset=Puesta de sol +dialog.weather.temperatureunits=Temperaturas +dialog.weather.currentforecast=El tiempo actual +dialog.weather.dailyforecast=Pron\u00f3stico diariamente +dialog.weather.3hourlyforecast=Pron\u00f3stico hora a hora dialog.weather.day.now=Tiempo actual dialog.weather.day.today=Hoy dialog.weather.day.tomorrow=Ma\u00f1ana @@ -555,6 +582,8 @@ confirm.createpoint=punto creado confirm.rotatephoto=foto rotada confirm.running=Trabajando ... confirm.lookupsrtm=Encontrados %d valor de altitud para la funci\u00f3n de b\u00fasqueda SRTM +confirm.downloadsrtm=Descargado %d archivos +confirm.downloadsrtm.1=Descargado %d archivo confirm.deletefieldvalues=Valores del campo eliminados confirm.audioload=A\u00f1adidos archivos de audio confirm.correlateaudios.single=El audio fue correlacionado @@ -579,6 +608,7 @@ button.close=Cerrar button.continue=Contin\u00fae button.yes=Si button.no=No +button.always=Si, siempre button.yestoall=Si por todo button.notoall=No por todo button.select=Seleccionar @@ -737,6 +767,8 @@ undo.deletemarked=eliminar puntos undo.insert=insertar puntos undo.reverse=invertir rango undo.mergetracksegments=unir los segmentos del track +undo.splitsegments=segmentar el track +undo.sewsegments=ensamblar los segmentos del track undo.addtimeoffset=a\u00f1adir margen de tiempo undo.addaltitudeoffset=a\u00f1adir margen de altitud undo.rearrangewaypoints=reordenar waypoints @@ -790,7 +822,12 @@ error.lookupsrtm.nonefound=No se encontraron valores de altitud error.lookupsrtm.nonerequired=Todos los puntos tienen altitudes, as\u00ed que no hay nada que buscar. error.gpsies.uploadnotok=El servidor de gpsies ha devuelto el mensaje error.gpsies.uploadfailed=La carga ha fallado con el error +error.showphoto.failed=Fallo al cargar la foto error.playaudiofailed=Fallo reproduciendo archivo de audio error.cache.notthere=No se encontr\u00f3 la carpeta del cache de recuadros error.cache.empty=La carpeta del cache de recuadros esta vac\u00edo error.cache.cannotdelete=No se pudieron borrar recuadros +error.interpolate.invalidparameter=El n\u00famero de puntos necesita ser entre 1 y 1000 +error.tracksplit.nosplit=Imposible segmentar el track +error.downloadsrtm.nocache=Imposible guardar los archivos.\nPor favor, compruebe el cache. +error.sewsegments.nothingdone=Imposible ensamblar los segmentos.\nEl track tiene ahora %d segmentos. diff --git a/tim/prune/lang/prune-texts_fr.properties b/tim/prune/lang/prune-texts_fr.properties index 477b832..d271c27 100644 --- a/tim/prune/lang/prune-texts_fr.properties +++ b/tim/prune/lang/prune-texts_fr.properties @@ -195,6 +195,12 @@ dialog.gpsbabel.filter.interpolate=Interpoler dialog.gpsbabel.filter.discard.intro=Jeter les points si dialog.gpsbabel.filter.discard.hdop=Hdop > dialog.gpsbabel.filter.discard.vdop=Vdop > +dialog.gpsbabel.filter.discard.numsats=Nombre de satellites < +dialog.gpsbabel.filter.discard.nofix=Point n'a pas fix +dialog.gpsbabel.filter.discard.unknownfix=Point a une fix inconnue +dialog.gpsbabel.filter.simplify.intro=Effacer les points jusque +dialog.gpsbabel.filter.simplify.maxpoints=Nombre de points < +dialog.gpsbabel.filter.simplify.maxerror=ou erreur < dialog.gpsbabel.filter.distance=Distance dialog.gpsbabel.filter.distance.distance=Si la distance < dialog.gpsbabel.filter.distance.time=et difference de temps < @@ -236,6 +242,9 @@ dialog.exportpov.modelstyle=Style du mod\u00e8le dialog.exportpov.ballsandsticks=Points et b\u00e2tons dialog.exportpov.tubesandwalls=Tubes et murs dialog.3d.warningtracksize=Cette trace poss\u00e8de un grand nombre de points, Java3D peut ne pas pouvoir l'afficher.\n\u00cates-vous s\u00fbr de vouloir continuer ? +dialog.3d.useterrain=Montrer terrain +dialog.3d.terraingridsize=Taille de la grille +dialog.exportpov.baseimage=Image de la carte dialog.baseimage.title=Image de la carte dialog.baseimage.useimage=Utiliser image dialog.baseimage.mapsource=Source de cartes @@ -247,6 +256,8 @@ dialog.exportsvg.text=S\u00e9lectionner les param\u00e8tres de l'export SVG dialog.exportsvg.phi=Angle d'azimuth \u03d5 dialog.exportsvg.theta=Angle d'\u00e9l\u00e9vation \u03b8 dialog.exportsvg.gradients=Utiliser des d\u00e9grad\u00e9s pour l'ombrage +dialog.exportimage.drawtrack=Dessiner la trace sur la carte +dialog.exportimage.drawtrackpoints=Dessiner les points de trace dialog.pointtype.desc=Sauvegarder ces types de points: dialog.pointtype.track=Points de la trace dialog.pointtype.waypoint=Waypoints @@ -311,15 +322,23 @@ dialog.distances.toofewpoints=Cette fonction a besoin de waypoints pour calculer dialog.fullrangedetails.intro=Voici les d\u00e9tails pour l\u2019\u00e9tendue s\u00e9lectionn\u00e9e dialog.fullrangedetails.coltotal=Inclure les cellules vides dialog.fullrangedetails.colsegments=Exclure les cellules vides +dialog.estimatetime.details=D\u00e9tails +dialog.estimatetime.steep=Escarp\u00e9 dialog.estimatetime.climb=Mont\u00e9e dialog.estimatetime.descent=Descente +dialog.estimatetime.parameters=Param\u00e8tres +dialog.estimatetime.parameters.timefor=Dur\u00e9e pour +dialog.estimatetime.results=R\u00e9sultats +dialog.estimatetime.results.estimatedtime=Dur\u00e9e estim\u00e9e +dialog.estimatetime.results.actualtime=Dur\u00e9e en fait +dialog.learnestimationparams.averageerror=Erreur en moyenne +dialog.learnestimationparams.combinedresults=R\u00e9sultats combin\u00e9es dialog.setmapbg.intro=S\u00e9lectionnez une source de cartes, ou ajoutez-en une nouvelle dialog.addmapsource.title=Ajouter une nouvelle source de cartes dialog.addmapsource.sourcename=Nom de la source dialog.addmapsource.layer1url=URL de la premi\u00e8re couche dialog.addmapsource.layer2url=URL optionnelle de la deuxi\u00e8me couche dialog.addmapsource.maxzoom=Niveau de zoom maximum -dialog.addmapsource.cloudstyle=Num\u00e9ro du style dialog.addmapsource.noname=Sans titre dialog.gpsies.column.name=Nom de la trace dialog.gpsies.column.length=Distance @@ -718,6 +737,10 @@ units.degminsec=Deg-min-sec units.degmin=Deg-min units.deg=Degr\u00e9s 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=et diff --git a/tim/prune/lang/prune-texts_hu.properties b/tim/prune/lang/prune-texts_hu.properties index 58359f8..a1bf2ec 100644 --- a/tim/prune/lang/prune-texts_hu.properties +++ b/tim/prune/lang/prune-texts_hu.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Forr\u00e1s neve dialog.addmapsource.layer1url=Els\u0151 r\u00e9teg URL-je dialog.addmapsource.layer2url=Opcion\u00e1lis m\u00e1sodik r\u00e9teg URL-je dialog.addmapsource.maxzoom=Maxim\u00e1lis nagy\u00edt\u00e1si szint -dialog.addmapsource.cloudstyle=St\u00edlus sz\u00e1ma dialog.addmapsource.noname=N\u00e9vtelen dialog.gpsies.column.name=Nyomvonal neve dialog.gpsies.column.length=Hossz diff --git a/tim/prune/lang/prune-texts_it.properties b/tim/prune/lang/prune-texts_it.properties index 121e04d..14df816 100644 --- a/tim/prune/lang/prune-texts_it.properties +++ b/tim/prune/lang/prune-texts_it.properties @@ -108,7 +108,7 @@ function.setmapbg=Configura sfondo mappa function.setpaths=Configura percorsi programmi function.splitsegments=Dividi traccia in segmenti function.sewsegments=Riorganizza segmenti insieme -function.getgpsies=Ottieni traccie da Gpsies +function.getgpsies=Ottieni tracce da Gpsies function.uploadgpsies=Carica traccia su Gpsies function.lookupsrtm=Ottieni quote da SRTM function.downloadsrtm=Scarica file da SRTM @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Nome della fonte dialog.addmapsource.layer1url=URL del primo layer dialog.addmapsource.layer2url=URL opzionale del secondo layer dialog.addmapsource.maxzoom=Massimo livello di zoom -dialog.addmapsource.cloudstyle=Stile numero dialog.addmapsource.noname=Senza nome dialog.gpsies.column.name=Nome traccia dialog.gpsies.column.length=Lunghezza @@ -480,7 +479,7 @@ dialog.keys.keylist=<table><tr><td>Tasti freccia</td><td>Muovi mappa destra, sin dialog.keys.normalmodifier=Ctrl dialog.keys.macmodifier=Comando dialog.saveconfig.desc=Le configurazioni seguenti possono essere salvati in un file di configurazione: -dialog.saveconfig.prune.trackdirectory=Cartella traccie +dialog.saveconfig.prune.trackdirectory=Cartella tracce dialog.saveconfig.prune.photodirectory=Cartella foto dialog.saveconfig.prune.languagecode=Codice lingua (IT) dialog.saveconfig.prune.languagefile=File lingua @@ -613,6 +612,10 @@ confirm.correlateaudios.multi=le riprese audio erano correlate # Tips tip.title=Consiglio +tip.useamapcache=Usando una cache della mappa (Preferenze -> Salva mappe su disco)\npuoi accelerare la visualizzazione e ridurre il traffico. +tip.learntimeparams=I risultati saranno pi\u00f9 precisi usando\nTraccia -> Apprendi parametri di stima\ncon le tue tracce. +tip.downloadsrtm=Puoi accelerare questa funzione usando\nOnline -> Scarica file da SRTM\nper salvare i dati nella cache. +tip.usesrtmfor3d=La traccia non include informazioni sull'altitudine.\nPuoi utilizzare la funzione SRTM per ottenere le altitudini\nper la visione 3D. tip.manuallycorrelateone=Con il collegamento manuale di almeno una foto, lo scarto di orario viene calcolato per te # Buttons diff --git a/tim/prune/lang/prune-texts_ja.properties b/tim/prune/lang/prune-texts_ja.properties index ad25d69..e581c18 100644 --- a/tim/prune/lang/prune-texts_ja.properties +++ b/tim/prune/lang/prune-texts_ja.properties @@ -269,7 +269,6 @@ dialog.fullrangedetails.intro=\u9078\u629e\u7bc4\u56f2\u306b\u306f\u8a73\u7d30\u dialog.addmapsource.title=\u65b0\u3057\u3044\u30de\u30c3\u30d7\u30fb\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0 dialog.addmapsource.sourcename=\u30bd\u30fc\u30b9\u306e\u540d\u524d dialog.addmapsource.maxzoom=\u6700\u5927\u30ba\u30fc\u30e0\u30ec\u30d9\u30eb -dialog.addmapsource.cloudstyle=\u30b9\u30bf\u30a4\u30eb\u756a\u53f7 dialog.addmapsource.noname=\u540d\u524d\u306a\u3057 dialog.gpsies.column.name=\u30c8\u30e9\u30c3\u30af\u540d dialog.gpsies.column.length=\u9577\u3055 diff --git a/tim/prune/lang/prune-texts_ko.properties b/tim/prune/lang/prune-texts_ko.properties index ec5de7d..b14b0a5 100644 --- a/tim/prune/lang/prune-texts_ko.properties +++ b/tim/prune/lang/prune-texts_ko.properties @@ -266,7 +266,6 @@ dialog.addmapsource.sourcename=\uc18c\uc2a4 \uc774\ub984 dialog.addmapsource.layer1url=\uccab \ub808\uc774\uc5b4\uc758 URL dialog.addmapsource.layer2url=\ub450\ubc88\uc9f8 \ub808\uc774\uc5b4\uc758 URL dialog.addmapsource.maxzoom=\ucd5c\uace0 \ud655\ub300 -dialog.addmapsource.cloudstyle=\uc2a4\ud0c0\uc77c \uc218 dialog.addmapsource.noname=\uc774\ub984 \uc5c6\uc74c dialog.gpsies.column.name=\ud2b8\ub809 \uc774\ub984 dialog.gpsies.column.length=\uae38\uc774 diff --git a/tim/prune/lang/prune-texts_nl.properties b/tim/prune/lang/prune-texts_nl.properties index ac4b797..a077bc9 100644 --- a/tim/prune/lang/prune-texts_nl.properties +++ b/tim/prune/lang/prune-texts_nl.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Naam van de bron dialog.addmapsource.layer1url=URL van de eerste laag dialog.addmapsource.layer2url=URL van de tweede laag (optioneel) dialog.addmapsource.maxzoom=Maximaal zoom-niveau -dialog.addmapsource.cloudstyle=Stijl nummer dialog.addmapsource.noname=Onbenoemd dialog.gpsies.column.name=Routenaam dialog.gpsies.column.length=Lengte diff --git a/tim/prune/lang/prune-texts_pl.properties b/tim/prune/lang/prune-texts_pl.properties index 212eb69..80a67c1 100644 --- a/tim/prune/lang/prune-texts_pl.properties +++ b/tim/prune/lang/prune-texts_pl.properties @@ -352,7 +352,6 @@ dialog.addmapsource.sourcename=Nazwa dostawcy dialog.addmapsource.layer1url=URL pierwszej warstwy dialog.addmapsource.layer2url=Opcjonalny URL drugiej warstwy dialog.addmapsource.maxzoom=Maksymalny poziom zbli\u017cenia -dialog.addmapsource.cloudstyle=Numer stylu dialog.addmapsource.noname=Nienazwane dialog.gpsies.column.name=Nazwa \u015bcie\u017cki dialog.gpsies.column.length=D\u0142ugo\u015b\u0107 diff --git a/tim/prune/lang/prune-texts_pt.properties b/tim/prune/lang/prune-texts_pt.properties index 50c6844..85870ad 100644 --- a/tim/prune/lang/prune-texts_pt.properties +++ b/tim/prune/lang/prune-texts_pt.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=Nome da fonte dialog.addmapsource.layer1url=URL da primeira camada dialog.addmapsource.layer2url=URL opcional da segunda camada dialog.addmapsource.maxzoom=N\u00edvel de amplia\u00e7\u00e3o m\u00e1ximo -dialog.addmapsource.cloudstyle=N\u00famero do estilo dialog.addmapsource.noname=Sem nome dialog.gpsies.column.name=Nome da rota dialog.gpsies.column.length=Extens\u00e3o diff --git a/tim/prune/lang/prune-texts_ru.properties b/tim/prune/lang/prune-texts_ru.properties index a851289..3481dba 100644 --- a/tim/prune/lang/prune-texts_ru.properties +++ b/tim/prune/lang/prune-texts_ru.properties @@ -102,12 +102,16 @@ function.charts=\u0413\u0440\u0430\u0444\u0438\u043a\u0438 function.show3d=3D-\u0432\u0438\u0434 function.distances=\u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f function.fullrangedetails=\u0414\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0443 +function.estimatetime=\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f +function.learnestimationparams=\u0417\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u043d\u043e\u0437\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 function.setmapbg=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0443-\u043f\u043e\u0434\u043b\u043e\u0436\u043a\u0443 function.setpaths=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0443\u0442\u0438 \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c +function.splitsegments=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0435\u043a \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b +function.sewsegments=\u0421\u043a\u043b\u0435\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0442\u0440\u0435\u043a\u0430 \u0432\u043e\u0435\u0434\u0438\u043d\u043e function.getgpsies=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0440\u0435\u043a\u0438 function.uploadgpsies=\u0412\u044b\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0440\u0435\u043a \u043d\u0430 gpsies.com function.lookupsrtm=\u0412\u044b\u0441\u043e\u0442\u044b \u0432 SRTM -function.downloadsrtm=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c SRTM \u0434\u0430\u043d\u043d\u044b\u0435 +function.downloadsrtm=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c STRM function.getwikipedia=\u0421\u0442\u0430\u0442\u044c\u044f \u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432 \u0412\u0438\u043a\u0438 function.searchwikipedianames=\u041f\u043e\u0438\u0441\u043a \u0441\u0442\u0430\u0442\u0435\u0439 \u0432 \u0412\u0438\u043a\u0438 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 function.downloadosm=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c OSM \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044e @@ -136,7 +140,7 @@ function.checkversion=\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0 function.saveconfig=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 function.diskcache=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u0440\u0442\u044b \u043d\u0430 \u0434\u0438\u0441\u043a function.managetilecache=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0435\u0448\u0435\u043c -function.getweatherforecast=\u043f\u0440\u043e\u0433\u043d\u043e\u0301\u0437 \u043f\u043e\u0433\u043e\u0301\u0434\u044b +function.getweatherforecast=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u043d\u043e\u0437 \u043f\u043e\u0433\u043e\u0434\u044b # Dialogs dialog.exit.confirm.title=\u0412\u044b\u0445\u043e\u0434 @@ -162,7 +166,9 @@ dialog.delimiter.other=\u0414\u0440\u0443\u0433\u043e\u0435 dialog.openoptions.deliminfo.records=\u0437\u0430\u043f\u0438\u0441\u044c, \u0441 dialog.openoptions.deliminfo.fields=\u043f\u043e\u043b\u0435 dialog.openoptions.deliminfo.norecords=\u041d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 -dialog.openoptions.altitudeunits=\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0432\u044b\u0441\u043e\u0442 +dialog.openoptions.altitudeunits=\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0432\u044b\u0441\u043e\u0442\u044b +dialog.openoptions.speedunits=\u0415\u0434\u0438\u043d\u0438\u0446\u044b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 +dialog.openoptions.vertspeedunits=\u0415\u0434\u0438\u043d\u0438\u0446\u044b dialog.open.contentsdoubled=\u042d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0442\u043e\u0447\u043a\u0435,\n\u043e\u0434\u043d\u0430 \u043a\u0430\u043a \u043f\u0443\u0442\u0435\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0438 \u043e\u0434\u043d\u0430 \u043a\u0430\u043a \u0442\u043e\u0447\u043a\u0430 \u0442\u0440\u0 [...] dialog.selecttracks.intro=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0440\u0435\u043a(-\u0438) \u0434\u043b\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f dialog.selecttracks.noname=\u0411\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439 @@ -182,6 +188,8 @@ dialog.gpssend.sendtracks=\u041f\u043e\u0441\u043b\u0430\u0442\u044c \u0442\u044 dialog.gpssend.trackname=\u0418\u043c\u044f \u0442\u0440\u0435\u043a\u0430 dialog.gpsbabel.filters=\u0424\u0438\u043b\u044c\u0442\u0440\u044b dialog.addfilter.title=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 +dialog.gpsbabel.filter.distance=\u0420\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u0435 +dialog.gpsbabel.filter.interpolate=\u0418\u043d\u0442\u0435\u0440\u043f\u043e\u043b\u044f\u0446\u0438\u044f dialog.gpsbabel.filter.discard.numsats=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u043e\u0432 < dialog.saveoptions.title=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b dialog.save.fieldstosave=\u041f\u043e\u043b\u044f \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 @@ -217,15 +225,25 @@ dialog.exportpov.modelstyle=\u0421\u0442\u0438\u043b\u044c \u043c\u043e\u0434\u0 dialog.exportpov.ballsandsticks=\u041c\u044f\u0447\u0438 \u0438 \u043f\u0430\u043b\u043e\u0447\u043a\u0438 dialog.exportpov.tubesandwalls=\u0422\u0440\u0443\u0431\u044b \u0438 \u0441\u0442\u0435\u043d\u044b dialog.3d.warningtracksize=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0432 \u0442\u0440\u0435\u043a\u0435 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u0447\u0435\u043a - Java3D \u043c\u043e\u0436\u0435\u0442 \u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c!\n\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\ [...] +dialog.3d.useterrain=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u043b\u044c\u0435\u0444 dialog.3d.terraingridsize=\u0420\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u0442\u043a\u0438 -dialog.baseimage.mapsource=\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 -dialog.baseimage.zoom=\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442 +dialog.exportpov.baseimage=\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043e\u0441\u043d\u043e\u0432\u044b(\u043f\u043e\u0434\u043b\u043e\u0436\u043a\u0438) +dialog.exportpov.cannotmakebaseimage=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u043e\u0441\u043d\u043e\u0432\u044b +dialog.baseimage.title=\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u044b +dialog.baseimage.useimage=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 +dialog.baseimage.mapsource=\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a +dialog.baseimage.zoom=\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c +dialog.baseimage.incomplete=\u041d\u0435 \u0432\u0441\u0435 \u0442\u0430\u0439\u043b\u044b \u0431\u044b\u043b\u0438 \u043d\u0430\u0439\u0434\u0435\u043d\u044b dialog.baseimage.tiles=\u0422\u0430\u0439\u043b\u044b dialog.baseimage.size=\u0420\u0430\u0437\u043c\u0435\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f dialog.exportsvg.text=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 SVG dialog.exportsvg.phi=\u0410\u0437\u0438\u043c\u0443\u0442 \u03d5 dialog.exportsvg.theta=\u0423\u0433\u043e\u043b \u03b8 dialog.exportsvg.gradients=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0434\u0438\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0437\u0430\u0442\u0435\u043d\u0435\u043d\u0438\u044f +dialog.exportimage.noimagepossible=\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043a\u0430\u0440\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u043d\u0430 \u0434\u0438\u0441\u043a \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 +dialog.exportimage.drawtrack=\u0420\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 +dialog.exportimage.drawtrackpoints=\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u0442\u0440\u0435\u043a\u0430 +dialog.exportimage.textscalepercent=\u041c\u0430\u0441\u0448\u0442\u0430\u0431 \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 % dialog.pointtype.desc=\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u044b \u0442\u043e\u0447\u0435\u043a: dialog.pointtype.track=\u0422\u043e\u0447\u043a\u0438 \u0442\u0440\u0435\u043a\u043e\u0432 dialog.pointtype.waypoint=\u041f\u0443\u0442\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 @@ -245,9 +263,9 @@ dialog.undo.none.text=\u041d\u0435\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0 dialog.clearundo.title=\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u043e\u0442\u043c\u0435\u043d\u044b dialog.clearundo.text=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u043e\u0442\u043c\u0435\u043d\u044b?\n\u0421\u043f\u0438\u0441\u043e\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0438\u0449\u0435\ [...] dialog.pointedit.title=\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0443 -dialog.pointedit.intro=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f +dialog.pointedit.intro=\u0412\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043e\u043b\u0435 \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 dialog.pointedit.table.field=\u041f\u043e\u043b\u0435 -dialog.pointedit.nofield=\u041f\u043e\u043b\u0435 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 +dialog.pointedit.nofield=\u041f\u043e\u043b\u0435 \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043d\u043e dialog.pointedit.table.value=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 dialog.pointnameedit.name=\u0418\u043c\u044f \u043f\u0443\u0442\u0435\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 dialog.pointnameedit.uppercase=\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 @@ -291,17 +309,27 @@ dialog.fullrangedetails.intro=\u0414\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u dialog.fullrangedetails.coltotal=\u0412\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 dialog.fullrangedetails.colsegments=\u0411\u0435\u0437 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u043e\u0432 dialog.estimatetime.details=\u0414\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f +dialog.estimatetime.gentle=\u041f\u043b\u0430\u0432\u043d\u043e +dialog.estimatetime.steep=\u0420\u0435\u0437\u043a\u043e dialog.estimatetime.climb=\u041f\u043e\u0434\u044a\u0435\u043c dialog.estimatetime.descent=\u0421\u043f\u0443\u0441\u043a dialog.estimatetime.parameters=\u041f\u0430\u0440\u0430\u0301\u043c\u0435\u0442\u0440\u044b dialog.estimatetime.parameters.timefor=\u0412\u0440\u0435\u043c\u044f \u0434\u043b\u044f +dialog.estimatetime.results=\u0412\u043e\u0442: +dialog.estimatetime.results.estimatedtime=\u041f\u0440\u043e\u0433\u043d\u043e\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f +dialog.estimatetime.results.actualtime=\u0420\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f +dialog.estimatetime.error.noaltitudes=\u0412\u044b\u0431\u043e\u0440\u043a\u0430 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0432\u044b\u0441\u043e\u0442\u0435 +dialog.learnestimationparams.averageerror=\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 (%) +dialog.learnestimationparams.weight.current=\u0442\u0435\u043a\u0443\u0449\u0435\u0435 +dialog.learnestimationparams.weight.calculated=\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0435 +dialog.learnestimationparams.weight.50pc=\u0421\u0440\u0435\u0434\u043d\u0435\u0435 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0438 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e +dialog.learnestimationparams.weight.100pccalculated=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 dialog.setmapbg.intro=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0444\u043e\u043d\u0430 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 dialog.addmapsource.title=\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0444\u043e\u043d\u0430 dialog.addmapsource.sourcename=\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 dialog.addmapsource.layer1url=URL \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u044f dialog.addmapsource.layer2url=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 URL \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u043b\u043e\u044f dialog.addmapsource.maxzoom=\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f -dialog.addmapsource.cloudstyle=\u041d\u043e\u043c\u0435\u0440 \u0441\u0442\u0438\u043b\u044f dialog.addmapsource.noname=\u0411\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439 dialog.gpsies.column.name=\u0418\u043c\u044f \u0442\u0440\u0435\u043a\u0430 dialog.gpsies.column.length=\u0414\u043b\u0438\u043d\u0430 @@ -486,8 +514,14 @@ dialog.deletefieldvalues.nofields=\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u0 dialog.setlinewidth.text=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0442\u043e\u043b\u0449\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439 \u0434\u043b\u044f \u0442\u0440\u0435\u043a\u043e\u0432 (1-4) dialog.downloadosm.desc=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 OSM \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438: dialog.searchwikipedianames.search=\u041f\u043e\u0438\u0441\u043a \u0434\u043b\u044f: -dialog.weather.location=\u043c\u0435\u0301\u0441\u0442\u043e -dialog.weather.temperatureunits=\u0442\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0301\u0440\u0430 +dialog.weather.location=\u041c\u0435\u0441\u0442\u043e +dialog.weather.update=\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d +dialog.weather.sunrise=\u0412\u043e\u0441\u0445\u043e\u0434 +dialog.weather.sunset=\u0417\u0430\u043a\u0430\u0442 +dialog.weather.temperatureunits=\u0422\u0435\u043c\u043f\u0435\u0440\u0430\u0442\u0443\u0440\u044b +dialog.weather.currentforecast=\u041f\u043e\u0433\u043e\u0434\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 +dialog.weather.dailyforecast=\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 \u0434\u0435\u043d\u044c +dialog.weather.3hourlyforecast=\u041f\u0440\u043e\u0433\u043d\u043e\u0437 \u043d\u0430 3 \u0447\u0430\u0441\u0430 dialog.weather.day.now=\u0422\u0435\u043a\u0443\u0449\u0430\u044f \u043f\u043e\u0433\u043e\u0434\u0430 dialog.weather.day.today=\u0421\u0435\u0433\u043e\u0434\u043d\u044f dialog.weather.day.tomorrow=\u0417\u0430\u0432\u0442\u0440\u0430 @@ -498,9 +532,10 @@ dialog.weather.day.thursday=\u0427\u0435\u0442\u0432\u0435\u0440\u0433 dialog.weather.day.friday=\u041f\u044f\u0442\u043d\u0438\u0446\u0430 dialog.weather.day.saturday=\u0421\u0443\u0431\u0431\u043e\u0442\u0430 dialog.weather.day.sunday=\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435 -dialog.weather.wind=\u0432\u0435\u0301\u0442\u0435\u0440 -dialog.weather.temp=\u0442\u0435\u043c\u043f -dialog.weather.humidity=\u0432\u043b\u0430\u0301\u0433\u0430 +dialog.weather.wind=\u0412\u0435\u0442\u0435\u0440 +dialog.weather.temp=\u0422\u00b0 +dialog.weather.humidity=\u0412\u043b\u0430\u0436\u043d\u043e\u0441\u0442\u044c +dialog.weather.creditnotice=\u0414\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 \u043E\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044C \u043F\u043E openweathermap.org. # 3d window dialog.3d.title=GpsPrune 3D-\u0432\u0438\u0434 @@ -519,6 +554,8 @@ confirm.addtimeoffset=\u041e\u0442\u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0 confirm.addaltitudeoffset=\u041e\u0442\u043c\u0435\u0442\u043a\u0430 \u0432\u044b\u0441\u043e\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 confirm.rearrangewaypoints=\u041f\u0443\u0442\u0435\u0432\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043d\u0430 confirm.rearrangephotos=\u0424\u043e\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043d\u043e +confirm.splitsegments=\u0421\u0434\u0435\u043b\u0430\u043d\u043e %d \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b +confirm.sewsegments=\u0421\u0434\u0435\u043b\u0430\u043d\u043e %d \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 confirm.cutandmove=\u041e\u0442\u043e\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u043e confirm.interpolate=\u0422\u043e\u0447\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b confirm.convertnamestotimes=\u0418\u043c\u044f \u043f\u0443\u0442\u0435\u0432\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e @@ -537,8 +574,9 @@ confirm.createpoint=\u0442\u043e\u0447\u043a\u0430 \u0441\u043e\u0437\u0434\u043 confirm.rotatephoto=\u0444\u043e\u0442\u043e \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u043e confirm.running=\u0420\u0430\u0431\u043e\u0442\u0430\u044e... confirm.lookupsrtm=\u041d\u0430\u0439\u0434\u0435\u043d\u043e %d \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0441\u043e\u0442\u044b -confirm.downloadsrtm=\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e %d \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u0435\u0448 -confirm.downloadsrtm.1=\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e %d \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u0435\u0448 +confirm.downloadsrtm=\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e %d \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u044d\u0448 +confirm.downloadsrtm.1=\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e %d \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u044d\u0448 +confirm.downloadsrtm.none=\u0412\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0443\u0436\u0435 \u0432 \u043a\u044d\u0448\u0435 confirm.deletefieldvalues=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u044b confirm.audioload=\u0424\u0430\u0439\u043b\u044b \u0437\u0432\u0443\u043a\u043e\u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b confirm.correlateaudios.single=\u0417\u0432\u0443\u043a\u043e\u0437\u0430\u043f\u0438\u0441\u044c \u0431\u044b\u043b\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 @@ -565,6 +603,7 @@ button.yes=\u0414\u0430 button.no=\u041d\u0435\u0442 button.yestoall=\u0414\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 button.notoall=\u041d\u0435\u0442 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 +button.always=\u0412\u0441\u0435\u0433\u0434\u0430 button.select=\u0412\u044b\u0431\u0440\u0430\u0442\u044c button.selectall=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 button.selectnone=\u041e\u0442\u043c\u0435\u043d\u0442\u0438\u0442\u044c \u0432\u044b\u0431\u043e\u0440\u043a\u0443 @@ -579,6 +618,7 @@ button.browse=\u041e\u0431\u0437\u043e\u0440... button.addnew=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 button.delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c button.manage=\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c +button.combine=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c # File types filetype.txt=TXT \u0444\u0430\u0439\u043b\u044b @@ -596,6 +636,7 @@ filetype.audio=MP3, OGG, WAV \u0444\u0430\u0439\u043b\u044b display.nodata=\u0414\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b display.noaltitudes=\u0414\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0440\u0435\u043a\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u044b\u0441\u043e\u0442\u043d\u044b\u0445 \u043e\u0442\u043c\u0435\u0442\u043e\u043a display.notimestamps=\u0414\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0440\u0435\u043a\u0435 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u043e\u0442\u043c\u0435\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438 +display.novalues=\u0412 \u0442\u0440\u0435\u043a\u0435 \u043d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f details.trackdetails=\u0414\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u043a\u0430 details.notrack=\u0422\u0440\u0435\u043a \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d details.track.points=\u0422\u043e\u0447\u043a\u0438(-\u0435\u043a) @@ -685,6 +726,10 @@ units.degminsec=\u0413\u0440\u0430\u0434-\u043c\u0438\u043d-\u0441\u0435\u043a units.degmin=\u0413\u0440\u0430\u0434-\u043c\u0438\u043d units.deg=\u0413\u0440\u0430\u0434\u0443\u0441\u044b units.iso8601=ISO 8601 +units.degreescelsius=\u0426\u0435\u043b\u044c\u0441\u0438\u0439 +units.degreescelsius.short=\u00b0C +units.degreesfahrenheit=\u0424\u0430\u0440\u0435\u043d\u0433\u0435\u0439\u0442 +units.degreesfahrenheit.short=\u00b0F # How to combine conditions, such as filters logic.and=\u0438 @@ -715,6 +760,8 @@ undo.deletemarked=\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u0447\ undo.insert=\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 undo.reverse=\u043f\u0435\u0440\u0435\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b undo.mergetracksegments=\u0441\u043b\u0438\u044f\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0440\u0435\u043a\u0430 +undo.splitsegments=\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0442\u0440\u0435\u043a\u0430 +undo.sewsegments=\u0441\u043a\u043b\u0435\u0438\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0442\u0440\u0435\u043a\u0430 undo.addtimeoffset=\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u043c\u0435\u0442\u043a\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 undo.addaltitudeoffset=\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0442\u043c\u0435\u0442\u043a\u0443 \u0432\u044b\u0441\u043e\u0442\u044b undo.rearrangewaypoints=\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0443\u0442\u0435\u0432\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 @@ -774,3 +821,4 @@ error.cache.notthere=\u041f\u0430\u043f\u043a\u0430 \u043a\u044d\u0448\u0430 \u0 error.cache.empty=\u041f\u0430\u043f\u043a\u0430 \u043a\u044d\u0448\u0430 \u0441 \u0442\u0430\u0439\u043b\u0430\u043c\u0438 \u043f\u0443\u0441\u0442\u0430 error.cache.cannotdelete=\u041d\u0435\u0442 \u0442\u0430\u0439\u043b\u043e\u0432, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f error.interpolate.invalidparameter=\u041d\u043e\u043c\u0435\u0440 \u0442\u043e\u0447\u043a\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 1 \u0434\u043e 1000 +error.tracksplit.nosplit=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0442\u0440\u0435\u043a diff --git a/tim/prune/lang/prune-texts_sv.properties b/tim/prune/lang/prune-texts_sv.properties index eeffcd9..7f421c8 100644 --- a/tim/prune/lang/prune-texts_sv.properties +++ b/tim/prune/lang/prune-texts_sv.properties @@ -2,57 +2,101 @@ # Swedish entries # Menu entries -menu.file=Fil +menu.file=Arkiv menu.file.addphotos=L\u00e4gg till foto menu.file.recentfiles=Senaste filer menu.file.save=Spara som text menu.file.exit=Avsluta menu.track=Sp\u00e5r menu.track.undo=\u00c5ngra -menu.track.clearundo=Rensa \u00e5ngra +menu.track.clearundo=Rensa \u00e5ngra-historik menu.track.markrectangle=Markera punkter i rektangel menu.track.deletemarked=Radera markerade punkter -menu.track.rearrange=Arrangera om ruttpunkter +menu.track.rearrange=Ordna waypoints menu.track.rearrange.start=Alla till b\u00f6rjan av fil menu.track.rearrange.end=Alla till slut av fil menu.track.rearrange.nearest=Varje till n\u00e4rmaste sp\u00e5rpunkt -menu.range=Omr\u00e5de +menu.range=Intervall menu.range.all=V\u00e4lj alla menu.range.none=V\u00e4lj ingen -menu.range.start=St\u00e4ll in b\u00f6rjan p\u00e5 omr\u00e5de -menu.range.end=St\u00e4ll in slut p\u00e5 omr\u00e5de +menu.range.start=S\u00e4tt till b\u00f6rjan av intervall +menu.range.end=S\u00e4tt till slutet av intervall menu.range.average=Medelv\u00e4rdesval -menu.range.reverse=Backa omr\u00e5de +menu.range.reverse=V\u00e4nd intervall menu.range.mergetracksegments=Sl\u00e5 ihop sp\u00e5rsegment menu.range.cutandmove=Klipp och flytta urval menu.point=Punkt menu.point.editpoint=Redigera punkt menu.point.deletepoint=Radera punkt menu.photo=Foto -menu.photo.saveexif=Spara och avsluta +menu.photo.saveexif=Spara till Exif menu.audio=Ljud -menu.view=Vy -menu.view.showsidebars=Visa sidolister -menu.view.browser=Karta i ett l\u00e4sarf\u00f6nster +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.yahoo=Yahoo maps menu.view.browser.bing=Bing maps menu.settings=Inst\u00e4llningar -menu.settings.onlinemode=Ladda karta fr\u00e5n Internet +menu.settings.onlinemode=H\u00e4mta kartor fr\u00e5n Internet menu.settings.autosave=Autospara inst\u00e4llningar vid avslut menu.help=Hj\u00e4lp +# Popup menu for map +menu.map.zoomin=Zooma ut +menu.map.zoomout=Zooma in +menu.map.zoomfull=Zooma till passning +menu.map.newpoint=Skapa ny punkt +menu.map.drawpoints=Skapa en serie punkter +menu.map.connect=F\u00f6rbind sp\u00e5rpunkter +menu.map.autopan=Panorera automatiskt +menu.map.showmap=Visa karta +menu.map.showscalebar=Visa skala +menu.map.editmode=Redigeringsl\u00e4ge # Alt keys for menus -altkey.menu.file=F +altkey.menu.file=A altkey.menu.track=S -altkey.menu.range=O +altkey.menu.range=I altkey.menu.point=P altkey.menu.view=V -altkey.menu.photo=T +altkey.menu.photo=F altkey.menu.audio=L altkey.menu.settings=I altkey.menu.help=H +# Ctrl shortcuts for menu items +shortcut.menu.file.open=O +shortcut.menu.file.load=L +shortcut.menu.file.save=S +shortcut.menu.track.undo=Z +shortcut.menu.range.all=A +shortcut.menu.help.help=H + +# Functions +function.open=\u00d6ppna fil +function.importwithgpsbabel=Importera fil med GPSBabel +function.loadfromgps=Ladda fr\u00e5n GPS +function.sendtogps=Skicka till GPS +function.exportkml=Exportera KML +function.exportgpx=Exportera GPX +function.exportpov=Exportera POV +function.exportsvg=Exportera SVG +function.exportimage=Exportera bildfil +function.editwaypointname=Redigera namn p\u00e5 waypoint +function.compress=Komprimera sp\u00e5r +function.deleterange=Radera intervall +function.croptrack=Besk\u00e4r sp\u00e5r till intervall +function.interpolate=Interpolera punkter +function.addtimeoffset=Infoga tidsoffset +function.addaltitudeoffset=Infoga h\u00f6jdoffset +function.convertnamestotimes=Omvandla waypointnamn till tidpunkter +function.findwaypoint=S\u00f6k waypoint +function.pastecoordinates=Infoga koordinater +function.charts=Diagram +function.show3d=3D-vy +function.distances=Avst\u00e5nd +function.estimatetime=Uppskatta tid + openweathermap.lang=se diff --git a/tim/prune/lang/prune-texts_zh.properties b/tim/prune/lang/prune-texts_zh.properties index a7576e0..1fcca74 100644 --- a/tim/prune/lang/prune-texts_zh.properties +++ b/tim/prune/lang/prune-texts_zh.properties @@ -358,7 +358,6 @@ dialog.addmapsource.sourcename=\u5730\u56fe\u6765\u6e90\u540d\u79f0 dialog.addmapsource.layer1url=\u7b2c\u4e00\u5c42URL dialog.addmapsource.layer2url=\u53ef\u9009\u7b2c\u4e8c\u5c42URL dialog.addmapsource.maxzoom=\u6700\u5927\u7f29\u653e\u7ea7\u6570 -dialog.addmapsource.cloudstyle=\u6837\u5f0f\u53f7 dialog.addmapsource.noname=\u672a\u547d\u540d dialog.gpsies.column.name=\u8f68\u8ff9\u540d\u79f0 dialog.gpsies.column.length=\u957f\u5ea6 diff --git a/tim/prune/readme.txt b/tim/prune/readme.txt index d586911..b9dd6c0 100644 --- a/tim/prune/readme.txt +++ b/tim/prune/readme.txt @@ -1,4 +1,4 @@ -GpsPrune version 16.2 +GpsPrune version 16.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_16.2.jar + java -jar gpsprune_16.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,18 @@ 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_16.2.jar --lang=DE + java -jar gpsprune_16.3.jar --lang=DE +New with version 16.3 +===================== +The following fixes were added since version 16.2: + - Fix for gpx caching of points which failed to load + - Additional newlines / tabs in gpx export + - API key for openweathermap.org + - Improvements to 3d terrain reflections + - Additional translations + New with version 16.2 ===================== The following fixes were added since version 16.1: diff --git a/tim/prune/save/GpsSaver.java b/tim/prune/save/GpsSaver.java index 5c74a7a..672234f 100644 --- a/tim/prune/save/GpsSaver.java +++ b/tim/prune/save/GpsSaver.java @@ -269,7 +269,7 @@ public class GpsSaver extends GenericFunction implements Runnable Process process = Runtime.getRuntime().exec(commands); String trackName = _trackNameField.getText(); - if (trackName == null || trackName.equals("")) {trackName = "prune";} + if (trackName == null || trackName.equals("")) {trackName = "gpsprune";} // Generate the GPX file and send to the GPS OutputStreamWriter writer = new OutputStreamWriter(process.getOutputStream()); boolean[] saveFlags = {true, true, true, true, false, true}; // export everything diff --git a/tim/prune/save/GpxExporter.java b/tim/prune/save/GpxExporter.java index b0cb283..1b2263b 100644 --- a/tim/prune/save/GpxExporter.java +++ b/tim/prune/save/GpxExporter.java @@ -383,6 +383,7 @@ public class GpxExporter extends GenericFunction implements Runnable if (!exportTimestamps) { pointSource = stripTime(pointSource); } + inWriter.write('\t'); inWriter.write(pointSource); inWriter.write('\n'); } @@ -401,10 +402,10 @@ public class GpxExporter extends GenericFunction implements Runnable exportAudios, exportTimestamps, true, inGpxCachers, "<rtept", "\t<rte><number>1</number>\n", null, "\t</rte>\n"); // Output all track points, if any - String trackStart = "\t<trk><name>" + trackName + "</name><number>1</number><trkseg>\n"; + String trackStart = "\t<trk>\n\t\t<name>" + trackName + "</name>\n\t\t<number>1</number>\n\t\t<trkseg>\n"; numSaved += writeTrackPoints(inWriter, inInfo, exportSelection, exportTrackpoints, exportPhotos, exportAudios, exportTimestamps, false, inGpxCachers, "<trkpt", trackStart, - "\t</trkseg>\n\t<trkseg>\n", "\t</trkseg></trk>\n"); + "\t</trkseg>\n\t<trkseg>\n", "\t\t</trkseg>\n\t</trk>\n"); } inWriter.write("</gpx>\n"); @@ -431,11 +432,13 @@ public class GpxExporter extends GenericFunction implements Runnable } if (inName != null && !inName.equals("")) { - inWriter.write("\t\t<name>"); + if (inIsVersion1_1) {inWriter.write('\t');} + inWriter.write("\t<name>"); inWriter.write(inName); inWriter.write("</name>\n"); } - inWriter.write("\t\t<desc>"); + if (inIsVersion1_1) {inWriter.write('\t');} + inWriter.write("\t<desc>"); inWriter.write(desc); inWriter.write("</desc>\n"); if (inIsVersion1_1) @@ -738,24 +741,24 @@ public class GpxExporter extends GenericFunction implements Runnable boolean inExportPhoto, boolean inExportAudio) throws IOException { - inWriter.write("\t\t<trkpt lat=\""); + inWriter.write("\t\t\t<trkpt lat=\""); inWriter.write(inPoint.getLatitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); inWriter.write("\" lon=\""); inWriter.write(inPoint.getLongitude().output(Coordinate.FORMAT_DECIMAL_FORCE_POINT)); - inWriter.write("\">"); + inWriter.write("\">\n"); // altitude if (inPoint.hasAltitude()) { - inWriter.write("<ele>"); + inWriter.write("\t\t\t\t<ele>"); inWriter.write("" + inPoint.getAltitude().getStringValue(UnitSetLibrary.UNITS_METRES)); - inWriter.write("</ele>"); + inWriter.write("</ele>\n"); } // timestamp if available (and selected) if (inPoint.hasTimestamp() && inTimestamps) { - inWriter.write("<time>"); + inWriter.write("\t\t\t\t<time>"); inWriter.write(inPoint.getTimestamp().getText(Timestamp.FORMAT_ISO_8601)); - inWriter.write("</time>"); + inWriter.write("</time>\n"); } // photo, audio if (inPoint.getPhoto() != null && inExportPhoto) { @@ -764,7 +767,7 @@ public class GpxExporter extends GenericFunction implements Runnable if (inPoint.getAudio() != null && inExportAudio) { inWriter.write(makeMediaLink(inPoint.getAudio())); } - inWriter.write("</trkpt>\n"); + inWriter.write("\t\t\t</trkpt>\n"); } @@ -815,6 +818,6 @@ public class GpxExporter extends GenericFunction implements Runnable */ private static String stripTime(String inPointSource) { - return inPointSource.replaceAll("<time>.*?</time>", ""); + return inPointSource.replaceAll("[ \t]*<time>.*?</time>", ""); } } diff --git a/tim/prune/save/xml/GpxCacher.java b/tim/prune/save/xml/GpxCacher.java index 2c3204d..9ab8552 100644 --- a/tim/prune/save/xml/GpxCacher.java +++ b/tim/prune/save/xml/GpxCacher.java @@ -72,9 +72,19 @@ public class GpxCacher implements TagReceiver if (_headerString == null) { _headerString = inTag; } - else { - _strings[_pointNum] = inTag; - _pointNum++; + else if (_strings != null) + { + if (_pointNum < _strings.length) + { + _strings[_pointNum] = inTag; + _pointNum++; + } + else + { + // _pointNum has got too high for the strings array + // This means the cacher has failed, probably by invalid points - need to give up caching here + _strings = null; + } } } @@ -95,7 +105,7 @@ public class GpxCacher implements TagReceiver public String getSourceString(DataPoint inPoint) { int index = _sourceInfo.getIndex(inPoint); - if (index >= 0) { + if (_strings != null && index >= 0 && index < _strings.length) { return _strings[index]; } return null; diff --git a/tim/prune/threedee/Java3DWindow.java b/tim/prune/threedee/Java3DWindow.java index de52bd6..fdda0fc 100644 --- a/tim/prune/threedee/Java3DWindow.java +++ b/tim/prune/threedee/Java3DWindow.java @@ -27,9 +27,9 @@ import javax.media.j3d.QuadArray; import javax.media.j3d.Shape3D; import javax.media.j3d.Text3D; import javax.media.j3d.Texture; +import javax.media.j3d.TextureAttributes; import javax.media.j3d.Transform3D; import javax.media.j3d.TransformGroup; -import javax.media.j3d.TriangleStripArray; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; @@ -54,6 +54,8 @@ import tim.prune.save.MapGrouter; import com.sun.j3d.utils.behaviors.vp.OrbitBehavior; import com.sun.j3d.utils.geometry.Box; import com.sun.j3d.utils.geometry.Cylinder; +import com.sun.j3d.utils.geometry.GeometryInfo; +import com.sun.j3d.utils.geometry.NormalGenerator; import com.sun.j3d.utils.geometry.Sphere; import com.sun.j3d.utils.image.TextureLoader; import com.sun.j3d.utils.universe.SimpleUniverse; @@ -358,14 +360,14 @@ public class Java3DWindow implements ThreeDWindow } catch (InterruptedException e) {} } - + // Fix the voids terrainHelper.fixVoids(terrainTrack); // Store this back in the cache, maybe we'll need it again TerrainCache.storeTerrainTrack(terrainTrack, _dataStatus, _terrainDefinition); } - else System.out.println("Yay - reusing the cached track!"); + // else System.out.println("Yay - reusing the cached track!"); // Give the terrain definition to the _model as well _model.setTerrain(terrainTrack); @@ -592,11 +594,8 @@ public class Java3DWindow implements ThreeDWindow { final int numNodes = inHelper.getGridSize(); final int RESULT_SIZE = numNodes * (numNodes * 2 - 2); - final int GEOMETRY_COLOURING_TYPE = (inBaseImage == null ? GeometryArray.COLOR_3 : GeometryArray.TEXTURE_COORDINATE_2); - int[] stripData = inHelper.getStripLengths(); - TriangleStripArray tsa = new TriangleStripArray(RESULT_SIZE, GeometryArray.COORDINATES | GEOMETRY_COLOURING_TYPE, - stripData); + // Get the scaled terrainTrack coordinates (or just heights) from the model final int nSquared = numNodes * numNodes; Point3d[] rawPoints = new Point3d[nSquared]; @@ -607,23 +606,37 @@ public class Java3DWindow implements ThreeDWindow Math.max(height, 0.05), // make sure it's above the box -inModel.getScaledTerrainVertValue(i) * MODEL_SCALE_FACTOR); } - tsa.setCoordinates(0, inHelper.getTerrainCoordinates(rawPoints)); + + GeometryInfo gi = new GeometryInfo(GeometryInfo.TRIANGLE_STRIP_ARRAY); + gi.setCoordinates(inHelper.getTerrainCoordinates(rawPoints)); + gi.setStripCounts(stripData); Appearance tAppearance = new Appearance(); if (inBaseImage != null) { - tsa.setTextureCoordinates(0, 0, inHelper.getTextureCoordinates()); + gi.setTextureCoordinateParams(1, 2); // one coord set of two dimensions + gi.setTextureCoordinates(0, inHelper.getTextureCoordinates()); Texture mapImage = new TextureLoader(inBaseImage.getImage()).getTexture(); tAppearance.setTexture(mapImage); + TextureAttributes texAttr = new TextureAttributes(); + texAttr.setTextureMode(TextureAttributes.MODULATE); + tAppearance.setTextureAttributes(texAttr); } else { Color3f[] colours = new Color3f[RESULT_SIZE]; Color3f terrainColour = new Color3f(0.1f, 0.2f, 0.2f); for (int i=0; i<RESULT_SIZE; i++) {colours[i] = terrainColour;} - tsa.setColors(0, colours); + gi.setColors(colours); } - return new Shape3D(tsa, tAppearance); + new NormalGenerator().generateNormals(gi); + Material terrnMat = new Material(new Color3f(0.4f, 0.4f, 0.4f), // ambient colour + new Color3f(0f, 0f, 0f), // emissive (none) + new Color3f(0.8f, 0.8f, 0.8f), // diffuse + new Color3f(0.2f, 0.2f, 0.2f), //specular + 30f); // shinyness + tAppearance.setMaterial(terrnMat); + return new Shape3D(gi.getGeometryArray(), tAppearance); } /** -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/gpsprune.git _______________________________________________ Pkg-grass-devel mailing list Pkg-grass-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel