diff --git a/OsmAnd-api/src/net/osmand/aidlapi/OsmAndCustomizationConstants.java b/OsmAnd-api/src/net/osmand/aidlapi/OsmAndCustomizationConstants.java
index 6657e29bca..8d884efc9a 100644
--- a/OsmAnd-api/src/net/osmand/aidlapi/OsmAndCustomizationConstants.java
+++ b/OsmAnd-api/src/net/osmand/aidlapi/OsmAndCustomizationConstants.java
@@ -35,6 +35,7 @@ public interface OsmAndCustomizationConstants {
String POI_OVERLAY_LABELS_ID = SHOW_ITEMS_ID_SCHEME + "poi_overlay_labels";
String TRANSPORT_ID = SHOW_ITEMS_ID_SCHEME + "transport";
String GPX_FILES_ID = SHOW_ITEMS_ID_SCHEME + "gpx_files";
+ String WIKIPEDIA_ID = SHOW_ITEMS_ID_SCHEME + "wikipedia";
String MAP_MARKERS_ID = SHOW_ITEMS_ID_SCHEME + "map_markers";
String MAP_SOURCE_ID = SHOW_ITEMS_ID_SCHEME + "map_source";
String RECORDING_LAYER = SHOW_ITEMS_ID_SCHEME + "recording_layer";
@@ -71,6 +72,10 @@ public interface OsmAndCustomizationConstants {
//Map Context Menu Actions:
String MAP_CONTEXT_MENU_ACTIONS = "point.actions.";
+ String MAP_CONTEXT_MENU_ADD_ID = MAP_CONTEXT_MENU_ACTIONS + "add";
+ String MAP_CONTEXT_MENU_MARKER_ID = MAP_CONTEXT_MENU_ACTIONS + "marker";
+ String MAP_CONTEXT_MENU_SHARE_ID = MAP_CONTEXT_MENU_ACTIONS + "share";
+ String MAP_CONTEXT_MENU_MORE_ID = MAP_CONTEXT_MENU_ACTIONS + "more";
String MAP_CONTEXT_MENU_DIRECTIONS_FROM_ID = MAP_CONTEXT_MENU_ACTIONS + "directions_from";
String MAP_CONTEXT_MENU_SEARCH_NEARBY = MAP_CONTEXT_MENU_ACTIONS + "search_nearby";
String MAP_CONTEXT_MENU_CHANGE_MARKER_POSITION = MAP_CONTEXT_MENU_ACTIONS + "change_m_position";
diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java
index 1c1a5d88a3..6c5ead8955 100644
--- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java
+++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java
@@ -2015,14 +2015,21 @@ public class GPXUtilities {
} else if (parse instanceof Track) {
if (tag.equals("name")) {
((Track) parse).name = readText(parser, "name");
- }
- if (tag.equals("desc")) {
+ } else if (tag.equals("desc")) {
((Track) parse).desc = readText(parser, "desc");
- }
- if (tag.equals("trkseg")) {
+ } else if (tag.equals("trkseg")) {
TrkSegment trkSeg = new TrkSegment();
((Track) parse).segments.add(trkSeg);
parserState.push(trkSeg);
+ } else if (tag.equals("trkpt") || tag.equals("rpt")) {
+ WptPt wptPt = parseWptAttributes(parser);
+ int size = ((Track) parse).segments.size();
+ if (size == 0) {
+ ((Track) parse).segments.add(new TrkSegment());
+ size++;
+ }
+ ((Track) parse).segments.get(size - 1).points.add(wptPt);
+ parserState.push(wptPt);
}
} else if (parse instanceof TrkSegment) {
if (tag.equals("trkpt") || tag.equals("rpt")) {
@@ -2061,8 +2068,10 @@ public class GPXUtilities {
} else if (tag.equals("speed")) {
try {
String value = readText(parser, "speed");
- ((WptPt) parse).speed = Float.parseFloat(value);
- parse.getExtensionsToWrite().put("speed", value);
+ if (!Algorithms.isEmpty(value)) {
+ ((WptPt) parse).speed = Float.parseFloat(value);
+ parse.getExtensionsToWrite().put("speed", value);
+ }
} catch (NumberFormatException e) {
}
} else if (tag.equals("link")) {
@@ -2224,7 +2233,7 @@ public class GPXUtilities {
}
return bounds;
}
-
+
public static void mergeGPXFileInto(GPXFile to, GPXFile from) {
if (from == null) {
return;
diff --git a/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java b/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
index 78216f3616..877b95c119 100644
--- a/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
+++ b/OsmAnd-java/src/main/java/net/osmand/IndexConstants.java
@@ -42,7 +42,7 @@ public class IndexConstants {
public static final String OSMAND_SETTINGS_FILE_EXT = ".osf";
- public static final String ROUTING_AND_RENDERING_FILE_EXT = ".xml";
+ public static final String ROUTING_FILE_EXT = ".xml";
public static final String RENDERER_INDEX_EXT = ".render.xml"; //$NON-NLS-1$
@@ -73,4 +73,5 @@ public class IndexConstants {
public static final String SETTINGS_DIR = "settings/"; //$NON-NLS-1$
public static final String TEMP_DIR = "temp/";
public static final String ROUTING_PROFILES_DIR = "routing/";
+ public static final String PLUGINS_DIR = "plugins/";
}
diff --git a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
index faab53994a..db84ec2297 100644
--- a/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
+++ b/OsmAnd-java/src/main/java/net/osmand/data/Amenity.java
@@ -19,6 +19,8 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeSet;
import java.util.zip.GZIPInputStream;
import gnu.trove.list.array.TIntArrayList;
@@ -218,6 +220,13 @@ public class Amenity extends MapObject {
return lng;
}
+ public Set getSupportedContentLocales() {
+ Set supported = new TreeSet<>();
+ supported.addAll(getNames("content", "en"));
+ supported.addAll(getNames("description", "en"));
+ return supported;
+ }
+
public List getNames(String tag, String defTag) {
List l = new ArrayList();
for (String nm : getAdditionalInfo().keySet()) {
diff --git a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java
index 874759598d..0edd44aa6e 100644
--- a/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java
+++ b/OsmAnd-java/src/main/java/net/osmand/osm/MapPoiTypes.java
@@ -36,7 +36,10 @@ public class MapPoiTypes {
private PoiCategory otherCategory;
private PoiCategory otherMapCategory;
- static final String OSM_WIKI_CATEGORY = "osmwiki";
+ public static final String WIKI_LANG = "wiki_lang";
+ public static final String WIKI_PLACE = "wiki_place";
+ public static final String OSM_WIKI_CATEGORY = "osmwiki";
+
private PoiTranslator poiTranslator = null;
private boolean init;
Map poiTypesByTag = new LinkedHashMap();
@@ -127,6 +130,28 @@ public class MapPoiTypes {
return lf;
}
+ public PoiCategory getOsmwiki() {
+ for (PoiCategory category : categories) {
+ if (category.isWiki()) {
+ return category;
+ }
+ }
+ return null;
+ }
+
+ public List getAllAvailableWikiLocales() {
+ List availableWikiLocales = new ArrayList<>();
+ for (PoiType type : getOsmwiki().getPoiTypeByKeyName(WIKI_PLACE).getPoiAdditionals()) {
+ String name = type.getKeyName();
+ String wikiLang = WIKI_LANG + ":";
+ if (name != null && name.startsWith(wikiLang)) {
+ String locale = name.substring(wikiLang.length());
+ availableWikiLocales.add(locale);
+ }
+ }
+ return availableWikiLocales;
+ }
+
private void sortList(List extends AbstractPoiType> lf) {
final Collator instance = Collator.getInstance();
Collections.sort(lf, new Comparator() {
@@ -401,7 +426,7 @@ public class MapPoiTypes {
} else if (name.equals("poi_type")) {
if (lastCategory == null) {
lastCategory = getOtherMapCategory();
- }
+ }
if(!Algorithms.isEmpty(parser.getAttributeValue("", "deprecated_of"))){
String vl = parser.getAttributeValue("", "name");
String target = parser.getAttributeValue("", "deprecated_of");
@@ -595,7 +620,7 @@ public class MapPoiTypes {
tp.setOsmValue(parser.getAttributeValue("", "value"));
tp.setOsmEditTagValue(parser.getAttributeValue("", "edit_tag"),
parser.getAttributeValue("", "edit_value"));
-
+
tp.setOsmTag2(parser.getAttributeValue("", "tag2"));
tp.setOsmValue2(parser.getAttributeValue("", "value2"));
tp.setText("text".equals(parser.getAttributeValue("", "type")));
@@ -806,7 +831,7 @@ public class MapPoiTypes {
poiTypesByTag.put(key, p);
}
}
-
+
public String replaceDeprecatedSubtype(PoiCategory type, String subtype) {
if(deprecatedTags.containsKey(subtype)) {
return deprecatedTags.get(subtype);
@@ -892,9 +917,9 @@ public class MapPoiTypes {
}
-
-
+
+
}
diff --git a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java
index f92a7a66d3..de2da50d79 100644
--- a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java
+++ b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java
@@ -119,7 +119,7 @@ public class BinaryRoutePlanner {
printMemoryConsumption("Memory occupied before exception : ");
}
if (ctx.memoryOverhead > ctx.config.memoryLimitation * 0.95) {
- throw new IllegalStateException("There is no enough memory " + ctx.config.memoryLimitation / (1 << 20) + " Mb");
+ throw new IllegalStateException("There is not enough memory " + ctx.config.memoryLimitation / (1 << 20) + " Mb");
}
ctx.visitedSegments ++;
if (forwardSearch) {
diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteSegmentResult.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteSegmentResult.java
index 31d3397e97..cd8f0466f5 100644
--- a/OsmAnd-java/src/main/java/net/osmand/router/RouteSegmentResult.java
+++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteSegmentResult.java
@@ -173,7 +173,7 @@ public class RouteSegmentResult implements StringExternalizable
return res;
}
- private int[][] convertPointNames(int[][] nameTypes, Map rules) {
+ private int[][] convertPointNames(int[][] nameTypes, String[][] pointNames, Map rules) {
if (nameTypes == null || nameTypes.length == 0) {
return null;
}
@@ -185,7 +185,7 @@ public class RouteSegmentResult implements StringExternalizable
for (int k = 0; k < types.length; k++) {
int type = types[k];
String tag = object.region.quickGetEncodingRule(type).getTag();
- String name = object.pointNames[i][k];
+ String name = pointNames[i][k];
RouteTypeRule rule = new RouteTypeRule(tag, name);
Integer ruleId = rules.get(rule);
if (ruleId == null) {
@@ -281,7 +281,8 @@ public class RouteSegmentResult implements StringExternalizable
if (object.pointNameTypes != null && start < object.pointNameTypes.length) {
int[][] types = Arrays.copyOfRange(object.pointNameTypes, start, Math.min(end, object.pointNameTypes.length));
if (object.pointNames != null) {
- bundle.putArray("pointNames", convertPointNames(types, rules));
+ String[][] names = Arrays.copyOfRange(object.pointNames, start, Math.min(end, object.pointNames.length));
+ bundle.putArray("pointNames", convertPointNames(types, names, rules));
}
}
}
diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
index 14f26123a5..232b971f9f 100644
--- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
+++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingConfiguration.java
@@ -29,7 +29,7 @@ public class RoutingConfiguration {
// 1.1 tile load parameters (should not affect routing)
public int ZOOM_TO_LOAD_TILES = 16;
- public int memoryLimitation;
+ public long memoryLimitation;
// 1.2 Build A* graph in backward/forward direction (can affect results)
// 0 - 2 ways, 1 - direct way, -1 - reverse way
@@ -98,12 +98,12 @@ public class RoutingConfiguration {
i.ZOOM_TO_LOAD_TILES = parseSilentInt(getAttribute(i.router, "zoomToLoadTiles"), i.ZOOM_TO_LOAD_TILES);
int desirable = parseSilentInt(getAttribute(i.router, "memoryLimitInMB"), 0);
if(desirable != 0) {
- i.memoryLimitation = desirable * (1 << 20);
+ i.memoryLimitation = desirable * (1l << 20);
} else {
if(memoryLimitMB == 0) {
memoryLimitMB = DEFAULT_MEMORY_LIMIT;
}
- i.memoryLimitation = memoryLimitMB * (1 << 20);
+ i.memoryLimitation = memoryLimitMB * (1l << 20);
}
i.planRoadDirection = parseSilentInt(getAttribute(i.router, "planRoadDirection"), i.planRoadDirection);
// i.planRoadDirection = 1;
diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java
index c72c5657fa..77e08443db 100644
--- a/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java
+++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutingContext.java
@@ -265,7 +265,7 @@ public class RoutingContext {
- public RouteSegment loadRouteSegment(int x31, int y31, int memoryLimit) {
+ public RouteSegment loadRouteSegment(int x31, int y31, long memoryLimit) {
long tileId = getRoutingTile(x31, y31, memoryLimit);
TLongObjectHashMap excludeDuplications = new TLongObjectHashMap();
RouteSegment original = null;
@@ -443,7 +443,7 @@ public class RoutingContext {
}
@SuppressWarnings("unused")
- private long getRoutingTile(int x31, int y31, int memoryLimit) {
+ private long getRoutingTile(int x31, int y31, long memoryLimit) {
// long now = System.nanoTime();
long xloc = x31 >> (31 - config.ZOOM_TO_LOAD_TILES);
long yloc = y31 >> (31 - config.ZOOM_TO_LOAD_TILES);
@@ -515,11 +515,11 @@ public class RoutingContext {
- public boolean checkIfMemoryLimitCritical(int memoryLimit) {
+ public boolean checkIfMemoryLimitCritical(long memoryLimit) {
return getCurrentEstimatedSize() > 0.9 * memoryLimit;
}
- public void unloadUnusedTiles(int memoryLimit) {
+ public void unloadUnusedTiles(long memoryLimit) {
float desirableSize = memoryLimit * 0.7f;
List list = new ArrayList(subregionTiles.size() / 2);
int loaded = 0;
@@ -805,4 +805,4 @@ public class RoutingContext {
-}
\ No newline at end of file
+}
diff --git a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java
index 309101f720..5124d40cf4 100644
--- a/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java
+++ b/OsmAnd-java/src/main/java/net/osmand/search/SearchUICore.java
@@ -39,7 +39,6 @@ import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
@@ -346,7 +345,7 @@ public class SearchUICore {
}
}
- public void setFilterOrders(Map filterOrders) {
+ public void setFilterOrders(List filterOrders) {
for (SearchCoreAPI capi : apis) {
if (capi instanceof SearchAmenityTypesAPI) {
((SearchAmenityTypesAPI) capi).setFilterOrders(filterOrders);
diff --git a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java
index 449695c283..ed9924d69f 100644
--- a/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java
+++ b/OsmAnd-java/src/main/java/net/osmand/search/core/SearchCoreFactory.java
@@ -639,7 +639,7 @@ public class SearchCoreFactory {
private List customPoiFilters = new ArrayList<>();
private TIntArrayList customPoiFiltersPriorites = new TIntArrayList();
private MapPoiTypes types;
- private Map filterOrders = new HashMap<>();
+ private List filterOrders = new ArrayList<>();
public SearchAmenityTypesAPI(MapPoiTypes types) {
super(ObjectType.POI_TYPE);
@@ -656,7 +656,7 @@ public class SearchCoreFactory {
this.customPoiFiltersPriorites.add(priority);
}
- public void setFilterOrders(Map filterOrders) {
+ public void setFilterOrders(List filterOrders) {
this.filterOrders = filterOrders;
}
@@ -737,8 +737,8 @@ public class SearchCoreFactory {
res.firstUnknownWordMatches = startMatch.matches(res.localeName);
if (showTopFiltersOnly) {
String stdFilterId = getStandardFilterId(pt);
- if (filterOrders.containsKey(stdFilterId)) {
- res.priority = SEARCH_AMENITY_TYPE_PRIORITY + filterOrders.get(stdFilterId);
+ if (filterOrders.contains(stdFilterId)) {
+ res.priority = SEARCH_AMENITY_TYPE_PRIORITY + filterOrders.indexOf(stdFilterId);
resultMatcher.publish(res);
}
} else {
@@ -754,8 +754,8 @@ public class SearchCoreFactory {
res.object = csf;
res.objectType = ObjectType.POI_TYPE;
if (showTopFiltersOnly) {
- if (filterOrders.containsKey(csf.getFilterId())) {
- res.priority = SEARCH_AMENITY_TYPE_PRIORITY + filterOrders.get(csf.getFilterId());
+ if (filterOrders.contains(csf.getFilterId())) {
+ res.priority = SEARCH_AMENITY_TYPE_PRIORITY + filterOrders.indexOf(csf.getFilterId());
resultMatcher.publish(res);
}
} else {
diff --git a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java
index c95d5aaf0e..6e9361ecb7 100644
--- a/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java
+++ b/OsmAnd-java/src/main/java/net/osmand/util/Algorithms.java
@@ -9,6 +9,7 @@ import org.xmlpull.v1.XmlPullParserException;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.EOFException;
import java.io.File;
@@ -30,6 +31,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
/**
@@ -104,6 +106,14 @@ public class Algorithms {
return name.substring(i + 1);
}
+ public static String getFileWithoutDirs(String name) {
+ int i = name.lastIndexOf(File.separator);
+ if (i != -1) {
+ return name.substring(i + 1);
+ }
+ return name;
+ }
+
public static File[] getSortedFilesVersions(File dir) {
File[] listFiles = dir.listFiles();
if (listFiles != null) {
@@ -464,9 +474,25 @@ public class Algorithms {
return responseBody;
}
- public static String gzipToString(byte[] gzip) throws IOException {
- GZIPInputStream gzipIs = new GZIPInputStream(new ByteArrayInputStream(gzip));
- return readFromInputStream(gzipIs).toString();
+ public static String gzipToString(byte[] gzip) {
+ try {
+ GZIPInputStream gzipIs = new GZIPInputStream(new ByteArrayInputStream(gzip));
+ return readFromInputStream(gzipIs).toString();
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ public static byte[] stringToGzip(String str) {
+ try {
+ ByteArrayOutputStream bous = new ByteArrayOutputStream();
+ GZIPOutputStream gzout = new GZIPOutputStream(bous);
+ gzout.write(str.getBytes());
+ gzout.close();
+ return bous.toByteArray();
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
}
public static boolean removeAllFiles(File f) {
diff --git a/OsmAnd-telegram/res/values-an/strings.xml b/OsmAnd-telegram/res/values-an/strings.xml
index a6b3daec93..271f0790cd 100644
--- a/OsmAnd-telegram/res/values-an/strings.xml
+++ b/OsmAnd-telegram/res/values-an/strings.xml
@@ -1,2 +1,4 @@
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-cs/strings.xml b/OsmAnd-telegram/res/values-cs/strings.xml
index 202205a64d..1157f91b9a 100644
--- a/OsmAnd-telegram/res/values-cs/strings.xml
+++ b/OsmAnd-telegram/res/values-cs/strings.xml
@@ -68,4 +68,5 @@
Nemáme nasbíraná data pro daný denŽádná dataZvolte, v čem se měří vzdálenost.
+ Jednotky a formáty
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-da/strings.xml b/OsmAnd-telegram/res/values-da/strings.xml
index a6a4a396dc..7ed4c1644b 100644
--- a/OsmAnd-telegram/res/values-da/strings.xml
+++ b/OsmAnd-telegram/res/values-da/strings.xml
@@ -12,7 +12,7 @@
Sidste tilgængelige placeringDelingsstatusDeling: %1$s
- aktiveret
+ AktiveretStatusIngen GPX-forbindelseIngen internetforbindelse
@@ -243,7 +243,7 @@
Minimum logningshastighedFilter: ingen logning under den valgte hastighedGPX-indstillinger
- Vi har ikke indsamlet data for den valgte dag
+ Der er ikke indsamlet data for den valgte dagIngen dataSlutStart
diff --git a/OsmAnd-telegram/res/values-de/strings.xml b/OsmAnd-telegram/res/values-de/strings.xml
index d269b7e9cb..9b4b7776df 100644
--- a/OsmAnd-telegram/res/values-de/strings.xml
+++ b/OsmAnd-telegram/res/values-de/strings.xml
@@ -169,8 +169,8 @@
Die Freigabe ist eingeschaltet (ausschalten)StartetAbmeldevorgang
- Schliesst
- \"Standort\" einschalten\?
+ Schließt
+ „Standort“ einschalten\?Jetzt liveLetzte Aktualisierung von TelegramSenden Standort als
diff --git a/OsmAnd-telegram/res/values-es/strings.xml b/OsmAnd-telegram/res/values-es/strings.xml
index b891000e85..e40701d3d3 100644
--- a/OsmAnd-telegram/res/values-es/strings.xml
+++ b/OsmAnd-telegram/res/values-es/strings.xml
@@ -257,7 +257,7 @@
Unidades de longitudDefinir la unidad de velocidad.Unidad de velocidad
- Tiempo después del cual se eliminarán los mensajes de ubicación almacenados en búfer
+ Tiempo máximo para almacenar puntos en el búferTiempo de expiración del búferSugeridoEstado de OsmAnd Tracker
@@ -267,4 +267,5 @@
Última actualización desde Telegram: hace %1$sÚltima respuesta: hace %1$shace %1$s
+ ERR
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-et/strings.xml b/OsmAnd-telegram/res/values-et/strings.xml
index 992f02e48c..126490e593 100644
--- a/OsmAnd-telegram/res/values-et/strings.xml
+++ b/OsmAnd-telegram/res/values-et/strings.xml
@@ -266,4 +266,5 @@
Viimane Telegram uuendus: %1$s tagasiViimane vastus: %1$s tagasi%1$s tagasi
+ ERR
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-eu/strings.xml b/OsmAnd-telegram/res/values-eu/strings.xml
index 200be3dc54..2f2ec29c63 100644
--- a/OsmAnd-telegram/res/values-eu/strings.xml
+++ b/OsmAnd-telegram/res/values-eu/strings.xml
@@ -202,7 +202,69 @@
OsmAnd Tracker-en egoeraAtzera OsmAnd-eraAzken erantzuna: %1$s
- "Telegram-en azken eguneraketa duela %1$s"
+ Telegram-en azken eguneraketa duela %1$sAzken erantzuna duela %1$sduela %1$s
+ OsmAnd Tracker-ri esker, kokapena partekatu dezakezu eta besteena OsmAnd-en ikus.
Aplikazioak Telegram APIa erabiltzen du eta, beraz, Telegram kontua behar duzu.
+ Sartu zure Telegram-eko telefono zenbakia nazioarteko formatuan
+ OsmAnd Tracker atzeko planoan exekutatzen da pantaila itzalita dagoenean.
+ Hautatu kokapen-hornitzaileetako bat zure kokapena partekatzeko.
+ Aplikazioak ez du kokapena atzitzeko baimenik.
+ "Telegramek kode bat bidali dizu OsmAnd-ek zure kontuan saioa hasteko."
+ Bilaketa: Taldea edo kontaktua
+ Hautatu kokapena partekatzeko kontaktuak eta taldeak.
+ Ezarri denbora
+ Ezarri aukeratutako kontaktu eta taldeek zure kokapena denbora errealean ikusiko duten denbora.
+ Guztientzako ikusgai dagoen denbora
+ %1$d h
+ %1$d m
+ %1$d h %2$d m
+ Ezarri guztientzako ikusgai dagoen denbora
+ Sartu autentifikazio kodea
+ Ez daukat Telegram kontua
+ Erregistratutako Telegram kontua eta telefono zenbakia behar dituzu
+ Ondoren aplikazio hau erabil dezakezu.
+ Telegram kontua behar duzu kokapen-partekatzea erabiltzeko.
+ Telegramen izena ematea
+ Partekatzea aktibatuta dago (desaktibatu)
+ Iraungitzea
+ Partekatze-denbora
+ Ezarri kokapena partekatzeko gutxieneko tartea.
+ Ez da mugitzen
+ Kontaktu bat mugitu zen azken aldia.
+ Ezkutatu denbora jakin batean mugitu ez diren kontaktuak
+ OsmAnd konexioa
+ Aukeratu OsmAnd Tracker-ek posizioak bistaratzeko erabiliko duen OsmAnd bertsioa.
+ %1$s-n
+ Nola itzali OsmAnd Tracker Telegram-etik
+ Nola itzali OsmAnd Tracker Telegram-etik
+ Kokapena partekatzeko sarbidea baliogabetzeko. Ireki Telegram, joan Ezarpenak → Pribatutasuna eta segurtasuna → Saioak eta amaitu OsmAnd Tracker saioa atalera.
+ "Konektatu Internetera Telegram saioa behar bezala amaiatzeko."
+ Azken erantzuna
+ Kokapena partekatzea itzaltzen du hautatutako txat guztietan (%1$d).
+ Hautatu kontaktuak mapan bistaratzeko OsmAnd bertsioa.
+ Taldearen arabera
+ Izenaren arabera
+ Distantziaren arabera
+ Amaitu OsmAnd Tracker saioa\?
+ Ziur zaude OsmAnd Tracker saioa amaitu nahi duzula\? Ezingo duzu kokapena partekatu edo besteen kokapena ikusi
+ Zurekin kokapena partekatzen duten kontaktuak eta taldeak.
+ Partekatzen:% 1 $ s
+ Partekatze egoera
+ Azken kokapen eskuragarria
+ Oraindik ez da aurkitu
+ Oraindik ez da bidali
+ Atzeko planoan partekatzea
+ Itzali bateriaren optimizazioa OsmAnd Trackerrentzat, bat-batean itzali ez dadin bigarren planoan dagoela.
+ Bigarren planoko lana
+ Aldatu bateriaren optimizazio ezarpenak kokapena partekatzea egonkortzeko.
+ Telegram-en erantzunaren zain
+ Ezin da Telegrameko txatetara bidali:
+ Ondo bidali eta eguneratua
+ Eguneratutako azken kokapena:
+ Hainbat gailu Telegram kontu bakarrera konektatu nahi badituzu, gailu desberdinak erabili behar dituzu kokapena partekatzeko.
+ Telegrama bezeroan gailuaren IDa sortu eta ikusi dezakezu %1$s txat bota erabiliz. % 2 $ s
+ \"Jarraitu\" sakatuz, Telegram eta OsmAnd pribatutasun-politiken baldintzak onartzen dituzu.
+ OsmAnd tracker-ek Telegram plataforma irekia erabiltzen duten bezeroetako bat da. Zure kontaktuek Telegram-eko beste edozein bezero erabil dezakete.
+ Telegram-eko azken eguneratzea: %1$s
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-fr/strings.xml b/OsmAnd-telegram/res/values-fr/strings.xml
index 297ea9808d..622a55faae 100644
--- a/OsmAnd-telegram/res/values-fr/strings.xml
+++ b/OsmAnd-telegram/res/values-fr/strings.xml
@@ -100,7 +100,7 @@
OsmAnd TrackerTelegram (l\'application de messagerie) est utilisée pour se connecter et communiquer avec d\'autres personnes.OsmAnd tracker est l\'un des clients qui utilise la plateforme ouverte Telegram. Vos contacts peuvent utiliser n\'importe quel autre client Telegram.
- En appuyant sur « Continuer » vous acceptez les conditions des politiques de confidentialité de Telegram et d\'OsmAnd.
+ En appuyant sur « Continuer » vous acceptez les conditions des politiques de confidentialité de Telegram et d\'OsmAnd.Politique de confidentialité de TelegramPolitique de confidentialité d\'OsmAndComment cela fonctionne
@@ -144,4 +144,102 @@
Kilomètres/mètresMiles nautiquesMiles / Mètres
+ nœuds
+ Plus tard
+ Mot de passe
+ Distance
+ Miles nautiques par heure (nœuds)
+ Par nom
+ Sélectionnez l\'apparence des messages contenant votre position.
+ Envoyer la position
+ Afficher dans OsmAnd
+ Dernière mise à jour depuis Telegram
+ Comment désactiver OsmAnd Tracker de Telegram
+ Comment désactiver OsmAnd Tracker de Telegram
+ Connectez-vous à Internet pour vous déconnecter correctement de Telegram.
+ Désactiver tout
+ Désactiver tout partage
+ Désactive le partage de position pour toutes les discussions sélectionnées (%1$d).
+ Sélectionnez la version OsmAnd à utiliser
+ Sélectionnez la version OsmAnd où les contacts seront affichés sur la carte.
+ Partage de l\'état
+ Mode arrière-plan
+ Chronologie
+ En direct maintenant
+ s
+ min
+ h
+ Bienvenue
+ Veuillez entrer votre numéro de téléphone Telegram au format international
+ Autorisation
+ Discussions actives
+ Afficher les utilisateurs sur la carte
+ Installer OsmAnd
+ Logo OsmAnd
+ Service OsmAnd Tracker
+ Partage de la position
+ Partager la position
+ Vous n\'êtes pas connecté·e
+ Activer la « position » \?
+ Fermeture
+ Déconnexion
+ Démarrage
+ Se déconnecter
+ Se connecter
+ Mot de passe Telegram
+ Entrez le mot de passe
+ Telegram vous a envoyé un code pour que OsmAnd se connecte à votre compte.
+ Code d\'authentification
+ Entrez le code
+ %1$d h %2$d min
+ %1$d h
+ %1$d min
+ Entrez le code d\'authentification
+ Entrez un numéro de téléphone
+ Je n\'ai pas dr compte Telegram
+ Vous pourrez ensuite utiliser cette appli.
+ Veuillez installer Telegram et créer un compte.
+ Vous avez besoin d\'un compte Telegram pour utiliser le partage de position.
+ Inscription à Telegram
+ Bot
+ En direct
+ Ouvrir OsmAnd
+ Désactiver le partage de position
+ Le partage est activé (désactiver)
+ Expire
+ Temps de partage
+ dans %1$s
+ Triper par
+ Par groupe
+ Par distance
+ Se déconnecter d\'OsmAnd Tracker \?
+ Êtes-vous sûr·e de vouloir vous déconnecter d\'OsmAnd Tracker ; vous ne pourrez pas partager votre position ni vous la position des autres \?
+ Contacts et groupes partageant leur position avec vous.
+ Partager la position comme
+ Ajouter un périphérique
+ Aucune connexion Internet
+ Aucune connexion GPS
+ Partage : %1$s
+ Dernière position disponible
+ Renvoyer la position
+ Pas encore trouvé
+ Pas encore envoyé
+ Aller aux paramètres
+ Partage en arrière-plan
+ Éteignez l\'optimisation de la batterie pour OsmAnd Tracker afin qu\'il ne soit pas soudainement désactivé lorsqu\'il est en arrière-plan.
+ Fonctionnement en arrière-plan
+ Changez les paramètres d\'optimisation de la batterie pour stabiliser le partage de la position.
+ Connexion à Internet
+ Localisation…
+ Démarrage
+ Envoi de la position
+ En attente de la réponse de Telegram
+ Impossible d\'envoyer dans les discussions Telegram :
+ Envoyé et mis à jour avec succès
+ Dernière position mise à jour :
+ Si vous voulez connecter plusieurs appareils à un même compte Telegram, vous devez utiliser un appareil différent pour partager votre position.
+ Vous pouvez créer et visualiser l\'identifiant du périphérique dans le client Telegram en utilisant le chat-bot %1$s. %2$s
+ Nommez votre nouveau périphérique en max 200 symboles.
+ Choisissez un nom que vous n\'avez pas encore utilisé
+ La surveillance est désactivée
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-hu/strings.xml b/OsmAnd-telegram/res/values-hu/strings.xml
index 2c329c19e1..a187276fc1 100644
--- a/OsmAnd-telegram/res/values-hu/strings.xml
+++ b/OsmAnd-telegram/res/values-hu/strings.xml
@@ -246,7 +246,7 @@
Nincs adatVégKezdet
- Alkalmazás
+ AlkalmazMegjelenítendő időszak kijelöléseKezdő és záró dátumMentett üzenetek
diff --git a/OsmAnd-telegram/res/values-it/strings.xml b/OsmAnd-telegram/res/values-it/strings.xml
index f6e3b38177..4a5b4218f4 100644
--- a/OsmAnd-telegram/res/values-it/strings.xml
+++ b/OsmAnd-telegram/res/values-it/strings.xml
@@ -90,8 +90,8 @@
Non ho un account di TelegramInserisci un numero di telefonoInserisci il codice di autenticazione
- %1$d h %2$d m
- %1$d m
+ %1$d h %2$d min
+ %1$d min%1$d hInstallaCondividi
@@ -157,7 +157,7 @@
Miglia nauticheMiglia/metrih
- m
+ minsOsmAnd tracker ti permette di condividere la tua posizione e di vedere quella di altri su OsmAnd.
diff --git a/OsmAnd-telegram/res/values-nb/strings.xml b/OsmAnd-telegram/res/values-nb/strings.xml
index 33680e1089..6b42727c8a 100644
--- a/OsmAnd-telegram/res/values-nb/strings.xml
+++ b/OsmAnd-telegram/res/values-nb/strings.xml
@@ -12,11 +12,11 @@
Sist tilgjengelige posisjonDelingsstatusDeling: %1$s
- Påslått
+ AktivertStatusIngen GPS-tilkoblingIngen internettilknytning
- Skru av
+ DeaktiverLegg til enhetDel posisjon somKontakter og grupper som deler sin posisjon med deg.
@@ -24,7 +24,7 @@
Logg ut av OsmAnd-sporeren\?NavnEtter distanse
- Etter navn
+ Ved navnEtter gruppeSorterSorter etter
@@ -104,7 +104,7 @@
Velg en av posisjonstilbyderne for å dele din posisjon.BakgrunnsmodusOsmAnd-sporeren kjører som nisse med skjermen av.
- Distanse
+ AvstandDel posisjonDeler posisjonOsmAnd-sporertjeneste
@@ -119,15 +119,13 @@
kmmKilometer i timen
- Meter i sekunder
+ Meter per sekundMinutter per kilometerNautiske mil i timen (knop)tminsek
-
- OsmAnd-sporeren lar deg dele din posisjon og se andres i OsmAnd.
- Programmet belager seg på Telegram-API-et, så du må ha en Telegram-konto.
+ OsmAnd-sporeren lar deg dele din posisjon og se andres i OsmAnd.
Programmet belager seg på Telegram-API-et, så du må ha en Telegram-konto.Min posisjonSist oppdaterte posisjon:Sendt og oppdatert
@@ -138,8 +136,8 @@
Posisjonerer…Kobler til Internettyd
- fot
- mil
+ ft
+ minmimin/mmin/km
@@ -147,10 +145,10 @@
m/skm/tmph
- Engelske mil i timen
- Minutter per engelske mil
- Engelske mil/fot
- Engelske mil/yard
+ Engelsk mil i timen
+ Minutter per engelsk mil
+ Eng. mil/fot
+ Eng. mil/yardKilometer/meterNautiske milEngelske mil/meter
@@ -179,7 +177,7 @@
TekstKart og tekstOppsyn er påskrudd
- Oppsyn er avskrudd
+ Oppsyn er ikke aktivertTid i bevegelseGjennomsnittlig høydeGjennomsnittsfart
@@ -189,7 +187,7 @@
TidslinjeTelegramOsmAnd-sporeren er én av klientene som bruker Telegram. Dine kontakter kan bruke enhver annen Telegram-klient.
- Ved å klikke \"Fortsett\" samtykker du til vilkårene i Telegram-personvernspraksisen, og OsmAnd-personvernspraksisen.
+ Du samtykker til vilkårene i personvernreglene til Telegram og OsmAnd ved å klikke «Fortsett».GodtaTelegram-personvernspraksisHvordan det virker
@@ -212,7 +210,7 @@
Telegram (meldingsprogrammet) brukes til å komme i kontakt og snakke med folk.OsmAnd-personvernspraksisOppdater OsmAnd for å vise data på kartet
- Skru på oppsyn for å samle bevegelsesdata i historikk.
+ Aktiver oppsyn for å samle bevegelsesdata i historikk.Søk i kontaktlisteSøk gjennom alle dine grupper og kontakter.Skriv kontakt- eller gruppenavn
@@ -228,7 +226,7 @@
PortTjenerForbindelse
- Skru på
+ AktiverMellomtjenertypeTilkobletFrakoblet
@@ -240,10 +238,10 @@
Filter: Minimumsavstand for logging av nytt punktMinimumsnøyaktighet for loggingFilter: Ingen logging med mindre nøyaktigheten nås
- Minimumshastighet ved logging
+ Minimumshastighet for loggingFilter: Ingen logging under valgt hastighetGPX-innstillinger
- Data for valgt dato mangler
+ Det er ikke samlet inn data for valgt datoIngen dataSluttStart
@@ -256,7 +254,7 @@
Enheter og formaterEndre hva lengde måles i.Lengdeenhet
- Definer en fartsenhet
+ Definer en fartsenhet.FartsenhetMaksimal tid å lagre punkter i mellomlageretUtløpstid for mellomlager
@@ -268,4 +266,5 @@
Siste oppdatering fra Telegram: %1$s sidenSiste respons: %1$s siden%1$s siden
+ FEIL
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-pt-rPT/strings.xml b/OsmAnd-telegram/res/values-pt-rPT/strings.xml
index 6e62b52439..1d32c5f8b3 100644
--- a/OsmAnd-telegram/res/values-pt-rPT/strings.xml
+++ b/OsmAnd-telegram/res/values-pt-rPT/strings.xml
@@ -16,7 +16,7 @@
Política de privacidade do OsmAnd%1$d mÚltima localização disponível
- OsmAnd Tracker
+ Rastreador OsmAndOsmAnd tracker é um dos clientes que usam a Plataforma aberta do Telegram . Seus contatos podem usar qualquer outro cliente Telegram.Quilômetros/metrosno %1$s
@@ -73,7 +73,7 @@
Quilômetros por horaSenhaDistância mínima de registro
- Salvar
+ GravarIniciarAdicionar aparelhoNão foi possível adicionar novo aparelho
@@ -188,7 +188,7 @@
Compartilhar localizaçãohComo desativar o OsmAnd Tracker para Telegram
- Nós não coletamos dados para o dia selecionado
+ Não coletamos dados para o dia selecionadoTempo de compartilhamentovocê não está logado noAtivar \"Localização\"\?
@@ -234,7 +234,7 @@
Mostrar no OsmAndSaindoSair
- Desabilitar
+ DesativarDigite o número de telefoneVelocidade mínima de registroDesconectado
@@ -261,4 +261,10 @@
SugeridoEstado do Rastreador de OsmAndVoltar para OsmAnd
+ %1$s atrás
+ Última resposta: %1$s atrás
+ Última atualização do Telegram: 1$s atrás
+ Última resposta: %1$s
+ Última atualização do Telegram: %1$s
+ ERR
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-pt/strings.xml b/OsmAnd-telegram/res/values-pt/strings.xml
index 71f9006403..fe4559ac9c 100644
--- a/OsmAnd-telegram/res/values-pt/strings.xml
+++ b/OsmAnd-telegram/res/values-pt/strings.xml
@@ -37,7 +37,7 @@
AplicarSelecionar a hora para exibirData de início - fim
- Nós não coletamos dados para o dia selecionado
+ Não coletamos dados para o dia selecionadoConfigurações de GPXChaveCredenciais
@@ -262,4 +262,10 @@
SugeridoEstado do Rastreador de OsmAndVoltar para OsmAnd
+ %1$s atrás
+ Última resposta: %1$s atrás
+ Última atualização do Telegram: 1$s atrás
+ Última resposta: %1$s
+ Última atualização do Telegram: %1$s
+ ERR
\ No newline at end of file
diff --git a/OsmAnd-telegram/res/values-ru/strings.xml b/OsmAnd-telegram/res/values-ru/strings.xml
index c1c2124e85..8a232e948c 100644
--- a/OsmAnd-telegram/res/values-ru/strings.xml
+++ b/OsmAnd-telegram/res/values-ru/strings.xml
@@ -158,7 +158,7 @@
Политика конфиденциальности TelegramПолитика конфиденциальности OsmAndПолучено точек GPX: %1$s
- Внешний вид
+ ВидПоказать количество собранных и отправленных точек GPS.Обновите OsmAnd для просмотра данных на картеОбновить
diff --git a/OsmAnd-telegram/res/values-tr/strings.xml b/OsmAnd-telegram/res/values-tr/strings.xml
index 3160ac48d4..a459a73acf 100644
--- a/OsmAnd-telegram/res/values-tr/strings.xml
+++ b/OsmAnd-telegram/res/values-tr/strings.xml
@@ -93,7 +93,7 @@
TelegramTelegram (mesajlaşma uygulaması) insanlarla bağlantı ve iletişim kurmak için kullanılmaktadır.OsmAnd Tracker, Telegram açık platformunu kullanan istemcilerden biridir. Kişileriniz başka herhangi bir Telegram istemcisini kullanabilir.
- \"Devam et\" butonuna tıklayarak, Telegram ve OsmAnd Gizlilik Politikası koşullarını kabul etmiş olursunuz.
+ \"Devam et\" düğmesine tıklayarak, Telegram ve OsmAnd Gizlilik Politikası koşullarını kabul etmiş olursunuz.Kabul etTelegram Gizlilik PolitikasıOsmAnd Gizlilik Politikası
@@ -160,8 +160,8 @@
Ada göreGruba göreSıralama kriteri
- Kişilerin haritada görüntüleneceği OsmAnd versiyonunu seçin.
- Kullanılacak OsmAnd versiyonunu seçin
+ Kişilerin haritada görüntüleneceği OsmAnd sürümünü seçin.
+ Kullanılacak OsmAnd sürümünü seçinKonum paylaşımını tüm seçili sohbetlere kapatır (%1$d).Tüm paylaşımı devre dışı bırakHepsini kapat
@@ -176,7 +176,7 @@
Bağlı hesapHesap%1$s içinde
- Konumları görüntülemek için OsmAnd Tracker\'ın kullandığı OsmAnd versiyonunu seçin.
+ Konumları görüntülemek için OsmAnd Tracker\'ın kullandığı OsmAnd sürümünü seçin.OsmAnd bağlanBelirli bir süre içinde hareket etmemiş kişileri gizle.Konum geçmişi
@@ -213,7 +213,7 @@
Haritada gösterOsmAnd Çevrim İçi GPS İzleyiciTelefon numarası
- Uluslararası formatta telefon numarası
+ Uluslararası biçimde telefon numarasıParolaKodu girinKimlik doğrulama kodu
@@ -240,8 +240,8 @@
Kullanıcıları haritada gösterAktif sohbetlerYetkilendirme
- Lütfen Telegram telefon numaranızı uluslararası formatta girin
- Hoşgeldiniz
+ Lütfen Telegram telefon numaranızı uluslararası biçimde girin
+ Hoş geldinizsadksn
@@ -251,7 +251,7 @@
Zaman çizelgesiKonum mesajlarınızda gösterilecek saat dilimini seçin.Saat dilimi
- Birimler ve formatlar
+ Birimler ve biçimlerMesafe ölçüm birimini değiştir.Uzunluk birimleriHız birimini tanımlayın.
diff --git a/OsmAnd/assets/poi_categories.json b/OsmAnd/assets/poi_categories.json
deleted file mode 100644
index f386828f4d..0000000000
--- a/OsmAnd/assets/poi_categories.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "categories": {
- "special": {
- "icons": [
- "special_star",
- "special_star_stroked",
- "special_marker",
- "special_flag_stroke",
- "special_house",
- "special_building"
- ]
- },
- "amenity": {
- "icons": [
- "amenity_bar",
- "amenity_cafe",
- "amenity_atm",
- "amenity_biergarten",
- "amenity_cinema",
- "amenity_fire_station",
- "amenity_parking"
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/OsmAnd/build.gradle b/OsmAnd/build.gradle
index edd12e7854..45dc9e96ec 100644
--- a/OsmAnd/build.gradle
+++ b/OsmAnd/build.gradle
@@ -45,10 +45,10 @@ android {
defaultConfig {
minSdkVersion System.getenv("MIN_SDK_VERSION") ? System.getenv("MIN_SDK_VERSION").toInteger() : 15
targetSdkVersion 28
- versionCode 356
+ versionCode 370
versionCode System.getenv("APK_NUMBER_VERSION") ? System.getenv("APK_NUMBER_VERSION").toInteger() : versionCode
multiDexEnabled true
- versionName "3.5.6"
+ versionName "3.7.0"
versionName System.getenv("APK_VERSION")? System.getenv("APK_VERSION").toString(): versionName
versionName System.getenv("APK_VERSION_SUFFIX")? versionName + System.getenv("APK_VERSION_SUFFIX").toString(): versionName
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_bug_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_bug_dark.png
deleted file mode 100644
index 01afb085fd..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_bug_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_compass_widget.png b/OsmAnd/res/drawable-hdpi/ic_action_compass_widget.png
deleted file mode 100644
index af36e36892..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_compass_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_compass_widget_hide.png b/OsmAnd/res/drawable-hdpi/ic_action_compass_widget_hide.png
deleted file mode 100644
index 150ec6b547..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_compass_widget_hide.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_latitude.png b/OsmAnd/res/drawable-hdpi/ic_action_coordinates_latitude.png
deleted file mode 100644
index 15fb01c0b4..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_latitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_longitude.png b/OsmAnd/res/drawable-hdpi/ic_action_coordinates_longitude.png
deleted file mode 100644
index 8901c389b9..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_longitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_widget.png b/OsmAnd/res/drawable-hdpi/ic_action_coordinates_widget.png
deleted file mode 100644
index c1ba05be3b..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_coordinates_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_copy.png b/OsmAnd/res/drawable-hdpi/ic_action_copy.png
deleted file mode 100644
index c62cd30a9a..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_copy.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_delete_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_delete_dark.png
deleted file mode 100644
index a1a4129763..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_delete_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_gprint_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_gprint_dark.png
deleted file mode 100644
index 0a639dc2eb..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_gprint_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_gsave_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_gsave_dark.png
deleted file mode 100644
index 83b5e2dc93..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_gsave_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_gshare_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_gshare_dark.png
deleted file mode 100644
index e7330eb803..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_gshare_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_home_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_home_dark.png
deleted file mode 100644
index b2b58532b8..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_home_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_import.png b/OsmAnd/res/drawable-hdpi/ic_action_import.png
deleted file mode 100644
index 1714a7e2bc..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_import.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_info_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_info_dark.png
deleted file mode 100644
index cf6c396f6b..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_info_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_marker_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_marker_dark.png
deleted file mode 100644
index 988e4cf571..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_marker_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_micro_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_micro_dark.png
deleted file mode 100644
index e476eac718..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_micro_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_parking_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_parking_dark.png
deleted file mode 100644
index f0914e4aa9..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_parking_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_photo_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_photo_dark.png
deleted file mode 100644
index 028221e52c..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_photo_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_previous_route.png b/OsmAnd/res/drawable-hdpi/ic_action_previous_route.png
deleted file mode 100644
index cf87b0a6c6..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_previous_route.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_ruler.png b/OsmAnd/res/drawable-hdpi/ic_action_ruler.png
deleted file mode 100644
index 947cbef786..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_ruler.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_settings.png b/OsmAnd/res/drawable-hdpi/ic_action_settings.png
deleted file mode 100644
index 9f462386e1..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_settings.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_travel.png b/OsmAnd/res/drawable-hdpi/ic_action_travel.png
deleted file mode 100644
index 7e5309917d..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_travel.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_video_dark.png b/OsmAnd/res/drawable-hdpi/ic_action_video_dark.png
deleted file mode 100644
index eca1da7c4f..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_video_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_work.png b/OsmAnd/res/drawable-hdpi/ic_action_work.png
deleted file mode 100644
index 372258dc20..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_action_work.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_configure_screen_dark.png b/OsmAnd/res/drawable-hdpi/ic_configure_screen_dark.png
deleted file mode 100644
index 330da77fbd..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_configure_screen_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_map.png b/OsmAnd/res/drawable-hdpi/ic_map.png
deleted file mode 100644
index 66407962a2..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_map.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_navigation_drawer.png b/OsmAnd/res/drawable-hdpi/ic_navigation_drawer.png
deleted file mode 100644
index e99ca193e6..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_navigation_drawer.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-hdpi/ic_plugin_srtm.png b/OsmAnd/res/drawable-hdpi/ic_plugin_srtm.png
deleted file mode 100644
index 170aefa1c5..0000000000
Binary files a/OsmAnd/res/drawable-hdpi/ic_plugin_srtm.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_bug_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_bug_dark.png
deleted file mode 100644
index 9235ce8668..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_bug_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_compass_widget.png b/OsmAnd/res/drawable-mdpi/ic_action_compass_widget.png
deleted file mode 100644
index c292db68dd..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_compass_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_compass_widget_hide.png b/OsmAnd/res/drawable-mdpi/ic_action_compass_widget_hide.png
deleted file mode 100644
index 7b0315f985..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_compass_widget_hide.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_latitude.png b/OsmAnd/res/drawable-mdpi/ic_action_coordinates_latitude.png
deleted file mode 100644
index 825ef20d31..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_latitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_longitude.png b/OsmAnd/res/drawable-mdpi/ic_action_coordinates_longitude.png
deleted file mode 100644
index 5a8551d5a4..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_longitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_widget.png b/OsmAnd/res/drawable-mdpi/ic_action_coordinates_widget.png
deleted file mode 100644
index 1e329f8110..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_coordinates_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_copy.png b/OsmAnd/res/drawable-mdpi/ic_action_copy.png
deleted file mode 100644
index 82a96390f7..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_copy.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_delete_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_delete_dark.png
deleted file mode 100644
index 5f04a9bcae..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_delete_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_gprint_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_gprint_dark.png
deleted file mode 100644
index ae443c661d..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_gprint_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_gsave_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_gsave_dark.png
deleted file mode 100644
index fc0a89d575..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_gsave_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_gshare_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_gshare_dark.png
deleted file mode 100644
index fe04c8513e..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_gshare_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_home_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_home_dark.png
deleted file mode 100644
index 8e187c2263..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_home_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_import.png b/OsmAnd/res/drawable-mdpi/ic_action_import.png
deleted file mode 100644
index 248d297466..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_import.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_info_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_info_dark.png
deleted file mode 100644
index cdb944551e..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_info_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_marker_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_marker_dark.png
deleted file mode 100644
index 2dab1265c0..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_marker_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_micro_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_micro_dark.png
deleted file mode 100644
index 975cd200b8..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_micro_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_parking_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_parking_dark.png
deleted file mode 100644
index 890646f66f..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_parking_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_photo_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_photo_dark.png
deleted file mode 100644
index 274be86f2e..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_photo_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_previous_route.png b/OsmAnd/res/drawable-mdpi/ic_action_previous_route.png
deleted file mode 100644
index 1f2b6e7394..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_previous_route.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_ruler.png b/OsmAnd/res/drawable-mdpi/ic_action_ruler.png
deleted file mode 100644
index 54f82daeed..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_ruler.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_settings.png b/OsmAnd/res/drawable-mdpi/ic_action_settings.png
deleted file mode 100644
index bb2cc22048..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_settings.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_travel.png b/OsmAnd/res/drawable-mdpi/ic_action_travel.png
deleted file mode 100644
index d7335726be..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_travel.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_video_dark.png b/OsmAnd/res/drawable-mdpi/ic_action_video_dark.png
deleted file mode 100644
index 59f63440a8..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_video_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_work.png b/OsmAnd/res/drawable-mdpi/ic_action_work.png
deleted file mode 100644
index 015800328d..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_action_work.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_configure_screen_dark.png b/OsmAnd/res/drawable-mdpi/ic_configure_screen_dark.png
deleted file mode 100644
index ec2dac1101..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_configure_screen_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_map.png b/OsmAnd/res/drawable-mdpi/ic_map.png
deleted file mode 100644
index 458117c9fe..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_map.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_navigation_drawer.png b/OsmAnd/res/drawable-mdpi/ic_navigation_drawer.png
deleted file mode 100644
index 80409f3676..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_navigation_drawer.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_plugin_srtm.png b/OsmAnd/res/drawable-mdpi/ic_plugin_srtm.png
deleted file mode 100644
index ce89e3758b..0000000000
Binary files a/OsmAnd/res/drawable-mdpi/ic_plugin_srtm.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_bug_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_bug_dark.png
deleted file mode 100644
index 8bfa9f6b72..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_bug_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget.png b/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget.png
deleted file mode 100644
index 0ad0e45980..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget_hide.png b/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget_hide.png
deleted file mode 100644
index bf9eb8b2d8..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_compass_widget_hide.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_latitude.png b/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_latitude.png
deleted file mode 100644
index 025303ba1d..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_latitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_longitude.png b/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_longitude.png
deleted file mode 100644
index 56a568c287..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_longitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_widget.png b/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_widget.png
deleted file mode 100644
index ad49ad0f0d..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_coordinates_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_copy.png b/OsmAnd/res/drawable-xhdpi/ic_action_copy.png
deleted file mode 100644
index a870b9c4b4..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_copy.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_delete_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_delete_dark.png
deleted file mode 100644
index f378f2faa7..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_delete_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_gprint_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_gprint_dark.png
deleted file mode 100644
index 8dc22c65eb..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_gprint_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_gsave_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_gsave_dark.png
deleted file mode 100644
index e7ea375f45..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_gsave_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_gshare_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_gshare_dark.png
deleted file mode 100644
index 44f098aa98..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_gshare_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_home_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_home_dark.png
deleted file mode 100644
index 1305c63173..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_home_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_import.png b/OsmAnd/res/drawable-xhdpi/ic_action_import.png
deleted file mode 100644
index 699f1b417c..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_import.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_info_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_info_dark.png
deleted file mode 100644
index fd864c66a0..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_info_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_marker_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_marker_dark.png
deleted file mode 100644
index 731ac33b2b..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_marker_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_micro_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_micro_dark.png
deleted file mode 100644
index 3219e7bbf1..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_micro_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_parking_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_parking_dark.png
deleted file mode 100644
index 92c3f3358e..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_parking_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_photo_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_photo_dark.png
deleted file mode 100644
index cc841eb7be..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_photo_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_previous_route.png b/OsmAnd/res/drawable-xhdpi/ic_action_previous_route.png
deleted file mode 100644
index 71da51f44d..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_previous_route.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_ruler.png b/OsmAnd/res/drawable-xhdpi/ic_action_ruler.png
deleted file mode 100644
index d1a65048ba..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_ruler.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_settings.png b/OsmAnd/res/drawable-xhdpi/ic_action_settings.png
deleted file mode 100644
index 3972159d46..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_settings.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_travel.png b/OsmAnd/res/drawable-xhdpi/ic_action_travel.png
deleted file mode 100644
index 8dd368dd2e..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_travel.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_video_dark.png b/OsmAnd/res/drawable-xhdpi/ic_action_video_dark.png
deleted file mode 100644
index a3efd50585..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_video_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_work.png b/OsmAnd/res/drawable-xhdpi/ic_action_work.png
deleted file mode 100644
index 254e193254..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_action_work.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_configure_screen_dark.png b/OsmAnd/res/drawable-xhdpi/ic_configure_screen_dark.png
deleted file mode 100644
index 7699bc55fb..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_configure_screen_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_map.png b/OsmAnd/res/drawable-xhdpi/ic_map.png
deleted file mode 100644
index 67eb37ac50..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_map.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_navigation_drawer.png b/OsmAnd/res/drawable-xhdpi/ic_navigation_drawer.png
deleted file mode 100644
index c3b6da6636..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_navigation_drawer.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_plugin_srtm.png b/OsmAnd/res/drawable-xhdpi/ic_plugin_srtm.png
deleted file mode 100644
index a103242a3f..0000000000
Binary files a/OsmAnd/res/drawable-xhdpi/ic_plugin_srtm.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_bug_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_bug_dark.png
deleted file mode 100644
index fbb7f251cc..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_bug_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget.png b/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget.png
deleted file mode 100644
index 896382de6d..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget_hide.png b/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget_hide.png
deleted file mode 100644
index 8385db87ff..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_compass_widget_hide.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_latitude.png b/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_latitude.png
deleted file mode 100644
index 57f3050e54..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_latitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_longitude.png b/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_longitude.png
deleted file mode 100644
index 06b996b9cd..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_longitude.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_widget.png b/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_widget.png
deleted file mode 100644
index c3c416f6d1..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_coordinates_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_copy.png b/OsmAnd/res/drawable-xxhdpi/ic_action_copy.png
deleted file mode 100644
index f6155536f7..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_copy.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_delete_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_delete_dark.png
deleted file mode 100644
index 151538d1ba..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_delete_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_gprint_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_gprint_dark.png
deleted file mode 100644
index 890f19e0cf..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_gprint_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_gsave_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_gsave_dark.png
deleted file mode 100644
index e840eb5ff0..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_gsave_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_gshare_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_gshare_dark.png
deleted file mode 100644
index 37037454f4..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_gshare_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_home_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_home_dark.png
deleted file mode 100644
index 0956ccccb5..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_home_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_import.png b/OsmAnd/res/drawable-xxhdpi/ic_action_import.png
deleted file mode 100644
index b802cf1ea8..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_import.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_info_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_info_dark.png
deleted file mode 100644
index 957fcbe0da..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_info_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_marker_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_marker_dark.png
deleted file mode 100644
index 2244702813..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_marker_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_micro_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_micro_dark.png
deleted file mode 100644
index dc6aa21733..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_micro_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_parking_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_parking_dark.png
deleted file mode 100644
index 53b09f0cb7..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_parking_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_photo_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_photo_dark.png
deleted file mode 100644
index 0ee6810890..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_photo_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_previous_route.png b/OsmAnd/res/drawable-xxhdpi/ic_action_previous_route.png
deleted file mode 100644
index fca798f46a..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_previous_route.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_ruler.png b/OsmAnd/res/drawable-xxhdpi/ic_action_ruler.png
deleted file mode 100644
index 9a51090661..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_ruler.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_settings.png b/OsmAnd/res/drawable-xxhdpi/ic_action_settings.png
deleted file mode 100644
index 0fac002ad8..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_settings.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_travel.png b/OsmAnd/res/drawable-xxhdpi/ic_action_travel.png
deleted file mode 100644
index db56fd2f91..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_travel.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_video_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_action_video_dark.png
deleted file mode 100644
index ba06d4920e..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_video_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_work.png b/OsmAnd/res/drawable-xxhdpi/ic_action_work.png
deleted file mode 100644
index 7bea54d8eb..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_action_work.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_configure_screen_dark.png b/OsmAnd/res/drawable-xxhdpi/ic_configure_screen_dark.png
deleted file mode 100644
index b6a40f9d15..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_configure_screen_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_map.png b/OsmAnd/res/drawable-xxhdpi/ic_map.png
deleted file mode 100644
index 49079a9e1b..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_map.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_navigation_drawer.png b/OsmAnd/res/drawable-xxhdpi/ic_navigation_drawer.png
deleted file mode 100644
index b007054f4e..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_navigation_drawer.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_plugin_srtm.png b/OsmAnd/res/drawable-xxhdpi/ic_plugin_srtm.png
deleted file mode 100644
index 4c98804578..0000000000
Binary files a/OsmAnd/res/drawable-xxhdpi/ic_plugin_srtm.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget.png
deleted file mode 100644
index d007519851..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget_hide.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget_hide.png
deleted file mode 100644
index 9367547567..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_compass_widget_hide.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_coordinates_widget.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_coordinates_widget.png
deleted file mode 100644
index 05dfda08ca..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_coordinates_widget.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_gsave_dark.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_gsave_dark.png
deleted file mode 100644
index ca8ea70cad..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_gsave_dark.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_previous_route.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_previous_route.png
deleted file mode 100644
index aad78c1730..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_previous_route.png and /dev/null differ
diff --git a/OsmAnd/res/drawable-xxxhdpi/ic_action_work.png b/OsmAnd/res/drawable-xxxhdpi/ic_action_work.png
deleted file mode 100644
index 86aeafcb89..0000000000
Binary files a/OsmAnd/res/drawable-xxxhdpi/ic_action_work.png and /dev/null differ
diff --git a/OsmAnd/res/drawable/bg_point_circle_contour.xml b/OsmAnd/res/drawable/bg_point_circle_contour.xml
index 46d0f51ec8..26127a55d4 100644
--- a/OsmAnd/res/drawable/bg_point_circle_contour.xml
+++ b/OsmAnd/res/drawable/bg_point_circle_contour.xml
@@ -1,7 +1,11 @@
-
-
-
-
+
+
+
diff --git a/OsmAnd/res/drawable/bg_point_octagon_contour.xml b/OsmAnd/res/drawable/bg_point_octagon_contour.xml
new file mode 100644
index 0000000000..7c9c52528e
--- /dev/null
+++ b/OsmAnd/res/drawable/bg_point_octagon_contour.xml
@@ -0,0 +1,11 @@
+
+
+
diff --git a/OsmAnd/res/drawable/bg_point_square_contour.xml b/OsmAnd/res/drawable/bg_point_square_contour.xml
index 1f492681f1..a09dff2ce4 100644
--- a/OsmAnd/res/drawable/bg_point_square_contour.xml
+++ b/OsmAnd/res/drawable/bg_point_square_contour.xml
@@ -1,10 +1,11 @@
+ android:viewportWidth="48"
+ android:viewportHeight="48">
+ android:fillColor="#00000000"
+ android:strokeColor="#727272"/>
diff --git a/OsmAnd/res/drawable/btn_bg_border_inactive.xml b/OsmAnd/res/drawable/btn_bg_border_inactive.xml
index 844747ac35..dcf60ef7ed 100644
--- a/OsmAnd/res/drawable/btn_bg_border_inactive.xml
+++ b/OsmAnd/res/drawable/btn_bg_border_inactive.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/OsmAnd/res/drawable/ic_action_bug_dark.xml b/OsmAnd/res/drawable/ic_action_bug_dark.xml
new file mode 100644
index 0000000000..fe7b8af253
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_bug_dark.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_cancel.xml b/OsmAnd/res/drawable/ic_action_cancel.xml
new file mode 100644
index 0000000000..d82458bb25
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_cancel.xml
@@ -0,0 +1,18 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_categories_search.xml b/OsmAnd/res/drawable/ic_action_categories_search.xml
new file mode 100644
index 0000000000..afcb7d6230
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_categories_search.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_compass_widget.xml b/OsmAnd/res/drawable/ic_action_compass_widget.xml
new file mode 100644
index 0000000000..108cfcdf2b
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_compass_widget.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_compass_widget_hide.xml b/OsmAnd/res/drawable/ic_action_compass_widget_hide.xml
new file mode 100644
index 0000000000..0b1eb4b8cb
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_compass_widget_hide.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_context_menu.xml b/OsmAnd/res/drawable/ic_action_context_menu.xml
new file mode 100644
index 0000000000..7733c21169
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_context_menu.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_coordinates_latitude.xml b/OsmAnd/res/drawable/ic_action_coordinates_latitude.xml
new file mode 100644
index 0000000000..a7ee81cb1a
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_coordinates_latitude.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_coordinates_longitude.xml b/OsmAnd/res/drawable/ic_action_coordinates_longitude.xml
new file mode 100644
index 0000000000..6c8e01f542
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_coordinates_longitude.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_coordinates_widget.xml b/OsmAnd/res/drawable/ic_action_coordinates_widget.xml
new file mode 100644
index 0000000000..4cf5271120
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_coordinates_widget.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_copy.xml b/OsmAnd/res/drawable/ic_action_copy.xml
new file mode 100644
index 0000000000..ebb2b35c22
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_copy.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_delete_dark.xml b/OsmAnd/res/drawable/ic_action_delete_dark.xml
new file mode 100644
index 0000000000..a05bd21abe
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_delete_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_drawer.xml b/OsmAnd/res/drawable/ic_action_drawer.xml
new file mode 100644
index 0000000000..3d3a7ca8cc
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_drawer.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_gprint_dark.xml b/OsmAnd/res/drawable/ic_action_gprint_dark.xml
new file mode 100644
index 0000000000..5f70128718
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_gprint_dark.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_gsave_dark.xml b/OsmAnd/res/drawable/ic_action_gsave_dark.xml
new file mode 100644
index 0000000000..a25a0996de
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_gsave_dark.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_gshare_dark.xml b/OsmAnd/res/drawable/ic_action_gshare_dark.xml
new file mode 100644
index 0000000000..edad7213e2
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_gshare_dark.xml
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_home_dark.xml b/OsmAnd/res/drawable/ic_action_home_dark.xml
new file mode 100644
index 0000000000..b665594692
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_home_dark.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_import.xml b/OsmAnd/res/drawable/ic_action_import.xml
new file mode 100644
index 0000000000..8bf929c6b3
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_import.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_info_dark.xml b/OsmAnd/res/drawable/ic_action_info_dark.xml
new file mode 100644
index 0000000000..15cb857d72
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_info_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_marker_dark.xml b/OsmAnd/res/drawable/ic_action_marker_dark.xml
new file mode 100644
index 0000000000..9dfc2cb852
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_marker_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_micro_dark.xml b/OsmAnd/res/drawable/ic_action_micro_dark.xml
new file mode 100644
index 0000000000..e0224a0233
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_micro_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_parking_dark.xml b/OsmAnd/res/drawable/ic_action_parking_dark.xml
new file mode 100644
index 0000000000..e0b15af75f
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_parking_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_photo_dark.xml b/OsmAnd/res/drawable/ic_action_photo_dark.xml
new file mode 100644
index 0000000000..dac4cd7253
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_photo_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_previous_route.xml b/OsmAnd/res/drawable/ic_action_previous_route.xml
new file mode 100644
index 0000000000..f4ecad8fa7
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_previous_route.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_ruler.xml b/OsmAnd/res/drawable/ic_action_ruler.xml
new file mode 100644
index 0000000000..a0c4afb370
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_ruler.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_settings.xml b/OsmAnd/res/drawable/ic_action_settings.xml
new file mode 100644
index 0000000000..bd93d68f88
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_settings.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_ski_touring.xml b/OsmAnd/res/drawable/ic_action_ski_touring.xml
index 3ae35b6887..e1d7bd367b 100644
--- a/OsmAnd/res/drawable/ic_action_ski_touring.xml
+++ b/OsmAnd/res/drawable/ic_action_ski_touring.xml
@@ -4,16 +4,7 @@
android:viewportWidth="24"
android:viewportHeight="24">
-
-
-
diff --git a/OsmAnd/res/drawable/ic_action_snowmobile.xml b/OsmAnd/res/drawable/ic_action_snowmobile.xml
new file mode 100644
index 0000000000..0ed2b39f87
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_snowmobile.xml
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_travel.xml b/OsmAnd/res/drawable/ic_action_travel.xml
new file mode 100644
index 0000000000..4875093f17
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_travel.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_ui_customization.xml b/OsmAnd/res/drawable/ic_action_ui_customization.xml
new file mode 100644
index 0000000000..710a5a0a64
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_ui_customization.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_video_dark.xml b/OsmAnd/res/drawable/ic_action_video_dark.xml
new file mode 100644
index 0000000000..8a1561bc17
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_video_dark.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_action_work.xml b/OsmAnd/res/drawable/ic_action_work.xml
new file mode 100644
index 0000000000..4656d02c65
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_action_work.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_configure_screen_dark.xml b/OsmAnd/res/drawable/ic_configure_screen_dark.xml
new file mode 100644
index 0000000000..f3f7b78cac
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_configure_screen_dark.xml
@@ -0,0 +1,13 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_layer_bottom.xml b/OsmAnd/res/drawable/ic_layer_bottom.xml
index 15b4b96c79..5c4ed3a666 100644
--- a/OsmAnd/res/drawable/ic_layer_bottom.xml
+++ b/OsmAnd/res/drawable/ic_layer_bottom.xml
@@ -4,11 +4,16 @@
android:viewportWidth="24"
android:viewportHeight="24">
+ android:pathData="M17.7143,12L22,15L12,22L2,15L6.2857,12L12,16L17.7143,12Z"
+ android:fillColor="#ffffff"/>
+
diff --git a/OsmAnd/res/drawable/ic_map.xml b/OsmAnd/res/drawable/ic_map.xml
new file mode 100644
index 0000000000..48040318f4
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_map.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/OsmAnd/res/drawable/ic_navigation_drawer.xml b/OsmAnd/res/drawable/ic_navigation_drawer.xml
new file mode 100644
index 0000000000..34b1b9881f
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_navigation_drawer.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/ic_plugin_srtm.xml b/OsmAnd/res/drawable/ic_plugin_srtm.xml
new file mode 100644
index 0000000000..9562493d37
--- /dev/null
+++ b/OsmAnd/res/drawable/ic_plugin_srtm.xml
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/img_settings_device_top_dark.xml b/OsmAnd/res/drawable/img_settings_device_top_dark.xml
new file mode 100644
index 0000000000..378e02cf7d
--- /dev/null
+++ b/OsmAnd/res/drawable/img_settings_device_top_dark.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/img_settings_device_top_light.xml b/OsmAnd/res/drawable/img_settings_device_top_light.xml
new file mode 100644
index 0000000000..b20891747d
--- /dev/null
+++ b/OsmAnd/res/drawable/img_settings_device_top_light.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/OsmAnd/res/drawable/map_action_ski_touring.xml b/OsmAnd/res/drawable/map_action_ski_touring.xml
new file mode 100644
index 0000000000..f771350bd8
--- /dev/null
+++ b/OsmAnd/res/drawable/map_action_ski_touring.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
diff --git a/OsmAnd/res/drawable/map_action_snowmobile.xml b/OsmAnd/res/drawable/map_action_snowmobile.xml
new file mode 100644
index 0000000000..83463f1f5f
--- /dev/null
+++ b/OsmAnd/res/drawable/map_action_snowmobile.xml
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/OsmAnd/res/layout/bottom_sheet_item_title.xml b/OsmAnd/res/layout/bottom_sheet_item_title.xml
index d8ebd46514..1736b7148a 100644
--- a/OsmAnd/res/layout/bottom_sheet_item_title.xml
+++ b/OsmAnd/res/layout/bottom_sheet_item_title.xml
@@ -5,13 +5,15 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/title"
android:layout_width="match_parent"
- android:layout_height="@dimen/bottom_sheet_title_height"
+ android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:maxLines="5"
android:minHeight="@dimen/bottom_sheet_title_height"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
+ android:paddingTop="@dimen/content_padding_small"
+ android:paddingBottom="@dimen/content_padding_small"
android:textAppearance="@style/TextAppearance.ListItemTitle"
osmand:typeface="@string/font_roboto_medium"
tools:text="Some Title"
diff --git a/OsmAnd/res/layout/bottom_sheet_item_title_with_checkbox.xml b/OsmAnd/res/layout/bottom_sheet_item_title_with_checkbox.xml
new file mode 100644
index 0000000000..cede7a0e86
--- /dev/null
+++ b/OsmAnd/res/layout/bottom_sheet_item_title_with_checkbox.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/bottom_sheet_item_title_with_swith_56dp.xml b/OsmAnd/res/layout/bottom_sheet_item_title_with_swith_56dp.xml
new file mode 100644
index 0000000000..c347f4b20f
--- /dev/null
+++ b/OsmAnd/res/layout/bottom_sheet_item_title_with_swith_56dp.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/context_menu_action_item.xml b/OsmAnd/res/layout/context_menu_action_item.xml
new file mode 100644
index 0000000000..25c18a1845
--- /dev/null
+++ b/OsmAnd/res/layout/context_menu_action_item.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/dash_item_with_description_72dp.xml b/OsmAnd/res/layout/dash_item_with_description_72dp.xml
new file mode 100644
index 0000000000..cf4bdf9f36
--- /dev/null
+++ b/OsmAnd/res/layout/dash_item_with_description_72dp.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/edit_arrangement_list_fragment.xml b/OsmAnd/res/layout/edit_arrangement_list_fragment.xml
index 2ec9131aee..ee9654d322 100644
--- a/OsmAnd/res/layout/edit_arrangement_list_fragment.xml
+++ b/OsmAnd/res/layout/edit_arrangement_list_fragment.xml
@@ -8,11 +8,7 @@
-
-
-
-
+ android:layout_height="wrap_content" />
+ android:layout_marginStart="@dimen/list_content_padding_large" />
+ android:layout_marginLeft="@dimen/settings_divider_margin_start"
+ android:layout_marginStart="@dimen/settings_divider_margin_start" />
+ android:paddingEnd="@dimen/list_header_padding"
+ android:paddingRight="@dimen/list_header_padding">
+ android:layout_width="@dimen/favorites_icon_size"
+ android:layout_height="match_parent"
+ android:layout_gravity="center_vertical">
+ tools:visibility="visible" />
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:contentDescription="@string/favorite"
+ android:scaleType="center"
+ tools:src="@drawable/bg_point_circle"/>
+ android:layout_marginStart="@dimen/favorites_icon_right_margin"
+ android:layout_marginLeft="@dimen/favorites_icon_right_margin"
+ android:layout_marginEnd="@dimen/favorites_icon_right_margin"
+ android:layout_marginRight="@dimen/favorites_icon_right_margin"
+ android:paddingTop="@dimen/context_menu_padding_margin_small"
+ android:paddingBottom="@dimen/context_menu_padding_margin_small">
+ tools:text="@string/lorem_ipsum" />
+ android:textSize="@dimen/default_desc_text_size"
+ tools:text="100500 km" />
+ android:layout_marginStart="@dimen/list_item_button_padding"
+ android:layout_marginLeft="@dimen/list_item_button_padding"
+ android:contentDescription="@string/favorite_category_name"
+ android:src="@drawable/ic_small_group" />
+ android:textSize="@dimen/default_desc_text_size" />
+ android:visibility="gone" />
+ android:visibility="gone" />
\ No newline at end of file
diff --git a/OsmAnd/res/layout/fragment_import.xml b/OsmAnd/res/layout/fragment_import.xml
index ffc6165836..31237e535e 100644
--- a/OsmAnd/res/layout/fragment_import.xml
+++ b/OsmAnd/res/layout/fragment_import.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="?attr/activity_background_basic">
+ android:background="?attr/activity_background_color">
+ android:background="?attr/activity_background_color">
+ android:background="?attr/activity_background_color">
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/gpx_track_select_dialog.xml b/OsmAnd/res/layout/gpx_track_select_dialog.xml
new file mode 100644
index 0000000000..3a2c2ab41d
--- /dev/null
+++ b/OsmAnd/res/layout/gpx_track_select_dialog.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/gpx_track_select_item.xml b/OsmAnd/res/layout/gpx_track_select_item.xml
new file mode 100644
index 0000000000..21e925e64b
--- /dev/null
+++ b/OsmAnd/res/layout/gpx_track_select_item.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/OsmAnd/res/layout/list_group_title_with_descr.xml b/OsmAnd/res/layout/list_group_title_with_descr.xml
index 5d2e429a58..4c48d7ba5e 100644
--- a/OsmAnd/res/layout/list_group_title_with_descr.xml
+++ b/OsmAnd/res/layout/list_group_title_with_descr.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
- android:minHeight="48dp"
+ android:minHeight="@dimen/setting_list_item_large_height"
android:background="?attr/bg_color"
android:gravity="center"
android:orientation="vertical"
@@ -34,9 +34,9 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="10dp"
- android:textColor="?android:textColorPrimary"
- android:textSize="@dimen/default_sub_text_size"
+ android:paddingTop="@dimen/content_padding_small"
+ android:textColor="@color/preference_category_title"
+ android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_medium"
tools:text="Download map"/>
@@ -44,18 +44,13 @@
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="4dp"
+ android:paddingTop="@dimen/content_padding_half"
+ android:paddingBottom="@dimen/content_padding"
android:textColor="?android:textColorSecondary"
- android:textSize="@dimen/default_sub_text_size"
- android:paddingBottom="10dp"
+ android:textSize="@dimen/default_desc_text_size"
+ osmand:typeface="@string/font_roboto_regular"
tools:text="For view contour lines on the map, you need to download contour line map of this region."/>
-
-
\ No newline at end of file
diff --git a/OsmAnd/res/layout/list_item_description_with_image.xml b/OsmAnd/res/layout/list_item_description_with_image.xml
new file mode 100644
index 0000000000..72f94ed955
--- /dev/null
+++ b/OsmAnd/res/layout/list_item_description_with_image.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/list_item_icon_and_download.xml b/OsmAnd/res/layout/list_item_icon_and_download.xml
index c4297147ce..7290321289 100644
--- a/OsmAnd/res/layout/list_item_icon_and_download.xml
+++ b/OsmAnd/res/layout/list_item_icon_and_download.xml
@@ -1,107 +1,123 @@
+ android:gravity="center_vertical"
+ android:minHeight="@dimen/setting_list_item_large_height">
+ android:layout_marginLeft="@dimen/list_content_padding"
+ android:layout_marginEnd="@dimen/list_content_padding"
+ android:layout_marginRight="@dimen/list_content_padding"
+ tools:src="@drawable/ic_map" />
-
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:orientation="horizontal">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OsmAnd/res/layout/list_item_icon_and_menu.xml b/OsmAnd/res/layout/list_item_icon_and_menu.xml
index 7e08397865..b3ad8c8cbe 100644
--- a/OsmAnd/res/layout/list_item_icon_and_menu.xml
+++ b/OsmAnd/res/layout/list_item_icon_and_menu.xml
@@ -15,8 +15,8 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="16dp"
- android:layout_marginStart="16dp"
+ android:layout_marginLeft="@dimen/content_padding"
+ android:layout_marginStart="@dimen/content_padding"
tools:src="@drawable/ic_action_gabout_dark"/>
@@ -81,8 +81,8 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
- android:layout_marginEnd="16dp"
- android:layout_marginRight="16dp"
+ android:layout_marginEnd="@dimen/content_padding"
+ android:layout_marginRight="@dimen/content_padding"
android:focusable="false"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/list_item_ui_customization.xml b/OsmAnd/res/layout/list_item_ui_customization.xml
new file mode 100644
index 0000000000..4526820df9
--- /dev/null
+++ b/OsmAnd/res/layout/list_item_ui_customization.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/main.xml b/OsmAnd/res/layout/main.xml
index 7fee8ec961..49f257c745 100644
--- a/OsmAnd/res/layout/main.xml
+++ b/OsmAnd/res/layout/main.xml
@@ -107,18 +107,6 @@
android:drawSelectorOnTop="false"
android:layout_gravity="start"/>
-
-
-
-
-
\ No newline at end of file
diff --git a/OsmAnd/res/layout/map_context_menu_fragment.xml b/OsmAnd/res/layout/map_context_menu_fragment.xml
index 7188fe7313..6089fbc5e2 100644
--- a/OsmAnd/res/layout/map_context_menu_fragment.xml
+++ b/OsmAnd/res/layout/map_context_menu_fragment.xml
@@ -419,136 +419,7 @@
android:paddingStart="@dimen/map_widget_icon_margin"
android:paddingEnd="@dimen/map_widget_icon_margin">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/OsmAnd/res/layout/order_poi_list_item.xml b/OsmAnd/res/layout/order_poi_list_item.xml
index 1fe14f3a31..e208a1c05f 100644
--- a/OsmAnd/res/layout/order_poi_list_item.xml
+++ b/OsmAnd/res/layout/order_poi_list_item.xml
@@ -47,7 +47,7 @@
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="marquee"
- android:paddingLeft="@dimen/content_padding"
+ android:paddingLeft="0dp"
android:paddingRight="@dimen/content_padding"
android:paddingTop="@dimen/content_padding_half"
android:paddingBottom="@dimen/content_padding_half"
@@ -56,7 +56,7 @@
osmand:typeface="@string/font_roboto_regular"
tools:text="@string/poi_aerialway_transport"
android:paddingEnd="@dimen/content_padding"
- android:paddingStart="@dimen/content_padding" />
+ android:paddingStart="0dp" />
@@ -134,11 +135,10 @@
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:maxLines="4"
- android:minHeight="50dp"
+ android:minHeight="60dp"
android:paddingStart="12dp"
android:paddingLeft="12dp"
android:paddingRight="12dp"
- android:scrollHorizontally="false"
android:textSize="16sp"
tools:text="@string/lorem_ipsum" />
@@ -448,9 +448,9 @@
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
- android:text="@string/update_existing"
+ android:text="@string/replace_point_descr"
android:textAppearance="@style/TextAppearance.ContextMenuSubtitle"
- tools:text="@string/update_existing" />
+ tools:text="@string/replace_point_descr" />
diff --git a/OsmAnd/res/layout/powered_by_osmand_item.xml b/OsmAnd/res/layout/powered_by_osmand_item.xml
deleted file mode 100644
index 8cbe0fc70d..0000000000
--- a/OsmAnd/res/layout/powered_by_osmand_item.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OsmAnd/res/layout/preference_dropdown_list.xml b/OsmAnd/res/layout/preference_dropdown_list.xml
index 78e57317f9..391c25d08a 100644
--- a/OsmAnd/res/layout/preference_dropdown_list.xml
+++ b/OsmAnd/res/layout/preference_dropdown_list.xml
@@ -29,7 +29,8 @@
@@ -40,6 +41,7 @@
android:layout_height="wrap_content"
android:focusable="false"
android:maxLines="1"
+ android:scrollbars="none"
tools:text="Car" />
diff --git a/OsmAnd/res/layout/preference_select_icon_button.xml b/OsmAnd/res/layout/preference_select_icon_button.xml
index ac80040512..d92a103c86 100644
--- a/OsmAnd/res/layout/preference_select_icon_button.xml
+++ b/OsmAnd/res/layout/preference_select_icon_button.xml
@@ -3,31 +3,36 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="6dp">
+ android:padding="@dimen/map_button_margin">
-
+
-
+
-
+
-
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/layout/profile_data_list_item_child.xml b/OsmAnd/res/layout/profile_data_list_item_child.xml
index e653c368db..2fbfc333e3 100644
--- a/OsmAnd/res/layout/profile_data_list_item_child.xml
+++ b/OsmAnd/res/layout/profile_data_list_item_child.xml
@@ -22,7 +22,12 @@
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_margin="@dimen/content_padding"
+ android:layout_marginStart="@dimen/content_padding"
+ android:layout_marginLeft="@dimen/content_padding"
+ android:layout_marginTop="@dimen/content_padding"
+ android:layout_marginEnd="@dimen/list_content_padding_large"
+ android:layout_marginRight="@dimen/list_content_padding_large"
+ android:layout_marginBottom="@dimen/content_padding"
tools:src="@drawable/ic_action_info_dark" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index fbb15098b3..526b297db9 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -3018,7 +3018,7 @@
تغيير مجلد البيانات ؟نقل للموقع الجديدتجنب بعض الطرق، أو بعض أنواع الطرق
- جنباً إلى جنب
+ جنبًا إلى جنبطريق تلفريكاتصالحساب
@@ -3103,14 +3103,14 @@
مسار مفتوحالمسار %s تم حفظربط الأجزاء
- العربة
+ العربهعربة التخييمإظهار مناطق الانبعاثات المنخفضة علي الخريطة. لا يؤثر علي التوجيه.إظهار مناطق الانبعاثات المنخفضةالنظر في القيود المؤقتةافتراضي
- عربة
- شاحنة بيك أب
+ عربه
+ شاحنهإلغاء الاشتراكإعدادات الوضع :يستخدم أوسماند تنسيق UTM وهو مشابه ولكن غير مطابق لتنسيق UTM الناتو.
@@ -3214,12 +3214,12 @@
\n• إصلاحات أخرى في الأخطاء
\n
\n
- الناقل الشخصي
+ ناقل شخصيعجلة آحاديةسكوترالدقة الأفقية: %1$s, عمودي: %2$sالدقة الأفقية: %s
- خارج المسار
+ الطرق الوعرهإعداد الوضعيحتفظ الوضع بإعداداتكحدد خيارات الخريطة للملف الشخصي
@@ -3273,7 +3273,7 @@
نوع الملاحةسيارة أجرةنقل داخلي
- مترو الأنفاق
+ مترو انفاقحصانهليكوبتريمكنك إضافة نسختك المعدلة من الملف routing.xml في ..أوسماند/routing
@@ -3363,7 +3363,7 @@
محاكاة موقعك باستخدام مسار GPX مسجل.زر لجعل مركز الشاشة نقطة الانطلاق. سيطلب بعد ذلك تعيين الوجهة أو تشغيل حساب المسار.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sشخصيتنزيل %sسميك
@@ -3404,7 +3404,7 @@
اسم المستخدم و كلمة السرإعدادات المكون الإضافي هذه شاملة، وتنطبق على جميع الأوضاع.تعديل OpenStreetMap
- OSM
+ Osmسترى الأيقونة فقط أثناء الملاحة أو أثناء التحرك.قيمتظهر أيقونة الخريطة فقط على الخريطة ، وتتغير أثناء التنقل إلى أيقونة التنقل.
@@ -3568,4 +3568,38 @@
خريطة التضاريس تستخدم ظلال داكنة لإظهار المنحدرات والقمم والأراضي المنخفضة.التضاريس%1$s من %2$s
+ مثمن
+ الحد الأدنى
+ جولة التزلج
+ الثلج
+ مخصص البرنامج المساعد أوسماند
+ استبدل نقطة أخرى بالحالية
+ تم تطبيق التغييرات على %1$s ملف تعريف.
+ لايمكن قراءة %1$s.
+ لايمكن كتابة %1$s.
+ تعذر استيراد %1$s.
+ اختيار ملف المسار
+ اللغات
+ اللغة
+ جميع اللغات
+ هناك حاجة إلى خرائط إضافية لعرض النقاط المهمة من ويكيبيديا على الخريطة.
+ تخصيص كمية العناصر في درج تكوين خريطة قائمة السياق.
+\n
+\nيمكنك تعطيل الإضافات غير المستخدمة لإخفاء جميع الضوابط من الطلب %1$s.
+ عناصر الدرج، قائمة السياق
+ تخصيص واجهة المستخدم
+ درج
+ إجراءات قائمة السياق
+ إعادة ترتيب العناصر أو إخفائها من %1$s.
+ مفصول
+ عناصر أسفل هذه النقطة مفصولة بفاصل.
+ المخفيه
+ هذه العناصر مخفية من القائمة ، ولكن الخيارات أو المكونات الإضافية لاتزال تعمل.
+ ستتم إعادة تعيين الإعدادات إلى الحالة الأصلية بعد الاختفاء.
+ الإجراءات الرئيسية تحتوي على 4 أزرار فقط.
+ الإجراءات الرئيسية
+ يمكنك الوصول إلى هذه الإجراءات بالضغط على زر \"الإجراءات\".
+ يمكنك نقل العناصر داخل هذه الفئة فقط.
+ الإضافات المطورة
+ العناصر
\ No newline at end of file
diff --git a/OsmAnd/res/values-b+kab/strings.xml b/OsmAnd/res/values-b+kab/strings.xml
index 2eec1bf9db..4c385aca19 100644
--- a/OsmAnd/res/values-b+kab/strings.xml
+++ b/OsmAnd/res/values-b+kab/strings.xml
@@ -13,11 +13,11 @@
AddadΓer uggarFfer
- %1$s ad yahbes uqbel
+ %1$s n uneḥbus uqbelAsemmezdi n unadiAsemmezdi asurif n unadiTuγalin γer unadi
- Adγar
+ AdigΓer uggarDacu i d amaynut degSedγi
@@ -51,7 +51,7 @@
SkenRnuBḍu tazmilt
- Tizmilin
+ Tizmilin A/VAddad n GPSTinefrent tagejdantFfer
@@ -66,7 +66,7 @@
TacinwattTagnizitTagnizit (Tagldit i ddukklen)
- Afrikanz
+ TafrikanstTalbanitTaɛrabtTarmanit
@@ -92,7 +92,7 @@
TapurtugitTarumanitTarusit
- Tasirbit
+ Tasiṛbit (Sirilik)TasluvinitTaspenyulitTaṭurkit
@@ -146,10 +146,10 @@
TaddartTiγremtAbrid n GPX
- Sedγi OsmAnd+
+ Leqqem OsmAnd+Tansa …
- Isem n ufaylu :
- Axxam
+ Isem n ufaylu:
+ AgejdanImdukalWiyyaḍIsem
@@ -159,7 +159,7 @@
ydUgurAsegmi
- Aẓref
+ TadrimtTadawsaAmazrayWayeḍ
@@ -176,11 +176,11 @@
TansaIsefkaFren tamurt
- Takeṛṛust
+ AnehheṛAmsebridTalemmastDdaw
- Tamdint
+ TiɣremtAzadaγGer iberdanrnu
@@ -189,14 +189,14 @@
LdiOsmAndUṭṭun n Uzadaγ
- Sken GPX
+ Sken isefka GPXIberdanAΓ
- %1$.1f ɣef %2$.1f MB
- %.1f MB
+ %1$.1f ɣef %2$.1f MAṬ
+ %.1f MAṬSedγi iten akk (%1$s MB)
- Ger isem n tmurt
- Wiyyaḍ
+ Sekcem isem n tmurt
+ WayeḍSedγiSedγi turaAsedγi aneggaru : %s
@@ -205,17 +205,17 @@
Yal imalasAzalIḍ
- Gmi %1$s ɣef
+ Nadi %1$s s lbeɛdTaggayinAzniqAnadiTaneldit 24/7Ḍfer aγFren taggayt
- Ali
- Ader
- Yergel webrid
- Anaw
+ Ali ↑
+ Ader ↓
+ Yergel ubrid
+ "Type "Isdγiten usridenTanazagt :Ulac tuqqna n Internet
@@ -233,7 +233,7 @@
Sekcem tiγremt neγ tamdintSekcem angal n tesreqqestFfren tamdint
- Ffren angal n tesreqqest
+ Ffren angal n unadiAmanFfer amanTtef tama tayeffust t defred
@@ -246,14 +246,14 @@
TansaTaggaytAbrid : {0}, {1}
- Anadi mebla tuqna
- Anadi s tuqna
+ Anadi s war tuqqna
+ Anadi s tuqqnaNadi γef tansaTamnaḍtAbridMenyifRnu d amenyaf
- Imenyafen
+ InurifenRnu ɣer imenyafenYir anekcamIγewwaṛen
@@ -292,8 +292,8 @@
AbridFakkSmizzwer
- amnusruy
- igemmen
+ Z-A
+ A-ZAsmizzwer s :TabdartIgrawen
@@ -308,7 +308,7 @@
SegTisiragSbedd
- Ulac ayen yettwafen :(
+ Ulac ayen yettwafenIniten n ugrudem n tedbeltIsem n wegrawAgzul
@@ -318,15 +318,15 @@
AwurmanAbridAfellay
- Akud n tazwara
+ Temps de débutAsrag n tagaraIniSenkezIberdanAkud
- Awriran
+ HautD alemmas
- Yuder
+ FaibleUdemIlγaKemmel
@@ -340,18 +340,18 @@
Amkan yellanAha bdu turaTangalt n lpusṭa
- Taɣsert n yisakacen
+ AzrugUr yebdid araSnefli
- Aṛabul
+ AneqqisTiwsiwin
- Jerred
+ S\'abonnerUrmidInsaIγewwaṛen n ujerredTafeggagt n ifeckaIwiǧiten
- Tti amizwer
+ Tti asmizzwerSekles asnifelKkesFren
@@ -363,7 +363,7 @@
Rnu awennitIzenIsem n umeskar
- Commit
+ WennetTalmanit n waddaTamasidunitSali
@@ -371,8 +371,8 @@
Isem n taggaytFren taggaytMiles iwlalen
- Kilometr deg ssaɛa
- Miles deg usrag
+ Kilometr deg usrag
+ Imilen deg usragAssilelIsdγiten usridenAčinawi
@@ -380,7 +380,7 @@
AxuxiAqahwiAceɛlal
- Tabelgalit
+ TabengalitTazeṛbayǧantTabrutuntTalbanit
@@ -407,13 +407,13 @@
id iguranTiẓrigin-ikIγewwaren imuta
- Agwi
- Ur tseqdac ara sakin
+ Aggi
+ Ur seqdac araInsa
- Ar deffir
+ Ɣer deffirAr zdatRmed
-
+ DésactiverUrmidYensaYettwafren
@@ -432,10 +432,10 @@
Ugar n tigawinSismeḍSider
- Asider
+ Azdam…MdelTufγa
- Seggelmes
+ Ḍfes"Sken γef tkarḍa"TakarḍaMenyif
@@ -443,23 +443,23 @@
Iberdan-iwImesliIvidyuten
- Ittuseblel i tuffart
+ TuffartƐass
-
+ IleqmanApṛuksiTabaḍnitTineqqiḍin
- Amezwer
- Amezwer
+ Lexṣas
+ LexṣasSefrekTamnaḍtAdigan
- Asemmezdi asurif n unadi
+ TisidagAfeggag n waddadAseqdac udrigTakamiṛat n ururedSeḥbes
- h
+ sTanzagtAmeccaqTalemmast
@@ -475,7 +475,7 @@
"
\n
\nIγewwaṛen n usiti γezzifen"
-
+ SegmentAsidegTapurtugit (Birizil)
@@ -485,7 +485,7 @@
TafinitTakannadatTalitunit
- Tanurvijit
+ Tanurvijit BukmalTafarsitTapulunitTacinwat (Taḥerfit)
@@ -494,7 +494,7 @@
TaswiditTacinwat (Tamansayt)Takusit
- Lqem :
+ "Lqem: "ΓefURLUsṭralya
@@ -504,7 +504,7 @@
TaneqqiḍtBdu taẓrigtNniḍen
- Asmel web
+ Asmel n webSmenyifi …ulacUrar
@@ -515,44 +515,44 @@
AneγsarAruredTaniγert
- Talqayt
+ AwrirTisdatinΓur-kMDFTAzayezUslig
- Amasal
- Asemmezdi asurif n unadi
+ Format
+ TisidagIseγzafIseγzaf
- Tamanit
- Imyerren
+ Tametwalant
+ TibziminTalleltTalγut
- Sermed askar n tuffart
- Talqayt
+ Askar n tnekcumt
+ AwrirAmagnu
- Asali …
+ Asali...AsyaAseqdac arussin
- Assilel
+ AsniremIγewwaren ImutaTiγremtImenyafen …
- Aranbadu
+ D arbaduTaneṣlit :
- Idigen
+ ImukanYeffeγ-d
- Rmed
+ SermedSexsi
- ur immid ara
- bḍu adɣar
- Tikerrist n tebdelt
+ arummid
+ Bḍu adγar
+ TadbelantAsedhuTanarit
- Taḥanut
- Imzizdig udmawan
+ Tiɣin
+ Imsizdeg udmawanYettwasider-dAr tnila n umussuAzen aneqqis
@@ -562,8 +562,8 @@
tas.ImzizdigImesli yermed
- Tafrist
- Agama
+ S teẓɣzi
+ S tehriSeḥbesMenyifAsali …
@@ -574,48 +574,48 @@
ImmedIγewwaren imernanAsaḍas
- Nadi
- Nadi
- Azlalam
- Tarrut
+ Rechercher
+ Rechercher
+ Tilḥin s uvilo
+ TurrutTazegrartAzadaγAwennit
- Commit
+ WennetImzizdigSekles s yisemimaylAwiRnu tazmilt i usnasƐreḍ tikkelt nniḍen
- SEFSEX
+ Err-dZgelAzadur
- Anadi anemhal
- Ar zdat
+ Talqayt
+ Ɣer zdatTalγut n unermesTebγiḍ ?Lqem amaynut
- Timeẓluyin
+ TimahalinIseγzafIsteqsiyen FAQIsteqsiyen i d-yettuγalen s waṭasIleqmanTikti
- Nemes-aɣ-d
- "Amḍan n ibeddlilen "
+ Anermis
+ Amḍan n ibeddlilenRnut d amenyaf" yekles γer "AmḍiqRnu taggayt tamaynutt
- Assilel
+ AsniremIzenƐreḍ tikkelt nniḍenRnu tanqiḍt γer sdeffirRnu tanqiḍt γer sdat
- Nadi γef tiγremt naγ tama
+ Tiγremt neγ tamnaḍtTaluksumburgit
- Sekned aglam-is
+ Sken aglam.TabyatnamitNadi di liqribRnu neγ ẓreg ifarisen n OSM
@@ -625,13 +625,13 @@
Fren abridLdi tamawt n OSMAru kra iw nadi γef kullec
- Imenyafen-iw
+ InurifenBren γer tama tayeffust t edfreḍBren γer tama tazelmaṭ t edfraḍẒreg asuter n unadi.IţwarnaCreḍ %s immed.
- Ṭṭef tizmilin !
+ Ṭṭef tizmilin!UgarTaggayt IsmenyifenRnu agraw
@@ -658,9 +658,9 @@
Ulac tilist deg wakudAgraw ittwakesAmedya
- Beddl iɣewwaṛen imezwar
+ Beddl iɣewwaṛenSuref i usnifel
- "Snes i umaɣnu amiran %1$s"
+ Snes kan i \"%1$s\"Snes i imavnuyen meṛṛaIzen n usenkerArwes
@@ -668,4 +668,184 @@
Beddel amaɣnuAmaɣnu n usnas ittwabddel ɣer \"%s\"Aberkan
+ Tutlayin
+ Tutlayt
+ Akk tutlayin
+ Adday
+ %1$s ɣef %2$s
+ Afrawan
+ Tawaṭṭfa
+ Tawinest
+ Amkuẓ
+ Akter
+ Selselsi imeṛṛa
+ Aheyyi
+ Angle
+ Antartique
+ Menu
+ Yewjed
+ Ilɣa
+ %1$s: %2$s
+ %1$s %2$s
+ Zzur
+ Udmawan
+ %1$s, %2$s
+ Tti
+ Amellal
+ Tikarḍiwin
+ Inegzumen
+ Tuqqna
+ D arbadu
+ Talqayt
+ Fessus
+ Agafan
+ Tuqqna
+ Wayeḍ
+ Err-d azalen s lexṣas
+ Analytics
+ Ilelli
+ Iseggassen
+ Iseggassen
+ Iseggasen
+ Igguren
+ Igguren
+ Aggur
+ Imalasen
+ Imalasen
+ Amalas
+ Ussan
+ Ussan
+ Ass
+ Tuksitant
+ Lexṣas
+ Fessus
+ Anasiw
+ Ula yiwen
+ Ɣli
+ Nouveau profil
+ D tignit n wesnas
+ Sekles ibeddilen
+ Anaw: %s
+ Aṭaksi
+ Sireg
+ Ala, tanmirt
+ Tasertit tabaḍnit
+ Afmiḍi
+ D arbadu
+ Avrid
+ Imecwaṛen
+ Aɣaras n yimnayen
+ Piste
+ Ameẓlu
+ Abrid
+ Abrid
+ Abrid agejdan
+ Dirit
+ Igerrez
+ Amadeɣ
+ Métal
+ Ablaḍ
+ Adfel
+ Ixmiṛ
+ Ijdi
+ Amahil
+ Teɣzi
+ Largeur
+ Abrid
+ Sker
+ Ijerriden
+ S useggas
+ Yal aggur
+ Err-d
+ Signet
+ Sider meṛṛa
+ Sken tugniwin
+ Bdu taẓrigt
+ Sidered afaylu
+ Yella ulqem
+ Ala ɣef Wi-Fi
+ Ala ɣef Wi-Fi
+ Eg
+ Wikasikel
+ Igburen
+ Ɣeṛ
+ Snirem
+ Agmuḍ
+ Amatu
+ G
+ N
+ M
+ S
+ Amiran
+ off
+ Talawsit
+ Askar n ugdil aččuran
+ Amasal n tsidegt
+ Iţwarna
+ %1$d ɣef %2$d
+ Azemz
+ I
+ Ẓreg isem
+ Snifel ini
+ Plat
+ Taseksert
+ Rnu akaram d amaynu
+ Arured afellay
+ Isem n tigawt
+ Rnu aɣanib n tkarḍa
+ Rnu tigawt
+ Rnu tigawt
+ Tigawt %d
+ Tasiṛbit (Talaṭinit)
+ Sfeḍ akk izwal
+ Téléchargements
+ Yettwakkes
+ Tansa
+ {0} n yiferdisen ttwafernen
+ Agaman
+ m/tasint
+ Serreḥ
+ Sekkeṛ
+ Err-d azalen s lexṣas
+ Sekkeṛ
+ Asekles
+ Beddel asmizzwer
+ Asentel n usnas
+ %1$d n yifyla i d-yeqqimen
+ Sfeḍ akk tineqqidin
+ Iwanaken-Yeddukklen-N-Temrikt
+ Japun
+ Tukranit
+ Tasardit
+ Tamaratit
+ %1$s
+\nn tneqqidin
+ Tabburt n Apṛuksi
+ Asenneftaɣ Apṛuksi
+ Tawlaft
+ Tuccḍa I/O
+ Yettwasider-d
+ Sfeḍ kullec
+ Tukksa n tigawt
+ Abedden n tigawt
+ Timerna n tigawt
+ Tacibwanit
+ Tagalisyant
+ Amalizi
+ Tanurvijit Nynorsk
+ Tatilugut
+ Taṭaylundit
+ Volapük
+ Tanurvijit Bukmal
+ Tirlandit
+ Navajo
+ Tafilippinit
+ Ulac ileqman iwejden
+ m/s
+ Awennityettwarna
+ Aktum ameslaw
+ Azal i waggur
+ Fin
+ Aller vers le haut
+ Amasal n tsidegt
\ No newline at end of file
diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml
index 68b9fd969e..1ac9a2a332 100644
--- a/OsmAnd/res/values-be/strings.xml
+++ b/OsmAnd/res/values-be/strings.xml
@@ -3368,7 +3368,7 @@
Захоўваць кірунакПадчас запісу захоўваць кірунак для кожнага пункта маршруту.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sАсабістыСпампоўванне %sТоўста
diff --git a/OsmAnd/res/values-bg/strings.xml b/OsmAnd/res/values-bg/strings.xml
index ebe8cc3df1..6f717b0f3d 100644
--- a/OsmAnd/res/values-bg/strings.xml
+++ b/OsmAnd/res/values-bg/strings.xml
@@ -422,9 +422,9 @@
Асинхронно редактиране на OSM:Запазени в устройството POI/Бележки за OSMПоказване и управление на локално записаните в устройството забележителности и бележки за OSM
- Определяне на интервал за изпращане на онлайн следа
+ Определяне на интервал за изпращане на онлайн следа.Интервал за онлайн следене
- Задайте интернет адрес със следните параметри: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}
+ Задайте интернет адрес със следните параметри: геогр.ширина={0}, геогр.дължина={1}, време={2}, hdop={3}, надм.височина={4}, скорост={5}, посока={6}.Интернет адрес за онлайн следиЗапишете следата чрез добавката за GPX или чрез настройките на \'Запис на пътуване\'.Показване на текущата следа (трак)
@@ -947,8 +947,8 @@
Точката {0} беше успешно изтрита от любими места.СъобщениеИме на автора
- Коментарът беше успешно добавен
- Възникна грешка: коментарът не е записан
+ Коментарът беше добавен
+ Коментарът не може да бъде добавен.Редактиране на POIСъздай POIТочката не може да бъде намерена или избраното съдържа повече от една точка
@@ -1506,21 +1506,21 @@
албанскиПрочети повечеКакво е новото в
- Скрий предложените обекти
+ Предложени обектиАктуализацияКачванеСъздаден OSM POIСветовната базова карта (покриваща целия свят в при малък мащаб) липсва или е остаряла. Моля, помислите за изтеглянето й .QR кодКартата е изтеглена
- Картата на %1$s беше изтеглена. Върнете се на картния изглед за да я ползвате.
- Преминете към картата
- Установява маркер, който показва първо стартиране на приложението; всички други настройки остават непроменени
+ Картата на %1$s е готова за ползване.
+ Покажи картата
+ Отбелязване на първото стартиране на приложението; всички други настройки остават непроменени.Симулиране на първото стартиране на приложение
- geo:
+ гео:Споделяне на местоположениетоИзпрати
- Съществува категория със същото име. Моля, посочете друго име.
+ Моля, посочете име на категория, което не е заето.Име на категорияДобавяне на нова категорияРегиони
@@ -1530,8 +1530,8 @@
Контурните линии са изключениДобавяне на новИзберете категория
- Изберете мерна единица за скоростта (км/ч, м/с, …)
- Мерна единица за скоростта
+ Дефиниране на единица за скорост.
+ Единица за скоростnmМорски милиКм в час
@@ -1540,7 +1540,7 @@
Минути на километърМинути на миляМорски мили в час (възли)
- възела
+ вз.мин/мЛегенда на картатаСвържете се с нас
@@ -1550,7 +1550,8 @@
м/секЗаписване на изминатия пътНавигация
- Фонов режим
+ Работа
+\n във фонов режимПредпочитана информацияДа се показва при стартиранеКопирано
@@ -1558,10 +1559,10 @@
Модифицирани OSM POIИзтрити OSM POIОтвори OSM бележка
- Моля, задайте правилния тип POI или пропуснете
+ Моля, задайте правилния тип POI или пропуснете.Бутонът \'Меню\' стартира таблото за управлениеДостъп от картата
- Ако е изключено се стартира с екрана на картата
+ \"Изкл.\" стартира директно картата.Отворена отново бележка на OSMБележка на OSM с коментарИзтрита бележка на OSM
@@ -1571,15 +1572,15 @@
Добавяне на коментарОтворете нановоЗатворете бележката
- Бележката беше успешно създадена
- Възникна грешка: Бележката не беше създадена
- Бележката беше успешно затворена
- Възникна грешка: Бележката не беше затворена успешно
+ Бележката беше създадена
+ Бележката не беше създадена
+ Бележката беше затворена
+ Бележката не може да се затвори.Изпращане на данни до OSMИзтриване на GPX точка?Редактиране на GPX точкаМестоположение
- Спиране на симулацията на място
+ Спиране на симулацията на място.Симулира с помощта на изчисления маршрут или записана GPX следаGPX файл с бележкиМеста
@@ -1731,11 +1732,11 @@
Най-ниско качествоНай-високо качествоКачество на видеото
- Изберете качество на видеото
+ Изберете качество на видеото.Формат за аудио изход
- Изберете формат за аудио изход
+ Изберете формат за аудио изход.Аудио битрейт
- Изберете аудио битрейт
+ Изберете аудио битрейт.Няма адресТърсене на адресДокоснете върху елемент за да видите повече информация, натиснете и задръжте за да деактивирате или да изтриете. Данни в устройството (%1$s свободни):
@@ -1749,21 +1750,21 @@
Разстояние:Продължителност:Приложението няма разрешение да използва SD картата
- Приложението няма разрешение да ползва данни за местоположение.
- Приложението няма разрешение да ползва камерата.
- Приложението няма разрешение да ползва микрофона.
+ Разрешение за ползване на данни за местоположение.
+ Разрешение за ползване на камерата.
+ Разрешение за ползване на микрофона.Актуализации онлайнДостъпни картиИзберете гласов пакет
- Изберете или свалете гласов пакет на Вашия език
- Изберете пътищата, които да се избегнат при навигация
+ Изберете или свалете гласов пакет на вашия език
+ Изберете пътищата, които да се избегнат при навигация.ЗвукПоследна актуализация: %sЗаписване на разделиДължина на клипа
- Всеки записан видео клип ще бъде ограничен от този размер
+ Ограничение за продължителност на записаните видео клипове.Място за съхранение
- Големина на определената за видео клипове памет
+ Общ размер на паметта за записани клипове.АктуализацииПоследна промяна на картата: %sНяма избран
@@ -1805,7 +1806,7 @@
Класация на OSM редакториOsmAnd Live абонаментАбонирайте се
- Публично име
+ Видимо имеНе показвай името ми в отчетиПоддръжка регионРазходи на месец
@@ -1830,13 +1831,13 @@
Втори маркер на картатаЛента с инструментиДжаджи
- Искате ли да добавите всички точки, за да нанесете маркери?
+ Добавяне на всички точки като маркери\?Добави към карта маркериИзберете маркерите на картатаВ обратен редАктивиране на функцията маркери на картата.Изтриване всички активни маркери\?
- Искате ли да изчистите хронологията на маркерите на картата?
+ Изчистване хронологията на маркерите\?Активни маркериМаркериМаркер на картата
@@ -2025,4 +2026,65 @@
Някои елементи вече съществуватИзберете данните, които да се добавят.Стил на рендиране
+ Заменете друга точка с тази
+ Настройките ще бъдат върнати в първоначалното състояние след скриване.
+ Основните действия съдържат само 4 бутона.
+ Основни действия
+ Можете да получите достъп до тези действия, като докоснете бутона „Действия“.
+ Можете да премествате елементи само в тази категория.
+ Добавка за разработчици
+ Ски разходки
+ Моторни шейни
+ Персонализиран плъгин OsmAnd
+ Елементи
+ Промените са приложени към %1$s профил.
+ %1$s не може да прочете.
+ %1$s не може да се запише.
+ %1$s не можа да се импортира.
+ Изберете файл следа
+ Езици
+ Език
+ Всички езици
+ Квадрат
+ Маршрутът ще бъде преизчислен, ако разстоянието от маршрута до текущото местоположение е повече от избраната стойност.
+ %1$s от %2$s
+ Склонове
+ Показване/скриване на терена
+ Скриване на терена
+ Показване на терена
+ Бутон за показване или скриване на терена върху картата.
+ Изтриване на описанието
+ Добавете описание
+ Изберете група
+ Изберете форма
+ Кръг
+ Осмоъгълник
+ Мин
+ Персонализиране на потребителския интерфейс
+ Действия в контекстното меню
+ Преподреждане или скриване на елементи от %1$s.
+ Разделител
+ Елементи по-надолу, отделени с разделител.
+ Скрити
+ Тези елементи са скрити от менюто, но представените опции или добавки все още работят.
+ Някои статии в Уикипедия може да не са налични на вашия език, изберете езиците, на които статиите в Уикипедия ще се показват на картата.
+\nЩе можете да превключвате между всички налични езици, докато четете статията.
+ Настройване на профил
+ Превключване на профил
+ Профилът на приложението е променен на „%s“
+ Logcat буфер
+ Настройки на добавката
+ По подразбиране
+ Изтеглете подробна %s карта, за да видите тази област.
+ Трудност на пистите
+ Докоснете бутон и слушайте съответната гласова подкана, за да чуете дали липсва или е дефектен
+ Тип път
+ Как да отворите статии от Уикипедия\?
+ Статията не е намерена
+ Търсене на съответната уики статия
+ UTM Standard
+ Пример
+ OsmAnd използва стандарта UTM, който е подобен, но не е еднакъв с формата UTM NATO .
+ Настройки за профил:
+ Инсталирани добавки
\ No newline at end of file
diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml
index 0e96cc3002..d6d6f7f250 100644
--- a/OsmAnd/res/values-ca/strings.xml
+++ b/OsmAnd/res/values-ca/strings.xml
@@ -18,7 +18,7 @@
El punt de sortida massa lluny de la carretera més propera.Indica el temps límit d\'aparcamentTrieu el tipus de pàrquing
- Evita les carreteres no pavimentades
+ Només vies pavimentadesEvita…Sense interrupcióConfigura la pantalla
@@ -144,7 +144,7 @@
AccessibilitatUtilitza colors fluorescents per mostrar traces i rutes.S\'està pujant…
- Configureu els advertiments de trànsit (límits de velocitat, cues, bandes rugoses, túnels), avisos de radars i informació dels carrils.
+ Configureu els avisos de trànsit (límits de velocitat, cues, bandes rugoses, túnels), avisos de radars i informació dels carrils.Afegeix un avís a CalendariFes transparents totes les característiques d\'àrees de sòl al mapa.S\'ha creat el filtre \'%1$s\'
@@ -176,7 +176,8 @@
El vostre nom d\'usuari d\'OSMLa vostra contrasenya a OSMNo hi ha prou espai lliure per baixar %1$s MB (lliure: %2$s).
- "Voleu baixar {0} fitxer(s)\? S\'ocuparà {1} MB (de {2} MB)."
+ Voleu baixar {0} fitxer(s)\?
+\nS\'ocuparà {1} MB (de {2} MB).Tema transparentTraieu el cotxe de l\'aparcamentOptimitza el mapa per
@@ -185,10 +186,10 @@
Utilitza el ratolí de bola per controlar el zoomEs van pujar {0} PDI/notesPDIs/notes d\'OSM desades al dispositiu
- Mostra i gestiona els PDI/notes d\'OSM anotats a la base de dades del dispositiu.
+ Mostra i gestiona els PDI/notes d\'OSM de la vostra base de dades local.Informació de dia/nitCarrils
- Evita els ferris
+ Sense ferrisS\'ha afegit una notificació a la vostra agenda perquè traieu el vostre cotxe que es pot editar o treure allà mateix.Mantingueu-vos a l\'esquerra i continueuMantingueu-vos a la dreta i continueu
@@ -212,7 +213,7 @@
Inicia l\'animacióJa existeix un fitxer amb aquest nom.Ruta GPX
- No hi ha dades locals per cercar els PDI.
+ Baixeu dades locals per cercar els PDI.Cerca pel nomNominatim en líniaS\'està cercant la posició…
@@ -232,7 +233,7 @@
Estil del mapaMinimapa de rutaVelocitat de simulació de la ruta:
- Seleccioneu el mitjà de transport
+ Mitjà de transport:Edició fora de líniaUtilitza sempre l\'edició fora de línia.Edició asincrònica de l\'OSM:
@@ -242,7 +243,7 @@
Memòria assignadaMemòria nativa total assignada a l\'aplicació %1$s MB (Dalvik %2$s MB, altres %3$s MB).
\nMemòria proporcional %4$s MB (límit de l\'Android %5$s MB, Dalvik %6$s MB).
- No s\'ha trobat cap mapa de vectors fora de línia per aquesta localització. Baixeu-ne un a Configuració (\'Gestió de fitxers de mapes\') o canvieu al connector \'Mapes en línia\'.
+ Baixeu un mapa vectorial local per aquesta localització des de \'Configuració\' (\'Gestió de fitxers de mapes\') o canvieu al connector \'Mapes en línia\'.Paràmetres globals de l\'aplicacióÉs necessari per a les trameses a openstreetmap.org.El fitxer de dades de PDI «%1$s» és redundant i serà suprimit.
@@ -272,11 +273,11 @@
Dades de mapesDesactivatIndicacions de veu (TTS)
- Indicacions de veu (gravades)
+ Indicacions de veu (enregistrades)Dades dels PDIVeu sintetitzada TTSUna altra cerca
- Seleccioneu la mida del text dels noms al mapa.
+ Mida del text dels noms al mapa:Mida de la lletra al mapaS\'estan descomprimint dades noves…La llengua no està suportada
@@ -332,7 +333,7 @@
\n
\nPremeu contínuament per veure les opcions"No hi ha ítems per %1$s
- S\'ha seleccionat un servei de navegació en línia però no esteu connectat a Internet.
+ El servei de navegació en línia no funciona sense connexió.Falten dadesÀudio d\'avísÀudio de multimèdia/navegació
@@ -350,48 +351,66 @@
Llegint les tessel·les emmagatzemades…No s\'ha pogut trobar la carpeta especificada.Carpeta d\'emmagatzematge de dades
- "OsmAnd (OSM Automated Navigation Directions)
+ OsmAnd (OSM Automated Navigation Directions)
\n
-\nOsmAnd és una aplicació de navegació feta amb programari de codi obert amb accés a una gran varietat de dades globals d\'OSM. Totes les dades dels mapes (siguin mapes vectorials o de tessel·les), es poden desar a la targeta de memòria del telèfon pel seu en desconnexió. També calcula rutes, amb connexió o sense, incloent l\'orientació per veu.
+\n
+\nOsmAnd és una aplicació de navegació feta amb programari de codi obert amb accés a una gran varietat de dades globals d\'OSM. Totes les dades dels mapes (siguin mapes vectorials o de tessel·les), es poden desar a la targeta de memòria del telèfon pel seu en desconnexió. També calcula rutes, amb connexió o sense, incloent l\'orientació per veu.
\n
+\n
\nAlgunes de les característiques principals:
+\n
\n- Funcionament complet en desconnexió (desa localment els mapes vectorials i de tessel·les baixats)
+\n
\n- Mapes vectorials compactes de tot el món per usar en desconnexió
+\n
\n- Baixada de mapes nacionals o regionals directament des de l\'aplicació
+\n
\n- Diverses capes de mapes alhora, com traces GPX o de navegació, punts d\'interès, Preferits, parades de transport públic, etc. amb nivell d\'opacitat personalitzada
+\n
\n- Cerca, fora de línia, d\'adreces i llocs
-\n- Càlcul de rutes fora de línia fins per distàncies d\'abast mitjà.
+\n
+\n- Càlcul de rutes fora de línia fins per distàncies d\'abast mitjà.
+\n
\n- Modalitats opcionals de cotxe, bicicleta i vianant
+\n
\n- Canvi automàtic de vista diürna a nocturna
+\n
\n- Escala del mapa en funció de la velocitat
+\n
\n- Orientació del mapa segons la brúixola o la direcció del moviment
+\n
\n- Indicació de carril, velocitat màxima permesa, veus enregistrades i/o sintetitzades
\n
+\n
\nLimitacions d\'aquesta versió gratuïta de OsmAnd:
+\n
\n- Limitació en el nombre de mapes baixats
+\n
\n- No hi ha accés als PDIs de la Viquipèdia sense connexió
\n
-\nOsmAnd es desenvolupa activament i el nostre projecte i el seu progrés continu depenen de donacions pel desenvolupament i proves de noves funcions. Si us plau, considereu la compra d\'OsmAnd+ o patrocinar una nova característica concreta, o fer una donació genèrica a la pàgina https\\\\osmand.net."
+\n
+\nOsmAnd es desenvolupa activament i el nostre projecte i el seu progrés continu depenen de donacions pel desenvolupament i proves de noves funcions. Si us plau, considereu la compra d\'OsmAnd+ o patrocinar una nova característica concreta, o fer una donació genèrica a la pàgina https\\\\osmand.net."OsmAnd+ (OSM Automated Navigation Directions)
-\n
-\nL\'OsmAnd+ és un programari de navegació de codi obert amb accés a una gran varietat de dades globals de OpenStreetMap. Totes les dades de mapes (mapes de tessel·les o vectorials) poden emmagatzemar-se a la targeta de memòria del telèfon pel seu ús sense connexió. També proporciona la funcionalitat de càlcul de rutes sigui amb connexió o sense, incloent orientació per veu.
-\n
+\n
+\nL\'OsmAnd+ és un programari de navegació de codi obert amb accés a una gran varietat de dades globals de OSM. Totes les dades de mapes (mapes de tessel·les o vectorials) poden emmagatzemar-se a la targeta de memòria del telèfon pel seu ús sense connexió. També proporciona la funcionalitat de càlcul de rutes sigui amb connexió o sense, incloent orientació per veu.
+\n
\nL\'OsmAnd+ és la versió de pagament; comprant-la esteu donant suport al projecte, financeu el desenvolupament de noves funcions i rebreu les darreres actualitzacions.
-\n
+\n
\nAlgunes de les característiques centrals són:
\n- Funcionalitat completa fora de línia (desa en el dispositiu d\'emmagatzemament els mapes vectorials i de mosaic baixats)
\n- Mapes vectorials compactes de tot el món disponibles
\n- Baixada il·limitada de mapes nacionals o regionals directament des de l\'aplicació
\n- Disponibilitat sense connexió dels PDI baixats prèviament de Viquipèdia, ideal per fer turisme
\n- Possibilitat de superposar diverses capes de mapes simultànies, com traces GPX o de navegació, Punts d\'interès, Favorits, corbes de nivell, parades de transport públic, mapes addicionals amb nivell de transparència ajustable
-\n
+\n
\n- Cerca fora de línia d\'adreces i llocs (PDIs)
\n- Càlcul de rutes fora de línia per distàncies d\'abast mitjà
\n- Modalitats opcionals de cotxe, ciclista i vianant
\n- Ajust automàtic de representació diürna/nocturna
\n- Escala automàtica del mapa segons la velocitat
\n- Orientació del mapa segons la brúixola o la direcció del moviment
-\n- Indicacions de carril, velocitat màxima permesa, veus enregistrades i sintetitzades"
+\n- Indicacions de carril, velocitat màxima permesa, veus enregistrades i sintetitzades
+\n"Seleccioneu el nivell mínim de zoom per mostrar el mapa si està disponible. Caldrà el fitxer SRTM separat:Aquest connector mostra la configuració de característiques per al desenvolupament i depuració com la verificació o simulació de rutes, el rendiment del renderitzat o les indicacions de veu. Aquestes configuracions s\'adrecen a desenvolupadors i no són d\'utilitat per a un usuari normal.En consonància amb la configuració del sistema Android
@@ -419,7 +438,7 @@
CarrerCotxeBicicleta
- Vianant
+ A peuCercaCercaSurt
@@ -514,13 +533,13 @@
Activeu la visualització en 3D del mapa.Mostra les coordenades de GPS al mapaCentre
- Per defecte
+ Mapa esquemàticLatitudLongitudRegióCancel·laCrea un PDI
- S\'han trobat unes quantes categories coincidents amb la consulta:
+ S\'han trobat unes quantes categories de PDI relacionades.Sortida de guiat per veuAjusteu la transparència del mapa base.Opacitat del mapa base
@@ -597,9 +616,9 @@
DireccionsS\'està carregant el PDI…S\'estan carregant els carrers…
- No s\'ha pogut calcular la ruta
+ No s\'ha pogut calcular la ruta.S\'estan carregant els codis postals…
- Heu arribat a la vostra destinació
+ Heu arribat.Coordenades no vàlidesS\'estan desant el fitxer GPX…Edició d\'OpenStreetMap
@@ -627,7 +646,7 @@
Elimina el PDICrea un PDI"Gràcies per utilitzar l\'OsmAnd. Baixeu informació regional fora de línia a través de \'Configuració\' → \'Gestió de fitxers de mapes\' per veure mapes, situar adreces, buscar els PDIs, trobar transports públics i més."
- El mapa base està seleccionat per baixar-se per les funcions de l\'aplicació.
+ El mapa mundial de fons necessari per les funcionalitats bàsiques està a la cua de baixades.Mostra paràmetres per activar el seguiment i la navegació en procés de fons mitjançant l\'activació periòdica del dispositiu GPS (amb la pantalla apagada).Preferències relatives a l\'accessibilitat.Mostra el rendiment de la renderització.
@@ -638,7 +657,7 @@
No s\'ha trobat resNo s\'ha pogut buscar la llista de regions de https://osmand.net.fallada
- No s\'ha pogut desar el fitxer GPX
+ No s\'ha pogut desar el fitxer GPX.Especifiqueu els paràmetres d\'Openstreetmap.org (OSM) que calen per les trameses a OSM.EdificiEdifici
@@ -653,7 +672,7 @@
BarriLlogaretVila
- Esteu a punt de suprimir %1$d Preferits i %2$d grups de Preferits. N\'esteu segurs?
+ Confirmeu la supressió de %1$d Preferits i de %2$d grups de Preferits\?Baixeu el mapa base mundial per tenir una vista que abasti tot el món a gran escala.Baixeu («fora de línia») dades per utilitzar mapes sense connexió.Voleu anar a la botiga d\'aplicacions per baixar el llenguatge seleccionat?
@@ -688,23 +707,23 @@
EmergènciesRestaurants"Amb aquest connector d\'OsmAnd es poden fer contribucions a OSM com la creació o modificació de PDIs d\'OSM, obrir o comentar anotacions OSM o contribuir amb fitxers GPX enregistrats. OSM és un projecte gestionat per una comunitat, de domini públic i de cartografia global,. Per més detalls dirigiu-vos a https://openstreetmap.org. La participació activa s\'agraeix i aquestes contribucions es poden fer directament des OsmAnd, si heu indicat les vostres credencials personals d\'OSM a l\'aplicació."
- La llengua seleccionada no està suportada per el motor de TTS (text a veu) d\'Android instal·lat. Voleu buscar altres motors TTS a la botiga d\'aplicacions? Altrament s\'usarà la llengua del TTS per defecte.
+ "La llengua seleccionada no està suportada per el motor de TTS (text a veu) d\'Android instal·lat, s\'usarà la llengua del TTS per defecte. Voleu buscar un altre motor TTS a la botiga\?"Comparteix l\'ubicació usantFormat de mapa «{0}» obsolet, no s\'admetMàxim zoom en precàrregaTrieu l\'aparença de dibuixatResultats de transport (cap destí):Resultats de transport ({0} al destí):
- Les dades de veu seleccionades no estan disponibles
+ La llibreria seleccionada de missatges de veu no està disponibleEsperant el senyal…
- El format d\'horaris d\'obertura no es pot modificar
+ No es pot canviar el format d\'horaris d\'oberturaprioritza distanciaAplicació de navegació OsmAnd
- "Access a diferents tipus de mapa (anomenats de tessel·les o de bits), des de les tessel·les predefinides d\'OSM (com Mapnik) a imatges de satèl·lit i capes específiques com mapes meteorològics, climàtics, geològics, de relleu, etc.
+ Accediu a diferents tipus de mapa (anomenats de tessel·les o de bits), des de les tessel·les predefinides d\'OSM (com Mapnik) a imatges de satèl·lit i capes específiques com mapes meteorològics, climàtics, geològics, de relleu, etc.
\n
-\nQualsevol d\'aquests mapes es pot utilitzar sigui per veure\'s com principal (base) o com una superposició o sots-posició d\'un altre mapa base (com els mapes d\'OsmAnd habituals en local). Es pot amagar determinats elements dels mapes vectorials de l\'OsmAnd via el menú «Configuració del mapa» per fer més visible el mapa de fons.
+\nQualsevol d\'aquests mapes es pot utilitzar, sigui per veure\'s com principal (base) o com una superposició o sots-posició d\'un altre mapa base (com els mapes d\'OsmAnd habituals en local). Es pot amagar determinats elements dels mapes vectorials de l\'OsmAnd via el menú «Configuració del mapa» per fer més visible el mapa de fons.
\n
-\nBaixeu mapes de tessel·les directament de proveïdors en línia, o de preparats per un ús en local (copiats manualment al directori de l\'OsmAnd) així com una base de dades SQLite construïda per diferents eines de tercers de preparació de mapes."
+\nBaixeu mapes de tessel·les directament de proveïdors en línia o ja preparats per un ús local (copiats manualment al directori de l\'OsmAnd) així com una base de dades SQLite construïda per diferents eines de preparació de mapes de tercers.Escolliu la sortida d\'àudio pel guiat per veu.Renderització vectorialAfegeix una etiqueta
@@ -758,19 +777,19 @@
Enviant…Cerca una adreça utilitzant OSM NominatimCerca en línia: Núm. de la casa, carrer, ciutat
- No mostris tessel·les de mapes en línia per un nivell de zoom més enllà d\'aquest.
+ No mostris mapes en línia per un nivell de zoom més enllà d\'aquest."Distància total %1$s, temps de viatge %2$d h %3$d min."
- Escolliu un servei de navegació en línia o fora de línia.
+ Servei de navegació en línia o local.Voleu baixar {0} - {1} ?Ja existeixen dades locals ({1}) per {0}. Voleu actualitzar-les ({2}) ?S\'ha editat un punt preferitMostra la ruta
- Primer de tot cal que seleccioneu una destinació
+ Primer de tot cal que establiu una destinacióHa fallat l\'autoritzacióS\'estan carregant els carrers/edificis…
- No s\'ha pogut calcular la ruta
- La ruta calculada és buida
- Torna enrere al mapa de l\'OsmAnd
+ No s\'ha pogut calcular la ruta.
+ La ruta calculada està buida.
+ Torna al mapaS\'estan llegint les dades locals…Utilitzeu Internet per calcular una ruta.Desa la traça actual
@@ -779,7 +798,7 @@
ObjectiuEl filtre \'%1$s\' s\'ha eliminatLes dades dels PDI s\'han actualitzat (se n\'han carregat {0})
- No s\'han pogut carregar les dades del servidor
+ No s\'han pogut carregar dades del servidorAcostar el zoom us permet actualitzar els PDIsVoleu actualitzar les dades locals des d\'Internet?Edificis: {0}, {1}, {2}
@@ -810,7 +829,7 @@
Serveis d\'enregistramentEnregistra un vídeoEnregistra un so
- Seleccioneu el format de sortida de vídeo.
+ Format de sortida de vídeo:Configureu les preferències de so i vídeo.Configuració d\'àudio/vídeo L\'enregistrament ha fallat
@@ -819,8 +838,8 @@
ReprodueixNotes d\'àudioConnector del Dropbox
- El connector de Dropbox us permet sincronitzar traces i notes d\'àudio i vídeo amb el vostre compte de Dropbox.
- Seleccioneu l\'acció per defecte del giny.
+ Sincronitzeu traces i notes d\'àudio i vídeo amb el vostre compte de Dropbox.
+ Acció per defecte del giny:Acció per defecte del ginyObre un reproductor externEnregistra una nota d\'àudio
@@ -843,7 +862,7 @@
EnregistramentEnregistrament %1$s %3$s %2$sCapa d\'enregistraments
- No es pot reproduir l\'enregistrament
+ No s\'ha pogut reproduir l\'enregistrament.AturaConsidereu comprar el connector de corbes de nivell per recolzar el seu desenvolupament futur.Connector de corbes de nivell
@@ -855,7 +874,7 @@
ComençaConnector de l\'OsmAnd per a corbes de nivell fora de líniaMesura de distàncies
- Encara no teniu definida la localització de la nota. «Usa localització…» per assignar una nota a la localització especificada.
+ Premeu «Usa localització…» per afegir una nota a la localització.Feu notes d\'àudio/fotografies/vídeo durant un trajecte, mitjançant un botó a la pantalla o directament al menú de localització contextual.Connector de notes d\'àudiopeces
@@ -879,8 +898,8 @@
S\'estan obrint les modificacions…Utilitza els noms anglesos als mapesIntroduïu la latitud i la longitud en el format seleccionat (G - graus, M - minuts, S - segons)
- GGG.GG
- GGG MM.MM
+ GGG.GGGGG
+ GGG MM.MMMGGG MM SS.SVoleu eliminar el punt Preferit \'%s\'?El punt preferit {0} eliminat.
@@ -896,7 +915,7 @@
Aquest connector proporciona tant corbes de nivell superposades com una capa d\'ombres amb efecte relleu per superposar als mapes de OsmAnd. Corredors, ciclistes, excursionistes i qualsevol interessat en el perfil de relleu del terreny ho agrairan força. (Fixeu-vos que les corbes de nivell i/o els efectes de relleu són baixades independents i complementàries, disponibles un cop s\'hagi activat el connector).
\n
\nLes dades globals (entre 70 ° nord i 70 ° sud) estan basades en mesures del SRTM (Shuttle Radar Topography Mission) i del ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), un instrument de generació d\'imatges a bord de Terra, el satèl·lit insígnia del Sistema d\'Observació de la Terra de la NASA. ASTER és un esforç de col·laboració entre la NASA, el Ministeri d\'Economia i Comerç del Japó (METI) i la fundació Japan Space Systems (J-spacesystems).
- Indiqueu quan mostrar mapes de només carreteres:
+ Trieu quan mostrar mapes de carreteres i prou:Inicia els anuncis automàticsPer a veure la localització seguiu l\'enllaç web %1$s o l\'enllaç Android %2$sL\'obtenció del llistat de versions de l\'OsmAnd ha fallat
@@ -918,8 +937,8 @@
Feu un donatiu per veure noves funcionalitats implementades a l\'aplicació.Lateral (8 sectors)Sentit horari (12 sectors)
- La carpeta d\'emmagatzematge a la targeta de memòria no és accessible!
- Seleccioneu primer un municipi o carrer
+ No es pot accedir a la carpeta d\'emmagatzematge de la targeta de memòria!
+ Estableix primer un municipi o carrerCerca un carrer en els municipis propersOrdenació porta a portaSuprimeix el punt
@@ -953,10 +972,10 @@
Nom de carrerNúmeroEnregistrament del trajecte
- Seleccioneu l\'aspecte de l\'aplicació.
+ Personalitzeu l\'aspecte de l\'aplicació.Aspecte gràficOpcions d\'accessibilitat
- Seleccioneu l\'adreça
+ Indiqueu l\'adreçaSeleccioneu el PreferitModificacions de l\'OSMAltres accions
@@ -988,7 +1007,7 @@
\n * Premeu contínuament al mapa per suprimir el punt anterior.
\n * Premeu contínuament un punt per veure\'n i afegir-hi una descripció.
\n * Premeu el giny de mesura per veure més accions.
- Selecciona sota demanda
+ Sota demanda\?Proveïdor de la ubicacióS\'estan convertint els noms nadius/anglesos …Indiqueu l\'interval d\'enregistrament de traces a desar durant la navegació
@@ -999,7 +1018,7 @@
No s\'ha trobat el node, o la instal·lació consta de diferents nodes, i això encara no s\'admet.S\'ha produït un error d\'E/S durant l\'acció {0}.Anuncia…
- Configureu la notificació dels noms de carrer, incidències de trànsit (cues, bandes sonores), avisos de radar, límits de velocitat.
+ Configureu la notificació dels noms de carrer, incidències de trànsit (cues, bandes sonores), avisos de radar i límits de velocitat.Noms de carrers (TTS)Límit de velocitatRadars
@@ -1015,23 +1034,23 @@
Via:Des de:Destinació %1$s
- No s\'han pogut desar els canvis d\'OSM
+ No s\'han pogut desar els canvis d\'OSM.Desa com un canvi OSMOpenMaps.eu
- Reprodueix un so en fer una foto
+ Reprodueix el so en fer una fotoEnfocament de nitidesa màximaEnfocament automàticNo s\'ha pogut afegir el comentari.Contrasenya de l\'OSM (opcional)Balisa marina
- Seleccioneu els perfils per donar visibilitat en l\'aplicació.
+ Seleccioneu els perfils a mostrar.Perfils de l\'aplicacióRenderitzat del mapaSenderismeMotoVaixellAvió
- Ara suprimireu %1$d canvis de l\'OSM. N\'esteu segur?
+ Esteu segurs que voleu esborrar %1$d canvis de l\'OSM\?Suprimeix-ho totCalculeu primer la rutaSimulació amb la ruta calculada
@@ -1075,10 +1094,10 @@
Desactiva el càlcul de ruta en dues fases per navegació amb cotxe.Desactiva el càlcul complex de la rutaEl proveïdor de tessel·les %1$s estava desat
- Tria existent…
+ Selecciona existent…Info depuració FPSOrdre optimitzat de les fites de la ruta fins a la destinació.
- "Creació d\'itineraris prement el mapa o utilitzant o modificant fitxers GPX existents, per planificar un trajecte i mesurar la distància entre punts. El resultat es pot desar com un fitxer GPX que podreu usar més endavant com una referència."
+ Creació d\'itineraris prement el mapa o utilitzant o modificant fitxers GPX existents, per planificar un trajecte i mesurar la distància entre punts. El resultat es pot desar com un fitxer GPX que podreu usar més endavant com una referència."Des de la versió 4.4 d\'Android (KitKat) no podeu baixar i actualitzar els mapes en l\'antiga carpeta (%s). Voleu copiar tots els fitxers de l\'OsmAnd a la nova destinació?
\n Nota 1: Els vostres fitxers obsolets quedaran intactes (els podeu esborrar manualment).
\n Nota 2: En el nou lloc d\'emmagatzemament no serà possible compartir fitxers entre l\'OsmAnd i l\'OsmAnd+."
@@ -1099,7 +1118,7 @@
Evita autopistesLímit de pesEspecifica el límit de pes permès del vehicle a les rutes.
- Trieu l\'interval d\'activació que seguirà el servei en segon pla.
+ Interval d\'activació que seguirà el servei en segon pla:Estableix un so o el silenci en fer fotos.La càmera intenta enfocar de manera contínuaMode macro (per a enfocar de prop)
@@ -1108,14 +1127,14 @@
Mode d\'enfocament de la càmera:Tipus d\'enfocamentNo s\'ha pogut fer l\'acció {0}.
- Trieu l\'origen de les tessel·les, sigui en línia o de la memòria cau
+ Trieu l\'origen de les tessel·les, sigui en línia o de la memòria cau.La darrera execució de l\'OsmAnd ha fallat. El fitxer log és a {0}. Si us plau informeu del problema i adjunteu el fitxer log.Trieu aturada per sortirEndavantEl servei de navegació en segon pla necessita tenir un sistema d\'ubicació activat.
- Trieu el sistema d\'ubicació que utilitzarà el servei en segon pla.
+ Sistema d\'ubicació que utilitzarà el servei en segon pla:Selecciona una traça GPX…
- Selecciona un destí
+ Establiu un destíSelecciona al mapaPreferidaPreferències de ruta
@@ -1234,14 +1253,14 @@
%1$s \nPunts%1$s \nTraça %2$sGuarda com un grup de Preferits
- Seleccioneu destinacions
+ Establiu destinacionsEtiquetes superposades de PDIsMostra els botons de zoom durant la navegació.Mostra els botons de zoomOrdena per distànciaOrdena per nom
- Cap fitxer GPX seleccionat. Seleccioneu-ne un prement-lo contínuament.
- Selecciona per mostrar
+ Seleccioneu un fitxer GPX prement-lo prolongadament.
+ Seleccioneu una traçaNo s\'ha trobat cap baixada, verifiqueu la vostra connexió a Internet.EdificisVies sense circulació de vehicles
@@ -1262,7 +1281,7 @@
HebreuEndavantTauler
- Envia el registre de la traça a un servei web específic si s\'ha activat la gravació en un GPX.
+ Envia les dades de la traça a un servei web específic si està activat l\'enregistrament de GPX.Registre de traça en línia (cal GPX)Inicia un registre de traça en líniaAtura el registre de traça en línia
@@ -1307,9 +1326,10 @@
PDI propersItinerarisTot
- "Aquest connector activa la funcionalitat d\'enregistrar i desar els vostres trajectes, sigui prement sobre el mapa el giny de gravació GPX, o sigui desant-los tots en un fitxer GPX automàticament.
+ Aquest connector activa la funcionalitat d\'enregistrar i desar els vostres trajectes, sigui prement sobre el mapa el giny de gravació GPX, o sigui desant-los tots en un fitxer GPX automàticament.
\n
-\nLes rutes enregistrades es poden compartir amb els vostres amics o aportar-les per ser utilitzades a OSM. Els atletes poden utilitzar els seus registres per monitoritzar els seus entrenaments. Es pot fer una anàlisi bàsica de les rutes directament a OsmAnd com la durada de cada volta, velocitat mitjana, etc., i, per descomptat, es poden analitzar amb eines especialitzades de tercers."
+\n
+\nLes rutes enregistrades es poden compartir amb els vostres amics o aportar-les per ser utilitzades a OSM. Els atletes poden utilitzar els seus registres per monitoritzar els seus entrenaments. Es pot fer una anàlisi bàsica de les rutes directament a OsmAnd com la durada de cada volta, velocitat mitjana, etc., i, per descomptat, es poden analitzar amb eines especialitzades de tercers.Enregistrament de trajecteshDurada
@@ -1331,9 +1351,9 @@
Premeu qualsevol indicació existent per veure més detalls, premeu contínuament per desactivar o esborrar. Dades actuals al dispositiu (%1$s lliure):Definiu la mida del text en el mapa.Mida del text
- Nom de punt preferit duplicat
- El nom indicat del Preferit ja es fa servir, s\'ha canviat a %1$s per evitar duplicitats.
- El nom del Preferit s\'ha canviat a %1$s per facilitar el desar bé la cadena amb emoticones en un fitxer.
+ S\'ha indicat un nom de Preferit duplicat
+ El nom del Preferit s\'ha canviat a %1$s per evitar duplicitats.
+ El nom del Preferit s\'ha canviat a \'%1$s\' per desar el text que inclou emoticones en un fitxer.Imprimeix la rutaTolerància sobre el límit de velocitatTrieu el marge de tolerància al límit de velocitat per sobre del que rebreu un avís de veu.
@@ -1428,8 +1448,8 @@
Per instal·lar aquest connector us cal una connexió a internet.Vista mapa d\'esquíVista cartes marines
- Per veure les pistes d\'esquí cal que baixeu un mapa específic
- Per accedir a cartes marines cal que baixeu un mapa específic
+ Baixeu el mapa local específic per veure les instal·lacions d\'esquí.
+ Baixeu un mapa local específic per veure les dades nàutiques.ActivaDesactivaPista condicionada
@@ -1457,7 +1477,7 @@
\nNo cal baixar un mapa específic, aquesta vista es crea amb els nostres mapes estàndards.
\n
\nAquesta vista es pot desfer tornant a fer la mateixa selecció, o en canviar l\'«Estil del mapa» de «Configuració del mapa» a la vista que es desitgi.
- "Esteu segur que voleu pujar %1$d canvi(s) a OSM\?"
+ Esteu segur que voleu pujar %1$d canvi(s) a OSM\?Voleu esborrar l\'historial?Indiqueu el temps màxim d\'espera en la pantalla de planificació de la ruta.Inicia el guiatge gir a gir després de…
@@ -1813,8 +1833,8 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Distància:Durada:OsmAnd no té autorització per utilitzar la tarja de memòria
- L\'aplicació no tenia autorització per utilitzar les dades d\'ubicació.
- L\'aplicació no tenia autorització per utilitzar la càmera.
+ Autorització per accedir a les dades d\'ubicació.
+ Autorització per utilitzar la càmera.Autoritzeu accedir al micròfon.Indiqueu les vies que voleu evitar en la navegació.So
@@ -1881,8 +1901,11 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Introduïu un nom públicConfiguració de la subscripcióPuja anònimament
- No hi ha prou espai! Calen {3} MB temporalment i {1} MB de permanents. (Només es disposa de {2} MB).
- Voleu baixar {0} fitxer(s)\? S\'utilitzen {3} MB temporalment i {1} MB permanentment. (De {2} MB).
+ No hi ha prou espai!
+\nCalen {3} MB temporalment i {1} MB de permanents.
+\n(Només es disposa de {2} MB).
+ Voleu baixar {0} fitxer(s)\?
+\nS\'utilitzen {3} MB temporalment i {1} MB permanentment. (De {2} MB).Puja ↑Baixa ↓Evita la via
@@ -1896,10 +1919,10 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
NegretaAtura la navegacióInforme complert
- Nom d\'usuari i contrasenya d\'OpenStreetMap
+ Nom d\'usuari i contrasenya d\'OSMSubscriviuSubscripció a OsmAnd Live
- Cal proporcionar-vos informació respecte les aportacions.
+ Cal per atribuir-vos les vostres aportacions.Zona de suportUs agraïm el vostre recolçament a OsmAnd
\nPer activar totes les noves funcionalitats us caldrà reiniciar OsmAnd.
@@ -1922,7 +1945,10 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Marcador de mapaEl nom de fitxer inclou un caràcter il·legalAfegiu els marcadors de mapa amb el mapa
- "Aquesta subscripció permet actualitzacions horàries de tots els mapes del món. Part dels ingressos es retornen a la comunitat OSM en retribuir cada contribució OSM. Si aprecieu OsmAnd i OSM i els voleu recolzar mentre l\'utilitzeu, aquesta és la via perfecta per fer-ho."
+ Aquesta subscripció permet actualitzacions horàries de tots els mapes del món.
+\nPart dels ingressos es retornen a la comunitat OSM en retribuir cada contribució OSM.
+\n
+\nSi aprecieu OsmAnd i OSM i els voleu recolzar mentre l\'utilitzeu, aquesta és la via perfecta per fer-ho.Pugeu la vostra nota OSM anònimament o utilitzant el vostre perfil OpenStreetMap.org.Afegeix un lapse de tempsDivisió d\'enregistrament
@@ -2117,21 +2143,21 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Segur que voleu esborrar l\'acció \"%s\"?Mostra el diàleg FavoritsConfiguració de nom
- Prement aquest botó d\'acció s\'afegeix un marcador de mapa a la posició central de la pantalla.
+ Un botó per afegir un marcador de mapa a la posició central de la pantalla.Un botó per afegir una fita GPX al centre de la pantalla.Un botó per afegir una nota d\'àudio en el centre de la pantalla.
- Prement aquest botó d\'acció afegiu una nota de vídeo en el centre de la pantalla.
- Prement el botó d\'acció s\'afegeix una nota fotogràfica en el centre de la pantalla.
- Prement aquest botó d\'acció afegiu una nota OSM al centre de la pantalla.
- Prement aquest botó d\'acció afegiu un PDI al centre de la pantalla.
- Prement aquest botó d\'acció activeu o desactiveu la orientació de veu durant la navegació.
- Prement aquest botó d\'acció afegiu una posició d\'aparcament al centre de la pantalla.
- " s\'ha desat a "
+ Un botó per afegir una nota de vídeo en el centre de la pantalla.
+ Un botó per afegir una nota fotogràfica en el centre de la pantalla.
+ Un botó per afegir una nota OSM al centre de la pantalla.
+ Un botó per afegir un PDI al centre de la pantalla.
+ Un botó per activar o desactivar la orientació de veu durant la navegació.
+ Un botó per afegir una posició d\'aparcament al centre de la pantalla.
+ " desat a "Lloc
- El nom d\'acció directa indicat ja s\'està utilitzant, s\'ha canviat pel de %1$s per evitar duplicats.
+ S\'ha canviat el nom d\'acció directa pel de %1$s per evitar duplicats.El nom de l\'acció directa està duplicat
- Prement aquest botó d\'acció es mostra o s\'amaga els punts Preferits en el mapa.
- Prement aquest botó d\'acció mostreu o amagueu els PDIs en el mapa.
+ Un commutador per mostrar o amagar els punts Preferits en el mapa.
+ Un commutador per mostrar o amagar els PDIs en el mapa.Mostra/amaga PreferitsMostra PreferitsAmaga Preferits
@@ -2145,8 +2171,8 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Deixeu-lo buit per utilitzar l\'adreça o el nom d\'un lloc.Aquest missatge s\'inclou en el camp de comentaris.Missatge
- Seleccioneu la categoria on desar-hi el Preferit.
- Seleccioneu una categoria opcional.
+ Categoria on desar-hi el Preferit:
+ Trieu una categoria opcional.Llista de PDIAfegiu un estil de mapaOmpliu tots els paràmetres
@@ -2166,8 +2192,8 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Mostra un diàleg provisionalAfegiu una o més categories de PDI per mostrar-les al mapa.Nom de l\'acció
- La superposició del mapa s\'ha canviat a \"%s\".
- El fons del mapa s\'ha canviat a \"%s\".
+ S\'ha canviat el mapa superposat a \"%s\".
+ S\'ha canviat el mapa de fons a \"%s\".Codi de localització obertOLC no vàlid
@@ -2175,13 +2201,13 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
Proporcioneu el codi completOLC complet vàlid
Abasta l\'àrea: %1$s x %2$s
- Prement aquest botó d\'acció pagineu per la llista que segueix.
+ Un botó per paginar la llista que segueix.Divisió automàtica de les gravacions un cop aturadesComença un nou segment desprès de 6 min d\'interrupció, una traça nova si es superen les 2 hores o un nou fitxer si encara dura més i ha canviat la data.Mostra isòbates i fondàries puntuals.IsòbatesUtilitza les cotes d\'elevació
- "Revisa l\'elevació del terreny (mitjançant dades SRTM, ASTER i EU-DEM)."
+ Revisa l\'elevació del terreny (mitjançant dades SRTM, ASTER i EU-DEM).Alçat de la rutaDescensAscens
@@ -2301,13 +2327,13 @@ Abasta l\'àrea: %1$s x %2$sIsòbatesCartes nàutiquesEscala automàtica del mapa activa/desactiva
- Prement aquest botó d\'acció commuteu l\'escala automàtica del mapa segons la vostra velocitat.
+ Botó per commutar l\'activació del zoom automàtic segons la velocitat.Activa l\'escala automàticaDesactiva l\'escala automàticaEstabliu destinacióSubstitueix destinacióAfegeix primer intermedi
- Un botó per establir el punt central de la pantalla com la nova destinació i qualsevol destinació anterior esdevé la darrera destinació intermèdia.
+ Un botó per establir el punt central de la pantalla com la nova destinació i que la destinació anterior esdevingui la darrera fita.Un botó per fer del punt central de la pantalla la nova destinació, substituint la destinació anterior (si n\'hi hagués).Un botó per fer del punt central de la pantalla la primera fita.Isòbates i fondàries nàutiques puntuals.
@@ -2327,35 +2353,36 @@ Abasta l\'àrea: %1$s x %2$s
\n• Admet punts de pas intermedis
\n• Revisió automàtica de la ruta quan us aparteu de la ruta proposada
\n• Cerca de llocs per adreça, tipus (per exemple: restaurant, hotel, gasolinera, museu) o coordenades geogràfiques
- OsmAnd + (OSM Automated Navigation Directions) és una aplicació per consulta de mapes i de navegació, amb accés a les dades obertes d\'OpenStreetMap (OSM), d\'abast mundial i gran qualitat.
+ OsmAnd + (OSM Automated Navigation Directions) és una aplicació per consulta de mapes i de navegació, amb accés a les dades obertes d\'OSM, d\'abast mundial i gran qualitat.
\nFruïu la navegació amb indicacions visuals i de veu, mostrant PDIs (punts d\'interès), creant i gestionant traces GPX, disposant de corbes de nivell i cotes puntuals, seleccioneu la navegació per vehicle, bicicleta o com a vianant, editeu OSM i molt més.
-\n
+\n
\nOsmAnd + és la versió de pagament de l\'aplicació. En comprar-la, recolzareu el projecte, finançant el desenvolupament de noves característiques i rebreu les darreres actualitzacions.
-\n
+\n
\nCaracterístiques principals:Introduïu ciutat/població/localitatIntroduïu el codi postalCiutats més properesSelecciona el municipiCerca pel codi postal
- Consulta del mapa
-\n• Mostra la vostra posició i orientació
-\n• Té l\'opció d\'orientar la imatge segons la vostra pròpia orientació o en la direcció en que us moveu
-\n• Deseu els vostres llocs més importants com Preferits
-\n• Mostra els PDIs (punts d\'interès) al vostre voltant
-\n• Mostra variants especials disponibles en línia, imatges de satèl·lit (de Bing), superposicions variades com traces de GPX turístiques/rutes i capes addicionals amb una transparència que es pot ajustar
-\n• Com opció, mostra els noms dels llocs en anglès, llengua local o ortografia fonètica
+ Consulta del mapa
+\n• Mostra la vostra posició i orientació
+\n• Té l\'opció d\'orientar la imatge segons la vostra pròpia orientació o en la direcció en que us moveu
+\n• Deseu els vostres llocs més importants com Preferits
+\n• Mostra els PDIs (punts d\'interès) al vostre voltant
+\n• Mostra variants especials disponibles en línia, imatges de satèl·lit (de Bing), superposicions variades com traces de GPX turístiques/rutes i capes addicionals amb una transparència que es pot ajustar
+\n• Com opció, mostra els noms dels llocs en anglès, llengua local o ortografia fonètica
+\nSelecciona el carrerdins %1$sIndiqueu l\'adreça
- Utilitza les dades d\'OSM i de la Viquipèdia
-\n• Informació de qualitat dels millors projectes col·laboratius del món
-\n• Les dades OSM estan disponibles per país o regió
-\n• Els PDI\'s de la Viquipèdia són perfectes per fer turisme
-\n• Baixades il·limitades i gratuïtes, directament des de l\'aplicació
-\n• Mapes vectorials compactes en local que s\'actualitzen un cop al mes, com a mínim
-\n
-\n• Selecció entre les dades completes d\'una regió o només la xarxa viària (Exemple: tot el Japó ocupa 700 MB però només 200 MB per a la xarxa viària)
+ Utilitza les dades d\'OSM i de la Viquipèdia
+\n• Informació de qualitat dels millors projectes col·laboratius del món
+\n• Les dades OSM estan disponibles per país o regió
+\n• Els PDI\'s de la Viquipèdia són perfectes per fer turisme
+\n• Baixades il·limitades i gratuïtes, directament des de l\'aplicació
+\n• Mapes vectorials compactes en local que s\'actualitzen un cop al mes, com a mínim
+\n
+\n• Opció entre dades completes d\'una regió o només la xarxa viària (Exemple: tot el Japó ocupa 700 MB però només 200 MB per a la xarxa viària)"Característiques de seguretat
\n• Canvi automàtic entre el mode diürn/nocturn (opcional)
\n• Indicacions del límit de velocitat i notificació d\'excés (opcional)
@@ -2384,15 +2411,15 @@ Abasta l\'àrea: %1$s x %2$sNivell d\'escala de visualització: %1$sEn rutes llargues: Afegiu fites intermèdies si no es troba cap resultat en 10 minuts.Combinació de colors
- Mostra segons el nivell d\'escala
+ Mostra començant pel nivell d\'escalaPermet l\'accés privatPermet l\'accés a zones privades.Baixeu el mapa \'Ombrejat de relleu\' per veure ombrejat segons alçada.
- Per veure ombrejat de relleu en el mapa us cal comprar i Instal·lar el connector \'Corbes de nivell\'
+ Instal·leu el connector \'Corbes de nivell\' per veure àrees graduades verticalment.ConnectorCompreu i instal·leu el connector \'Corbes de nivell\' per visualitzar una gradació vertical d\'àrees.Baixeu el mapa \'Corbes de nivell\' per utilitzar-les en aquesta zona.
- Amaga segons el nivell d\'escala
+ Amaga començant pel nivell d\'escalaMostra o amaga notes OSMMostra notes OSMAmaga notes OSM
@@ -2453,7 +2480,7 @@ Abasta l\'àrea: %1$s x %2$sEspecifiqueu una memòria intermèdia temporal per desar les ubicacions a enviar mentre no hi ha connexióConsulteu el mapa i afegiu puntsMesurament de distàncies
- Necessiteu estar connectat a internet per veure les fotografies de Mapillary.
+ Les fotografies de Mapillary només són disponibles en línia.Torneu a provarAfegiu un punt si més no.Nom del fitxer GPX:
@@ -2636,7 +2663,7 @@ Abasta l\'àrea: %1$s x %2$sHivern i esquíVista turísticaNàutica
- Còpia Punt/PDI nom
+ Copia nom d\'ubicació/PDIUbicació sense nomMostra notes amagadesMostra/amaga notes OSM en el mapa.
@@ -2699,7 +2726,7 @@ Abasta l\'àrea: %1$s x %2$sNomés per wi-fiSeleccioneu una guia de viatgesGuia de viatges
- "La pàgina només es pot consultar en línia. La voleu obrir en un navegador?"
+ La pàgina només es pot consultar en línia. La voleu obrir en un navegador\?Memòria cau d\'imatgesEsborra l\'historial de cercaBaixa imatges
@@ -2757,8 +2784,8 @@ Abasta l\'àrea: %1$s x %2$sBaixa-ho totAmaga la descripció completaMostra la descripció completa
- Estil nàutic. Principals característiques: boies, fars, rutes fluvials, rutes i referències marítimes, ports, serveis de navegació assistida, isòbates.
- Estil per l\'esquí. Principals característiques: representació de pistes, remuntadors i altres característiques d\'esquí de forma adient. Menys objectes secundaris del mapa que distreguin.
+ "Per a navegació nàutica. Compta amb boies, fars, rutes fluvials, rutes i referències marítimes, ports, serveis de navegació assistida i isòbates."
+ Per a esquiar. Compta amb pistes, remuntadors, rutes d\'esquí de fons, etc. Atenúa objectes de mapes secundaris."Estil senzill i contrastat per navegació amb el cotxe. En mode nocturn té cura de la vista. Principals característiques: corbes de nivell, vies contrastades d\'estil ataronjat, menys objectes secundaris al mapa que puguin distreure."Buscant el corresponent article a la wikiAdreça d\'interès
@@ -2862,10 +2889,10 @@ Abasta l\'àrea: %1$s x %2$s"Esteu utilitzant el mapa {0} mitjançant OsmAnd. Voleu iniciar la versió sencera d\'OsmAnd \?"Voleu iniciar OsmAnd\?Guaraní
- Prement aquest botó d\'acció es canvia entre el modes Diürn i Nocturn d\'OsmAnd
- Mode Diürn
- Mode Nocturn
- Canvia mode Diürn/Nocturn
+ Un botó per canviar entre els modes diürn i nocturn d\'OsmAnd.
+ Mode diürn
+ Mode nocturn
+ Canvia mode diürn/nocturnEstabliu destinacióAfegeix punt intermediEstabliu el punt inicial
@@ -3108,7 +3135,7 @@ Abasta l\'àrea: %1$s x %2$sGeocodificacióCanvieu el zoom del mapa girant la roda amunt i avall. La tecla Esc us retornarà a l\'aplicació WunderLINQ.Utilitzeu WunderLINQ per al control
- Heu d\'afegir com a mínim un element a la llista a la configuració de l\'acció ràpida
+ Afegir com a mínim un element a la llista a la configuració de l\'acció ràpidaPistes per esquí alpí o eslàlom i accés als remuntadors.TrineuPistes per utilitzar trineu.
@@ -3172,7 +3199,7 @@ Abasta l\'àrea: %1$s x %2$sDispositius d\'entrada externsSeleccioneu un aparell com a teclat genèric o WunderLINQ per a controls externs.Cap
- Teclat genèric
+ TeclatWunderLINQParrotEsquí de ruta
@@ -3241,16 +3268,16 @@ Abasta l\'àrea: %1$s x %2$sVoleu canviar la carpeta de dades de OsmAnd\?Desplaça a la nova destinacióEvita determinades rutes i tipus de carretera
- Emmagatzematge intern, amagat a l\'usuari i a les altres aplicacions i que només OsmAnd hi pot accedir
+ Emmagatzematge intern per a OsmAnd, (amagat a l\'usuari i a les altres aplicacions).Canvia la carpeta d\'emmagatzematgePista de terraTrineuCostat a costat
- • S\'ha actualitzat la configuració de l\'aplicació i dels perfils: La configuració s\'agrupa per tipus. Cada perfil es pot ajustar independentment.
+ • S\'ha actualitzat la configuració de l\'aplicació i dels perfils: La configuració s\'agrupa per tipus. Cada perfil es pot ajustar independentment.
\n
\n • Diàleg nou de baixades de mapa que suggereix un mapa per baixar-lo mentre es navega
\n
-\n • Correccions al tema nocturn
+\n • Correccions al tema fosc
\n
\n • Corregits problemes de ruta a tot el món
\n
@@ -3298,20 +3325,20 @@ Abasta l\'àrea: %1$s x %2$s%1$s MB utilitzats%1$s kB utilitzatsCorbes de nivell i ombrejat de relleu
- Millor les carreteres sense asfaltar
- Millor les carreteres sense asfaltar.
+ Prefereix carreteres sense asfaltar
+ Prefereix carreteres sense asfaltar.Actualitza tots els mapesEsteu segur que voleu actualitzar tots els mapes (%1$d)\?
- Podeu aplicar aquest canvi a tots els perfils o només al que ara tingueu seleccionat.
+ Podeu aplicar aquest canvi a tots els perfils o només al que tingueu seleccionat.Compartit
- Millor les carreteres sense asfaltar
- Millor les carreteres sense asfaltar.
+ Prefereix carreteres sense asfaltar
+ Prefereix carreteres sense asfaltar a les asfaltades al generar rutes.Edicions a OSM
- Un botó per a mostrar o amagar les corbes de nivell en el mapa.
+ Botó per a mostrar o amagar les corbes de nivell en el mapa.Mostra les corbes de nivellAmaga les corbes de nivellMostra/amaga les corbes de nivell
- Un botó per a mostrar o amagar l\'ombrejat de relleu al mapa.
+ Botó per a mostrar o amagar l\'ombrejat de relleu al mapa.Mostra l\'ombrejat de relleuAmaga l\'ombrejat de relleuMostra/amaga l\'ombrejat de relleu
@@ -3377,7 +3404,7 @@ Abasta l\'àrea: %1$s x %2$sUneix segmentsVoleu afegir el nou perfil \'%1$s\'\?%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonalS\'està baixant %sMostra les vies ciclistes de xarxa de nodes
@@ -3389,25 +3416,25 @@ Abasta l\'àrea: %1$s x %2$s
El connector ha afegit els perfilsDesactivaS\'ha afegit un nou connector
- A deserts i altre àrees poc poblades. Mostra més detalls en una escala de visualització.
+ Per deserts i altre àrees poc poblades. Més detallat.Límit d\'ampladaIndica el límit d\'amplada de vehicle permesa en les rutes.Via aèriaSimula la vostra posició fent servir una traça GPX enregistrada.GruixIcona de posició en moviment
- Seleccioneu la icona del mapa
- Si toqueu Aplica, els perfils suprimits es perdran definitivament.
+ Icona de posició en repòs
+ Al prémer \'Aplica\', s\'esborraran definitivament els perfils suprimits.Perfil principalSeleccioneu el color
- No podeu suprimir els perfils predeterminats de l\'OsmAnd, però podeu desactivar-los en la pantalla anterior, o moure\'ls a la part inferior.
+ Els perfils predeterminats de l\'OsmAnd no no poden ser esborrats, però podeu desactivar-los (a la pantalla anterior), o ordenar-los cap a la part inferior.Edita els perfils
- El tipus de navegació determina les regles de càlcul de les rutes.
+ El \'tipus de navegació\' determina com es calculen les rutes.Aparença del perfilIcona, color i nomEdita la llista de perfilsPerfil seleccionat
- Un botó per establir el punt central de la pantalla com el punt de sortida i calcular la ruta vers la destinació o obrir una petició per seleccionar-la si no hi ha un marcador de destinació al mapa.
+ Un botó per establir el punt central de la pantalla com el punt de sortida. Llavors, demanarà seleccionar-la destinació o iniciar el càlcul de la ruta.Memòria intermèdia del LogcatPrement %1$s es perdran tots els vostres canvis.Restableix tota la configuració del perfil als valors predeterminats de la instal·lació.
@@ -3571,4 +3598,40 @@ Abasta l\'àrea: %1$s x %2$s
Recomanació: no és fàcil preveure què s\'enregistrarà i què no; podria ser millor desactivar aquest filtre.Definiu els nivells de zoom mínim i màxim entre els quals es visualitzarà la capa.Terreny
+ Octàgon
+ Mín.
+ Ordena per categoria
+ Mapa d\'ombrejat de relleu que representa amb ombres els pendents, cims i planícies.
+ Calen mapes addicionals per veure les pistes en el mapa.
+ Teniu més informació sobre les pistes a %1$s.
+ Activeu la visió de l\'ombrejat de relleu o del mapa de pistes. Us podeu informar d\'aquests tipus de mapa a la nostra web
+ Esquí de ruta
+ Moto de neu
+ Les pistes es mostren sobre el terreny i amb colors.
+ Pistes
+ Connector d\'OsmAnd adaptat
+ Substitueix un altre punt per aquest
+ S\'han fet els canvis al perfil %1$s.
+ No s\'ha pogut llegir %1$s.
+ No s\'ha pogut escriure %1$s.
+ No s\'ha pogut importar %1$s.
+ Seleccioneu fitxer de la traça
+ Idiomes
+ Llengua
+ Tots els idiomes
+ Es necessiten mapes addicionals per veure els PDIs de la Viquipèdia al mapa.
+ Personalització de la IU
+ Accions del menú contextual
+ Reordena o amaga els elements des del %1$s.
+ Divisor
+ Elements per sota d’aquest punt separats per un divisor.
+ Amagat
+ Aquests elements no es mostren al menú, però les opcions o els connectors que representen continuen funcionant.
+ La configuració es restablirà a l\'estat original després d\'amagar-se.
+ Les accions principals només contenen 4 botons.
+ Accions principals
+ Podeu accedir a aquesta acció prement el botó \"Accions\".
+ Només podeu moure els elements dins d\'aquesta categoria.
+ Connector per a desenvolupadors
+ Elements
\ No newline at end of file
diff --git a/OsmAnd/res/values-cs/strings.xml b/OsmAnd/res/values-cs/strings.xml
index 0b30cd9d15..74ccc1edef 100644
--- a/OsmAnd/res/values-cs/strings.xml
+++ b/OsmAnd/res/values-cs/strings.xml
@@ -3211,7 +3211,7 @@ Zobrazená oblast: %1$s x %2$s
AnalytikaZobrazit mapu na uzamčené obrazovce během navigace.Nastavení navádění pro zvolený profil „%1$s“.
- Jednotky a formát
+ Jednotky a formátyVzhledVzhled mapyUpravit profil
@@ -3288,4 +3288,95 @@ Zobrazená oblast: %1$s x %2$s
Přidat nový profil „%1$s“\?Trasy upravené pro klasické lyžování bez bruslení. Zahrnuje trasy upravené menšími sněžnými vozidly a stopy vytvořené samotnými lyžaři.Povolit pouze trasy pro bruslení na lyžích
+ Sněžný skútr
+ Vlastní modul pro OsmAnd
+ Změny aplikovány na profil %1$s.
+ Nelze přečíst %1$s.
+ Nelze zapsat %1$s.
+ Nelze importovat %1$s.
+ Stínování svahů
+ Terén
+ Stínované svahy používají tmavé odstíny pro vyjádření svahů, vrcholů a nížin.
+ Svahy jsou barevné vizualizace terénu.
+ Nastavte minimální a maximální úroveň přiblížení, při které bude vrstva zobrazená.
+ Pro zobrazení stínování kopců jsou potřeba další mapy.
+ Pro zobrazení svahů jsou potřeba další mapy.
+ O svazích si můžete přečíst více na %1$s.
+ Průhlednost
+ Úrovně přiblížení
+ Legenda
+ Zapněte pro zobrazení stínovaných svahů. O tomto typu map se dozvíte více na našich stránkách
+ Všechna data z %1$s jsou naimportovaná, můžete použít tlačítka níže k otevření části aplikace pro jejich správu.
+ Import dokončen
+ Položky přidány
+ OsmAnd kontroluje %1$s na duplicity s existujícími položkami v aplikaci.
+\n
+\nMůže to chvíli trvat.
+ Importování
+ Importování dat z %1$s
+ Nepodařilo se zálohovat profil.
+ Ukládání nového profilu
+ Obnovit všechna nastavení profilu\?
+ Po vytvoření/importování tohoto profilu budou všechna nastavení profilu resetována do původního stavu.
+ Opravdu chcete vymazat zaznamenané údaje\?
+ Přepočítat trasu v případě odchýlení
+ Zvolte vzdálenost, při které bude trasa přepočítána.
+ Trasa bude přepočítaná pokud vzdálenost od trasy k aktuální poloze je větší než zvolená hodnota.
+ %1$s z %2$s
+ Svahy
+ Zobrazit/skrýt terén
+ Skrýt terén
+ Zobrazit terén
+ Tlačítko pro zobrazení nebo skrytí vrstvy terénu na mapě.
+ Smazat popis
+ Přidat popis
+ Vyberte skupinu
+ Vyberte tvar
+ Kruh
+ Osmiúhelník
+ Čtverec
+ Min
+ Nahradit jiný bod tímto
+ Lyžařské okruhy
+ Úhel
+ Úhel: %s°
+ Jazyky
+ Jazyk
+ Všechny jazyky
+ Antarktida
+ Trasa bude přepočítána, pokud vzdálenost od trasy bude větší než uvedený parametr
+ Minimální vzdálenost pro přepočítání trasy
+ %1$s — %2$s — %3$s
+ Menu
+ Tento modul je samostatnou aplikací. Pokud ho nadále nehodláte používat, budete ho muset odstranit samostatně.
+\n
+\nModul zůstane v zařízení i po odstranění aplikace OsmAnd.
+ Modul vypnutý
+ Otevřít nastavení
+ Vypnout přepočítávání
+ Zadejte prosím název profilu
+ Vyberte data k importu.
+ Některé položky již existují
+ OsmAnd již má položky se stejnými názvy jako ty importované.
+\n
+\nZvolte akci.
+ Importované položky budou přidány s prefixem
+ Ponechat obě
+ Nahradit vše
+ Aktuální položky budou nahrazeny položkami ze souboru
+ Zobrazený %1$s již existuje v OsmAnd.
+ Profily
+ Rychlé akce
+ Nic není vybráno
+ Typy POI
+ Připravuji
+ Výchozí hodnota (%s)
+ Minimální úhel mezi mojí polohou a trasou
+ Dokud nebude trasa přepočítána, zobrazí se navíc rovný úsek mezi aktuální polohou a vypočítanou trasou
+ Vlastní profil
+ Importovat soubor vykreslování
+ Vyberte soubor stopy
+ Některé články Wikipedie nemusí být dostupné ve vašem jazyce. Zvolte jazyky, v nichž se články Wikipedie objeví na mapě.
+\nBěhem čtení článku budete moci přepínat mezi všemi dostupnými jazyky.
+ Pro zobrazení bodů zájmu Wikipedie jsou potřeba další mapy.
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml
index b8631ff9c5..2b7cf718ba 100644
--- a/OsmAnd/res/values-da/phrases.xml
+++ b/OsmAnd/res/values-da/phrases.xml
@@ -3823,4 +3823,7 @@
Vandniveau: over gennemsnitlige vandstandVandniveau: under gennemsnitlig vandstandObstruktion
+ Netværk til påfyldning af drikkevand
+ Påfyldning af drikkevand: nej
+ Påfyldning af drikkevand: ja
\ No newline at end of file
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 0301e70b2e..668cf128ad 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -3,9 +3,9 @@
Overvej at betale for \'Højdekurve\' udvidelsen for at støtte videre udvikling.Optag videoOptag lyd
- Vælg standard modulhandling.
+ Standard modulhandling:Standard modulhandling
- Vælg videoformat.
+ Videoformat:Brug systemoptager for video.Brug systemoptagerKonfigurer lyd- og videoindstillinger.
@@ -22,7 +22,7 @@
HøjdekurverOptag videonoteOptagelser
- Optagelse kan ikke afspilles
+ Optagelse kunne ikke afspilles.Slet optagelseAfspilOptagelse %1$s %3$s %2$s
@@ -33,7 +33,7 @@
\n
\nDe globale data (mellem 70° nord og 70° syd) er baseret på målinger af SRTM (Shuttle Radar Topografi Mission) og ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), et billeddannende instrument ombord på Terra satellitten, flagskibet i NASAs Earth Observering system. ASTER er et samarbejde mellem NASA, Japans Ministry of Economy, Trade and Industry (METI), og Japan Space Systems (J-spacesystems)."
Afstandsmåling
- Placering der skal tilknyttes til noten er ikke defineret endnu. “Brug placering…“ til at knytte en note til den angivne placering.
+ Tryk på \'Brug placering...\' for at tilføje en note til placeringen.LydnoterLyd-/videonoter udvidelse giver funktionalitet til at tage lyd-/foto-/videonoter under en tur, enten ved hjælp en knap på skærmen, eller direkte fra kontekstmenuen for en position på kortet.Lyd-/videonoter
@@ -55,8 +55,8 @@
HastighedsgrænseIngen bygninger fundet.Søg efter by trinvist
- Søg flere landsbyer/postnummer
- Dropbox udvidelsen gør det muligt at synkronisere spor og lyd-/videonoter med en Dropbox-konto.
+ Søg efter flere landsbyer/postnumre
+ Synkroniser spor og lyd-/videonoter med en Dropbox-konto.Vælg, hvornår der skal vises kort kun med veje:Kort kun med vejeKør program i fejlsikret tilstand (for langsommere Android i stedet for oprindelige kode).
@@ -123,7 +123,7 @@
IngenOpenMaps EUDropbox udvidelse
- Vælg ved forespørgsel
+ På anmodning\?Brug systemprogram til foto.Brug kameraGPX
@@ -183,11 +183,11 @@
TimerMinutterBilen er parkeret kl.
- Vælg hastighed for rutesimulering
+ Hastighed for rutesimulering:Tildelt hukommelse %1$s MB (Android grænse %2$s MB, Dalvik %3$s MB).Tildelt hukommelseSamlet indbygget hukommelse tildelt af programmet %1$s MB (Dalvik %2$s MB, andre %3$s MB).
-Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).
+\nProportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).
Total indbygget hukommelseUdgangspunktet er for langt fra nærmeste vej.Delt placering
@@ -243,8 +243,8 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Offline navigation er midlertidig utilgængelig.
VenstrekørselFor lande, hvor man kører i venstre side af vejen.
- Udgangspunktet endnu ikke fastlagt
- Position endnu ikke kendt
+ Udgangspunktet endnu ikke fastlagt.
+ Position endnu ikke kendt.Indstil gennemsigtighed (0-transparent, 255-uigennemsigtig)Annuller hentning\?Tak for at du bruger OsmAnd. Hent data for offline brug via \'Indstillinger\' → \'Administrer kortfiler\' for at se kort, søge adresser, finde interessepunkter (IP), kolllektivtrafik og mere.
@@ -350,7 +350,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Slet redigering
Asynkron OSM-redigering:OSM interessepunkter/noter gemt på enheden
- Vis og administrer OSM interessepunkter/noter registreret i database på enheden.
+ Vis og administrer OSM interessepunkter/noter i enhedens database.Indstil interval for onlinesporing.Interval for online sporingAngiv webadressen med parametersyntaks: lat={0}, lon={1}, tidspunkt={2}, hdop={3}, højde={4}, hastighed={5}, kurs={6}.
@@ -374,7 +374,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Verdens- og emnekort
Globale Wikipedia interessepunkterTalemeddelelser (optaget, begrænset funktionalitet)
- Talemeddelelser (TTS generator, anbefalet)
+ Talemeddelelser (TTS, foretrukket)BrugerdefineretFil med tidligere eksporterede Favoritter eksisterer allerede. Overskriv?Profilspecifikke indstillinger
@@ -395,9 +395,8 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Wikipedia (offline)
NavigationDer er ikke nok ledig plads til at hente %1$s MB (ledig: %2$s).
- Hent {0} filer?
- Lagerplads brugt {1} MB.
- (Ledig plads {2} MB.)
+ Hent {0} filer\?
+\n{1} MB (af {2} MB) vil blive anvendt.Gennemsigtigt temaIndbygget bibliotek understøttes ikke på enheden.Initialisere indbygget bibliotek…
@@ -416,7 +415,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Stop simulering
Start simuleringFilen kunne ikke omdøbes.
- Der eksisterer allerede en fil med det navn.
+ En fil med dette navn findes allerede.GPX-ruteFlere kategorier af interessepunkter fundet som matcher forespørgslen:Lokale data til at søge interessepunkter findes ikke.
@@ -538,7 +537,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).
Lydkanal for talevejledning
- Vælg højttaler til at afspille talevejledning.
+ Vælg højttaler for talevejledning.Telefonopkaldslyd (til at afbryde Bluetooth bilradio)MeddelelselydMedie-/navigationslyd
@@ -564,7 +563,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Kunne ikke udføre offline søgning.
Søg efter geografisk placeringSystem
- Vælg sprog (træder i kraft ved genstart).
+ Vælg sprog (træder i kraft efter genstart).SprogufuldstændigÆndr enhed for afstand.
@@ -623,10 +622,10 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB)."Installer OsmAnd: {0} - {1} - {2} MB ?"
Hentning af versionslisten for OsmAnd mislykkedesIndlæser OsmAnd-versioner…
- Vælg en OsmAnd-version
+ Vælg en OsmAnd-version, der skal installeresInstaller versionGPS-status program er ikke installeret. Søg på Play butik?
- Ingen talevejledning valgt
+ Vælg en talevejledningspakkeDagNatSolopgang/-nedgang
@@ -795,8 +794,8 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Initialiserer taledata…
Ikke understøttet version af taledataDe angivne taledata er fejlbehæftet
- De valgte taledata er ikke tilgængelig
- Åbningstider format kan ikke ændres
+ Den valgte talevejledningspakke er ikke tilgængelig
+ Kan ikke ændre åbningstidsformatet.Vælg stoppestedet for afstigningstoppesteder der skal passeresVis stoppesteder for kollektivtrafik på kortet.
@@ -823,7 +822,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Online-søgning: husnummer, gade, by
Online søgningMaks online zoom
- Gennemse ikke online-kortbrikket for zoom-niveauer ud over dette.
+ Gennemse ikke online-kort for zoom-niveauer ud over dette.OsmAnd offline-navigation er en eksperimentel funktion og den virker ikke for længere afstande end ca. 20 km.
\n
\nNavigationen skiftes midlertidig til online CloudMade tjenesten.
@@ -831,7 +830,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Total afstand %1$s, rejsetid %2$d t %3$d m.
Online eller offline navigationstjeneste.Navigationstjeneste
- Datalagringsmappen på hukommelseskortet er ikke tilgængelig!
+ Lagringsmappen på hukommelseskortet er ikke tilgængelig!Offline-data for {0} eksisterer allerede ({1}). Opdater ({2})?Hent {0} - {1}?Adresse
@@ -871,15 +870,15 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Færdig
Brug internettet til at beregne rute.Brug online-navigation
- Indstillinger for OpenStreetMap.org (OSM), som kræves for bidrag til OSM.
+ Angiv indstillinger for OpenStreetMap.org (OSM), som er nødvendige for overførelse til OSM.Angiv sprog, hent/genindlæs data.Data
- OSM-redigering
+ OpenStreetMap redigeringYderligere indstillingerGem det aktuelle spor som en GPX-fil nu.Gem det aktuelle sporLogningsinterval under navigation
- Vælg logningsinterval for optagelse af spor under navigation.
+ Angiv logningsinterval for optagelse af spor under navigationGPX-spor gemmes automatisk i tracks-mappen under navigation.Automatisk optagelse af spor under navigationOpdater kort
@@ -898,7 +897,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).3D-kortvisning
Vis den sidst anvendte IP overlejring.Vis IP overlejring
- Vælg kilde til onlinekort eller cachelagrede kortbrikker
+ Vælg kilde til onlinekort eller cachelagrede kortbrikker.Kilde til kortbrikkerKortkildeBrug internettet
@@ -937,10 +936,10 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Søg efter gader trinvist
DDD MM SS.SGadenavn
- Vælg adresse
+ Angiv adresseVælg FavoritHusnummer
- Vælg udseende på programmet.
+ Tilpas udseende på programmet.TemaIndstillinger for tilgængelighedOptag ture
@@ -973,26 +972,26 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Slet alle punkter
højdeUdvidelsen aktiverer et kortmodul som gør det muligt at oprette spor ved at trykke på kortet, eller ved at bruge eller ændre eksisterende GPX-filer, til at planlægge en tur og måle afstanden mellem punkter. Resultaterne kan gemmes som en GPX-fil, som senere kan bruges til vejledning.
- Afstandsberegner & planlægningsværktøj
+ Afstandsberegner og planlægningsværktøj* Tryk for at markere et punkt.
\n* Tryk og hold for at slette tidligere punkt.
\n* Tryk og hold på et punkt for at se og vedhæfte beskrivelse.
\n* Tryk på målemodul for at se flere handlinger.Slet punkt
- Kunne ikke sikkerhedskopiere OSM ændringer
+ Kunne ikke sikkerhedskopiere OSM ændringer.OSM-ændringsfilen %1$s genereretSikkerhedskopiering efterhånden som OSM ændresSorter fra dør til dørSøg efter gade i nabolagets byerOptimeret rækkefølge af mellemliggende destinationer på vej til destinationen.
- Vælg først en by eller gade
+ Angiv by eller gade førstVælg som destinationDestinationen %1$sKameraets fokustype
- Vælg fokustypen for det interne kamera.
+ Kamerafokustilstand:AutofokusHyperfocal fokus
- Uendelig fokus
+ Fokus er sat til uendeligtMakrofokustilstand (nærbillede)Udvidet dybdeskarphed (EDOF)Kameraet forsøger løbende at fokusere
@@ -1013,7 +1012,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Rutevejledning til
Rutevejledning fraMeddel…
- Konfigurer til at meddele gadenavne, trafikadvarsler (tvungne stop, vejbump), fartkameraadvarsler, hastighedsgrænser.
+ Konfigurer meddelse af gadenavne, trafikadvarsler (tvungne stop, vejbump), fartkameraadvarsler og hastighedsgrænser.Gadenavne (talesyntese)JapanUSA
@@ -1056,10 +1055,10 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Båd
FlyKort-rendering
- Vælg de profiler der skal være synlige.
+ Vælg viste profiler.ProgramprofilerSømærke
- Angiv talehastigheden for talesyntese.
+ Angiv talehastigheden for tekst-til-tale.TalehastighedHurtig ruteberegning mislykkedes (%s), går tilbage til langsom beregning.Deaktiver to-faset ruteplanlægning til bilnavigation.
@@ -1089,7 +1088,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Ruteinfo
Vælg GPX…Ruteindstillinger
- Vælg destination
+ Angiv destinationTilføj som efterfølgende destinationBrug vist spor til navigation?Offline beregning af rutesegment
@@ -1149,7 +1148,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Tale
DiverseLokalisering
- Stemmemeddelelser pause, ikke bare dæmpe musikafspilning.
+ Stemmemeddelelser sætter musikafspilningen på pause.Pause musikDel rute som GPX-filRuten delt via OsmAnd
@@ -1195,7 +1194,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Opdelingsinterval
Indlæser %1$s…Gem som en gruppe af Favoritter
- Vælg destinationer
+ Angiv destinationerOverlejring af IP-etiketterOnline OSM kort klassificering med billeder.
@@ -1203,13 +1202,13 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Vis zoom-knapperne
Sorter efter afstandSorter efter navn
- Ingen GPX-filer er valgt. Tryk og hold for at vælge en.
- Vælg at få vist
+ Angiv først en GPX-fil med et langt tryk.
+ Vælg et sporIngenting at hente, kontroller internetforbindelsen.BygningerGang- og cykelstierTekst
- Skov og beplantning
+ Skov og beplantningBygninger på zoomniveau 15Flere detaljerFærre detaljer
@@ -1223,7 +1222,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Hebræisk
FremBetjeningspanel
- Send sporing til en bestemt webtjeneste, hvis GPX-logning er aktiveret.
+ Send sporing til en bestemt webtjeneste, hvis GPX-logning er slået til.Online sporing (GPX nødvendig)Start online sporingStop online sporing
@@ -1257,10 +1256,10 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Ved de sidste meter
Farvekod bygninger efter typeKamera billedstørrelse
- Vælg billedstørrelsen for det interne kamera.
+ Angiv kamerabilledstørrelseBilCykel
- Fodgænger
+ Til fodsGennemse kortHent manglende kort %1$s (%2$d MB)?Rutepunkter
@@ -1279,9 +1278,9 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Bus-, trolleybus-, shuttlebusruter
Log spor til GPX-filLogningsinterval
- Generel positionsslogning til en GPX-fil kan slås til/fra med \'GPX-logning\' på hovedskærmen.
+ Generel positionsslogning til en GPX-fil kan slås til eller fra med GPX-logning udvidelsen på kortet.Spørg altid
- Vælg logningsinterval for den almindelige optagelse af spor (aktiveres via \'GPX-logning\' på hovedskærmen).
+ Angiv logningsinterval for den almindelige optagelse af spor (aktiveres via \'GPX-logning\' på hovedskærmen).Generelt logningsintervalHastighedsgrænseGrænsekontrol
@@ -1369,9 +1368,9 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Aktiver HTTP proxy
Konfigurer en HTTP-proxy for alle netværksanmodninger.Proxy vært
- Konfigurer proxy værtsnavn (f.eks. 127.0.0.1).
+ Angiv proxy værtsnavn (f.eks. 127.0.0.1).Proxy port
- Konfigurer proxy portnummer (f.eks. 8118).
+ Angiv proxy portnummer (f.eks. 8118).GadebelysningHent aktuelle udviklingsversioner.Versioner
@@ -1391,7 +1390,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Lagerplads
SkiløjperKun veje
- Noter
+ A/V-noterOnline kortVisDel note
@@ -1529,7 +1528,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).OsmAnd tilbyder globale offline kortvisninger, og offline navigation.
I mange lande (Tyskland, Frankrig, Italien og andre) er anvendelse af fartkamera advarsler ikke tilladt ved lov. OsmAnd påtager sig ikke ansvaret, hvis loven overtrædes. Tryk kun på Ja, hvis det er berettiget at bruge denne funktion.A-GPS information
- A-GPS data sidst hentet: %1$s
+ A-GPS data hentet: %1$sMeddelelseBrug ikkeAdresse
@@ -1574,7 +1573,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Slet %1$d noter. Bekræft?
Forhindre uafhængig logningHvis markeret vil GPX-logning blive stoppet, når programmet afsluttes (via seneste programmer). OsmAnd-baggrundsmeddelse forsvinder fra meddelelseslinjen.
- Placeringtjenesten er ikke aktiveret. Aktiver?
+ Placeringtjenesten er slukket. Slå det til\?Der er gamle inkompatible Wikipedia data. Skal de arkiveres?Hent yderligere data fra Wikipedia (%1$s MB)?Volapyk
@@ -1609,7 +1608,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Luxembourgsk
OssetiskEsperanto
- Genstart manuelt for at anvende alle ændringer.
+ Der er behov for en genstart for at anvende ændringen.GPX-farveGPX-breddeRød
@@ -1633,7 +1632,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Bedøm OsmAnd
Vurder OsmAnd på Google PlayFortæl os hvorfor.
- Fortæl os hvad du ønsker at ændre i OsmAnd.
+ Fortæl om eventuelle forslag.RealtidsopdateringerSlet ændringPrøv igen
@@ -1641,7 +1640,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Overførsel mislykkedes
Overført {0}/{1}Ingen opdateringer tilgængelige
- Vi interesserer os for din mening og tilbagemelding er vigtig for os.
+ Din mening og tilbagemelding værdsættes.Fed konturFareKonfigurer betjeningspanel
@@ -1829,9 +1828,9 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Afstand:
Varighed:OsmAnd mangler tilladelse til at bruge hukommelseskortet
- Har ikke tilladelse til at bruge placeringsdata.
- OsmAnd har ikke tilladelse til at bruge kameraet.
- OsmAnd har ikke tilladelse til at bruge mikrofonen.
+ Giv adgang til placeringsdata.
+ Giv adgang til kameraet.
+ Giv adgang til mikrofon.Vælg veje, der skal undgås under navigation.LydVælg talevejledning
@@ -1855,7 +1854,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Morgen
AftenIkke markeret
- Vælg måned og land
+ Måned og land:TypeUdgangspunktEmne fjernet
@@ -1896,9 +1895,10 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Værktøjslinie
ModulerIkke nok plads!
- Brug for {3} MB midlertidigt, {1} MB permanent lagerplads.
- Tilgængelig lagerplads er kun {2} MB.
- Hent {0} filer? Lagerplads brugt {3} MB midlertidigt, {1} MB permanent. ({2} MB ledig plads.)
+\nBrug for {3} MB midlertidigt, {1} MB permanent.
+\n(Tilgængelig lagerplads er kun {2} MB.)
+ Hent {0} filer\?
+\n{3} MB brugt midlertidigt, {1} MB permanent. (af {2} MB.)Overfør OSM-noteOverfør anonymtOverfør OSM-noter anonymt eller ved brug af OpenStreetMap.org-profil.
@@ -1926,9 +1926,9 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).En del af donationen vil blive sendt til OSM-brugere, som indsender ændringer til kortet i det pågældende område.
Indstillinger for abonnementKøb først OsmAnd Live-abonnement
- "Abonnementet giver timebaserede opdateringer til alle kort i hele verden.
+ Abonnementet giver timebaserede opdateringer til alle kort i hele verden.
\nEn del af indtægten går tilbage til OSM-fællesskabet og udbetales for hvert OSM-bidrag.
-\nHvis du ønsker at støtte og få support fra OsmAnd og OSM, er dette en god måde at gøre det på."
+\nHvis du ønsker at støtte og få support fra OsmAnd og OSM, er dette en god måde at gøre det på.Genberegn rutenTopbjælkeDelt hukommelse
@@ -1938,7 +1938,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Flyt ↑
Flyt ↓Fuldstændig rapport
- OpenStreetMap brugernavn og adgangskode
+ OSM brugernavn og adgangskodeProgrammet har nu lov til at skrive til ekstern lager, men en genstart er påkrævet.RapportFilnavnet indeholder ikke tilladte tegn
@@ -2045,7 +2045,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Ubegrænset adgang til kort, opdateringer og Wikipedia udvidelse.
Få detAbonnementet opkræves pr. måned. Kan opsiges på Google Play når som helst.
- Donation til OpenStreetMap fællesskabet
+ Donation til OSM fællesskabetEn del af donationen sendes til OSM-brugere, som laver ændringer til OpenStreetMap. Prisen på abonnementet forbliver den samme.Abonnement giver mulighed for opdateringer hver time, dagligt, ugentligt og ubegrænset hentning af alle kort globalt.Australien
@@ -2084,8 +2084,8 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Optaget
OptagIngen data
- Aktiver hurtig start af optagelse
- Vis en systemmeddelelse, der giver mulighed for at starte optagelse af turen.
+ Aktiver hurtig optagelse
+ Vis en systemmeddelelse, der tillader optagelse af turen.MeddelelserEndnu ingen GPX-filerTilføj også GPX-filer til mappen
@@ -2119,7 +2119,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Tilføj kortmarkør
Tilføj IPSkift kortstil
- Kortstil er ændret til \"%s\".
+ Korttypografien er ændret til \"%s\".Ny lydnoteNy videonoteNy fotonote
@@ -2137,21 +2137,21 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Bekræft sletning af genvej \"%s\"?
Vis dialogen FavoritterForudindstillet navn
- Tryk på genvejsknappen tilføjer en kortmarkør på skærmens centrum.
- Tryk på genvejsknappen vil tilføje et GPX-rutepunkt i midten af skærmen.
- Tryk på genvejsknappen tilføjer en lydnote på midten af skærmen.
- Tryk på genvejsknappen tilføjer en videonote på midten af skærmen.
- "Tryk på genvejsknappen tilføjer en fotonote på midten af skærmen."
- Et tryk på genvejsknappen tilføjer en OSM-note på midten af skærmen.
- Tryk på genvejsknappen tilføjer et interessepunkt på midten af skærmen.
- Tryk på genvejsknappen deaktiverer eller aktivere stemmevejledning under navigation.
- Tryk på genvejsknappen tilføjer en parkeringsplads på midten af skærmen.
- " er gemt i "
+ En knap til at tilføje en kortmarkør på skærmens centrum.
+ En knap til at tilføje et GPX-rutepunkt midt på skærmen.
+ En knap til at tilføje en lydnote midt på skærmen.
+ En knap til at tilføje en videonote midt på skærmen.
+ En knap til at tilføje en fotonote midt på skærmen.
+ En knap til at tilføje en OSM-note midt på skærmen.
+ En knap yik at tilføje et interessepunkt midt på skærmen.
+ En til/fra-knap for at deaktiverer eller aktivere stemmevejledning under navigation.
+ En knap til at tilføje en parkeringsplads midt på skærmen.
+ " gemt i "StedAngivne genvej er allerede i brug, navn ændret til %1$s at undgå overlapning.Dublet genvejsnavn
- Tryk på genvejsknappen viser eller skjuler Favoritpunkter på kortet.
- Tryk på genvejsknappenviser eller skjuler interessepunkter på kortet.
+ En til/fra-knap til at vise eller skjule Favoritpunkter på kortet.
+ En til/fra-knap til at vise eller skjule interessepunkter på kortet.Vis/skjul FavoritterVis FavoritterSkjul Favoritter
@@ -2165,7 +2165,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Lad være tomt for at bruge adressen eller stedets navn.
Meddelelsen inkluderes i kommentarfeltet.Meddelelse
- Vælg den kategori, som Favoritten skal gemmes i.
+ Kategori som Favoritten gemmes i:Vælg en valgfri kategori.IP-listeTilføj en eller flere IP-kategorier der skal vises på kortet.
@@ -2181,7 +2181,7 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).Skift kortkilde
KortkilderTilføj en kortkilde
- Kortkilde er ændret til \"%s\".
+ Kortkilden er ændret til \"%s\".Ændr knapplaceringTryk og hold og træk knappen skifter dens placering på skærmen.Vis en midlertidig dialogboks
@@ -2193,9 +2193,9 @@ Proportional hukommelse %4$s MB (Android grænse %5$s MB, Dalvik %6$s MB).
Gyldig fuldstændig OLC
Repræsenterer område: %1$s x %2$s
- Kortoverlejring ændret til \"%s\".
- Kortunderlejring ændret til \"%s\".
- Tryk på genvejsknappen gennemløber nedenstående liste.
+ Kortoverlejring er ændret til \"%s\".
+ Kortunderlejring er ændret til \"%s\".
+ En knap til at gennemløber nedenstående liste.Opdel automatisk optagelser efter et opholdStart et nyt segment efter ophold på 6 min., et nyt spor efter 2 timer eller en ny fil efter et længere ophold, hvis datoen er ændret.Vis dybdekonturer og -punkter.
@@ -2224,7 +2224,7 @@ Repræsenterer område: %1$s x %2$s
GennemsnitshastighedSporPunkter slettet.
- Slet %1$d, punkter. Sikker?
+ Slet %1$d punkter. Bekræft\?Sving at passere på rutenRutepunkter, interessepunkter, navngivne objekterTilføj ny mappe
@@ -2383,8 +2383,8 @@ Repræsenterer område: %1$s x %2$s
Tryk på genvejen for at tilføje et første mellemliggende punkt på skærmens centrum.Automatisk kortzoom til/fraTryk på genvejsknappen skifter den hastighedafhænige kortzoom til/fra.
- "Aktiver automatisk kortzoom"
- "Deaktiver automatisk kortzoom"
+ Aktiver automatisk zoom
+ Deaktiver automatisk zoomPausetIndtast by/bydel/stedIndtast postnummer
@@ -2415,14 +2415,14 @@ Repræsenterer område: %1$s x %2$s
Skjul fra zoom-niveauSorteret efter afstandSøg i Favoritter
- Skift visning af OSM-noter
+ Vis eller skjul OSM-noterVis OSM-noterSkjul OSM-noter
- Tryk på genvejsknappen viser eller skjuler OSM-noter på kortet.
+ Knap til at vise eller skjule OSM-noter på kortet.Start søgning igenØg søgeradiusFandt intet
- Ændr søgningen eller øg søgeradius.
+ Ændr søgning eller øg radius.Destinationen ligger i et område med privat adgang. Tillad brug af private veje til turen\?MapillaryMapillary-modul
@@ -2465,14 +2465,14 @@ Repræsenterer område: %1$s x %2$s
Min/maksGennemsigtig lyserødPause/genoptag navigation
- Tryk på knappen for at sætte navigationen på pause eller genoptage den.
+ Knap for at pause eller genoptage navigationen.Vis \'Navigation færdig\' dialogboksStart/stop navigation
- Tryk på knappen for at starte eller stoppe navigationen.
+ Knap for at starte eller stoppe navigationen.Tidsbuffer til online sporingAngiv en buffer for hvor lang tid positioner skal gemmes, når der ingen internetforbindelse erPrøv igen
- Internetforbindelse er nødvendig for at se fotos fra Mapillary.
+ Fotos fra Mapillary er kun tilgængelige online.Mål afstandGennemse kortet og tilføj punkterTilføj mindst ét punkt.
@@ -2499,7 +2499,7 @@ Repræsenterer område: %1$s x %2$s
Tilføj GPX-filerImporter GPX-filer eller optag spor.Tilføj favoritter
- Importer Favoritter, eller tilføj via markering af punkter på kortet.
+ Importer Favoritter, eller tilføj ved at markere punkter på kortet.Importer GPX-filFilen %1$s indeholder ingen rutepunkter, importer den som et spor?Flyt punkt
@@ -2613,7 +2613,7 @@ Repræsenterer område: %1$s x %2$s
\'Et tryk\' aktiveringTag noter!Tilføj en lyd-, video- eller fotonote til hvert punkt på kortet ved hjælp af modul- eller kontekstmenu.
- Noter efter dato
+ OSM noter efter datoEfter datoEfter typeÆndr søgning.
@@ -2655,16 +2655,16 @@ Repræsenterer område: %1$s x %2$s
NautiskIP-etiketterÅbner i morgen kl.
- Kopiér Punkt/IP-navn
+ Kopiér placering/IP-navnUnavngiven placeringVis lukkede noterVis/skjul OSM-noter på kortet.GPX - velegnet som eksport til JOSM eller andre OSM-redigeringsværktøjer.
- OSC - velegnet som eksport til OpenStreetMap.
+ OSC - velegnet som eksport til OSM.GPX-filOSC-filVælg filtype
- Vælg eksporttype: OSM-noter, IP\'er, eller begge.
+ Eksporte som OSM-noter, IP\'er, eller begge dele.Alle dataOSM-noterTunnel forude
@@ -2865,16 +2865,16 @@ Repræsenterer område: %1$s x %2$s
Fornyes hvert år%1$.2f %2$sBetalingsinterval:
- Donationer er med til at finansiere OpenStreetMap kortlægning.
+ Donationer er med til at finansiere OSM kortlægning.Af OsmAndAbonnementerVis kun 360° billederStartStart OsmAnd\?Guaraní
- Tilføj destination
+ Angiv destinationTilføj mellemliggende
- Tilføj startpunkt
+ Angiv startpunktMellemliggende punktoverførslertil fods
@@ -2885,9 +2885,9 @@ Repræsenterer område: %1$s x %2$s
Vis langs rutenSimulere navigationMellemliggende destinationer
- Dag tilstand
- Nat tilstand
- Skift dag/nat tilstand
+ Dagstilstand
+ Nattilstand
+ Skift mellem dag-/nattilstandm³tKapacitet
@@ -2897,7 +2897,7 @@ Repræsenterer område: %1$s x %2$s
Vælg den sporfil, der skal følgesStemmemeddelelserAnkommer %1$s
- Tryk på genvejsknappen skifter mellem dag- og nattilstand
+ En til/fra-knap til at skifte mellem dag- og nattilstand.VejtypeOverfladeJævnhed
@@ -2917,10 +2917,10 @@ Repræsenterer område: %1$s x %2$s
Stå af vedStig på ved stoppestedVis/skjul GPX spor
- Tryk på genvejssknappen viser eller skjuler valgte GPX spor på kortet
+ En knap til at vise eller skjule valgte GPX-spor på kortet.Skjul GPX sporVis GPX spor
- Tilføj en destination først
+ Angiv en destination først• Ny \'Rutevejledning\': viser hjem- og arbejdsstedsknapper, \'Forrige rute\' genvej, liste over aktive GPX-spor og markører, søgehistorik
\n
\n • Yderligere information under \'Ruteoplysninger\': vejtyper, overflade, stejlhed, jævnhed
@@ -2940,9 +2940,9 @@ Repræsenterer område: %1$s x %2$s
\n
Aktivér offentlig transport for OsmAnd Live ændringer.OsmAnd Live offentlig transport
- Tilføj start- og slutpunkter
- Tilføj startpunkt
- Vælg startpunkt
+ Tilføj afgangs-og ankomststed
+ Tilføj udgangspunkt
+ Vælg udgangspunktSandGræsBefæstet græs
@@ -2971,7 +2971,7 @@ Repræsenterer område: %1$s x %2$s
StiCykelstiIkke defineret
- Læs mere om hvordan OsmAnd beregner ruter på vores blog.
+ Læs mere om ruterberegning på vores blog.Offentlig transportruter er nu i beta testfasen, så fejl og unøjagtigheder kan forekomme.Tilføj mellemliggende punkt%1$d overførsler
@@ -2980,8 +2980,7 @@ Repræsenterer område: %1$s x %2$s
%s tilstandUndgå transporttyper…Vælg offentlige transporttyper, der skal undgåes ved navigation:
- Den maksimale længde af tag \"%s\" er 255 tegn.
-\nForkort for at fortsætte.
+ Forkort længden af mærket \"%s\" til mindre end 255 tegn.Ikke befæstetJordUbehandlet
@@ -2997,8 +2996,8 @@ Repræsenterer område: %1$s x %2$s
StatsvejServiceTrin
- Undgå brosten og natursten
- Undgå brosten og natursten
+ Ingen brosten eller natursten
+ Undgår brosten og naturstenGraderMilliradianerEnhed for vinkelmåling
@@ -3033,9 +3032,9 @@ Repræsenterer område: %1$s x %2$s
Flyt ikkeRuten til fods er ca %1$s og kan være hurtigere end offentlig transportKunne desværre ikke finde en rute, der passer til indstillingerne.
- Prøv fodgængernavigationen.
+ Prøv navigation til fods.Prøv at ændre indstillinger.
- Beregn fodgængerruten
+ Beregn rute til fodsTransporttypeSøger efter GPSKoordinat modul
@@ -3050,9 +3049,9 @@ Repræsenterer område: %1$s x %2$s
Besøgte skærmeIndsamlede dataDefiner hvilke data der deles med OsmAnd.
- Hjælper med at forstå, hvilke kort over hvilke regioner og lande der er mest populære.
- Hjælper med at forstå hvilke funktioner i OsmAnd der er mest populære.
- Ved at trykke på \"Tillad\" accepteres vores %1$s
+ Hjælper os med at forstå populariteten af land- og regionskort.
+ Hjælper os med at forstå populariteten af OsmAnd-funktionens.
+ Tryk på \"Tillad\" accepterer %1$sPrivatliv og sikkerhedVælg hvilke data der delesNej tak
@@ -3078,7 +3077,7 @@ Repræsenterer område: %1$s x %2$s
Vælg navigationstypeVælg en navigationstype til den nye programprofilIndtast profilnavn
- Profilnavnet må ikke være tomt!
+ Angiv et profilnavn først.Duplikeret navnDer er allerede en profil med det navnBasisprofiler kan ikke slettes
@@ -3092,7 +3091,7 @@ Repræsenterer område: %1$s x %2$s
Bil, lastbil, motorcykelMountainbike, knallert, hestGå, vandring, løb
- Offentlig transport (alle)
+ Offentlige transportstyperSkib, roning, sejladsFly, svæveflyGeokodning
@@ -3106,13 +3105,13 @@ Repræsenterer område: %1$s x %2$s
ProgramprofilerSkift kort zoom ved at rulle hjulet op og ned. Escape vender tilbage til WunderLINQ.Brug WunderLINQ til styring
- Tilføj mindst ét punkt til listen i Hurtig Handling under \"Indstillinger\"
+ Tilføj mindst ét punkt til listen i \'Hurtig Handling\' under \'Indstillinger\'Alpint/downhill skiløbSkiløjper til alpint skiløb eller downhill og adgang til skilifte.Langrend / nordisk skiSpor til nordisk eller langrend.Langrend ski
- Spor til langrend ski
+ Spor til langrend ski.SlædePister til kælkning.Tillad mellemliggende ruter
@@ -3122,7 +3121,7 @@ Repræsenterer område: %1$s x %2$s
Tillad ekspert ruterEkstremt vanskelige ruter, med farlige forhindringer og omgivelser.Tillad kun skøjteløb ruter
- Ruter forberedt til freestyle eller kun skøjteløb uden klassiske spor
+ Ruter forberedt til freestyle eller kun skøjteløb uden klassiske spor.Tillad kun klassiske ruterRuter forberedt til den klassiske stil uden skøjtebaner. Omfatter ruter udarbejdet af en mindre snescooter med løsere pister og spor lavet manuelt af skiløbere.Foretrukket sværhedsgrad
@@ -3143,25 +3142,25 @@ Repræsenterer område: %1$s x %2$s
NedbrudSidste kørsel af OsmAnd mislykkedes. Hjælp med at forbedre OsmAnd ved at dele fejlmeddelelsen.UFO
- "• Anvendelsesprofiler: opret en brugervalgt profil med en brugervalgt ikon og farve
+ • Anvendelsesprofiler: opret en brugervalgt profil med en brugervalgt ikon og farve
\n
\n • Tilpas alle profilers standard- og min/max hastigheder
-\n
-\n• Tilføjet et modul til de aktuelle koordinater
+\n
+\n• Tilføjet et modul til de aktuelle koordinater
\n
\n• Tilføjede muligheder for at vise kompasset og en radiuslineal på kortet
\n
\n• Rettet logføring af baggrundsspor
\n
-\n• Forbedret hentning af kort i baggrunden
+\n• Forbedret hentning af kort i baggrunden
\n
\n• Rettet Wikipedia sprogvalg
-\n
+\n
\n• Rettet kompasknappens opførsel under navigationen
\n
\n• Andre fejlrettelser
\n
-\n"
+\nPerson transportMonowheelScooter
@@ -3185,9 +3184,9 @@ Repræsenterer område: %1$s x %2$s
Grad 4Grad 5Eksterne inputenheder
- Vælg en enhed, såsom et generisk tastatur eller WunderLINQ for ekstern kontrol.
+ Vælg en ekstern kontrolenhed, såsom et tastatur eller WunderLINQ.Ingen
- Generisk tastatur
+ TastaturWunderLINQParrotAktiver mindst en programprofil, for at bruge denne indstilling.
@@ -3205,7 +3204,7 @@ Repræsenterer område: %1$s x %2$s
Spor %s er gemtForbind mellemrumCampingvogn
- Autocamper
+ Autocamper (RV)Vis miljøzoner på kortet. Påvirker ikke routing.Vis MiljøzonerOvervej midlertidige begrænsninger
@@ -3230,8 +3229,8 @@ Repræsenterer område: %1$s x %2$s
Tre månederGratisFå %1$d %2$s med %3$s rabat.
- %1$s for første %2$s
- %1$s for første %2$s
+ %1$s for de første %2$s
+ %1$s for de første %2$sderefter %1$sAnnuller abonnement%1$s • Spar %2$s
@@ -3246,8 +3245,8 @@ Repræsenterer område: %1$s x %2$s
Anvend kun for \"%1$s\"Anvend på alle profilerStartmeddelelse
- Vis kort under navigationen ovenpå låseskærmen.
- Indstillingerne påvirker beregningen af ruten. Vil kun blive anvendt på den valgte profil: %1$s.
+ Vis kort på låseskærmen under navigation.
+ Indstillinger for routing i den valgte profil \"%1$s\".VågnetidEnheder & formaterUdseende
@@ -3293,10 +3292,10 @@ Repræsenterer område: %1$s x %2$s
Indsæt sti til mappen med dataSkift datamappe\?Flyt til den nye destination
- Internt lager, skjult for bruger og andre apps, kun tilgængelig for OsmAnd
- Skift datalagringsmappe
+ Internt lager (skjult for bruger og andre programmer).
+ Skift lagringsmappeSnowpark
- Kane
+ SlædeKælkVandreturForbindelse
@@ -3329,11 +3328,11 @@ Repræsenterer område: %1$s x %2$s
%1$s KB%1$s • %2$s%1$s GB ledig (af %2$s GB)
- Overvåg lagringsmappen
- Spor kan gemmes i optagemappen eller i månedlige eller daglige mapper.
- Gem optagede spor i optagemappen
- Gem optagede spor i daglige mapper
- Gem optagede spor i undermapper pr. optagelsesdag (fx. 2018-01-01).
+ Mappe til lagring af spor
+ Spor kan gemmes i \'rec\' mappen eller i månedlige eller daglige mapper.
+ Optag spor til \'rec\' mappen
+ Optag spor i daglige mapper
+ Optag spor i undermapper pr. optagelsesdag (f.eks. 2018-01-01).%1$s TB brugt%1$s GB brugt%1$s MB brugt
@@ -3360,30 +3359,30 @@ Repræsenterer område: %1$s x %2$s
\n• Andre fejlrettelser
\n
\n"
- Anvend ændringer på alle profiler eller kun på den aktuelt valgte.
+ Anvend ændring på alle eller kun på den valgte profil.DeltForetræk ikke-asfalterede vejeForetræk ikke-asfalterede veje fremfor asfalterede veje.OSM redigeringer
- En til/fra-knap for at vise eller skjuler højdekurver på kortet.
+ Knap der viser eller skjuler højdekurver på kortet.Vis højdekurverSkjul højdekurverVis/skjul højdekurver
- Tryk på genvejsknappen viser eller skjuler reliefskygger på kortet.
+ En knap der viser eller skjuler reliefskygger på kortet.Vis reliefskyggerSkjul reliefskyggerVis/skjul reliefskyggerHvid
- Kan ikke starte tekst-til-tale-program
+ Tekst-til-tale-programmet kan ikke startes.Simuler positionen ved hjælp af et optaget GPX-spor.Eksportér profilOsmAnd profil: %1$s
- Profilen \'%1$s\' findes allerede. Overskriv\?
+ \'%1$s\' findes allerede. Overskriv\?Profilen kunne ikke eksporteres.
- Profilimport
- For at importere en profil, vælg filen på enheden og åbn den med OsmAnd.
+ Importer profil
+ Tilføj en profil ved at åbne filen med OsmAnd.%1$s importfejl: %2$s
- %1$s blev importeret.
+ %1$s importeret.Byt %1$s og %2$sUdgangspunktSporet er gemt
@@ -3393,69 +3392,69 @@ Repræsenterer område: %1$s x %2$s
Ryd %1$s\?Dialogboksen Hent kortDialoger og meddelelser
- Kontrol af popup-vinduer, dialoger og meddelelser, der OsmAnd vis under brug.
+ Styr popop indstillinger, dialogbokse og meddelelser.Vis cykelrute-knudepunkter
- Node netværk
+ NodenetværkForeslåede kort
- Disse kort skal bruges med udvidelser
+ Disse kort er nødvendige for udvidelser.Tilføjede profiler
- Udbidelse tilføjer ny profil til OsmAnd
+ Profiler tilføjet af udvidelseSlukNy udvidelse tilføjetForbind segmenter
- Tilføj ny profil \'%1$s\'\?
- Medtag overskrift
- Gem overskrift til hvert TrackPoint under optagelsen.
+ Tilføj den nye profil \'%1$s\'\?
+ Medtag retning
+ Gem retning for hvert sporpunkt under optagelse.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonligHenter %sTyk
- Til ørkener og andre tyndt befolkede områder. Viser flere detaljer på en visningsskala.
- Vælg navigationsikon
- Vælg kortikon
- Tryk på Anvend og slettede profiler går helt tabt.
+ Til ørkener og andre tyndt befolkede områder. Viser flere detaljer.
+ Positionsikon ved bevægelse
+ Positionsikon ved hvile
+ Tryk på \'Anvend\' sletter fjernede profiler permanent.HovedprofilVælg farve
- Standard-profiler kan ikke slettes, men de kan deaktiveres på forrige skærmbillede eller flyttes til bunden.
+ Standard-profiler kan ikke slettes, men de kan deaktiveres (på forrige skærmbillede) eller flyttes til bunden.Rediger profiler
- Navigationstype påvirker reglerne for ruteberegninger.
+ Navigationstype\' bestemmer hvordan ruter beregnes.Profilens udseende
- Vælg ikon, farve og navn
+ Ikon, farve og navnRediger profillisteValgte profil
- Bruges til at estimere ankomsttidspunkt for ukendte vejtyper og til at begrænse hastigheden for alle veje (kan ændre ruten)
- Ved at klikke på %1$s, mistes alle ændringer.
- Alle profilindstillinger nulstilles.
- Nulstil alle profilindstillinger til standard\?
+ Estimerer ankomsttidspunkt for ukendte vejtyper og begrænser hastigheden for alle veje (kan påvirke ruten)
+ Ved at klikke på %1$s, slettes alle ændringer.
+ Alle profilindstillinger nulstilles til standardværdier.
+ Nulstil alle profilindstillinger\?%1$s %2$s%1$s: %2$sBedøm
- \'%1$s\' filen indeholder ikke routing regler, vælg en anden fil.
+ \'%1$s\' filen indeholder ikke routing regler. Vælg en anden fil.Vælg en understøttet %1$s udvidelsesfil i stedet.Importer fra filImporter routing-filImporter profil
- Navigation, lognøjagtighed
+ Navigation, logningsnøjagtighedBilledstørrelse, lyd-og videokvalitetLog ind, adgangskode, offline redigeringVælg ikon, farve og navn
- Tillader at dele den aktuelle placering ved hjælp af tur-optagelse.
+ Tillader deling af den aktuelle placering ved hjælp af tur-optagelse.Online sporingLognøjagtighed
- Find alle optagede spor i %1$s eller i OsmAnd mappen vha. filhåndtering.
- Find alle noter i %1$s
+ Optagede spor er i %1$s eller i OsmAnd mappen.
+ Noter er i %1$s.Video noterFoto noterGenberegning af ruteAnnoncereBrugernavn og adgangskode
- Indstillinger for udvidelsen er globale, og gælder for alle profiler.
- OpenStreetMap redigering
- Se alle ikke overførte redigeringer eller OSM fejl i %1$s. Overførte punkter vises ikke i OsmAnd.
+ Indstillingerne gælder for alle profiler.
+ OSM redigering
+ Se redigeringer eller OSM-fejl, der endnu ikke er overført i %1$s. Overførte punkter vises ikke længere.OSM
- Ikonet vises kun under navigation eller under bevægelse.
- Kortikon vises kun på kortet og skifter under navigation til navigationsikon.
+ Ikonet vises under navigation eller bevægelse.
+ Ikon vist i hvile.Kontroller og del detaljerede logfiler for programmetTilladelse kræves for at bruge denne mulighed.Et lavhastighedsafskæringsfilter der ikke registrerer punkter under en bestemt hastighed. Kan få optagne spor til at se jævnere ud, når de ses på kortet.
@@ -3471,7 +3470,7 @@ Repræsenterer område: %1$s x %2$s
Brug systemprogramAutorisationen lykkesOmarrangere kategorier
- Tilføj brugerdefinerede kategorier, skjul kategorier, som ikke er nødvendige, og ændre sorteringsrækkefølgen på listen. Listen kan importeres og eksporteres med profiler.
+ Skift sorteringsrækkefølgen på listen, skjul unødvendige kategorier. Importer eller eksporter alle ændringer med profiler.Tilføj en ny brugerdefineret kategori ved at vælge en eller nogle få nødvendige kategorier.TilgængeligTilføje brugerdefineret kategori
@@ -3527,4 +3526,93 @@ Repræsenterer område: %1$s x %2$s
Importerer data fra %1$sImportererImporten er fuldført
+ Kontrol af %1$s for dubletter med eksisterende elementer i programmet.
+\n
+\nDet kan tage lidt tid.
+ Genberegn rute i tilfælde af afvigelse
+ Vælg afstanden, hvorefter ruten genberegnes.
+ Ruten genberegnes, hvis afstanden fra ruten til den aktuelle placering er større end den valgte værdi.
+ %1$s af %2$s
+ Skråninger
+ Vis/skjul terræn
+ Skjul terræn
+ Vis terræn
+ En knap der viser eller skjuler terrænlag på kortet.
+ Slet beskrivelse
+ Tilføj beskrivelse
+ Vælg gruppe
+ Vælg form
+ Cirkel
+ Rhombe
+ Firkant
+ Min
+ Deaktiveret som standard, hvis programmet kører i forgrunden, slukkes skærmen ikke.
+\n
+\nAktivér for at bruge systemopsætning til at slukke for skærmen.
+ Oktagon
+ Kameraets lukkelyd
+ Angiv webadressen med parametersyntaks: lat={0}, lon={1}, tidspunkt={2}, hdop={3}, højde={4}, hastighed={5}, kurs={6}.
+ Anbefaling: En indstilling på 5-meter kan fungere godt, hvis der ikke er behov for at opfange finere detaljer, og der ikke ønskes eksplicit at optage data mens i hvile.
+ Bivirkninger: Perioder i hvile registreres slet ikke eller kun ved et punkt hver. Små (virkelige) bevægelser (f.eks. sidelæns for at markere en mulig afkørsel på turen) kan blive filtreret ud. Filen indeholder mindre information til efterbehandling og har dårligere statistik ved at frafiltrere åbenlyse overflødige punkter på optagelsestidspunktet, mens potentielt beholder artefakter forårsaget af dårlig modtagelse eller GPS-chipset-effekter.
+ Filteret forhindrer, at der registreres dobbeltpunkter, hvor der muligvis er for lidt faktisk bevægelse. Det giver et pænere rumligt udseende af spor, der ikke efterbehandles senere.
+ Bemærk: Hvis GPS\'en har været slukket umiddelbart før en optagelse, kan det første målte punkt have en reduceret nøjagtighed, så i koden skal der måske ventes et sekund, inden der optages et punkt (eller det bedste af 3 på hinanden følgende punkter osv.). Men det er endnu ikke implementeret.
+ Anbefaling: Det er svært at forudsige, hvad der vil blive optaget og hvad ikke, det kan derfor være bedst at slå filteret fra.
+ Bivirkning: Som et resultat af filtrering efter nøjagtighed kan der muligvis helt mangle punkter f.eks. under broer, under træer, mellem høje bygninger eller under visse vejrforhold.
+ Kun punkter, der måles i henhold til minimum nøjagtighedsspecifikationerne (i meter/fod som leveret af Android, afhængigt af chipset), registreres. Nøjagtighed henviser til spredningen af gentagne målinger og er ikke direkte relateret til den nøjagtighed, der bestemmer, hvor tæt målinger og ægte position er til hinanden.
+ Bemærk: Hastighed > 0 kontrol: De fleste GPS-chipsæt giver kun en hastighedsværdi, hvis algoritmen bestemmer, at der er bevægelse, og ingen, hvis der ikke er bevægelse. Brug af indstillingen > 0 i dette filter bruger derfor en vis grad bevægelsesdetektering fra GPS-chipset. Men selvom de ikke filtreres på optagelsestidspunktet, bruges denne funktion i GPX-analysen til at bestemme den korrigerede afstand, det vil sige, at værdien, der vises i feltet, er afstanden, der er registreret under bevægelsen.
+ Anbefaling: Forsøg først at bruge bevægelsesdetektering via filteret til minimum afstandsmåling (B). Dette kan føre til bedre resultater, og der vil mistes færre data. Hvis sporene forbliver unøjagtige ved lave hastigheder, så prøv værdier, der ikke er nul her. Bemærk, at nogle målinger (nogle netværksbaserede metoder) muligvis ikke viser nogen hastighedsværdier overhovedet. I dette tilfælde registreres intet.
+ Bivirkning: Spor vil mangle alle sektioner, hvor minimumshastighedskriteriet ikke var opfyldt (f.eks. hvor cyklen skubbes op ad en stejl bakke). Der vil heller ikke være nogen oplysninger om hvileperioder, som pauser. Har indvirkning på alle analyser eller efterbehandlinger, som når det forsøges at bestemme den samlede længde af rejsen, tid i bevægelse, eller den gennemsnitlige hastighed.
+ Den importerede profil indeholder yderligere data. Klik på Importer for kun at importere profildata, eller vælg yderligere data, der skal importeres.
+ Ruten vil blive genberegnet, hvis afstanden til ruten er længere end angivet parameter
+ Mindste afstand for at genberegne ruten
+ OsmAnd har allerede elementer med de samme navne, som dem, der importeres.
+\n
+\nVælg en aktion.
+ Det angivne %1$s findes allerede.
+ Mindste vinkel mellem placering og rute
+ Ekstra lige segment mellem placering og den beregnede rute vises, indtil ruten genberegnes
+ Terræn
+ Reliefskyggekort viser hjælp af mørke nuancer skråninger, toppe og lavland.
+ Skråninger er farvelagte visualiseringer af terræn.
+ Angiv de min. og max. zoomniveauer, som laget vil blive vist på.
+ Yderligere kort er nødvendige for at se reliefskygger på kortet.
+ Yderligere kort er nødvendige for at se hældninger på kortet.
+ Læs mere om skråninger på %1$s.
+ Gennemsigtighed
+ Zoomniveauer
+ Tegnforklaring
+ Gøre det muligt at få vist relief- eller hældningskort. Læs mere om kort-typerne på vores hjemmeside
+ Reliefskygge
+ Alle data fra %1$s er importeret, brug knapperne nedenfor til at åbne den nødvendige del af programmet til at håndtere det.
+ Poster tilføjet
+ Ski touring
+ Snescooter
+ Brugerdefineret udvidelse
+ Ændringer anvendt på %1$s profil.
+ Kunne ikke læse %1$s.
+ Kunne ikke skrive til %1$s.
+ Kunne ikke importere %1$s.
+ Erstat et andet punkt med dette
+ Vælg sporfil
+ Sprog
+ Sprog
+ Alle sprog
+ Yderligere kort er nødvendige for at se Wikipedia Interessepunkter på kortet.
+ Nogle Wikipedia-artikler er muligvis ikke tilgængelige på nogle sprog. Vælg de sprog, som Wikipedia-artikler skal vises på kortet.
+\nSkift mellem alle tilgængelige sprog, mens artiklen læses.
+ Skuffeelementer, genvejsmenu
+ Skuffe
+ Tilpasning af brugergrænseflade
+ Handlinger i kontekstmenuen
+ Omarranger eller skjul elementer fra %1$s.
+ Skillelinje
+ Elementer under dette punkt adskilt af en skillelinje.
+ Skjult
+ Disse elementer er skjult fra menuen, men de funktioner eller udvidelser, de repræsenterer, fungerer fortsat.
+ Indstillingerne nulstilles til den oprindelige tilstand, efter at de er skjult.
+ Vigtigste handlinger indeholder kun 4 knapper.
+ Vigtigste handlinger
+ Elementer kan kun flyttes inden for kategorien.
+ Udvikler udvidelse
+ Elementer
\ No newline at end of file
diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml
index 3ce60f792b..eb800babda 100644
--- a/OsmAnd/res/values-de/phrases.xml
+++ b/OsmAnd/res/values-de/phrases.xml
@@ -63,7 +63,7 @@
BettwarengeschäftBienenzüchterGetränkegeschäft
- Fahrradständer
+ FahrradabstellplatzFahrradvermietungFahrradgeschäftRadweg
@@ -552,7 +552,7 @@
StraßenbahnhaltestelleReisebüroTunnel
- Wendehammer
+ WendestelleUniversitätTapeziererStaubsaugergeschäft
@@ -604,7 +604,7 @@
AchterbahnRutschbahnSommerrodelbahn
- Schaukel-Karussell
+ KettenkarussellEisenbahn (Attraktion)WasserrutscheTurm
@@ -616,7 +616,7 @@
Lebensmittelgeschäft und SupermarktNotfallStraßenhindernis
- Tankstelle
+ Tankstelle (alle Fzg.)ÖPNVvon MenschenhandWasserversorgung
@@ -740,7 +740,7 @@
HöchstgewichtBetreiberEingestellt
- Aufgelassen
+ AufgegebenMaximale HöheTelefonInternetseite
@@ -848,7 +848,7 @@
SchwingtorBarriereHöhendurchfahrtbegrenzung
- Ausfalltor
+ AusfallstorDrehkreuzKutschendurchlassFußgängerübergang
@@ -895,7 +895,7 @@
RestmüllKunststoffverpackungenZeitungen
- Kartons
+ KartonagenPappeZeitschriftenPapierverpackungen
@@ -957,10 +957,10 @@
CDsAltölBlech
- Folie
+ FolienMedikamente
- Spanplatte
- Gipskartonplatte
+ Spanplatten
+ GipskartonplattenTierischer AbfallÜberwachungsstationja
@@ -1101,11 +1101,11 @@
KriegsdenkmalStatueStein
- Generator
+ Mineral-AggregatDolomitGasGold
- Grafit
+ GraphitMineralölErdölSalz
@@ -1124,7 +1124,7 @@
Mit Abfalleimerohne AbfalleimerWLAN
- Arbeitsplatz
+ TerminalkabelgebundenInternetzugang: öffentlichInternetzugang: Dienstleistung
@@ -1167,7 +1167,7 @@
KostümeTraditionellAnzüge
- Übergröße
+ ÜbergrößenSchuleBademodeSocken
@@ -1276,7 +1276,7 @@
SpiritualismusEvangelikalMormonen
- Jehovas Zeugen
+ Zeugen JehovasGriechisch-katholischBulgarisch-orthodoxAdventisten
@@ -1346,7 +1346,7 @@
HolzfällenSandFallobst
- Todwald
+ TotholzIn EtageRTSA-SkalaEinfach
@@ -1489,7 +1489,7 @@
Vereinigte Kirche ChristiWissenschaftlerRumänisch-orthodox
- Typ: Wappen
+ Art: WappenMaterial: StahlbetonMaterial: BetonMaterial: Mauerwerk
@@ -1502,14 +1502,14 @@
BefestigungSiedlungStadt
- Nekropole
+ NekropolisErdarbeiten
- Megalithtyp: Menhir
- Megalithtyp: Dolmen
- Befestigungstyp: Wallburg
- Befestigungstyp: Limes
- Befestungstyp: Schanze
- Befestigungstyp: Ringgraben
+ Grabtyp: Hinkelstein
+ Grabtyp: Hünengrab
+ Befestigungsart: Wallburg
+ Befestigungsart: Limes
+ Befestungsart: Schanze
+ Befestigungsart: RinggrabenPa (befestigte Siedlung der Maori)Historischer BauernhofFreimaurerloge
@@ -1520,11 +1520,11 @@
BildhauerGebäudeart: KlosterEhemaliges Gefangenenlager
- Typ: Konzentrationslager
- Typ: Kriegsgefangenenlager
- Typ: Arbeitslager
- Typ: Nazi
- Typ: Gulag
+ Art: Konzentrationslager
+ Art: Kriegsgefangenenlager
+ Art: Arbeitslager
+ Art: Nazi
+ Art: GulagBaden: jaBaden: neinBootslager
@@ -1604,14 +1604,14 @@
WesleyanerShingon-shūMahayana-Buddhisten
- Jersey-Barriere
- Nadelwald
+ Betonschutzwand
+ NadelnKücheWegweiserWegmarkierungAuskunftTastbares Modell
- Tastbare Karte
+ BlindengrafikEinzelhandelIn einem abgetrennten RaumNur für Raucher
@@ -1811,7 +1811,7 @@
Kein WickeltischWickelraumHöchstparkdauer
- Parkschein
+ ParkscheineZigarettenFäkalienbeutelFahrscheine
@@ -1830,7 +1830,7 @@
Souvenir-MünzeBrotKaugummis
- Parkschein; Fahrschein
+ Parkscheine; FahrscheineKaffeeMautverkaufFahrscheinverkauf
@@ -1896,16 +1896,16 @@
PalmeFahnenstangeÖffentlicher Verkehr
- Picknickschutz
- Wetterschutz
+ Picknick-Unterstand
+ Wetter-UnterstandAnbauGebäude
- Grundhütte
+ HütteTierschutzFelsüberhangSonnenschutzFeldhütte
- Unterstandtyp: Zelt
+ ZeltUnterstandtyp: verlassenTempelturmBaryt
@@ -1914,7 +1914,7 @@
Kunstart: StatueKunstart: WandgemäldeKunstart: Architektur
- Kunstart: Malen
+ Kunstart: BildKunstart: SteinKunstart: BüsteKunstart: Installation
@@ -2031,28 +2031,28 @@
Ausbildung: LuftfahrtAusbildung: FrisörMonumentales Objekt
- Typ: Ölindustrie
- Typ: Internetseite
- Typ: Fabrik
- Typ: Gasindustrie
- Typ: Bauholz
- Typ: Raffinerie
- Typ: Warenhaus
- Typ: Autoabschleppdienst
- Typ: Landwirtschaft
- Typ: Brauerei
- Typ: Ziegelei
- Typ: intermodales Frachtterminal
- Typ: Sägewerk
- Typ: Wasseraufbereitung
- Typ: Hafen
- Typ: Lagerhaus
+ Art: Ölindustrie
+ Art: Bohrstelle
+ Art: Fabrik
+ Art: Gasindustrie
+ Art: Bauholz
+ Art: Raffinerie
+ Art: Warenhaus
+ Art: KFZ-Verschrottung
+ Art: Landwirtschaft
+ Art: Brauerei
+ Art: Ziegelei
+ Art: intermodales Frachtterminal
+ Art: Sägewerk
+ Art: Wasseraufbereitung
+ Art: Hafen
+ Art: LagerhausTrogTierbeförderung
- Beförderungstyp: Hund
- Beförderungstyp: Katze
- Beförderungstyp: Hund, Katze
- Beförderungstyp: Pferd
+ Tierpensionstyp: Hund
+ Tierpensionstyp: Katze
+ Tierpensionstyp: Hund, Katze
+ Tierpensionstyp: PferdHoniggeschäftTechnisches DenkmalCampingbüro
@@ -2087,7 +2087,7 @@
Anbauprodukt: ErdbeereAnbauprodukt: Gemüse, BlumenAnbauprodukt: Maniok
- Anbauprodukt: Preiselbeere
+ Anbauprodukt: MoosbeereAnbauprodukt: SpargelAnbauprodukt: BlumenÜberwachung: innen
@@ -2103,7 +2103,7 @@
Burgtyp: VerteidigungBurgtyp: FestungBurgtyp: Palast
- Burgtyp: Verteidigung, stattlich
+ Burgtyp: Verteidigung, AdelssitzThailändischSexuellMassagen
@@ -2144,7 +2144,7 @@
BeratungsstelleAnbauprodukt: LavendelBurgtyp: Kreml
- Burgtyp: Römerkastell
+ Burgtyp: römisches KastellBurgtyp: ShiroChinesischBrennofen
@@ -2162,16 +2162,16 @@
Treppenzustand: schlechtSteinhügelFassadendekoration
- Typ: Kriegsgräber
- Typ: Hügelgrab
- Typ: Felsgrab
- Typ: Hypogäum
- Typ: Gewölbe
- Typ: Kolumbarium
- Typ: Mausoleum
- Typ: Sarkophag
- Typ: Krypta
- Typ: Pyramide
+ Art: Kriegsgräber
+ Art: Hügelgrab
+ Art: Felsgrab
+ Art: Hypogäum
+ Art: Gewölbe
+ Art: Kolumbarium
+ Art: Mausoleum
+ Art: Sarkophag
+ Art: Krypta
+ Art: PyramideKultur: römische Antike (753 v. Chr. - 284 n. Chr.)Kultur: Nuraghen (18. Jh. v. Chr. - 2. Jh. n. Chr.)Kultur: Etrusker (12. - 6. Jh. v. Chr.)
@@ -2234,12 +2234,12 @@
Historische Epoche: MittelsteinzeitHistorische Epoche: JungsteinzeitHistorische Epoche: Kupfersteinzeit (4. - 3. Jahrtausend v. Chr.)
- Typ: Steinkreuz
+ Art: SteinkreuzHüttenkreis
- Petroglyphe
- Megalithtyp: Nuraghe
- Megalithtyp: Steinkreis
- Megalithtyp: Ganggrab
+ Felsbild
+ Grabtyp: Nuraghe
+ Grabtyp: Steinkreis
+ Grabtyp: GanggrabGipfelkreuz: jaVermittlung: jaAfrikanisches Wiki
@@ -2342,7 +2342,7 @@
NaturheilkundeTiefenpsychologieVerhaltenstherapie
- Gebäudetyp: Pyramide
+ Gebäudeart: PyramideFitnesscenterFitnessBillard
@@ -2350,9 +2350,9 @@
Mikrowelle: neinWasserkocher: jaWasserkocher: nein
- Oberfläche
+ Art: FreiflächeGaragen
- Carport
+ CarportsDojoLaufenFederball
@@ -2536,7 +2536,7 @@
Funktion im Gesundheitssektor: PflegefachkraftFunktion im Gesundheitssektor: SanitäterFunktion im Gesundheitssektor: Arzt
- Funktion im Gesundheitssektor: Podologin
+ Funktion im Gesundheitssektor: PodologeFunktion im Gesundheitssektor: PsychologeFunktion im Gesundheitssektor: TherapeutFunktion im Gesundheitssektor: Assistenzarzt
@@ -2772,30 +2772,30 @@
Ladestation: jaLadestation: neinGeschäft für Kunsthandwerksbedarf
- Kraftstoffart (avia)
+ Kraftstoffart (Flugzeuge)TankkartenInternet-Zugangsart
- Kleidungsart
- Schuhart
- Feuerhydranttyp
+ Art
+ Art
+ ArtPositionWasserquelleZahlungsart
- Art des Fußgängerübergangs
+ ArtErtastbares PflasterBürstenlosAutomatisiert
- Parkplatztyp
+ ArtÜberdachtFracht
- Art des Fahrradparkens
+ ArtFahrradtransportHeizungPumpeBezeichnung
- Teleskoptyp
- Tierausbildungsart
- Botschaftsart
+ Art
+ Art
+ ArtHauptstadtSignaltonU-Bahnstation
@@ -2822,10 +2822,10 @@
OberflächeFKKRollstuhlgerecht
- Art des Urlaubsortes
+ ArtPistenpflege
- Recyclingtyp
- Unterkunftsart
+ Art
+ ArtWeihnachtenWeihnachtsveranstaltungWeihnachtsmarkt
@@ -2843,19 +2843,19 @@
DienstleistungSelbstbedienungNach Rezept
- Art der archäologischen Fundstätte
+ ArtBewertung in SternenKonfession
- Informationsart
+ ArtDrive-inDurchfahrschalterDienstleistungÖffentlicher Bücherschrank
- Typ: Telefonzelle
- Typ: Lesebox
- Typ: Holzgehäuse
- Typ: Metallschrank
- Typ: Regal
+ Art: Telefonzelle
+ Art: Lesebox
+ Art: Holzgehäuse
+ Art: Metallschrank
+ Art: RegalZelteWaschmaschineWohnwagen
@@ -2918,7 +2918,7 @@
Bubble TeaFleischFlügel
- Waffel
+ WaffelnSchokoladeWeinMedizinisches Fachgebiet
@@ -3014,7 +3014,7 @@
EsslokalYakinikuUdon
- Brauhaus
+ BrasserieYakitoriTeriyakiZahlungsart (Transport)
@@ -3034,7 +3034,7 @@
Döner Kebab (Schawarma)SchawarmaSpeisen
- Art der Sozialeinrichtung
+ ArtApfelweinhausBaguetteriePastel
@@ -3049,7 +3049,7 @@
LeuchtenLotteriescheineSpielbank
- Glücksspielart
+ ArtLotteriePachinkoSpielautomaten
@@ -3065,15 +3065,15 @@
TierhaltungTierhaltung: PferdTierhaltung: Schaf
- Typ: offener Stall
- Typ: Paddock
+ Art: offener Stall
+ Art: PaddockBauart: GitterAnlage: freistehendBauart: KuppelBauart: PlattformAnlage: verdecktGüterbahnhof
- Coworking Space
+ CoworkingCafeteriajaWein: ja
@@ -3095,7 +3095,7 @@
VoliereFalknereiReptilien
- Zootyp
+ ArtVögelKundendienstMotorradtyp
@@ -3454,7 +3454,7 @@
GebrauchtwagenverkaufBremsenNeuwagenverkauf
- Diagnosen
+ FehlerdiagnoseAutoteileBatterienKlimatisierung
@@ -3508,7 +3508,7 @@
Nukleare GefahrErosionsgefahrLawinengefahr
- Rutschige Straße
+ SchleudergefahrÜberschwemmungsgefahrMinenfeldFahrgemeinschaftsplatz
@@ -3518,7 +3518,7 @@
GeldautomatSchuhreparaturVerpackungsfreie Waren
- Umspannwerkstyp
+ ArtjaNur verpackungsfreiUmspannwerk
@@ -3727,7 +3727,7 @@
TischlerBodenlegerBackstube
- Möbeltischler
+ MöbelbauerGebührHaustierpflegeGeldausgabeautomat: ja
@@ -3749,7 +3749,7 @@
PostbankPostFinance CardMigros Bank
- Badtyp
+ ArtHeiße QuelleOnsenHammam
@@ -3770,24 +3770,24 @@
Geschlecht der Gemeinschaft: männlichGeschlecht der Gemeinschaft: gemischtGrab
- Parkplatz
+ ParkbuchtURL
- Vulkanart
+ ArtVulkanstatus
- Schlacke
+ SchlackenkegelSchichtvulkan
- Schild
+ SchildvulkanMaar
- Caldera
- Lavadom
- Erde
+ Kessel
+ Lavakuppel
+ SchlammvulkanLetzter AusbruchErloschenRuhendAktivInaktivAnzahl der Ausbrüche
- Gedenk-Geisterfahrrad
+ GeisterfahrradPaintballBergrettungSicherheitsgeschäft
@@ -3797,15 +3797,15 @@
TauchzentrumSMSVideo
- Ja
- Nein
- Ja
- Nein
+ ja
+ nein
+ ja
+ neinNur wenn Gehen erlaubt ist
- Kontrastiert
- Falsch
+ Farblich abgestochen
+ IrreführendUnterstand
- Unterstand Typ
+ UnterstandsartPrimitivWasserstand: teilweise überflutetWasserstand: überflutet
@@ -3816,9 +3816,9 @@
Wasserstand: fließendWasserstand: über dem mittleren WasserstandWasserstand: unter dem mittleren Wasserstand
- Behinderung
+ HindernisTrinkwassernachfüllung: jaTrinkwassernachfüllung: nein
- Trinkwassernachfüllnetz
+ Trinkwasser-NachfüllnetzInternetzugangsgebühr für Kunden
\ No newline at end of file
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index 1dacbbc697..ea63260ab9 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -446,7 +446,7 @@
Weitere installieren…Verwenden Sie Rasterkarten für alles, was über diese Ebene hinausgeht.Minimale Vektor-Zoomstufe
- string name=\"route_descr_current_location\">Aktueller Standort</string
+ Online OSM Kartenklassifizierung mit Bildern.Offline-Suche konnte nicht durchgeführt werden.Suche nach StandortSystemeinstellung
@@ -842,7 +842,7 @@
Speichern alsDiesen Filter löschen\?Filter %1$s gelöscht
- Filter %1$s erstellt
+ Filter \'%1$s\' erstelltOsmAnd-Offline-Navigation steht zur Zeit nicht zur Verfügung.LinksverkehrFür Länder, in denen man auf der linken Straßenseite fährt.
@@ -1435,7 +1435,7 @@
Routing-Regeln v1.9 nicht verwendenNeuen Routenalgorithmus aus v1.9 nicht verwenden.Fußgängerübergänge
- Parkplatz
+ ParkbuchtTAG ENTFERNENGPS-StatusNightly-Builds herunterladen.
@@ -3053,7 +3053,7 @@ Lon %2$s
Wählen Sie, welche Art Daten Sie freigeben möchten:Heruntergeladene KartenBesuchte Bildschirme
- Bestimmen Sie, welche Daten Sie für OsmAnd freigeben.
+ Festlegen, welche Daten OsmAnd weitergeben darf.Helfen Sie uns, die Beliebtheit von Karten für Länder und Regionen herauszufinden.Helfen Sie uns, die Beliebtheit von OsmAnd-Funktionen zu verstehen.Auf „Erlauben“ tippen, wenn Sie mit unserer %1$s einverstanden sind
@@ -3277,7 +3277,7 @@ Lon %2$s
Gewicht, Höhe, GeschwindigkeitFahrzeugparameterRoutenparameter
- Standortkodierung öffnen
+ Offener Standortcode (OLC)BegrüßungsnachrichtWarnungen werden während der Navigation unten links angezeigt.Karte während Navigation
@@ -3399,7 +3399,7 @@ Lon %2$s
AusschaltenNeues Plugin hinzugefügtEine Schaltfläche, um die Bildschirmmitte zum Ausgangspunkt zu machen. Sie werden dann aufgefordert, ein Ziel festzulegen oder die Routenberechnung auszulösen.
- Radroutennetzknoten anzeigen
+ Knotenpunktsystem von Radrouten anzeigenDialog zum Herunterladen der KarteDialoge und BenachrichtigungenSteuern Sie Popups, Dialoge und Benachrichtigungen.
@@ -3410,7 +3410,7 @@ Lon %2$s
Richtung einbeziehenRichtung zu jedem Trackpunkt während der Aufnahme speichern.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersönlich%s herunterladenFett
@@ -3563,9 +3563,9 @@ Lon %2$s
Alle ersetzenBeide behaltenImportierte Elemente werden mit Präfix hinzugefügt
- OsmAnd verfügt bereits über Elemente mit denselben Namen wie die importierten.
+ OsmAnd enthält bereits Elemente gleichen Namens wie die importierten.
\n
-\nWählen Sie eine Aktion aus.
+\nWählen Sie eine Maßnahme.Einige Elemente sind bereits vorhandenWählen Sie die zu importierenden Daten.Darstellungsstil
@@ -3602,13 +3602,36 @@ Lon %2$s
TransparenzStellen Sie die minimale und maximale Zoomstufe ein, bei der die Ebene angezeigt wird.Gelände
- Hänge
+ PistenAktivieren Sie diese Option, um die Schatten- oder Hangkarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer WebsiteLegende
- Lesen Sie mehr über Hänge in %1$s.
- Zusätzliche Karten sind erforderlich, um Hänge auf der Karte anzuzeigen.
+ Lesen Sie mehr über Pisten in %1$s.
+ Zusätzliche Karten sind erforderlich, um Pisten auf der Karte anzuzeigen.Für die Darstellung der Schummerung werden zusätzliche Karten benötigt.MinSchummerungs-Karte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Niederungen.%1$s von %2$s
+ Achteck
+ Skitouren
+ Schneemobil
+ Benutzerdefiniertes OsmAnd-Plugin
+ Farbliche Kennzeichnung von Pisten im Gelände.
+ Einen anderen Punkt durch diesen ersetzen
+ Die Änderungen wurden auf das %1$s Profil angewendet.
+ Konnte %1$s nicht lesen.
+ Konnte %1$s nicht schreiben.
+ Konnte %1$s nicht importieren.
+ Wählen Sie eine Pfad-Datei
+ Sprachen
+ Sprache
+ Alle Sprachen
+ Zusätzliche Karten werden benötigt um Wikipedia-POIs auf der Karte anzuzeigen.
+ Entwickler-Plugin
+ Anpassung der Benutzeroberfläche
+ Aktionen im Kontextmenü
+ Ausgeblendet
+ Die Einstellungen werden nach dem Ausblenden auf den ursprünglichen Zustand zurückgesetzt.
+ Hauptaktionen
+ Sie können Elemente nur innerhalb dieser Kategorie verschieben.
+ Elemente
\ No newline at end of file
diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml
index 730d45266e..cceaa6d0e4 100644
--- a/OsmAnd/res/values-el/strings.xml
+++ b/OsmAnd/res/values-el/strings.xml
@@ -2509,7 +2509,7 @@
Ευρώπη - Κάτω ΧώρεςΆλλαΕκδόθηκε
- string name=\"lat_lon_pattern\">Γ. Πλ:%1$.5f Γ. Μηκ: %2$.5f</string
+ Online OSMκατηγοριοποίηση χάρτη με εικόνες.Αγαπημένα που μοιράστηκαν μέσω του OsmAndΠροσθήκη αγαπημένουδιαγραφή
@@ -3403,7 +3403,7 @@
Συμπερίληψη κατεύθυνσηςΑποθήκευση κατεύθυνσης για κάθε σημείο ίχνους κατά την εγγραφή.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sΠροσωπικόΛήψη %sΠυκνός
diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml
index da9072eb4d..8b794b29bf 100644
--- a/OsmAnd/res/values-eo/strings.xml
+++ b/OsmAnd/res/values-eo/strings.xml
@@ -3386,7 +3386,7 @@ Indikas lokon: %1$s x %2$s"
Inkluzivi direktonKonservi direkton al ĉiu punkto de kurso dum registri.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonajElŝutado de %sDika
@@ -3588,4 +3588,37 @@ Indikas lokon: %1$s x %2$s"
RomboKvadratoMin.
+ Okangulo
+ Ski‑ekskursado
+ Motorsledo
+ Propra OsmAnd-kromprogramo
+ Anstataŭigi alian punkton per tiu ĉi
+ Aplikis ŝanĝojn al la profilo %1$s.
+ Ne povas legi %1$s.
+ Ne povas skribi %1$s.
+ Ne povas enporti %1$s.
+ Elekti dosieron de spuro
+ Lingvoj
+ Lingvo
+ Ĉiuj lingvoj
+ Kromaj mapoj estas necesaj por vidigi punktojn de Vikipedio sur la mapo.
+ Ĉefaj agoj povas enhavi nur 4 butonojn.
+ Ĉefaj agoj
+ Vi povas aliri tiun ĉi agojn per la butono “agoj”.
+ Vi povas movi elementojn nur ene tiu ĉi kategorio.
+ Programista kromprogramo
+ Elementoj
+ Alĝustigi kaj kaŝi elementojn en la (maldekstra) tirmenuo, menuo “agordi mapon” kaj kunteksta menuo de mapo.
+\n
+\nVi povas malaktivigi neuzatajn kromprogramojn por kaŝi ĉiujn iliajn rilatajn butonojn: %1$s.
+ Elementoj de tirmenuo, kunteksta menuo, ktp.
+ Alĝustigi interfacon
+ Tirmenuo
+ Kunteksta menuo
+ Reordigi kaj kaŝi elementojn: %1$s.
+ Disigilo
+ La jenaj elementoj troviĝos en la menuo sub la horizontala linio.
+ La jenaj elementoj estas kaŝitaj el la menuo, sed la rilataj eblaĵoj kaj kromprogramoj plue funkcios.
+ Kaŝitaj
+ Agordoj restarigos al la implicitaj valoroj post kaŝiĝo.
\ No newline at end of file
diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml
index 3ad3febaf0..8d16d8d4fa 100644
--- a/OsmAnd/res/values-es-rAR/phrases.xml
+++ b/OsmAnd/res/values-es-rAR/phrases.xml
@@ -3816,7 +3816,7 @@
Nivel del agua: sumergidoNivel de agua: secoNivel del agua: cubierto
- Nivel de agua: inundado
+ Nivel del agua: inundadoNivel del agua: inundacionesNivel del agua: flotanteNivel del agua: por encima del nivel medio del agua
diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml
index cd7e7ba7aa..3ec3bfc10b 100644
--- a/OsmAnd/res/values-es-rAR/strings.xml
+++ b/OsmAnd/res/values-es-rAR/strings.xml
@@ -536,7 +536,7 @@ Lon %2$s
Zoom máximo: %1$sZoom mínimo: %1$sDatos de teselas: %1$s
- Fuente de teselas «%1$s» guardada
+ Repositorio de teselas «%1$s» guardadaMercator elípticaZoom máximoExpira (minutos)
@@ -914,10 +914,10 @@ Lon %2$s
Mapas de teselas en línea y en cachéMapas descargados (vectores)Descarga y gestiona mapas sin conexión almacenados en el dispositivo.
- Activa el complemento «Mapas en línea», para elegir diferentes fuentes de mapas
+ Activa el complemento «Mapas en línea», para elegir diferentes repositorios de mapasMapas en línea y teselasUsa mapas en línea (descarga y guarda teselas en la tarjeta de memoria).
- Elige las fuentes de teselas de mapas en línea o en caché.
+ Elige los repositorios de teselas de mapas en línea o en caché.ComplementosLos complementos activan ajustes avanzados y funcionalidades adicionales.Complementos
@@ -1060,7 +1060,7 @@ Lon %2$s
Centrado automático del mapa activado.Opciones específicas de dibujo vectorialSuperpuesta / subyacente
- Ajustes de la fuente del mapa
+ Ajustes del repositorio de mapasAjustes del mapa vectorial¿Borrar «%1$s»?Suburbio
@@ -1143,7 +1143,7 @@ Lon %2$s
Pasar a lo largo de la traza completaMapa vectorial presente para esta ubicación.
\n\t
-\n\tPara usarlo activa «Menú» → «Configurar mapa» → «Fuente del mapa…» → «Mapas vectoriales sin conexión».
+\n\tPara usarlo activa «Menú» → «Configurar mapa» → «Repositorio de mapas…» → «Mapas vectoriales sin conexión».
Salida de indicaciones por vozElige que altavoz reproducirá indicaciones por voz.Audio de llamada telefónica (para altavoces estéreos con Bluetooth)
@@ -1153,7 +1153,7 @@ Lon %2$s
Ajustar transparencia de la capa superpuesta.Transparencia de superposiciónAjustar transparencia del mapa base.
- Transparencia de mapa base
+ Transparencia del mapa baseMapa subyacente…Mapa subyacenteElegir mapa subyacente
@@ -1307,7 +1307,7 @@ Lon %2$s
RutaNotas de OSM (en línea)Superposición de PDI…
- Fuente del mapa…
+ Repositorio de mapas…Capas de mapasBuscar PDIUsa un dispositivo con rueda de desplazamiento para mover el mapa.
@@ -1462,9 +1462,9 @@ Lon %2$s
Visión 3D del mapaMuestra la última superposición de PDI usada.Mostrar superposición de PDI
- Elige el origen de los mapas en línea o teselas en caché.
- Fuente de teselas del mapa
- Fuente del mapa
+ Elige el repositorio de los mapas en línea o teselas en caché.
+ Repositorio de teselas del mapa
+ Repositorio del mapaUsar InternetMostrar tu ubicaciónMostrar coordenadas GPS en el mapa
@@ -2174,10 +2174,10 @@ Lon %2$s
Cambiar mapa subyacenteMapas subyacentesAñadir subyacencia
- Cambiar fuente del mapa
- Fuentes del mapa
- Añadir fuente del mapa
- Fuente del mapa cambiada a «%s».
+ Cambiar repositorio del mapa
+ Repositorio de mapas
+ Añadir repositorio del mapa
+ Repositorio del mapa cambiada a «%s».Cambiar ubicación del botónMantener pulsado y arrastrar el botón para cambiar su ubicación en la pantalla.Mostrar un diálogo temporal
@@ -2979,7 +2979,7 @@ Lon %2$s
Carretera principalCalle residencialVía de servicio
- Vereda
+ Vereda/AceraCamino ruralCamino ecuestreEscalera
@@ -3405,7 +3405,7 @@ Lon %2$s
Incluir rumbo%1$s • %2$sGuarda el rumbo para cada punto de la traza durante la grabación.
- %1$s, %2$s
+ %1$s, %2$sPersonalDescargando %sEspesor
@@ -3607,4 +3607,39 @@ Lon %2$s
Recalcular ruta en caso de desviaciónElige la distancia después de la cual la ruta será recalculada.La ruta será recalculada si la distancia a la ubicación actual es mayor que el valor elegido.
+ Octágono
+ Esquí de travesía
+ Motonieve
+ Complemento personalizado de OsmAnd
+ Reemplaza otro punto con esto
+ No se pudo leer «%1$s».
+ No se pudo escribir «%1$s».
+ No se pudo importar «%1$s».
+ Cambios aplicados al perfil «%1$s».
+ Personaliza la cantidad de elementos en el cajón, el la configuración del mapa y el menú contextual.
+\n
+\nPuedes desactivar los complementos no utilizados, para ocultar todos sus controles de la aplicación «%1$s».
+ Elementos del cajón, menú contextual
+ Personalización de la interfaz de usuario
+ Cajón
+ Acciones del menú contextual
+ Reordenar u ocultar elementos de «%1$s».
+ Divisor
+ Elementos debajo de este punto separados por un divisor.
+ Oculto
+ Estos elementos están ocultos en el menú, pero las opciones o complementos representados siguen funcionando.
+ Los ajustes se restablecerán al estado original después de ocultarse.
+ Las acciones principales contienen sólo 4 botones.
+ Acciones principales
+ Puedes acceder a estas acciones, pulsando el botón «Acciones».
+ Sólo puedes mover objetos dentro de esta categoría.
+ Complemento de desarrollador
+ Elementos
+ Marca el archivo de la traza
+ Idiomas
+ Idioma
+ Todos los idiomas
+ Algunos artículos de Wikipedia pueden no estar disponibles en tu idioma, elige los idiomas en los que los artículos de Wikipedia aparecerán en el mapa.
+\nPodrás cambiar entre todos los idiomas disponibles mientras lees el artículo.
+ Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa.
\ No newline at end of file
diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml
index cc0ed6783a..54043fbb2b 100644
--- a/OsmAnd/res/values-es-rUS/phrases.xml
+++ b/OsmAnd/res/values-es-rUS/phrases.xml
@@ -133,7 +133,7 @@
Cuatriciclos;Concesionaria de cuatriciclosCosméticosMercado
- Artículos de costura;Telas;Mercería
+ Mercería;Artículos de costura;TelasPolicíaCuartel de bomberosTeléfono de emergencia
diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml
index 1c526e9226..147cbbbad9 100644
--- a/OsmAnd/res/values-es-rUS/strings.xml
+++ b/OsmAnd/res/values-es-rUS/strings.xml
@@ -536,7 +536,7 @@ Lon %2$s
Zoom máximo: %1$sZoom mínimo: %1$sDatos de teselas: %1$s
- Fuente de teselas «%1$s» guardada
+ Repositorio de teselas «%1$s» guardadaMercator elípticaZoom máximoExpira (minutos)
@@ -914,10 +914,10 @@ Lon %2$s
Mapas de teselas en línea y en cachéMapas descargados (vectores)Descarga y gestiona mapas sin conexión almacenados en el dispositivo.
- Activa el complemento «Mapas en línea», para elegir diferentes fuentes de mapas
+ Activa el complemento «Mapas en línea», para elegir diferentes repositorios de mapasMapas en línea y teselasUsa mapas en línea (descarga y guarda teselas en la tarjeta de memoria).
- Elige las fuentes de teselas de mapas en línea o en caché.
+ Elige los repositorios de teselas de mapas en línea o en caché.ComplementosLos complementos activan ajustes avanzados y funcionalidades adicionales.Complementos
@@ -1060,7 +1060,7 @@ Lon %2$s
Centrado automático del mapa activado.Opciones específicas de dibujo vectorialSuperpuesta / subyacente
- Ajustes de la fuente del mapa
+ Ajustes del repositorio de mapasAjustes del mapa vectorial¿Borrar «%1$s»?Suburbio
@@ -1143,7 +1143,7 @@ Lon %2$s
Pasar a lo largo de la traza completaMapa vectorial presente para esta ubicación.
\n\t
-\n\tPara usarlo activa «Menú» → «Configurar mapa» → «Fuente del mapa…» → «Mapas vectoriales sin conexión».
+\n\tPara usarlo activa «Menú» → «Configurar mapa» → «Repositorio de mapas…» → «Mapas vectoriales sin conexión».
Salida de indicaciones por vozElige que altavoz reproducirá indicaciones por voz.Audio de llamada telefónica (para altavoces estéreos con Bluetooth)
@@ -1153,7 +1153,7 @@ Lon %2$s
Ajustar transparencia de la capa superpuesta.Transparencia de superposiciónAjustar transparencia del mapa base.
- Transparencia de mapa base
+ Transparencia del mapa baseMapa subyacente…Mapa subyacenteElegir mapa subyacente
@@ -1254,7 +1254,7 @@ Lon %2$s
DescargadosRuta más rápidaActivar para calcular la ruta más rápida o desactivar para la más eficiente en combustible.
- En el zoom {0}, descarga {1} teselas ({2} MB)
+ En el zoom {0}, se descargarán {1} teselas ({2} MB)Descargar mapaZoom máximo a precargarNo se pudo descargar el mapa
@@ -1307,7 +1307,7 @@ Lon %2$s
RutaNotas de OSM (en línea)Superposición de PDI…
- Fuente del mapa…
+ Repositorio de mapas…Capas de mapasBuscar PDIUsa un dispositivo con rueda de desplazamiento para mover el mapa.
@@ -1462,9 +1462,9 @@ Lon %2$s
Visión 3D del mapaMuestra la última superposición de PDI usada.Mostrar superposición de PDI
- Elige el origen de los mapas en línea o teselas en caché.
- Fuente de teselas del mapa
- Fuente del mapa
+ Elige el repositorio de los mapas en línea o teselas en caché.
+ Repositorio de teselas del mapa
+ Repositorio del mapaUsar InternetMostrar tu ubicaciónMostrar coordenadas GPS en el mapa
@@ -2174,10 +2174,10 @@ Lon %2$s
Cambiar mapa subyacenteMapas subyacentesAñadir subyacencia
- Cambiar fuente del mapa
- Fuentes del mapa
- Añadir fuente del mapa
- Fuente del mapa cambiada a «%s».
+ Cambiar repositorio del mapa
+ Repositorio de mapas
+ Añadir repositorio del mapa
+ Repositorio del mapa cambiada a «%s».Cambiar ubicación del botónMantener pulsado y arrastrar el botón para cambiar su ubicación en la pantalla.Mostrar un diálogo temporal
@@ -3405,7 +3405,7 @@ Lon %2$s
Incluir rumboGuarda el rumbo para cada punto de la traza durante la grabación.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonalDescargando %sEspesor
@@ -3557,7 +3557,7 @@ Lon %2$s
Los elementos actuales serán reemplazados por elementos del archivoReemplazar todoMantener ambos
- Se importarán los elementos con un prefijo
+ Los elementos serán importados con un prefijoOsmAnd ya tiene elementos con los mismos nombres que los importados.
\n
\nElige una acción.
@@ -3578,4 +3578,67 @@ Lon %2$s
Elementos añadidosImportación completaTodos los datos de %1$s son importados, puedes usar los botones de abajo para abrir la parte necesaria de la aplicación para manejarla.
+ Terreno
+ Mapa de sombreado usando sombras oscuras para mostrar las laderas, picos y tierras bajas.
+ La pendiente se visualiza en colores sobre el terreno.
+ Define los niveles de zoom mínimo y máximo en los que se mostrará la capa.
+ Se necesitan mapas adicionales para ver el sombreado en el mapa.
+ Se necesitan mapas adicionales para ver las pendientes en el mapa.
+ Puedes leer más sobre las pendientes en «%1$s».
+ Transparencia
+ Niveles de zoom
+ Leyenda
+ Permite ver el sombreado o el mapa de pendientes. Puedes leer más sobre estos tipos de mapas en nuestro sitio
+ Sombreado
+ Recalcular ruta en caso de desviación
+ Elige la distancia después de la cual la ruta será recalculada.
+ La ruta será recalculada si la distancia a la ubicación actual es mayor que el valor elegido.
+ %1$s de %2$s
+ Pendientes
+ Mostrar/ocultar terreno
+ Ocultar terreno
+ Mostrar terreno
+ Un botón que muestra u oculta la capa del terreno en el mapa.
+ Borrar descripción
+ Añadir descripción
+ Elegir grupo
+ Elegir forma
+ Círculo
+ Octágono
+ Cuadrado
+ Min
+ Esquí de travesía
+ Motonieve
+ Complemento personalizado de OsmAnd
+ Reemplaza otro punto con esto
+ Cambios aplicados al perfil «%1$s».
+ No se pudo leer «%1$s».
+ No se pudo escribir «%1$s».
+ No se pudo importar «%1$s».
+ Algunos artículos de Wikipedia pueden no estar disponibles en tu idioma, elige los idiomas en los que los artículos de Wikipedia aparecerán en el mapa.
+\nPodrás cambiar entre todos los idiomas disponibles mientras lees el artículo.
+ Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa.
+ Elementos del cajón, menú contextual
+ Personaliza la cantidad de elementos en el cajón, el la configuración del mapa y el menú contextual.
+\n
+\nPuedes desactivar los complementos no utilizados, para ocultar todos sus controles de la aplicación «%1$s».
+ Personalización de la interfaz de usuario
+ Idiomas
+ Idioma
+ Elementos
+ Oculto
+ Cajón
+ Divisor
+ Todos los idiomas
+ Marca el archivo de la traza
+ Los ajustes se restablecerán al estado original después de ocultarse.
+ Reordenar u ocultar elementos de «%1$s».
+ Sólo puedes mover objetos dentro de esta categoría.
+ Las acciones principales contienen sólo 4 botones.
+ Acciones principales
+ Estos elementos están ocultos en el menú, pero las opciones o complementos representados siguen funcionando.
+ Elementos debajo de este punto separados por un divisor.
+ Complemento de desarrollador
+ Acciones del menú contextual
+ Puedes acceder a estas acciones, pulsando el botón «Acciones».
\ No newline at end of file
diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml
index 7dba16b44c..eacc9e7a59 100644
--- a/OsmAnd/res/values-es/phrases.xml
+++ b/OsmAnd/res/values-es/phrases.xml
@@ -3785,4 +3785,9 @@
ActivoInactivoNúmero de erupciones
+ No
+ Sí
+ No
+ Sí
+ Vídeo
\ No newline at end of file
diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml
index d7cabbcf6c..80a140d695 100644
--- a/OsmAnd/res/values-es/strings.xml
+++ b/OsmAnd/res/values-es/strings.xml
@@ -3381,7 +3381,7 @@
Diálogos y notificacionesRedes de nodosMapas sugeridos
- Esos mapas deben usarse con un complemento
+ Estos mapas se necesitan para el pluginPerfiles añadidosEl complemento añade un nuevo perfil a OsmAndApagar
@@ -3395,7 +3395,7 @@
Incluir rumboGuarda el rumbo para cada punto de la traza durante la grabación.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonalDescargando %sGrueso
@@ -3518,4 +3518,59 @@
Incluir datos adicionalesEl perfil importado contiene datos adicionales. Pulsa en Importar para importar solo datos de perfil o seleccione datos adicionales para importar.Puedes seleccionar datos adicionales para exportar junto con el perfil.
+ Perfiles
+ Acciones rápidas
+ No hay nada seleccionado
+ Tipo de PDI
+ Preparando
+ Ángulo mínimo entre mi ubicación y ruta
+ Se mostrará un segmento recto adicional entre mi ubicación y la ruta calculada hasta que se vuelva a calcular la ruta
+ Ángulo
+ Ángulo: %s°
+ Perfil personalizado
+ Importar archivo de renderizado
+ Terreno
+ Mapa de sombreado utilizando tonos oscuros para mostrar pendientes, picos y tierras bajas.
+ Pendiente es visualizaciones coloreadas en el terreno.
+ Establezca los niveles de zoom mínimo y máximo en los que se mostrará la capa.
+ Se necesitan mapas adicionales para ver Sombreado en el mapa.
+ Se necesitan mapas adicionales para ver Pendientes en el mapa.
+ Puede leer más sobre Pendientes en %1$s.
+ Transparencia
+ Niveles de zoom
+ Habilite para ver el sombreado o el mapa de pendiente. Puede leer más sobre este tipo de mapas en nuestro sitio
+ Sombreado
+ Importación completa
+ Artículos añadidos
+ OsmAnd comprueba %1$s para ver si hay duplicados con los elementos existentes en la aplicación.
+\n
+\nPuede llevar algún tiempo.
+ Importando
+ Importando datos de %1$s
+ No se pudo hacer una copia de seguridad del perfil.
+ Guardando el nuevo perfil
+ ¿Restaurar todos los ajustes del perfil\?
+ Todos los ajustes del perfil se restaurarán a su estado original después de crear/importar este perfil.
+ Estás seguro de que quieres borrar los datos grabados\?
+ Recalcular ruta en caso de desvío
+ %1$s de %2$s
+ Cuestas
+ Mostrar/esconder terreno
+ Esconder terreno
+ Mostrar terreno
+ Un botón para mostrar o esconder una capa de terreno en el mapa.
+ Borra descripción
+ Añade descripción
+ Elige grupo
+ Elige forma
+ Reemplazar otro punto con este
+ Cambios aplicados al perfil %1$s.
+ No se pudo leer %1$s.
+ No se pudo escribir %1$s.
+ No se pudo importar %1$s.
+ Elige archivo de traza
+ Idiomas
+ Idioma
+ Todos los idiomas
+ Se necesitan mapas adicionales para ver los puntos de interés de Wikipedia en el mapa.
\ No newline at end of file
diff --git a/OsmAnd/res/values-et/phrases.xml b/OsmAnd/res/values-et/phrases.xml
index 42528c34d6..3351abbc5a 100644
--- a/OsmAnd/res/values-et/phrases.xml
+++ b/OsmAnd/res/values-et/phrases.xml
@@ -1587,7 +1587,7 @@
Internet: olemasInternet: puudubInternet - tasuline
- Internet - tasuta
+ Tasuta internetÜrituste toimumiskohtAinult taimetoitTaimetoit
@@ -3767,4 +3767,37 @@
MitteaktiivnePursete arvKummitusratas
+ Veetase: kuival
+ Veetase: vee all
+ Veetase: osaliselt vee all
+ Algeline
+ Ebaõige
+ Kontrastne
+ Ainult kui jalakäijatele lubatud
+ Tasuline internetipunkt
+ Ei
+ Jah
+ Kioski tüüp
+ Kiosk
+ Ei
+ Jah
+ Sukeldumiskeskus
+ Jahibaas
+ Raja viitenumber
+ Bowlingukeskus
+ Turvakauplus
+ Mägipääste
+ Värvisõda
+ Video
+ SMS
+ Joogivee täitmise võrgustik
+ Joogivee täitmine: ei
+ Joogivee täitmine: jah
+ Takistus
+ Veetase: alla keskmise veetaseme
+ Veetase: üle keskmise veetaseme
+ Veetase: ujutab
+ Veetase: üleujutatud
+ Veetase: kaetud
+ Veetase: veega kaetud
\ No newline at end of file
diff --git a/OsmAnd/res/values-et/strings.xml b/OsmAnd/res/values-et/strings.xml
index 142c132032..6791a51366 100644
--- a/OsmAnd/res/values-et/strings.xml
+++ b/OsmAnd/res/values-et/strings.xml
@@ -1033,7 +1033,7 @@
Kaasa pealkiriSalvestamise ajal salvesta kurss igasse teekonnapunkti.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sIsiklikAllalaadimine %sJäme
@@ -3404,4 +3404,79 @@
Kasuta süsteemi rakendustKaamera katiku heliAutoriseerimine õnnestus
+ Ava seaded
+ Keela ümberarvutus
+ Määra profiili nimi
+ Vali imporditavad andmed.
+ Mõned kirjed on juba olemas
+ OsmAndis on juba samade nimedega kirjed kui need, mis imporditud.
+\n
+\nVali toiming.
+ Imporditud kirjetele lisatakse eesliide
+ Säilita mõlemad
+ Asenda kõik
+ Olemasolevad kirjed asendatakse failis olevate kirjetega
+ Märgitud %1$s on juba OsmAndis olemas.
+ Profiilid
+ Kiirtoimingud
+ Midagi pole valitud
+ Huvipunktide tüübid
+ Ettevalmistus
+ Rakenduse vaikeväärtus (%s)
+ Vähim nurk minu asukoha ja teekonna vahel
+ Minu asukoha ja arvutatud teekonna vahel kuvatakse teekonna ümberarvutuseni täiendav sirglõik
+ Renderdusfaili import
+ Nurk
+ Nurk: %s°
+ Kohandatud profiil
+ Maastik
+ Kõrgusreljeefi kaart tumedate varjunditega nõlvade, tippude ja tasandike kirjeldamiseks.
+ Nõlv märgib maastikku värvidega.
+ Määra vähima ja suurima suurenduse kaardikihi kuvamisel.
+ Kõrgusreljeefi kuvamiseks on vaja täiendavaid kaarte.
+ Nõlvade kuvamiseks on vaja täiendavaid kaarte.
+ Nõlvadest saab rohkem lugeda %1$s-s.
+ Läbipaistvus
+ Suurendus
+ Tingmärgid
+ Luba kõrgusreljeefi või nõlvakaardi kuvamiseks. Nendest kaarditüüpidest saab rohkem lugeda meie kodulehel
+ Kõrgusreljeef
+ Kõik andmed %1$s-st imporditud, rakenduse vajaliku osaga töötamiseks võib kasutada nuppe allpool.
+ Imporditud
+ Kirjed lisatud
+ OsmAnd kontrollib %1$s rakenduses korduvate kirjete osas.
+\n
+\nSelleks võib kuluda aega.
+ Importimine
+ Andmete import %1$s-st
+ Ei saanud profiili varundada.
+ Uue profiili salvestamine
+ Kas taastada kõik profiili seaded\?
+ Kõik profiili seaded lähtestatakse peale selle profiili loomist/importimist algväärtustele.
+ Kas tõesti kustutada salvestatud andmed\?
+ Arvutada teekond kõrvalekaldel ümber
+ Vali eemaldumine alates millest teekond arvutatakse ümber.
+ Teekonna ümberarvutus, kui kaugus teekonnast praegusesse asukohta on suurem valitud väärtusest.
+ %1$s %2$s-st
+ Nõlvad
+ Kuva/peida maastik
+ Peida maastik
+ Kuva maastik
+ Nupp maastikukihi kuvamiseks või peitmiseks kaardil.
+ Kustuta kirjeldus
+ Lisa kirjeldus
+ Vali grupp
+ Vali kujund
+ Ring
+ Kaheksanurk
+ Ruut
+ Min
+ Asenda sellega mõni teine punkt
+ Suusasõit
+ Mootorsaan
+ Kohandatud OsmAnd pistik
+ Profiil %1$s muudetud.
+ Ei saanud lugeda %1$s.
+ Ei saanud kirjutada %1$s.
+ Ei saanud importida %1$s.
\ No newline at end of file
diff --git a/OsmAnd/res/values-eu/strings.xml b/OsmAnd/res/values-eu/strings.xml
index e0fb74d59a..8ca0c17d2a 100644
--- a/OsmAnd/res/values-eu/strings.xml
+++ b/OsmAnd/res/values-eu/strings.xml
@@ -3409,7 +3409,7 @@ Area honi dagokio: %1$s x %2$s
Sartu norabideaGorde lorratzeko puntu bakoitzerako norabidea grabatzean.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPertsonala%s deskargatzenLodia
@@ -3615,4 +3615,18 @@ Area honi dagokio: %1$s x %2$s
Terrenoa%1$s / %2$sMin
+ Oktagonoa
+ Ordeztu beste puntua honekin
+ Mendiko eskia
+ Elur-motorra
+ OsmAnd gehigarri pertsonala
+ Aldaketak aplikatuta %1$s profilean.
+ Ezin izan da %1$s irakurri.
+ Ezin izan da %1$s idatzi.
+ Ezin izan da %1$s inportatu.
+ Hautatu lorratz fitxategia
+ Hizkuntzak
+ Hizkuntza
+ Hizkuntza guztiak
+ Mapa osagarriak behar dira Wikipediaren POIak mapan ikusteko.
\ No newline at end of file
diff --git a/OsmAnd/res/values-fa/phrases.xml b/OsmAnd/res/values-fa/phrases.xml
index b10559f09b..187f8db1c8 100644
--- a/OsmAnd/res/values-fa/phrases.xml
+++ b/OsmAnd/res/values-fa/phrases.xml
@@ -306,7 +306,7 @@
کوهنوردیکریکتزمین کروکت
- پیست دوچرخه سواری
+ دوچرخه سواریغواصیغواصی در عمقمسابقات حیوانات
diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml
index 5c740d4bd4..45777aef0f 100644
--- a/OsmAnd/res/values-fa/strings.xml
+++ b/OsmAnd/res/values-fa/strings.xml
@@ -2352,7 +2352,7 @@
پیداکردن پارکینگافزودن بازهٔ زمانیخنثیکردن همه
- بخشبندی خودکار مسیر پس از وقفه
+ بخشبندی خودکار ضبط پس از وقفهکمترین جابهجایی برای ثبتنویسهگردانی نامهامدت کلیپ
@@ -3047,7 +3047,7 @@
%1$d فایل منتقل شد (%2$s).%1$d فایل کپی شد (%2$s).نمیتوان %1$d فایل (%2$s) را کپی کرد.
- %1$d فایل (%2$s) در مکان قبلی وجود دارد.
+ %1$d فایل (%2$s) در مکان قبلی وجود دارد:
\n\'%3$s\'نقشهها را منتقل کنمنتقل نکن
@@ -3206,8 +3206,8 @@
حداکثر چند بار شیوهٔ حملونقل تغییر کند؟تعداد تغییراتحذف وقفهها
- محدودههای کمآلاینده (LEZ) را روی نقشه نشان بده. روی مسیریابی اثر نمیگذارد.
- محدودههای کمآلاینده
+ محدودههای کاهش آلودگی هوای شهر را روی نقشه نشان بده. روی مسیریابی اثر نمیگذارد.
+ محدودههای کاهشدر نظر گرفتن محدودیتهای موقت در مسیریابیاسکی آلپاین/دانهیلسراشیبیهای اسکی آلپاین یا دانهیل و دسترسی به بالابرهای اسکی.
@@ -3273,7 +3273,7 @@
سورتمهسراشیبی برای سورتمهسواری.مسیرهای آمادهشده برای سبک آزاد یا فقط-اسکیت. بدون مسیرهای کلاسیک.
- "مسیرهایی که فقط برای سبک کلاسیک آماده شده و مسیر اسکیت ندارند. مسیرهای سُستتر و آمادهشده با برفروهای کوچکتر و مسیرهای دستساز اسکیبازان را نیز شامل میشود."
+ مسیرهایی که فقط برای سبک کلاسیک آماده شده و مسیر اسکیت ندارند. مسیرهای سُستتر و آمادهشده با برفروهای کوچکتر و مسیرهای دستساز اسکیبازان را نیز شامل میشود.یک دستگاه کنترل خارجی، مانند صفحهکلید یا WunderLINQ را انتخاب کنید.OsmAnd از قالب UTM Standard استفاده میکند که مشابه (اما نه یکسان) با UTM Nato است.بهکارگیری فقط برای «%1$s»
@@ -3424,14 +3424,14 @@
پروفایلهایی که افزونه افزودهافزونهٔ تازه اضافه شدنمایش مسیرهای دوچرخهٔ شبکههای گره
- %1$s پاکسازی شود؟
+ %1$s پاکسازی شود؟شبکههای گرهخاموشپیوند پارههاثبت جهتهنگام ضبط، جهت (heading) را برای هر یک از نقطههای رد ثبت میکند.%1$s • %2$s
- %1$s، %2$s
+ %1$s، %2$sشخصیدر حال بارگیری %sضخیم
@@ -3465,7 +3465,7 @@
اثر جانبی: همهٔ قطعههایی که در آنها به حداقل سرعت معیار نرسید از رد حذف خواهد شد (مثلاً هنگامی که دوچرخهتان را بالای یک تپه با شیب تند میبرید). همچنین هیچ اطلاعاتی دربارهٔ بازههای توقف، مانند استراحتها، ضبط نمیشود. این مسئله بر همهٔ تحلیلها یا پسپردازشها تأثیر میگذارد، مانند زمانی که بخواهید مسافت کلی سفر، مدت حرکت یا سرعت متوسط خود را بدانید.توصیه: ابتدا از پالایهٔ «کمترین جابهجایی» بهمنظور تشخیص حرکت استفاده کنید (B). اینگونه شاید نتایج بهتری بگیرید و همچنین دادهٔ کمتری از دست میدهید. اگر ردها در سرعتهای پایین نویز دارد، برای اینجا از مقدارهای غیرصفر استفاده کنید. لطفاً توجه نمایید که برخی اندازهگیریها ممکن است اصلاً هیچ سرعتی را گزارش نکنند (برخی روشهای مبتنی بر شبکه)، که در این صورت هیچ چیزی ضبط نخواهد شد.توجه: بیشتر چیپستهای GPS فقط در صورتی مقدار سرعت را گزارش میکنند که الگوریتم، شما را در حال حرکت تشخیص دهد و اگر در حال حرکت نباشید چیزی گزارش نمیکنند. بنابراین استفاده از گزینهٔ «>۰» در این پالایه، به تشخیص حرکت توسط چیپست GPS وابسته است. البته حتی اگر این پالایش در زمان ضبط انجام نشود، ما از این ویژگی در تحلیلهای GPX خود استفاده میکنیم تا مسافت اصلاحشده را محاسبه کنیم؛ یعنی مقداری که برای «مسافت اصلاحشده» گزارش میکنیم میزان مسافتی است که در هنگام حرکت ضبط شده.
- این مورد فقط نقاطی را ضبط میکند که با شاخص کمترین صحت (به متر/فوت، مطابق گزارش اندروید از چیپست) اندازهگیری شدهاند. منظور از صحت، نمودار نقطهای اندازهگیریهای تکراری است و مستقیماً مربوط به دقت نمیشود (دقت: میزان نزدیکی اندازهگیریها به موقعیت واقعی).
+ این مورد فقط نقاطی را ضبط میکند که با شاخص کمترین صحت (به متر/فوت، مطابق گزارش اندروید از چیپست) اندازهگیری شدهاند. منظور از صحت، پراکندگی اندازهگیریهای تکراری است و مستقیماً مربوط به دقت نمیشود (دقت: میزان نزدیکی اندازهگیریها به موقعیت واقعی).اثر جانبی: درنتیجهٔ پالایش بر اساس صحت، ممکن است مثلاً زیر پلها، زیر درختان، میان ساختمانهای بلند یا در شرایط جوّی بخصوص، نقاط تماماً از دست بروند.توصیه: سخت است آنچه ثبت میشود یا آنچه ثبت نمیشود را پیشبینی کنیم. شاید بهتر باشد این پالایه را خاموش کنید.توجه: اگر بلافاصله پیش از ضبط، GPS خاموش بوده، ممکن است نخستین نقطه صحت کمتری داشته باشد؛ بنابراین ممکن است بخواهیم طوری کدنویسی کنیم که یک نقطه با یک یا چند ثانیه تأخیر ضبط شود (یا از سه نقطهٔ پیدرپی بهترینشان را ضبط کنیم و...)، البته این هنوز پیاده نشده.
@@ -3519,10 +3519,10 @@
غروب خورشید در %1$sطلوع خورشید در %1$sحالت دسترسی آسان در دستگاه شما غیرفعال است.
- استفاده از زمان خاموششدن صفحهٔ دستگاه
- پیشفرض غیرفعال است، اگر OsmAnd در پیشزمینه اجرا باشد صفحه خاموش نمیشود.
-\n
-\nاگر فعال باشد، OsmAnd از تنظیمات دستگاه برای زمان خاموششدن صفحه استفاده میکند.
+ استفاده از زمان خاموشی صفحهٔ دستگاه
+ پیشفرض غیرفعال است، اگر OsmAnd در پیشزمینه اجرا باشد صفحه خاموش نمیشود.
+\n
+\nاگر فعال باشد، OsmAnd از تنظیمات دستگاه برای زمان خاموشی صفحه استفاده میکند.پاکسازی دادهٔ ضبطشده• پروفایلها: اکنون میتوانید ترتیب پروفایلها و نماد آنها را تنظیم کنید. تنظیمات پروفایلهای پایه را تغییر دهید یا آنها را به پیشفرض بازنشانی کنید.
\n
@@ -3635,4 +3635,35 @@
افزودن توضیحاتانتخاب گروهانتخاب شکل
+ هشتضلعی
+ تور اسکی
+ برفرو
+ افزونهٔ سفارشی OsmAnd
+ نقطهٔ دیگری را جانشین این کنید
+ تغییرات روی پروفایل %1$s به کار رفت.
+ خواندن %1$s ناموفق بود.
+ نوشتن %1$s ناموفق بود.
+ درونبرد %1$s ناموفق بود.
+ برای مشاهدهٔ نقاط ویکیپدیا روی نقشه باید نقشهٔ دیگری را نیز دانلود کنید.
+ تقسیمگر ضبطکننده
+ انتخاب فایل رد
+ زبانها
+ زبان
+ همهٔ زبانها
+ تعداد اقلام کشو را بهدلخواه تنظیم کنید، نقشه و منوی زمینه را پیکربندی نمایید.
+\n
+\nمیتوانید افزونههای بیاستفاده را غیرفعال کنید تا همهٔ کنترلهای آنها از %1$s برنامه پنهان شود.
+ تنظیمات پس از پنهانسازی به حالت اولیه بازنشانی میشود.
+
+ پنهان
+ جداکننده
+ مرتبسازی یا پنهانسازی اقلام %1$s.
+ کشو
+ اقلام کشو، منوی زمینه
+ سفارشیسازی واسط کاربری
+ کنشهای منوی زمینه
+ کنشهای اصلی فقط ۴ دکمه دارند.
+ کنشهای اصلی
+ با زدن روی دکمهٔ «کنشها» میتوانید به این کنشها دسترسی پیدا کنید.
+ افزونهٔ توسعهدهنده
\ No newline at end of file
diff --git a/OsmAnd/res/values-fi/phrases.xml b/OsmAnd/res/values-fi/phrases.xml
index 31950b9d3c..6fb92b9925 100644
--- a/OsmAnd/res/values-fi/phrases.xml
+++ b/OsmAnd/res/values-fi/phrases.xml
@@ -1389,4 +1389,5 @@
KatuosoiteTalon numeroAsunto
+ Video
\ No newline at end of file
diff --git a/OsmAnd/res/values-fi/strings.xml b/OsmAnd/res/values-fi/strings.xml
index dbfbefb646..2992238c53 100644
--- a/OsmAnd/res/values-fi/strings.xml
+++ b/OsmAnd/res/values-fi/strings.xml
@@ -130,7 +130,7 @@
Suunnan tyyliOlen täälläEsteettömyys
- Esteettömyyteen liittyvät asetukset
+ Esteettömyyteen liittyvät asetukset.Yhteydetön editointiLähetetään…{0} KP/Huomautusta lähetettiin
@@ -315,7 +315,7 @@
Virhe tallennettaessa GPX tiedostoaVirhe reitin laskennassaUusi reitti laskettu, etäisyys
- Olet saapunut päämäärään
+ Olet saapunut perille.Koordinaatit ovat virheelliset!SuljeLadataan tietoja…
@@ -576,7 +576,7 @@
KarttaSuosi moottoriteitäSuosi…
- Suosi moottoriteitä
+ Suosi moottoriteitä.Vaihda järjestystäei saatavillaToista
@@ -640,7 +640,7 @@
Valitse kartaltaPoista valintaPoista kaikki valinnat
- Tallena uutena GPX-tiedostona
+ Tallenna uutena GPX-tiedostonaPoista kaikkiJaaVie
@@ -2529,4 +2529,12 @@ Jos pidät OsmAndista ja OSMsta ja haluat tukea niitä, on tämä täydellinen t
Korvaa kaikkiPidä molemmatHaluatko varmasti tyhjentää tallennetun datan\?
+ Valitse tie, jonka haluat välttää navigoinnin aikana, joko kartalta tai alla olevasta luettelosta:
+ Tasapainoinen
+ Lyhyemmät reitit
+ Suosi sivuteitä
+ Suosi päällystämättömiä teitä.
+ Suosi päällystämättömiä teitä
+ Suosi päällystämättömiä teitä
+ Perillä %1$s
\ No newline at end of file
diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml
index 04f6035dd1..5133fc8d3b 100644
--- a/OsmAnd/res/values-fr/phrases.xml
+++ b/OsmAnd/res/values-fr/phrases.xml
@@ -3817,4 +3817,6 @@
Remplissage d\'eau potable : ouiRemplissage d\'eau potable : nonRéseau de remplissage d\'eau potable
+ Uniquement si la marche est autorisée
+ Signal pour trouver le pôle
\ No newline at end of file
diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml
index 2e65500aa5..4e5ee4d959 100644
--- a/OsmAnd/res/values-fr/strings.xml
+++ b/OsmAnd/res/values-fr/strings.xml
@@ -52,7 +52,7 @@
Votre identifiant OSMNécessaire pour les contributions à openstreetmap.org.Votre mot de passe OSM
- Mode tâche de fond
+ Mode arrière-planOsmAnd s\'exécute en tâche de fond, écran éteint.Téléchargez une carte vectorielle hors-ligne pour ce lieu (depuis \'Paramètres\' > \'Gérer les cartes\') ou utilisez le greffon \"cartes en ligne\".Il n\'y a pas suffisamment d\'espace pour télécharger %1$s MB (disponible : %2$s).
@@ -65,7 +65,7 @@
Délai avant de centrer la carte sur la position actuelle.Recentrage automatique navigationRecentrage automatique uniquement pendant la navigation.
- Recentrage automatique activé.
+ Recentrage automatique de la carte activé.Options pour l\'affichage vectorielSur-couche / Sous-coucheOptions pour la source des cartes
@@ -263,7 +263,7 @@
Sélectionnez les données d\'annonces vocalesJourNuit
- Lever / coucher du soleil
+ Lever/coucher du soleilDétecter la luminositéSélectionnez les règles de bascule pour les modes jour / nuit.Mode jour / nuit
@@ -459,7 +459,7 @@
Chargement des codes postaux…Chargement des rues…Chargement des villes…
- PI
+ POIImpossible d\'enregistrer le fichier GPX.Impossible de calculer l\'itinéraire.Impossible de calculer l\'itinéraire.
@@ -526,10 +526,10 @@
Sélectionnez une région dans la listeSélectionnez une intersectionÉquipements à proximité
- Carte
- Voiture
- Vélo
- Piéton
+ Parcourir la carte
+ En voiture
+ À vélo
+ À piedCentreBasEntrez la latitude et la longitude au format sélectionné (D - degrés, M - minutes, S - secondes)
@@ -659,7 +659,7 @@
devant à gaucheheurevers
- Précision
+ FiabilitéAltitudePas d\'infoLatéral (8 secteurs)
@@ -777,12 +777,12 @@
ÉchelleOrientationGadgets transparents
- e-mail
+ courrielAttributs de renduMode de transport :Lever : %1$s
\nCoucher : %2$s
- Information jour / nuit
+ Information jour/nuitCréer un filtre de points d\'intérêtStyle de la carteEn continu
@@ -834,7 +834,7 @@
Ajouter comme première étapeAjouter comme dernière étapeAjouter comme première étape
- Remplacer l\'arrivée
+ Remplacer la destinationVous avez déjà indiqué une arrivée :Étape %1$sÉtapes
@@ -987,7 +987,7 @@
Ouvrir un fichier de trace GPX existantVeuillez attendre que la tâche en cours soit terminéetemps
- précision
+ fiabilitévitessealtitudeNom du fichier GPX
@@ -1009,7 +1009,7 @@
Téléchargement en cours…Recherche des rues dans les villes à proximitéOrdonne automatiquement les étapes pour l\'itinéraire le plus court.
- Optimiser
+ Trier par distanceDéfinissez d\'abord une ville ou une rueDéfinir comme arrivéeNom des rues (TTS)
@@ -1074,7 +1074,7 @@
ModéréÉloignéMémoriser ce choix
- Veuillez d\'abord calculer un itinéraire
+ Veuillez d\'abord calculer l\'itinéraireSimulation de l\'itinéraire calculé Simulation suivant une trace GPXÊtes-vous certain de vouloir supprimer %1$d modifications OSM \?
@@ -1120,7 +1120,7 @@
FavoriPréférences d\'itinéraireInformations sur l\'itinéraire
- Ajouter comme étape suivante
+ Ajouter comme destination suivanteSouhaitez-vous suivre la trace affichée à l\'écran ?Calculer un itinéraire OsmAnd pour le début et la fin de l\'itinéraireCalcul de l\'itinéraire hors-ligne
@@ -1368,7 +1368,7 @@
AFFICHER TOUTCoordonnéesMise à jour disponible pour %1$s carte(s)
- Aucun itinéraire de contournement
+ Aucune déviation trouvéeUtiliser le rendu OpenGLUtiliser le rendu matériel accéléré OpenGL (peut consommer plus de batterie et ne pas fonctionner sur les anciens appareils).Tous les fichiers sont à jour
@@ -1843,7 +1843,7 @@
Taille de l\'espace de stockageEspace maximum autorisé pour tous les enregistrements.Type
- Inverser Départ et Arrivée
+ Inverser départ & arrivéeIcônes des points d\'intérêtNombre de contributeursNombre de modifications
@@ -1856,7 +1856,7 @@
Donnée indisponibleObjets souterrainsEn savoir plus
- Adresse email
+ Adresse courrielStatutEnregistrer les modificationsAfficher les polygones
@@ -1881,7 +1881,7 @@
Règlement mensuelActifInactif
- Veuillez saisir une adresse email valide
+ Veuillez saisir une adresse courriel valideMerci pour votre soutien à OsmAnd !
\nPour activer toutes les nouvelles fonctionnalités, merci de redémarrer OsmAnd.Paramétrage de l\'abonnement
@@ -2057,8 +2057,8 @@
Filtre : Aucun enregistrement de points en-dessous de cette vitesse.Déplacement minimal pour enregistrerFiltre : Définir une distance minimale entre points pour déclencher l\'enregistrement.
- Précision minimale pour l\'enregistrement
- Filtre : Aucun enregistrement avant qu\'une précision ne soit atteinte.
+ Fiabilité minimale pour l\'enregistrement
+ Filtre : Aucun enregistrement avant que cette fiabilité ne soit atteinte.ContinuerPauseItinéraire
@@ -2621,7 +2621,7 @@ représentant la zone : %1$s x %2$sLire l\'article completLire l\'articleTous les points du groupe
- Ouvre à
+ Ouvert duOuvert jusqu\'àFerme àOuvre à
@@ -3024,7 +3024,7 @@ représentant la zone : %1$s x %2$sÀ chevalHélicoptère"Vous pouvez ajouter votre propre version du fichier routing.xml dans ..osmand/routing"
- Ski
+ À skiMode : %sSkiType : %s
@@ -3067,7 +3067,7 @@ représentant la zone : %1$s x %2$s
ScooterPrécision horizontale : %1$s, Précision verticale : %2$sPrécision horizontale : %s
- Hors route
+ Tout terrainNombre de correspondancesUtiliser le capteur de proximitéAucun
@@ -3172,7 +3172,7 @@ représentant la zone : %1$s x %2$s
Basez votre profil personnel sur l\'un des profils par défaut pour définir les unités de vitesse, de distance ou la visibilité des widgets. Voici les profils par défaut de l\'application ainsi que des exemples de profils personnalisés :Prendre en compte les limitations temporairesPar défaut
- Relier les trous
+ Fusionner pour éviter les interruptionsCampeurCamping-carAfficher les zones à faible émission sur la carte (n\'influe pas sur le calcul d\'itinéraire).
@@ -3348,7 +3348,7 @@ représentant la zone : %1$s x %2$s
Impossible d\'exporter le profil.Importer le profilAjouter un profil en ouvrant son fichier avec OsmAnd.
- %1$s Erreur d\'importation : %2$s
+ Erreur d\'import %1$s : %2$s%1$s importé avec succès.BlancInverser %1$s et %2$s
@@ -3376,7 +3376,7 @@ représentant la zone : %1$s x %2$s
RéseauxPersonnel%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sTéléchargement %sÉpaisPour les déserts et autres zones faiblement peuplées, affiche plus de détails.
@@ -3403,13 +3403,13 @@ représentant la zone : %1$s x %2$s
Importer depuis un fichierImporter un fichier d\'itinéraireImporter un profil
- Navigation, précision d\'enregistrement
+ Navigation, fiabilité d\'enregistrementTaille de l\'image, qualité audio et vidéoLogin, mot de passe, édition hors-ligneChoisissez l\'icône, la couleur et le nomPermet le partage de votre position grâce à l\'enregistrement du trajet.Suivi en ligne
- Précision de l\'enregistrement
+ Fiabilité de l\'enregistrementVos traces enregistrées se trouvent dans %1$s ou dans le dossier OsmAnd.Vos notes OSM se trouvent dans %1$s.Notes vidéo
@@ -3429,7 +3429,7 @@ représentant la zone : %1$s x %2$s
Adresse webNotificationVitesse minimale
- Précision minimale
+ Fiabilité minimaleDéplacement minimumRestaurer les paramètres par défaut du greffonFractionner l\'enregistrement
@@ -3445,8 +3445,8 @@ représentant la zone : %1$s x %2$s
Recommandation : un paramètre de 5 mètres est adapté si vous n\'avez pas besoin de détails et ne souhaitez pas enregistrer des points au repos.Effet secondaire : votre trace ne contiendra pas les parties où la vitesse minimale n\'a pas été atteinte (par exemple lorsque vous poussez votre vélo en montée ou pendant une pause). De ce fait certaines informations de votre trace seront faussées comme la durée de déplacement ou la vitesse moyenne.Recommandation : commencez par utiliser la détection de mouvement via le filtre de déplacement minimum (B) vous pourriez obtenir de meilleurs résultats en perdant moins de données. Si vos traces restent bruyantes à basse vitesse, essayez ici des valeurs non nulles. Veuillez noter que certaines mesures peuvent retourner une vitesse nulle (en raison de méthodes basées sur le réseau), dans ce cas rien ne sera enregistré.
- Seuls les points mesurés avec un minimum de précision en mètres/pieds (information communiquée par votre puce GPS) seront enregistrés. La précision fait référence à la dispersion de plusieurs mesures successives et n\'est pas directement liée à la distance entre ces mesures et votre position réelle.
- Effet secondaire : avec le filtrage par précision certains points peuvent manquer ; par exemple : sous un pont, en forêt, entre de hauts bâtiments ou dans certaines conditions météorologiques.
+ Seuls les points mesurés avec un minimum de fiabilité en mètres/pieds (information communiquée par votre puce GPS) seront enregistrés. La fiabilité fait référence à la dispersion de plusieurs mesures successives et n\'est pas directement liée à la précision qui est la distance entre la position donnée par le GPS et votre position réelle.
+ Effet secondaire : avec le filtrage de fiabilité certains points peuvent manquer ; par exemple : sous un pont, en forêt, entre de hauts bâtiments ou dans certaines conditions météorologiques.Remarque : si la localisation GPS est activée juste avant le début d\'enregistrement, la première position peut être imprécise. L\'application pourrait attendre quelques secondes avant d\'enregistrer un point (ou enregistrer le meilleur de 3 points successifs, etc), mais ces évolutions ne sont pas encore disponibles.Remarque : vérification de vitesse > 0. La plupart des puces GPS fournissent une vitesse uniquement lorsque vous êtes en mouvement. Par conséquent, l\'indication du paramètre > 0 pour ce filtre utilise la détection de mouvement par la puce GPS. Mais même s\'il n\'est pas filtré ici au moment de l\'enregistrement, nous utilisons toujours cette fonctionnalité dans notre analyse des traces GPX pour déterminer la distance corrigée, c\'est-à-dire que la valeur affichée dans ce champ est la distance enregistrée en déplacement.Effet secondaire : les périodes de repos ne seront pas enregistrées ou seulement par un point. De petits mouvements, comme des pas sur le côté, pourront être ignorés. Votre fichier contiendra moins d\'informations exploitables en post-traitement et aura des statistiques moins exactes (éliminant les points redondants mais conservant les erreurs de position dues à une mauvaise réception ou aux artefacts de la puce GPS).
@@ -3577,4 +3577,37 @@ représentant la zone : %1$s x %2$s
CercleLosangeCarré
+ Octogone
+ Ski de randonnée
+ Motoneige
+ Greffon OsmAnd personnalisé
+ Remplacer un point par celui-ci
+ Modifications appliquées au profil %1$s.
+ Impossible de lire %1$s.
+ Impossible d\'écrire %1$s.
+ Impossible d\'importer %1$s.
+ Sélectionnez le fichier de trace
+ Langues
+ Langue
+ Toutes les langues
+ D’autres cartes sont nécessaires pour afficher les POI Wikipédia sur la carte.
+ Éléments sous ce point isolés par un séparateur.
+ Personnalisez le nombre d’éléments dans le panneau déroulant, paramétrez la carte et le menu contextuel.
+\n
+\nVous pouvez désactiver les greffons inutilisés, pour masquer tous leurs contrôles dans l’application %1$s.
+ Ces éléments sont masqués dans le menu mais les options présentes ou les greffons fonctionneront toujours.
+ Les paramètres seront réinitialisés à leurs valeurs par défaut après avoir été masqués.
+ Vous pouvez accéder à ces actions en appuyant sur le bouton \"Actions\".
+ Éléments du panneau déroulant, menu contextuel
+ Panneau déroulant
+ Réorganisez ou masquez les éléments à partir de %1$s.
+ Vous ne pouvez déplacer les éléments qu’à l’intérieur de cette catégorie.
+ Personnalisation de l\'interface utilisateur
+ Actions du menu contextuel
+ Séparateur
+ Masqué
+ Les actions principales contiennent seulement 4 boutons.
+ Actions principales
+ Greffon de développement
+ Éléments
\ No newline at end of file
diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml
index eb6d1c6a36..f04476fd63 100644
--- a/OsmAnd/res/values-gl/strings.xml
+++ b/OsmAnd/res/values-gl/strings.xml
@@ -507,45 +507,66 @@
Deter a músicaMapas e navegación OsmAndVisualización e navegación móbil de mapas globais do OSM con e sen conexión
- "OsmAnd (Indicacións de navegación automatizadas do OSM)
+ "OsmAnd (Indicacións de navegación automatizadas do OSM)
\n
-\n
-\n O OsmAnd é unha aplicación de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos mapas dos datos (mapas vectoriais ou teselas) poden seren almacenados no cartón de memoria do teléfono móbil para empregalos sen conexión. O OsmAnd tamen fornece a funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
\n
-\n
-\n Algunhas das funcións principais:
\n
-\n - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas baixados almacénanse no cartafol que se escolla)
\n
-\n - Mapas vectoriais compactos sen conexión para todo o mundo
+\n O OsmAnd é unha aplicación de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos mapas dos datos (mapas vectoriais ou teselas) poden seren almacenados no cartón de memoria do teléfono móbil para empregalos sen conexión. O OsmAnd tamen fornece a funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
\n
-\n - Pódense baixar mapas de países ou rexións de xeito directo dende a aplicación
\n
-\n - É posíbel sobrepór varias capas de mapas, coma pistas de GPX ou de navegación, puntos de interese (PDI), favoritos, curvas do nivel, paraxes de transporte público ou mapas adicionais con transparencia regulábel.
\n
-\n - Procura sen conexión dos enderezos e lugares (PDI)
\n
-\n - Cálculo de rotas sen conexión para distancias curtas (experimental)
+\n Algunhas das funcións principais:
\n
-\n - Modos para automóbil, bicicleta e peóns, con:
\n
-\n - Vistas de día e noite automatizadas opcionais
+\n - Funcionalidade completa sen conexión (os mapas vectoriais ou de teselas baixados almacénanse no cartafol que se escolla)
\n
-\n - Achegamento opcional do mapa dependendo da velocidade
\n
-\n - Aliñamento opcional do mapa dependendo do compás ou da dirección do movemento
+\n - Mapas vectoriais compactos sen conexión para todo o mundo
\n
-\n - Guía opcional de faixas ou carrís da estrada, límites de velocidade, voces gravadas e TTS
\n
-\n
-\n Limitacións desta versión de balde do OsmAnd:
+\n - Pódense baixar mapas de países ou rexións de xeito directo dende a aplicación
\n
-\n - O número de mapas a baixar está limitado
\n
-\n - Non hai acceso ós puntos de interese (PDI) da Wikipedia sen conexión
+\n - É posíbel sobrepór varias capas de mapas, coma pistas de GPX ou de navegación, puntos de interese (PDI), favoritos, curvas do nivel, paraxes de transporte público ou mapas adicionais con transparencia regulábel.
\n
-\n
-\n O OsmAnd está a ser desenvolvido activamente e o noso proxecto e o seu progreso futuro depende da contribución financeira para financia-lo desenvolvemento e as probas das funcionalidades novas. Coida a posibilidade de merca-lo OsmAnd+ ou de financiar funcións novas específicas ou de facer unha doazón xeral no osmand.net."
+\n
+\n - Procura sen conexión dos enderezos e lugares (PDI)
+\n
+\n
+\n - Cálculo de rotas sen conexión para distancias curtas (experimental)
+\n
+\n
+\n - Modos para automóbil, bicicleta e peóns, con:
+\n
+\n
+\n - Vistas de día e noite automatizadas opcionais
+\n
+\n
+\n - Achegamento opcional do mapa dependendo da velocidade
+\n
+\n
+\n - Aliñamento opcional do mapa dependendo do compás ou da dirección do movemento
+\n
+\n
+\n - Guía opcional de faixas ou carrís da estrada, límites de velocidade, voces gravadas e TTS
+\n
+\n
+\n
+\n
+\n Limitacións desta versión de balde do OsmAnd:
+\n
+\n
+\n - O número de mapas a baixar está limitado
+\n
+\n
+\n - Non hai acceso ós puntos de interese (PDI) da Wikipedia sen conexión
+\n
+\n
+\n
+\n
+\n O OsmAnd está a ser desenvolvido activamente e o noso proxecto e o seu progreso futuro depende da contribución financeira para financia-lo desenvolvemento e as probas das funcionalidades novas. Coida a posibilidade de merca-lo OsmAnd+ ou de financiar funcións novas específicas ou de facer unha doazón xeral no osmand.net."Mapas e navegación de OsmAnd+Visualización e navegación móbil de mapas globais para mapas de OSM con e sen conexiónO OsmAnd+ (Indicacións da navegación automatizadas do OSM) é un aplicativo de navegación de código aberto con acceso a unha ampla variedade de datos globais do OSM. Tódolos mapas dos datos (mapas vectoriais ou teselas) poden seren almacenados no cartón de memoria do teléfono para empregalos sen conexión. O OsmAnd tamén fornece funcionalidade de cálculo de rotas sen conexión, incluíndo a guía por voz paso a paso.
@@ -3455,7 +3476,7 @@ Lon %2$sIncluír encabezamentoGardar encabezamento en cada punto da pista (trackpoint) mentres se grava.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersoalBaixando %sGroso
@@ -3621,4 +3642,19 @@ Lon %2$s
Restabelecer todos os axustes de perfil\?Gardando novo perfilNon foi posíbel facer unha copia de seguranza do perfil.
+ Engadido do desenvolvedor
+ Substitúe outro punto por este
+ Esquí de ruta
+ Moto de neve
+ Engadido personalizado do OsmAnd
+ Elementos
+ Modificacións aplicadas ó perfil %1$s.
+ Non foi posíbel ler %1$s.
+ Non foi posíbel escribir %1$s.
+ Non foi posíbel importar %1$s.
+ Escoller ficheiro da pista
+ Linguas
+ Lingua
+ Todas as linguas
+ Precísanse mapas adicionais para ollar os PDI da Wikipedia no mapa.
\ No newline at end of file
diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml
index 6adf01ebdf..6b4ddab4f7 100644
--- a/OsmAnd/res/values-he/strings.xml
+++ b/OsmAnd/res/values-he/strings.xml
@@ -139,8 +139,8 @@
PMAMמקום חנייה
- תוסף מיקום החנייה מאפשר לך לשמור איפה רכבך חנה וכמה זמן נותר לחנייה (אם יש מגבלת זמן).
-\nהמיקום והשעה מופיעים בלוח הבקרה של OsmAnd וגם בחלונית על המפה. ניתן להוסיף התרעה ליומן של Android כתזכורת.
+ מאפשר לך לשמור איפה רכבך חנה וכמה זמן נותר לחנייה.
+\n המיקום והשעה מופיעים בלוח הבקרה וגם בחלונית מפה. ניתן להוסיף התראה ליומן של Android.מיקום החנייהסימון כמקום חנייהמחיקת סימון חנייה
@@ -173,18 +173,18 @@
שימוש במפות מקוונות (הורדה ואחסון אריחי המפה בכרטיס הזיכרון).מפות מקוונותבחירת מקורות אריחי מפה מקוונים או שמורים.
- עם התוסף הזה ניתן לגשת למגוון סוגים של מפות מקוונות (נקראות גם אריחים או מעובדות), מאריחים מוגדרים מראש של OpenStreetMap (כמו למשל Mapnik) עד תמונות לוויין ושכבות מיוחדות כגון מפות מזג אוויר, מפות אקלים, מפות גאולוגיות, מפות הצללה ועוד.
+ גישה למגוון סוגים של מפות מקוונות (נקראות גם אריחים או מעובדות), מאריחים מוגדרים מראש של OSM (כמו למשל Mapnik) עד תמונות לוויין ושכבות מיוחדות כגון מפות מזג אוויר, מפות אקלים, מפות גאולוגיות, שכבות הצללה ועוד.
\n
-\nכל אחת מהמפות האלה יכולה לשמש בתור המפה הראשית (בסיס) שתוצג במפה של OsmAnd או כשכבה מעל או מתחת למפת בסיס אחרת (כמו המפות התקניות הבלתי מקוונות של OsmAnd). כדי שניתן היה לראות את המפות שמתחת, ניתן להסתיר פריטים מסוימים במפות הווקטורים של OsmAnd דרך התפריט ‚הגדרת מפה’ לפי דרישתך.
+\nכל אחת מהמפות האלה יכולה לשמש בתור המפה הראשית (בסיס) שתוצג או כשכבה מעל או מתחת למפת בסיס אחרת (כמו המפות התקניות הבלתי מקוונות של OsmAnd). ניתן להסתיר פריטים מסוימים במפות הווקטורים של OsmAnd דרך התפריט ‚הגדרת מפה’ כדי להפוך מפות רקע לגלויות יותר.
\n
-\nמפות אריחים ניתן להוריד ישירות ממקורות מקוונים או שניתן להכין אותן לשימוש בלתי מקוון (ולהעתיק אותן לתיקיית הנתונים של OsmAnd) כמסד נתונים מסוג SQLite אותו ניתן לייצר על ידי מגוון כלי צד־שלישי להכנת מפות.
+\n ניתן להוריד מפות אריחים ישירות באופן מקוון או שנערכו לשימוש בלתי מקוון (הועתקו ידנית לתיקיית הנתונים של OsmAnd) כמסד נתונים מסוג SQLite אותו ניתן לייצר על ידי מגוון כלי צד־שלישי להכנת מפות.הצגת הגדרות להפעלת מעקב וניווט במצב רקע על ידי השכמת התקן ה־GPS מדי פעם בפעם (בזמן שהמסך כבוי).
- תוסף זה הופך את תכונות הנגישות של ההתקן לזמינות ישירות ב־OsmAnd. התוסף מאפשר להגדיר את מהירות הדיבור של מנגנון הטקסט לדיבור, להגדיר ניווט בעזרת חצים על המסך, להשתמש בכדור מעקב לשליטה בתקריב או משוב של טקסט לדיבור, למשל לצורך הכרזה על המיקום שלך אוטומטית.
- תוסף זה מציג הגדרות פיתוח וניפוי שגיאות כגון בדיקה או הדמיה של ניתוב, ביצועי עיבוד התמונה או התרעות קוליות. הגדרות אלו מיועדות למפתחים ואינן נחוצות למשתמשים על פי רוב.
+ הופך את תכונות הנגישות של ההתקן לזמינות ישירות ב־OsmAnd. התוסף מאפשר להגדיר את מהירות הדיבור של מנגנון הטקסט לדיבור, להגדיר ניווט בעזרת חצים על המסך, להשתמש בכדור מעקב לשליטה בתקריב או משוב של טקסט לדיבור, למשל לצורך הכרזה על המיקום שלך אוטומטית.
+ הגדרות לתכונות פיתוח וניפוי שגיאות, הדמיית ניתוב, ביצועי עיבוד התמונה או התרעות קוליות. מיועד למפתחים ולא נחוץ לשימוש רגיל ביישומון.מנהל התוספיםהתוספים מאפשרים הגדרות במצב מומחה ומספקים תכונות נוספות.מנהל התוספים
- הצגת ההגדרות שנדרשות לטובת משוב ל־OSM כמו איסוף / שינוי פריטי נ״ע של OSM, פתיחה של / תגובה על הערות ב־OSM ותרומה של קובצי GPX מוקלטים (נדרשים פרטי גישה ל־OSM).
+ ניתן לתרום ל־OSM למשל על ידי שינוי פריטי נקודות עניין ב־OSM או ליצור הערות OSM ולתרום קובצי הקלטות GPX ל־OsmAnd על ידי ציון שם המשתמש והססמה שלך. OpenStreetMap.org הוא מיזם מיפוי גלובלי, בהנהגה קהילתית לרווחת הציבור.יתכן שמפות וקטוריות יוצגו מהר יותר. עם זאת לא בטוח שיעבדו כראוי על חלק מההתקנים.נא לבחור בקריינות ולבדוק על ידי השמעת ההנחיות הקוליות:פיתוח OsmAnd
@@ -831,7 +831,8 @@
המסנן ‚%1$s’ נוצרדוא״לרחוב:\n {0}, {1}
- OsmAnd+ (OSM הכוונת ניווט אוטומטית)
+ OsmAnd+ (OSM הכוונת ניווט אוטומטית)
+\n
\n OsmAnd+ הנו יישום ניווט בקוד פתוח עם גישה למגוון רחב של נתוני OSM. ניתן לשמור את כל נתוני המפה על כרטיס הזיכרון של הטלפון לצורך שימוש ללא אינטרנט. OsmAnd מציעה גם תכונת טוויית מסלול הפועלת עם וללא אינטרנט וכוללת הנחייה קולית לכל פנייה ופנייה.
\n
\n OsmAnd+ הנה הגרסה בתשלום של היישום, רכישת גרסה זו מהווה הבעת תמיכה במיזם, מימון פיתוח של תכונות חדשות ומבטיחה קבלת עדכונים במהירות.
@@ -896,7 +897,7 @@
מפות SRTMיש לגעת ב‚שימוש במיקום…’ כדי להוסיף הערה למיקום.הערות קוליות
- תוסף ההערות הקוליות/בווידאו מספק תכונה להקליט שמע או לצלם תמונות/סרטונים במהלך טיול, או באמצעות כפתור על המפה או ישירות מתפריט ההקשר של כל מיקום במפה.
+ יצירת הערות קוליות/תמונה/וידאו במהלך טיול, או באמצעות כפתור על המפה או ישירות מתפריט ההקשר של המיקום.תוסף הערות קוליותתוסף ל־OsmAnd לקווי מתאר בלתי מקווניםמדידת מרחק
@@ -997,7 +998,7 @@
נקודהקובץ שם ה־GPXקובץ ה־GPX נשמר אל {0}
- תוסף זה מספק וידג׳ט על המפה שמאפשר ליצור נתיבים על ידי לחיצה על המפה או להשתמש או לשנות קובץ GPX קיים, לטובת תכנון טיול ומדידת מרחק בין נקודות. ניתן לשמור את התוצאות בקובץ GPX, בו ניתן להשתמש לאחר מכן להנחיה.
+ ניתן ליצור נתיבים על ידי לחיצה על המפה או על ידי עריכת קובץ GPX קיים, לטובת תכנון טיול ומדידת מרחק בין נקודות. ניתן לשמור את התוצאות בקובץ GPX, בו ניתן להשתמש לאחר מכן להנחיה.מחשבון מרחק וכלי תכנוןלא להציג שובלהתחיל בעריכה
@@ -1834,7 +1835,7 @@
הגדרה כפעילהיוםאתמול
- בורר לכיבוי/הפעלה של התקריב האוטומטי במפה בהתאם למהירות שלך.
+ כפתור להפעלה ולכיבוי של תקריב אוטומטי תלוי מהירות.כפתור למירכוז המפה סביב יעד המסלול, יעד שנבחר קודם לכן יהפוך להיות נקודת הביניים האחרונה.כפתור להפיכת מרכז המסך ליעד המסלול החדש תוך החלפת כל יעד קודם (אם היה כזה).כפתור זה מכוון את מרכז המסך ליעד הביניים הראשון.
@@ -2777,7 +2778,7 @@
לניווט ימי. לרבות מצופים, מגדלורים, מסלולי נהרות, סימונים ומסלולים לניווט בים, מעגנים, שירותי סימונים ימיים וקווי מתאר לתיאור עומק.לגלישת סקי. מציע מסלולי גלישה, מעליות סקי ותכונות סקי נוספות בדרך נוחה. מעמעם עצמים משניים במפה.סגנון נהיגה פשוט. מצב לילה עדין, לרבות קווי מתאר, כבישים בניגודיות גבוהה ובכתום, פריטים משניים במפה מעומעמים.
- סגנונות ניגודיות תוכננו בעיקר לטובת טיולי הרים, מסלולי טיול ורכיבה על אופניים בטבע. תצוגה מותאמת לקריאה בתנאי תאורת חוץ מורכבים. תכונות מפתח: ניגודיות בין דרכים לעצמים בטבע, סוגים שונים של מסלולים, קווי מתאר עם הגדרות מתקדמות, פרטים נוספים ברמות תקריב מתואמות מעבר לסגנון בררת המחדל. אפשרות שלמות משטח מאפשרת להבדיל בין דרכים עם איכות משטח שונה. אין מצב לילה.
+ לטיולי הרים, מסלולי טיול ורכיבה על אופניים בטבע. תצוגה שמותאמת לקריאה בחוץ. ניגודיות בין דרכים לעצמים בטבע, סוגים שונים של מסלולים, אפשרויות קווי מתאר מתקדמות, פירוט נוסף. התאמת שלמות משטח מבדילה בין איכויות דרכים. אין מצב לילה.סגנון ‚Mapnik’ מיושן כבררת מחדל. הצבעים דומים ל־‚Mapnik’.סגנון מטרה כללית. ערים צפופות מופיעות בצורה נקייה. תכונות מפתח: קווי מתאר, שלמות המשטח, הגבלות גישה, סימוני מספרי כבישים, עיבוד נתיבים לפי מדד SAC, פריטי ספורט מים לבנים.סימנייה
@@ -3077,7 +3078,7 @@
בחירת פרופיל להתחלהשירות ההורדות של OsmAndיש לגעת שוב כדי לשנות את כיוון המפה
- משמש להערכת מועד ההגעה הצפוי בסוגי דרכים בלתי מוכרים ולמגבלות מהירות לכל הדרכים (עשוי להשפיע על המסלול)
+ מעריך את מועד ההגעה בסוגי דרכים בלתי מוכרים ומגביל מהירות לכל הדרכים (עשוי להשפיע על המסלול)פרופיל חדשקריסההטעינה האחרונה של OsmAnd קרסה. נא לסייע לנו לשפר את OsmAnd על ידי שיתוף הודעת השגיאה.
@@ -3132,7 +3133,7 @@
מכונית, משאית, אופנועאופני הרים, טוסטוס, סוסהליכה, טיול הרים, ריצה
- כל סוגי התחב״צ
+ סוגי תחב״צספינה, חתירה, שיטטיסה, דאייהבררת מחדל
@@ -3275,8 +3276,8 @@
נא להדביק את הנתיב לתיקייה עם הנתונים של OsmAndלהחליף את תיקיית הנתונים של OsmAnd\?העברה ליעד החדש
- אחסון פנימי, נסתר מהמשתמש ומיישומונים אחרים, נגיש ל־OsmAnd בלבד
- החלפת תיקיית אחסון הנתונים
+ אחסון פנימי עבור OsmAnd (נסתר מהמשתמשים ומיישומונים אחרים).
+ החלפת תיקיית אחסוןפארק גלישה על שלגמזחלת נגררתמזחלת עצמאית
@@ -3315,7 +3316,7 @@
%1$s מ״ב בשימוש%1$s ק״ב בשימושקווי מתאר והצללות תוואי שטח
- להעדיף דרכים בלתי סלולות
+ להעדיף דרכים לא סלולותלהעדיף דרכים בלתי סלולות.עדכון כל המפותלעדכן את כל (%1$d) המפות\?
@@ -3329,7 +3330,7 @@
\n
\n • חלונית הורדת מפה חדשה שמציעה להוריד מפה בזמן עיון
\n
-\n • תיקונים לערכת העיצוב הלילית
+\n • תיקונים לערכת העיצוב הכהה
\n
\n • תוקנו בעיות ניווט ברחבי העולם
\n
@@ -3342,16 +3343,16 @@
\n • תיקוני תקלות נוספים
\n
\n
- ניתן להחיל את השינוי הזה לכל הפרופילים או רק לזה שנבחר.
+ ניתן להחיל את השינוי הזה לכל הפרופילים או רק לנבחר.משותףלהעדיף דרכים לא סלולות
- להעדיף דרכים לא סלולות.
+ להעדיף דרכים לא סלולות על פני סלולות בבחירת מסלול.עריכות OSM
- בורר להצגה או להסתרה של קווי מתאר במפה.
+ כפתור להצגה או להסתרה של קווי מתאר במפה.הצגת קווי מתארהסתרת קווי מתארהצגה/הסתרה של קווי מתאר
- בורר להצגה או הסתרה של הצללה במפה.
+ כפתור להצגה או הסתרה של הצללות במפה.הצגת הצללההסתרת הצללההצגה/הסתרה של הצללה
@@ -3359,12 +3360,12 @@
הדמיית המיקום שלך באמצעות מסלול GPX שהוקלט מראש.ייצוא פרופילפרופיל OsmAnd: %1$s
- פרופיל בשם ‚%1$s’ כבר קיים. לדרוס\?
+ ‚%1$s’ כבר קיים. לדרוס\?לא ניתן לייצא פרופיל.ייבוא פרופיל
- כדי לייבא פרופיל, יש לבחור את הקובץ שלו ולפתוח אותו עם OsmAnd.
+ ניתן להוסיף פרופיל על ידי פתיחת הקובץ שלו עם OsmAnd.שגיאת ייבוא %1$s: %2$s
- הייבוא של %1$s הצליח.
+ הייבוא של %1$s הושלם.לבןהחלפה בין %1$s לבין %2$sנקודת התחלה
@@ -3376,17 +3377,17 @@
המסלול נשמרשם הקובץ ריקהחזרה
- כפתור למרכוז נקודת היציאה במסך וחישוב המסלול ליעד או לפתוח תיבת דו־שיח לבחירת היעד אם סמן היעד לא במפה.
+ כפתור להגדרת נקודת היציאה ממרכז המסך. לאחר מכן תופיע שאלה לבחור יעד או לחשב מסלול.למחוק %1$s\?הצגת מסלולי אופניים של רשת מפרקיםדו־שיח הורדת מפהתיבות דו־שיח והתראות
- שליטה בחלוניות הקופצות, בתיבות הדו־שיח ובהתראות שמוצגות במהלך השימוש ב־OsmAnd.
+ שליטה בחלוניות הקופצות, בתיבות הדו־שיח ובהתראות.רשתות מפרקיםמפות מוצעות
- המפות האלו נחוצות לטובת שימוש עם תוסף
+ המפות האלו נחוצות לתוסף.הוספת פרופילים
- התוסף מוסיף פרופיל חדש ל־OsmAnd
+ פרופילים שנוספו על ידי תוסףכיבוינוסף תוסף חדשחיבור מקטעים
@@ -3394,33 +3395,33 @@
כולל הכותרתלשמור את הכותרת של כל נקודת דרך בזמן ההקלטה.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sאישי%s בהורדהמסלולים שעבור גרומינג לסגנון קלסי רק ללא מסלולי ההחלקה. לרבות מסלולים שעברו גרומינג על ידי אופנוע שלג עם תוואי רופף ומסלולים שנסללו ידנית על ידי גולשי סקי.להעדיף מסלולים ברמת הקושי הזו, למרות שניתוב דרך מסלולים קשים או קלים יותר עדיין אפשרי אם מדובר במסלולים יותר קצרים.
- מסלולי גלישה חופשית ומחוץ לסימון הם מסלולים ומעברים בלתי רשמיים. בדרך כלל לא עברו גרומינג, אינם מתוחזקים באופן רשמי ואינם מפוקחים בשעות הערב. הכניסה על אחריותך בלבד.
+ מסלולי ‚גלישה חופשית’ ו‚מחוץ לסימון’ הם מסלולים ומעברים בלתי רשמיים. בדרך כלל לא עברו גרומינג, אינם מתוחזקים ואינם מפוקחים בשעות הערב. הכניסה על אחריותך בלבד.עבה
- למדבריות ואזורים נוספים עם אוכלוסיה דלילה. מציג פרטים נוספים בהתאם לתקריב.
- בחירת סמל ניווט
- בחירת סמל מפה
- לאחר לחיצה על ‚החלה’, הפרופילים שנמחקו יאבדו לעד.
+ למדבריות ואזורים נוספים עם אוכלוסיה דלילה. פירוט מורחב.
+ סמל מיקום בזמן תזוזה
+ סמל מיקום בעת מנוחה
+ נגיעה ב־‚החלה’ תמחק את הפרופילים שהוסרו לצמיתות.פרופיל ראשיבחירת צבע
- לא ניתן למחוק את פרופילי בררת המחדל של OsmAnd, אך ניתן להשבית אותם במסך הקודם או להעביר אותם לתחתית.
+ לא ניתן למחוק את פרופילי בררת המחדל של OsmAnd, אך ניתן להשבית אותם (במסך הקודם) או להוריד אותם לתחתית.עריכת פרופילים
- סוג הניווט משפיע על כללי חישוב המסלול.
+ ‚סוג הניווט’ מגבש את אופן חישוב המסלול.הופעת פרופיל
- נא לבחור סמל, צבע ושם
+ סמל, צבע ושםעריכת רשימת הפרופיליםפרופיל נבחר
- לחיצה על %1$s תוביל לאבדן כל השינויים שערכת.
- כל הגדרות הפרופיל יאופסו למצב כמו שלאחר ההתקנה.
- לאפס את הגדרות הפרופיל לבררת המחדל\?
+ נגיעה ב־%1$s תוביל לאבדן כל השינויים שערכת.
+ איפוס כל הגדרות הפרופיל לבררות המחדל של ההתקנה.
+ לאפס את הגדרות הפרופיל\?%1$s: %2$s%1$s %2$sאין כללי ניווט ב־‚%1$s’. נא לבחור בקובץ אחר.
- סוג הקובץ אינו נתמך. עליך לבחור קובץ עם הסיומת %1$s.
+ נא לבחור קובץ נתמך בסיומת %1$s במקום.ייבוא מקובץייבוא קובץ ניווטייבוא פרופיל
@@ -3436,16 +3437,16 @@
חישוב מסלול מחדשהכרזהשם משתמש וססמה
- הגדרות התוסף הזה הן גלובליות וחלות על כל הפרופילים.
- עריכה של OpenStreetMap
+ הגדרות אלו חלות על כל הפרופילים.
+ עריכה של OSMOSM
- הסמל יופיע רק בזמן הניווט או בזמן תזוזה.
- סמל המפה מופיע במפה בלבד והוא מתחלף בעת הניווט לסמל הניווט.
+ סמל שמופיע רק בעת ניווט או תזוזה.
+ סמל שמופיע במנוחה.דירוגלבדוק ולשתף תיעוד מפורט של יומני היישומוןנדרשת הרשאה כדי להשתמש באפשרות הזו.סידור הקטגוריות מחדש
- ניתן להוסיף קטגוריות מותאמות אישית, להסתיר קטגוריות שאינן נחוצות לך ולשנות את סדר הרשימה. ניתן לייבא את הרשימה ולייצא אותה עם פרופילים.
+ ניתן להחליף את סדר הרשימה ולהסתיר קטגוריות בלתי נחוצות. כמו כן, אפשר לייבא או לייצא את כל השינויים עם פרופילים.ניתן להוסיף קטגוריה חדשה מותאמת אישית על ידי בחירה בקטגוריה נחוצה אחת או יותר.איפוס לבררת מחדל יחזיר את הסדר למצב בררת המחדל כמו לאחר ההתקנה.זמין
@@ -3575,4 +3576,62 @@
מעויניריבועימזערי
+ הצגת העריכות או הבאגים שלא הועלו תחת %1$s. הנקודות שהועלו לא תופענה עוד.
+ מפת הצללה עם צבעי הצללה כהים כדי להדגיש מדרונות, פסגות ועמקים.
+ מתומן
+ הערות ה־OSM שלך הן תחת %1$s.
+ המסלולים המוקלטים שלך נמצאים תחת %1$s, או בתיקייה של OsmAnd.
+ אופנוע שלג
+ תוסף OsmAnd מותאם אישית
+ כתובת
+ מאגר זמן
+ התראה
+ נא לציין את הכתובת עם תחביר משתנים: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.
+ מהירות מזערית
+ דיוק מזערי
+ תזוזה מזערית
+ פיצול מקליט
+ איפוס הגדרות התוסף לבררת המחדל
+ מרווח מעקב
+ מסנן זה מונע תיעוד כפילות של נקודות כשלא הייתה מספיק תנועה, יוצר תצוגה מרחבית נאה יותר של מסלולים שלא עוברים עיבוד לאחר מכן.
+ החלפת נקודה אחרת בזו
+ השינויים על הפרופיל %1$s חלו.
+ לא ניתן לקרוא את %1$s.
+ לא ניתן לכתוב את %1$s.
+ לא ניתן לייבא את %1$s.
+ זה מסנן שחותך מהירויות נמוכות כדי לא להקליט נקודות מתחת למהירות מסוימת. הפעלת המסנן תגרום לכך שהמסלולים ייראו חלקים יותר כשמסתכלים על המפה.
+ טיולי סקי
+ %1$s — %2$s — %3$s
+ בחירת קובץ מסלול
+ שפות
+ שפה
+ כל השפות
+ נדרשות מפות נוספות כדי לצפות בנקודות עניין של ויקיפדיה במפה.
+ תופעת לוואי: למסלול שלך יהיו חסרים כל המקטעים בהם תנאי המהירות המזערית לא הושגו (למשל: דחיפת האופניים שלך במעלה מדרון תלול). כמו כן, לא יהיה מידע על תקופות המנוחה, כמו הפסקות. יש לכך השפעות על כל סוג של ניתוח או עיבוד מסכם, כמו כשמנסים לפענח את אורך הטיול הכולל שלך, זמן התנועה או המהירות הממוצעת שלך.
+ לא ניתן לפענח את המציין הגאוגרפי ‚%s’.
+ מומלץ: הגדרה של 5 מטרים עשויה לעבוד כמו שצריך אם אין לך צורך ללכוד פריטים באבחנה דקה מזאת ולא מעניין אותך ללכוד נתונים באופן מפורש בזמן מנוחה.
+ תופעת לוואי: כתוצאה מסינון לפי דיוק, ייתכן שכמה נקודות תיעלמנה עבור למשל מתחת לגשרים, מתחת לעצים, בין בניינים גבוהים או בתנאי מזג אוויר מסוימים.
+ פעולה זו תקליט רק נקודות שנמדדו עם חיווי של דיוק מזערי (במטרים/רגל כפי שדווח על ידי Android עבור ערכת השבבים שלך). דיוק מתייחס לפיזור המדידות המחזוריות ואינו קשור לדיוק, שמגדיר כמה קרובות המדידות שלך למיקום האמתי שלך.
+ המלצה: כדאי לנסות להשתמש בזיהוי תנועה דרך המסנן לסף תנועה תחתון (B) קודם לכן, הוא עשוי להביא לתוצאות טובות יותר ופחות מידע ילך לאיבוד. אם המסלולים שלך עדיין רועשים במהירויות נמוכות, כדי לנסות כאן ערכים שונים מאפס. נא לשים לב שחלק מהמדידות לא תדווחנה נתוני מהירות כלל (שיטות מבוססות רשת), שבמקרים כאלה לא יוקלט שום דבר.
+ חלק מהערכים בוויקיפדיה לא יהיו זמינים בשם שצוין, יש לבחור את השפות בהן יופיעו הערכים של ויקיפדיה במפה.
+\nניתן יהיה להחליף בין כל השפות הזמינות בזמן קריאת הערך.
+ פריטים
+ תוסף מפתח
+ התאמת כמות הפריטים במגירה, הגדרת מפה ותפריט הקשר.
+\n
+\nניתן להשבית את התוספים שאינם בשימוש כדי להסתיר את כל הפקדים שלהם מהיישומון %1$s.
+ פריטי מגירה, תפריט הקשר
+ התאמות מנשק משתמש
+ מגירה
+ פעולות תפריט הקשר
+ סידור מחדש או הסתרת פריטים מ%1$s.
+ קו הפרדה
+ הפריטים מתחת לנקודה זו מופרדים בקו הפרדה.
+ מוסתר
+ הפריטים האלו מוסתרים מהתפריט אבל האפשרויות המיוצגות או התוספים עדיין עובדים.
+ ההגדרות יאופסו למצב המקורי לאחר ההסתרה.
+ פעולות ראשיות מכילות 4 כפתורים בלבד.
+ פעולות ראשית
+ ניתן לגשת לפעולות האלה על ידי לחיצה על הכפתור „פעולות”.
+ ניתן להעביר פריטים בתוך קטגוריה זו בלבד.
\ No newline at end of file
diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml
index d285656b93..1f7dda4e7e 100644
--- a/OsmAnd/res/values-hu/phrases.xml
+++ b/OsmAnd/res/values-hu/phrases.xml
@@ -3781,7 +3781,7 @@
EmlékkerékpárPalackos búvárkodási központSMS
- Video
+ VideóigennemFülke
diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml
index 1d833d5bd5..023ed680a4 100644
--- a/OsmAnd/res/values-hu/strings.xml
+++ b/OsmAnd/res/values-hu/strings.xml
@@ -614,7 +614,7 @@
POI készítésIgenMégse
- Alkalmazás
+ AlkalmazHozzáadásNemAdd meg a Kedvenc nevét
@@ -1243,7 +1243,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).Nyomvonal kijelöléseRendezés távolság szerintRendezés név szerint
- %1$s betöltése…
+ Letöltés %1$s…MegtartLeállításGPS háttér mód engedélyezése
@@ -1691,7 +1691,7 @@ Hosszúság: %2$s
A POI törölve lesz, amint feltöltöd a változtatásokatGPX adat megjelenítéseSorok száma
- Biztos vagy benne?
+ Biztos benne\?A nem mentett változtatások el fognak veszni. Folytatod?%1$s letöltés maradtUtak
@@ -3171,7 +3171,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
Szintvonalak és domborzatárnyékolásBurkolatlan utak előnyben részesítéseBurkolatlan utak előnyben részesítése.
- Ezt a módosítást alkalmazhatod az összes profilra vagy csak a jelenleg kiválasztottra.
+ Ezt a módosítást alkalmazhatod az összes profilra vagy csak a kiválasztottra.MegosztottBurkolatlan utak előnyben részesítéseÚtvonaltervezésnél a burkolatlan utak előnyben részesítése a burkoltakkal szemben.
@@ -3233,7 +3233,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
Javasolt térképekHozzáadja az új „%1$s” profilt\?%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sSzemélyes%s letöltéseÚtvonal: távolság %s, menetidő %s
@@ -3324,7 +3324,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
Rögzítéskor menti az egyes útpontok irányát is.Navigációs ikonTérképikon
- Az Alkalmazás-ra koppintva a törölt profilok végérvényesen elvesznek.
+ Az Alkalmaz-ra koppintva a törölt profilok végérvényesen elvesznek.FőprofilSzín kijelöléseAz alapértelmezett OsmAnd-profilok nem törölhetők, viszont letilthatók az előző képernyőn vagy letolhatók a lista aljára.
@@ -3441,7 +3441,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
Útvonal újraszámításaBejelentésFelhasználónév és jelszó
- Ezek a bővítménybeállítások globálisak, és minden profilra vonatkoznak.
+ Ezek a beállítások minden profilra vonatkoznak.OpenStreetMap-szerkesztésAz összes még fel nem töltött szerkesztés vagy OSM-hiba megtalálható a %1$s helyen. A már feltöltött pontok nem láthatók az OsmAndban.OSM
@@ -3478,4 +3478,86 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük
Biztosan törölni szeretné a rögzített adatokat\?Adatok importálása innen: %1$sImportálás
+ A lejtőkről többet olvashat itt: %1$s.
+ Megjelenítés stílusa
+ Útvonaltervezés
+ %1$s/%2$s
+ Alapértelmezésben le van tiltva, így amennyiben az OsmAnd az előtérben fut, a kijelző nem kapcsol ki.
+\n
+\nAmennyiben engedélyezve van, az OsmAnd az időtúllépésre vonatkozó rendszerbeállítást használja.
+ Kijelző időtűllépés rendszerbeállítás használata
+ Koordináták másolása
+ Az útvonal újraszámításra kerül, amennyiben az útvonaltól való távolság több, mint a megadott paraméter
+ Legkisebb távolság, amely felett újraszámítja az útvonalat
+ %1$s — %2$s — %3$s
+ Menü
+ Bővítmény letiltva
+ Beállítások megnyitása
+ Újraszámítás letiltása
+ Kérem, adjon nevet a profilnak
+ Válassza ki az importálandó adatot.
+ Mindkettő megtartása
+ Összes lecserélése
+ Domborzat
+ A domborzatárnyékolás réteg sötét árnyalattal emeli ki a lejtőket, csúcsokat és az alföldeket.
+ A lejtő réteg a terep színezett vizualizációja.
+ Állítsa be a legkisebb és legnagyobb nagyítási szintet, amelyen a réteg megjelenjen.
+ További térképek szükségesek a domborzatárnyékolás térképen való megjelenítéséhez.
+ További térképek szükségesek a lejtők térképen való megjelenítéséhez.
+ Áttetszőség
+ Nagyítási szintek
+ Jelmagyarázat
+ Domborzatárnyékolás
+ Importálás kész
+ Tételek hozzáadva
+ Útvonal újraszámítása letérés esetén
+ Jelöld ki a távolságot, amely fölött az útvonal újraszámításra kerül.
+ Az útvonal újraszámításra kerül, amennyiben az útvonal és a jelenlegi helyzet közötti távolság nagyobb, mint a kiválasztott érték.
+ %1$s ennyiből: %2$s
+ Lejtők
+ Domborzat megjelenítése/elrejtése
+ Domborzat elrejtése
+ Domborzat megjelenítése
+ Váltógomb, amely a térképen megjeleníti vagy elrejti a domborzati réteget.
+ Leírás törlése
+ Leírás hozzáadása
+ Csoport kijelölése
+ Alak kijelölése
+ Kör
+ Nyolcszög
+ Négyzet
+ Min
+ Rögzített adatok törlése
+ Engedélyezésével domborzatárnyékolás vagy lejtőtérkép jeleníthető meg. Ezekről a térképfajtákról többet olvashat a honlapunkon:
+ Túrasízés
+ Motoros hószán
+ Egyéni OsmAnd bővítmény
+ %1$s olvasása sikertelen.
+ %1$s írása sikertelen.
+ %1$s importálása sikertelen.
+ Felhasználói felület testreszabása
+ Fiók
+ %1$s: elemek átrendezése vagy elrejtése.
+ Elválasztó
+ Az ez alatti elemek elválasztásra kerülnek egy elválasztóval.
+ Ezek az elemek a menüből elrejtésre kerültek, azonban az általuk képviselt beállítások vagy bővítmények továbbra is érvényben maradnak.
+ Fő műveletek csak 4 gombot tartalmaz.
+ Rendszeralkalmazás használata
+ Fényképező zárhang
+ Hitelesítés sikeres
+ Rendezés kategória szerint
+ Antarktika
+ Rejtett
+ A beállítások az eredeti állapotba fognak visszaállni elrejtés után.
+ Fő műveletek
+ Ehhez a művelethez a \"Műveletek\" gombra koppintva férhet hozzá.
+ Csak ezen a kategórián belül lehetséges az elemek áthelyezése.
+ Fejlesztő bővítmény
+ Másik pont lecserélése erre
+ Elemek
+ Módosítások alkalmazva erre a profilra: %1$s.
+ Nyelvek
+ Nyelv
+ Összes nyelv
+ További térképek szükségesek a Wikipédia POI-k térképen való megjelenítéséhez.
\ No newline at end of file
diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml
index ef3e2159b3..88f581fcad 100644
--- a/OsmAnd/res/values-hy/strings.xml
+++ b/OsmAnd/res/values-hy/strings.xml
@@ -1851,8 +1851,7 @@
Տեղադրել ավելին…Առավելագույն սանդղակը(մասշտաբ) վեկտորային քարտեզների օգտագործման համար ուղղորդված քարտեզների փոխարեն։Սանդղակը(մասշտաբ) վեկտորային քարտեզների օգտագործման համար
-
- 1Online OSM2 քարտեզ նկրաներով։
+ Online OSM քարտեզ նկրաներով:Հնարավոր չէ կատարել անցանց(offline) որոնում:Որոնում ըստ աշխարհագրական դիրքիՀամակարգային
diff --git a/OsmAnd/res/values-is/phrases.xml b/OsmAnd/res/values-is/phrases.xml
index b23067e540..53770903b9 100644
--- a/OsmAnd/res/values-is/phrases.xml
+++ b/OsmAnd/res/values-is/phrases.xml
@@ -1727,7 +1727,7 @@
BjörgunarstöðAuðveltGerð sjálfsala
- Snertimerking yfirborðs
+ Upphleypt yfirborðBurstalaustUmferðareftirlitSjótengt
@@ -2159,7 +2159,7 @@
UpplýsingataflaEkki undir þakiÍ aðskildu herbergi
- Án snertimerkingar yfirborðs
+ Án upphleypts yfirborðsLítið hringtorgSameiginlegt afþreyingarsvæðiVindfellt
@@ -3786,4 +3786,21 @@
Áfylling drykkjarvatns: jáÁfylling drykkjarvatns: neiKerfi fyrir áfyllingu drykkjarvatns
+ Mislitt
+ Klausturgerð: dómkirkjuprestar
+ Klausturgerð: einsetulíf
+ Klausturgerð: kanokasetur
+ Klausturgerð: nunnuklaustur
+ Klausturgerð: munkaklaustur
+ Vatnsyfirborð: undir meðalvatnshæð
+ Vatnsyfirborð: ofan meðalvatnshæðar
+ Vatnsyfirborð: fljótandi
+ Vatnsyfirborð: flæðir yfir
+ Vatnsyfirborð: seytlar yfir
+ Vatnsyfirborð: hulið
+ Vatnsyfirborð: á þurru
+ Vatnsyfirborð: í kafi
+ Vatnsyfirborð: að hluta í kafi
+ Gróft
+ Merki til að finna staurinn
\ No newline at end of file
diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml
index f00e5f2781..929b7cc2b8 100644
--- a/OsmAnd/res/values-is/strings.xml
+++ b/OsmAnd/res/values-is/strings.xml
@@ -3053,7 +3053,7 @@ Stendur fyrir svæði: %1$s x %2$sGerð leiðsagnarLeigubíllNeðanjarðarlest
- Hestar
+ RíðandiÞyrlaSkíðiSkíði
@@ -3413,7 +3413,7 @@ Stendur fyrir svæði: %1$s x %2$s
Hafa með stefnuVista stefnu í hvern ferilpunkt á meðan upptöku stendur.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersónulegtSæki %sSvert
@@ -3490,7 +3490,7 @@ Stendur fyrir svæði: %1$s x %2$s
Aukaverkanir: Tímabil í hvíld eru alls ekki skráð eða þá með aðeins einum punkti. Litlar (raunverulegar) hreyfingar (t.d. til hliðar, til að merkja mögulega hliðarleiðir leiðar) gætu síast í burtu. Skráin þín inniheldur minni upplýsingar til eftirvinnslu, og er með verri tölfræði þar sem umframpunktar eru síaðir út á meðan skráningu stendur, á meðan mögulega er verið að geyma skemmdar upplýsingar vegna lélegrar móttöku eða truflana í GPS kubbasetti.Ábending: Stilling upp á 5 metra gæti virkað vel ef þú hefur ekki þörf fyrir meiri nákvæmni og ef þú vilt koma í veg fyrir að verið sé að skrá gögn á meðan staldrað er við.Endurraða flokkum
- Þú getur bætt við sérsniðnum flokkum, falið flokka sem þér finnast ekki nauðsynlegir og breytt röðun listans. Listann má flytja inn og út með forsniðum.
+ Þú getur falið flokka sem þér finnast ekki nauðsynlegir og breytt röðun listans. Listann má flytja inn og út með forsniðum.Þú getur bætt við nýjum sérsniðnum flokki með því að velja einn eða nokkra nauðsynlega flokka.TiltæktBæta við sérsniðnum flokki
@@ -3587,4 +3587,68 @@ Stendur fyrir svæði: %1$s x %2$s
Atriðum bætt viðInnflutningi lokiðÖll gögn úr %1$s voru flutt inn, þú getur notað hnappana hér fyrir neðan til að opna nauðsynlega hluta forritsins til að sýsla með gögnin.
+ %1$s af %2$s
+ Yfirborð
+ Hæðaskyggingakort styðst við dökka skugga til að sýna brekkur, tinda og láglendi.
+ Til að sýna brekkur eru notuð litasjónhrif á yfirborðið.
+ Stilltu lágmarks og hámarks aðdráttarstig þess að lagið verður birt.
+ Viðbótarkort þarf til að skoða hæðaskyggingar á kortinu.
+ Viðbótarkort þarf til að skoða brekkur á kortinu.
+ Þú getur lesið meira um brekkur á %1$s.
+ Gegnsæi
+ Aðdráttarstig
+ Skýring
+ Virkja til að sjá hæðaskyggingar eða brekkur á korti. Þú getur lesið meira um þessa eiginleika á vefnum okkar
+ Hæðaskygging
+ Brekkur
+ Birta/fela yfirborð
+ Fela yfirborð
+ Sýna yfirborð
+ Hnappur til að birta eða fela yfirborðslag á kortinu.
+ Endurreikna leið ef farið er út af fyrirfram gefinni leið
+ Veldu þá vegalengd sem þarf til að leiðin verði endurreiknuð.
+ Leiðin verður endurreiknuð ef vegalengd frá leiðinni að núverandi staðsetningu er lengri en uppgefið gildi.
+ Eyða lýsingu
+ Bæta við lýsingu
+ Veldu hóp
+ Veldu lögun
+ Hringur
+ Tígull
+ Ferningur
+ Skipta út öðrum punkti með þessum
+ Breytingum beitt á %1$s sniðið.
+ Gat ekki lesið %1$s.
+ Gat ekki skrifað %1$s.
+ Gat ekki flutt inn %1.
+ Ferðaskíði
+ Vélsleðar
+ Sérsniðin OsmAnd-viðbót
+ Átthyrningur
+ Lágm
+ Veldu ferilskrá
+ Tungumál
+ Tungumál
+ Öll tungumál
+ Þú getur aðeins fært atriði innan þessa flokks.
+ Þessi atriði eru falin á valmyndinni, en valkostirnir eða viðbæturnar sem þau standa fyrir munu virka áfram.
+ Sumar Wikipedia-greinar gætu verið ekki tiltækar í þínu nafni, veldu það tungumál sem Wikipedia-greinarnar ættu að birtast á á kortinu.
+\nÞú munt geta skipt á milli allra tiltækra tungumála á meðan þú lest greinar.
+ Sérsníddu fjölda atriða í sleðanum, í uppsetningu landakorts og í samhengisvalmynd.
+\n
+\nÞú getur gert ónotaðar forritsviðbætur óvirkar til að fela stýringar þeirra í %1$s forritinu.
+ Atriði á sleða, samhengisvalmynd
+ Sérsnið viðmóts
+ Sleði
+ Aðgerðir samhengisvalmyndar
+ Endurraða eða fela atriði frá %1$s.
+ Aðgreinir
+ Einindi fyrir neðan þessa staðsetningu aðskilin með aðgreini.
+ Falið
+ Stillingar verða settar á upphaflega stöðu eftir að hafa verið faldar.
+ Aðalaðgerðir innifela aðeins 4 hnappa.
+ Aðalaðgerðir
+ Þú getur komist í þessar aðgerðir með því að ýta á \"Aðgerðir\"-hnappinn.
+ Forritsviðbót fyrir forritun
+ Atriði
+ Viðbótarkort þarf til að skoða Wikipedia-merkisstaði á kortinu.
\ No newline at end of file
diff --git a/OsmAnd/res/values-it/phrases.xml b/OsmAnd/res/values-it/phrases.xml
index 4f3275c190..6d28598f92 100644
--- a/OsmAnd/res/values-it/phrases.xml
+++ b/OsmAnd/res/values-it/phrases.xml
@@ -70,7 +70,7 @@
Stazione trasporto pubblicoStazione autobusEntrata metropolitana
- sì
+ SìAeroportoEliportoNoleggio bici
@@ -171,14 +171,14 @@
Ufficio migrazioneGuardia di finanzaUfficio amministrativo
- Città capoluogo di provincia
- Città
+ Città
+ CittadinaPaese
- Borgo-contrada
- Insediamento rurale isolato
+ Piccolo borgo
+ Abitazione isolataGrande quartiereQuartiere
- Località
+ Località non popolataFarmaciaOspedaleMedico
@@ -481,7 +481,7 @@
IsolettaOsservatorioOsservatorio astronomico
- Fattoria
+ Fattoria o cascinaTerapista occupazionaleUfficio telecomunicazioniFootball americano
@@ -699,7 +699,7 @@
ClubPastaTipo di carburante
- Tipo di carburante (avia)
+ Tipo di carburante (aeroplani)Tipo di pagamentoCarte carburanteUlteriori
@@ -931,12 +931,12 @@
In disusoOperatoreMarchio
- sì
- no
- sì
- no
- sì
- no
+ Sì
+ No
+ Sì
+ No
+ Sì
+ NoStagione seccaStagione umidaPrimavera
@@ -953,7 +953,7 @@
Nessun accessoAccesso permissivoAccesso cliente
- Accesso di consegna
+ Accesso alla consegnaAccesso agricoloContenuto: insilatoContenuto: acqua
@@ -1190,8 +1190,8 @@
Non si accetta PayPalCarte regaloDescrizione del pagamento
- Accesso a Internet - a pagamento
- Accesso a Internet - senza pagamento
+ Accesso a Internet: a pagamento
+ Accesso a Internet: senza pagamentoVegetarianaSolo VeganaVegana
@@ -2001,7 +2001,7 @@
Rampa per carrozzina: NoMangiatoiaGruppo destinatario
- Infrastruttura emergenza
+ Infrastruttura d\'emergenzaLettiCentro ricreativoAttivazione del attraversamento: automatica
@@ -2130,7 +2130,7 @@
Area commercialeOrti urbaniBacino
- sì
+ SìOrti di cittàHockey su ghiaccioLuterana
@@ -2285,7 +2285,7 @@
Union Card non accettataMTS-MoneyMTS-Money non accettato
- Birre
+ Nome della birreriaPrincipaleStagnoRuscello
@@ -2397,10 +2397,10 @@
Inscrizione:NOOrientamento del muro:SOOrientamento del muro: NO
- si
+ SìSegno di distanzaPista Skitour
- Riformata unita
+ Riformata UnitaIglesia ni cristoUnitariaArchivio
@@ -2519,7 +2519,7 @@
Solo gruppi: sìSolo gruppi: noDoccia: interno
- Casa famiglia
+ Casa di gruppoBanco alimentareRiparoTossicodipendenti
@@ -2553,7 +2553,7 @@
OsteopatiaAnestesiologiaPneumologia
- Stazione fai-da-te riparazione bici
+ Stazione di riparazione biciclette;Stazione fai-da-te riparazione biciConsultorio (familiare): siConsultorio (familiare): noStato della pompa: rotta
@@ -2565,7 +2565,7 @@
CloroOsmosi inversaAquatabs
- Acquedotto
+ CondutturaAcqua correntePozzoAcqua imbottigliata
@@ -2782,4 +2782,41 @@
Carro armato storicoSMSVideo
+ Genere comunitario: misto
+ Sesso comunitario: maschio
+ Genere comunitario: femmina
+ Termale
+ Hammam
+ Outlet
+ Altopiano
+ Ricambi auto
+ Medio
+ Alto
+ Basso
+ Alto
+ Medio
+ Alto
+ AS/NZS 3112
+ BS 1363
+ NEMA 14-50
+ NEMA 14-30
+ NEMA 5-20
+ NEMA 5-15R
+ Tipo 2 combinato
+ Tipo 2
+ Tipo 1 combinato
+ Tipo 1
+ CEE rosso 125A
+ CEE rosso 64A
+ Barbecue
+ Supporto: torre
+ Supporto: tetto
+ Supporto: albero
+ Supporto: muro
+ Uscita (elettricità): no
+ Orticoltura in serra
+ Filiale
+ Aggregato
+ Berillio
+ Negozio all\'ingrosso
\ No newline at end of file
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index e54c2b20e6..0daff2361b 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -58,9 +58,9 @@
Impostazioni della mappa vettorialeEliminare %1$s?Frazione
- Borgata
- Villaggio
- Città
+ Piccolo borgo
+ Paese
+ CittadinaCittàFerma animazioneAvvia animazione
@@ -1341,7 +1341,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Atlante strade americane
Ignora le regole di calcolo del percorso v1.9Non usare le regole di calcolo del percorso introdotte nella v1.9.
- Passaggio a livello
+ Attraversamento ferroviarioAttraversamento pedonalePassaggi a livelloAttraversamenti pedonali
@@ -1902,7 +1902,9 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Parte della tua donazione sarà inviata agli utenti OSM che sottopongono modifiche alla mappa in quella regione.
Impostazioni della sottoscrizionePer favore acquista prima la sottoscrizione a OsmAnd Live
- La sottoscrizione abilita gli aggiornamenti orari per tutte le mappe del mondo. Parte degli incassi ritornano alla comunità OSM e sono corrisposti per ogni contributo a OSM. Se ti piacciono OsmAnd e OSM e vuoi sostenerli ed essere sostenuto da questi, questo è il miglior modo per farlo.
+ La sottoscrizione abilita gli aggiornamenti orari per tutte le mappe del mondo.
+\nParte degli incassi ritornano alla comunità OSM e sono corrisposti per ogni contributo a OSM.
+\nSe ti piacciono OsmAnd e OSM e vuoi sostenerli ed essere sostenuto da questi, questo è il miglior modo per farlo.Carica anonimamenteMostra la barra di ricerca trasparenteBarra superiore
@@ -2313,13 +2315,13 @@ Rappresenta l\'area: %1$s x %2$s
\n
\n Dall\'Afghanistan al Zimbabwe, dall\'Australia agli USA. Argentina, Brasile, Canada, Francia, Germania, Messico, Gran Bretagna, Spagna, …
\n
- "Contribuisci direttamente a OSM
+ Contribuisci direttamente a OSM
\n • Segnala errori nei dati
\n • Contribuisci tracce GPX a OSM direttamente dall\'app
\n • Aggiungi PDI e caricali direttamente in OSM (o successivamente se sei offline)
\n • Registrazione opzionale del viaggio anche in modalità background (mentre il dispositivo è in modalità sleep)
-\n OsmAnd è software open-source attivamente in fase di sviluppo. Chiunque può contribuire all\'applicazione riportando degli errori, migliorando la traduzione o programmando nuove funzionalità. Inoltre il progetto si basa sui contributi finanziari per finanziare la programmazione e il test di nuove funzionalità.
-\n "
+\n OsmAnd è software open-source attivamente in fase di sviluppo. Chiunque può contribuire all\'applicazione riportando degli errori, migliorando la traduzione o programmando nuove funzionalità. Inoltre il progetto si basa sui contributi finanziari per finanziare la programmazione e il test di nuove funzionalità.
+\nOsmAnd è un software open-source attivamente sviluppato. Chiunque può contribuire all\'app segnalando degli errori, migliorando la traduzione o programmando nuove funzionalità. Inoltre il progetto si basa anche sui contributi finanziari per finanziare la programmazione e il test di nuove funzionalità.
\n Copertura e qualità della mappa approssimativa:
\n • Ovest Europa: ****
@@ -3395,7 +3397,7 @@ Rappresenta l\'area: %1$s x %2$sSalva orientamentoDurante la registrazione salva l\'orientamento per ogni punto della traccia%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonaleScaricamento %sParco innevato
@@ -3446,7 +3448,7 @@ Rappresenta l\'area: %1$s x %2$s
Controlla e condividi i log dettagliati dell\'applicazioneUn permesso è richiesto per usare questa opzione.Sistema categorie
- Puoi aggiungere categorie personalizzate, nascondere quelle che non trovi necessarie e cambiarne l\'ordine nell\'elenco. La lista può essere importata ed esportata con i profili.
+ Cambia l\'ordinamento della lista, nasconde le categoria non necessarie. Puoi importare o esportare tutti i cambiamenti con i profili.Puoi aggiugere una nuova categoria personalizzata selezionandone una o alcune altre.DisponibileAggiungi categoria personalizzata
@@ -3462,7 +3464,7 @@ Rappresenta l\'area: %1$s x %2$s
Icona visualizzata da fermi.Impossibile analizzare il dato geo \'%s\'.Questo è un filtro delle basse velocità per non registrare i punti inferiori a una data velocità. Questo può permettere di registrare tracce dall\'aspetto più pulito quando visualizzate sulla mappa.
- Effetto collaterale: alle tue tracce mancheranno tutte le sezioni in cui il criterio della velocità non sarà soddisfatto (es. quando spingi la tua bici in una elevata pendenza). Altrettanto non ci saranno informazioni nei periodi di riposo o ristoro. Questo ha effetto su tutte le analisi ed elaborazione dei dati, come quando si prova a determinare la lunghezza totale del tuo percorso, il tempo in movimento, o la velocità media.
+ Effetto collaterale: alle tue tracce mancheranno tutte le sezioni in cui il criterio della velocità non sarà soddisfatto (es. quando spingi la tua bici in un\'elevata pendenza). Altrettanto non ci saranno informazioni nei periodi di riposo o ristoro. Questo ha effetto su tutte le analisi ed elaborazione dei dati, come quando si prova a determinare la lunghezza totale del tuo percorso, il tempo in movimento, o la velocità media.Raccomandazione: prova prima a utilizzare il sensore del movimento attraverso la registrazione del filtro del minimo dislocamento (B), potrebbe produrre migliori risultati, e perderai meno dati. Se le tue tracce continuano a essere sporche a basse velocità, prova con valori maggiori di zero. Si prega di notare che alcune misurazioni possono non riportare nessuna velocità (alcuni metodi basti sulle reti), in questi casi non registrerai alcun dato.Osservazione: controllo velocità > 0 : molti chip GPS riportano un valore di velocità solo se l\'algoritmo determina che tu sei in movimento, e nessuno invece se non lo sei. Quindi utilizzando l\'impostazione > 0 nel filtro, in un certo senso utilizza il sensore di movimento del chip GPS. Ma anche se non filtrati qui nel momento della registrazione, comunque utilizziamo questa caratteristica nell\'analisi dei nostri file GPX per determinare al distanza corretta, es. il valore visualizzato in questo campo è la distanza registrata finché si è in movimento.Questo registrerà solo punti misurati con un\'accuratezza minima (in metri/piedi, come riportati da Android per il tuo chipset). L\'accuratezza si riferisce alla variabilità di misure ripetute, e non è direttamente correlato alla precisione, che definisce quanto la tua misurazione è vicina alla vera posizione.
@@ -3488,11 +3490,11 @@ Rappresenta l\'area: %1$s x %2$s
Usa l\'app di sistemaSono otturatore fotocameraL\'autorizzazione è andata a buon fine
- Il ripristino dei valori preimpostati ripristinerà all\'ordine preimpostato dopo l\'installazione l\'ordine di visualizzazione.
- La modalità accessibile è disabilitato nel tuo sistema.
+ Il ripristino dei valori preimpostati ripristinerà l\'ordine di visualizzazione preimpostato dopo l\'installazione.
+ La modalità accessibile è disabilitata nel tuo sistema.Utilizza il salvaschermo di sistema
- Disabilitato per preimpostazione, se OsmAnd è eseguito in background, lo schermo non andrà in sospensione.
-\n
+ Disabilitato per preimpostazione, se OsmAnd è eseguito in primo piano, lo schermo non andrà in sospensione.
+\n
\nSe abilitato OsmAnd userà le impostazioni di sospensione del sistema.Elimina i dati registrati• Profili: ora puoi cambiare l\'ordine, impostare l\'icona per le mappe, cambiare tutte le impostazioni dei profili di base e reimpostarle a quelle preimpostate
@@ -3538,7 +3540,7 @@ Rappresenta l\'area: %1$s x %2$sStile di rappresentazione personalizzatoInclude dati addizionaliIl profilo importato contiene datti aggiuntivi. Clicca Importa per importare solo i dati del profilo o scegli i dati aggiuntivi da importare.
- Puoi selezionare dati aggiuntivi da esportare unitamente al profilo.
+ Puoi selezionare dati aggiuntivi da esportare assieme al profilo.AntartideMostra le notifiche di sistema con le istruzioni di navigazione durante la navigazione.Notifiche di navigazione
@@ -3547,7 +3549,7 @@ Rappresenta l\'area: %1$s x %2$sAngolo: %s°AngoloUna linea retta sarà visualizzata fra la mia localizzazione e la destinazione finché il percorso viene elaborato
- Angolo minimo tra la mia localizzazione e la destinazione
+ Angolo minimo tra la mia localizzazione e il percorsoPreparandoTipi di PDINessuna selezione
@@ -3564,10 +3566,10 @@ Rappresenta l\'area: %1$s x %2$s
Alcuni oggetti esistono giàSeleziona i dati da importare.Importa il file di rappresentazione
- Tutti le impostazioni del profilo saranno ripristinate ai valori iniziali dopo l\'importazione/creazione di questo profilo.
+ Tutti le impostazioni del profilo saranno ripristinate ai valori iniziali dopo la creazione/importazione di questo profilo.Ripristinare tutte le impostazioni del profilo\?Salvataggio del nuovo profilo
- Impossibile fare una copia di salvataggio del profilo.
+ Impossibile creare un backup del profilo.Sei sicuro di voler eliminare i dati registrati\?Importazione dei dati da %1$sImportazione in corso
@@ -3575,7 +3577,7 @@ Rappresenta l\'area: %1$s x %2$s
Importazione completataTutti i dati sono stati importati da %1$s, puoi utilizzare i bottoni sottostanti per aprire e gestire le parti dell\' applicazione di cui necessiti.Il percorso verrà ricalcolato quando la distanza tra il percorso e la propria posizione è maggiore del valore selezionato.
- Seleziona dopo che distanza effettuare il ricalcolo del percorso.
+ Seleziona le distanza dopo la quale il percorso verrà ricalcolato.Ricalcola il percorso in caso di deviazioneQuadratoRombo
@@ -3589,5 +3591,40 @@ Rappresenta l\'area: %1$s x %2$s
Nascondi rilievoMostra/nascondi rilievoPendenze
- Rilievi ombra
+ Ombreggiatura rilievi
+ Puoi avere maggiori informazioni sulle Pendenze in %1$s.
+ Min
+ Sostituisci un altro punto con questo
+ Sci alpino
+ Stile di rappresentazione
+ Terreno
+ La mappa Ombreggiamento dei rilievi utilizza le ombre per visualizzare le pendenze, i picchi e i bassipiani.
+ La Pendenza è visualizzata sul terreno tramite colorazione.
+ Imposta lo zoom minimo e massimo a cui lo strato sarà visualizzato.
+ Sono necessarie mappe addizionali per visualizzare l\'Ombreggiatura dei rilievi sulla mappa.
+ Mappe addizionali sono necessarie per visualizzare le Pendenze sulla mappa.
+ Trasparenza
+ Livello di zoom
+ Legenda
+ Abilitalo per vedere le mappe delle ombreggiature o della pendenza dei rilievi. Maggiori informazioni su questi tipi di mappe nel nostro sito
+ OsmAnd ricerca in %1$s oggetti esistenti duplicati nell\'applicazione.
+\n
+\nPuò richiedere del tempo.
+ %1$s di %2$s
+ Ottagono
+ Motoslitta
+ Componente aggiuntivo OsmAnd personalizzato
+ Modifiche applicate al profilo %1$s.
+ Non posso leggere %1$s.
+ Non posso scrivere %1$s.
+ Non posso importare %1$s.
+ Sono necessarie mappe aggiuntive per visualizzare sulla mappa i PDI Wikipedia.
+ Scegli il file della traccia
+ Lingue
+ Lingua
+ Tutte le lingue
+ Alcuni articoli Wikipedia potrebbero non essere disponibili nella tua lingua, scegli il linguaggio con cui appariranno sulla mappa.
+\nDurante la lettura potrai cambiare fra tutte le lingue disponibili.
+ Plugin sviluppatore
+ Oggetti
\ No newline at end of file
diff --git a/OsmAnd/res/values-ja/phrases.xml b/OsmAnd/res/values-ja/phrases.xml
index 5ce0487084..43277a41ea 100644
--- a/OsmAnd/res/values-ja/phrases.xml
+++ b/OsmAnd/res/values-ja/phrases.xml
@@ -2218,8 +2218,8 @@
フォトスタジオ・写真館宗教関連用品店香辛料販売店
- インターネット接続 - 通常は有料
- インターネット接続 - 通常は無料
+ インターネット接続: 通常は有料
+ インターネット接続: 通常は無料アフリカーンス語 wikiアルザス語 wikiアゼルバイジャン語 wiki
@@ -3780,4 +3780,31 @@
スキューバダイビングセンターSMS水場へのアクセス方法
+ 歩行が許可されている場合のみ
+ インターネット接続料金
+ 不可
+ 可
+ 不可
+ 可
+ 避難所タイプ
+ 避難所
+ 水場の耐久性: 永続使用可
+ 水場の耐久性: 緊急時用
+ ビデオ通話
+ 正しく設置されていない点字ブロック
+ 非点字ブロックだが凹凸で判断可
+ 一般的な点字ブロック
+ 水位:湿っている
+ 水位:常時乾燥
+ 水位:常時水没
+ 水位:干潮時などは冠水
+ 水位:覆われること有り
+ 水位:部分的に水没
+ 障害物
+ 水位:平均水位より低め
+ 水位:平均水位より高め
+ 水位:浮遊物
+ 飲料水補充ネットワーク(所属)
+ 飲料水の補充:不可
+ 飲料水の補充:可
\ No newline at end of file
diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml
index a1f5b209a0..134a3c5b4d 100644
--- a/OsmAnd/res/values-ja/strings.xml
+++ b/OsmAnd/res/values-ja/strings.xml
@@ -449,7 +449,7 @@ POIの更新は利用できません
\'\'{0}\'\' が追加されました。
お気に入りを編集お気に入りを削除
- お気に入り地点を削除しますか? \'%s\'
+ お気に入り地点\'%s\'を削除しますか?お気に入り地点 {0}
は削除されました。メッセージ
@@ -1305,7 +1305,7 @@ POIの更新は利用できません
遅め最後の数メートル手動のみ(矢印をタップ)
- " string name=\"lat_lon_pattern\">\"緯度:%1$.5f 経度:%2$.5f\"</string "
+ Online OSMマップを画像で分類します。経由地点をGPXファイルとして保存、またはお気に入りにインポートしますか?共有OsmAndを介してお気に入りを共有
@@ -1923,7 +1923,7 @@ POIの更新は利用できません
最後の更新: %s更新時間更新ファイルのサイズ
- 最後のマップ更新: %s
+ 最終マップ更新: %s毎時間毎日毎週
@@ -2051,7 +2051,7 @@ POIの更新は利用できません
入手するマイル/メートルマップのダウンロードをスキップ
- オフライン用マップがインストールされていません。マップはこの画面にてリスト内から選択、あるいは後から\'メニューの%1$s\'にてダウンロードすることができます。
+ オフライン用マップがインストールされていません。マップはこのリスト内から選択、あるいは後からでもメニューの\'%1$s\'からダウンロードすることができます。別の地域を選択マップを検索しています…インターネット接続なし
@@ -2573,7 +2573,7 @@ POIの更新は利用できません
通過済みも表示通過済みは非表示ファイル %1$s は経由地点を含んでいません、それでも経路としてインポートしますか?
- マーカー[%s]がアクティブ化されました。
+ マーカー%sがアクティブ化されました。コンテキストメニューを開かずにマップ上のマーカーをタップするだけで1番目のマーカーとしてアクティブ化させます。ワンタップアクティブ場所に関するメモをつけよう!
@@ -2655,7 +2655,7 @@ POIの更新は利用できません
オフラインでWikipedia記事を読むブックマークした記事より、次のマップをダウンロードすることをお勧めします:人気の目的地
- Wikivoyageの旅行ガイドを事前にダウンロードすれば、インターネット接続なしで世界各地の観光場所を知ることができます。
+ Wikivoyageの旅行ガイドをダウンロードしておけば、オフライン環境でも世界各地の観光名所を知ることができます。誰でも自由に編集できる世界規模の旅行ガイドです。『旅行ガイド』はWikivoyageをベースとした機能です。オープンβ時に限り無料で全ての機能を利用できます。旅行ガイドは将来的にOsmAndのサブスクリプション登録者や、OsmAnd+の利用者に提供される予定です。あなたもWikivoyageの記事を編集できます。場所に関する知識、旅先での経験、魅力あるスポットはもちろん注意事項なども共有できます。
@@ -2839,7 +2839,7 @@ POIの更新は利用できません
記事をオンラインで開くウェブブラウザで記事を閲覧します。当該地域
- マップマーカー「%s」を削除しますか?
+ マップマーカー\'%s\'を削除しますか?マップマーカーの編集サードパーティーアプリ道路検索エリア
@@ -2971,7 +2971,7 @@ POIの更新は利用できません
ナビゲーション時に使用したくない公共交通機関を指定します:%sモード避けたい移動手段の種類…
- 『%s』タグの長さは255文字未満にしてください。
+ \"%s\"タグの長さは255文字未満にしてください。\"%s\"値の長さOsmAndのルーティング詳細については、公式ブログをご参照ください。公共交通機関のナビゲーションは現在ベータテスト中で、エラーや不正確さを含む恐れがあります。
@@ -3066,7 +3066,7 @@ POIの更新は利用できません
やや軟らか軟らかい表面硬度
- %s は保存されました
+ %sを保存しましたキャンパーキャンピングカーマップ上に低排出ゾーン(CO2排出量の多い車両に課税するエリア)を表示します。ルーティングには影響しません。
@@ -3126,7 +3126,7 @@ POIの更新は利用できません
変更の保存一旦プロファイルへ変更を保存する必要がありますプロファイルの削除
- プロファイル 『%s』 を削除してよろしいですか?
+ プロファイル \"%s\"を削除してよろしいですか?開始時に表示するプロファイルの選択カスタムプロファイルは標準のアプリケーションプロファイルを元に作成します。ウィジェットなどの表示設定や速度と距離の単位などの標準設定をプロファイルごとに定義可能です。これらは標準のアプリプロファイルを基本としており、今後それらと共に拡張される可能性があります:ナビゲーションタイプの選択
@@ -3182,7 +3182,7 @@ POIの更新は利用できません
グレード4グレード5経路を開く
- 経路%sは保存されました
+ 経路%sを保存しました一時的な制限の検討『クイックアクション』のリストに最低ひとつは項目を設定する必要がありますアルペン/ダウンヒルスキー
@@ -3348,7 +3348,7 @@ POIの更新は利用できません
ピックアップトラック年サブスクリプションの解除
- ここでの変更は選択したものはもちろん、すべてのプロファイルにも適用できます。
+ ここで変更した設定は選択中のプロファイル・すべてのプロファイル、どちらにも適用可能です。現在の設定未舗装道路を優先ルート検索時に、舗装道路よりも未舗装道路を優先します。
@@ -3405,11 +3405,11 @@ POIの更新は利用できません
見出しを含める記録中の各トラックポイントに見出しも保存します。パーソナル
- をダウンロード中
+ %sをダウンロード中濃い砂漠などの過疎地に向いたマップスタイルです。各情報の詳細も表示されます。%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$s移動中の位置アイコン静止中の位置アイコン[決定]をタップすると、プロファイルが完全に削除されます。
@@ -3536,7 +3536,7 @@ POIの更新は利用できません
メニュー%1$s — %2$s — %3$sルート検索
- 追加データを内包
+ 追加データも含めるインポートされたプロファイルには追加データが含まれています。 [インポート]をタップしてプロファイルデータのみをインポートするか、インポートする追加データを選択してください。プロファイルとともにエクスポートする追加データを選択できます。南極大陸
diff --git a/OsmAnd/res/values-ka/strings.xml b/OsmAnd/res/values-ka/strings.xml
index b669c55d8c..5c83ad4fb1 100644
--- a/OsmAnd/res/values-ka/strings.xml
+++ b/OsmAnd/res/values-ka/strings.xml
@@ -1,923 +1,777 @@
-OsmAnd-ით ნავიგაცია გათიშულ რეჟიმში დროებით მიუწვდომელია.
- მარცხენა ხელით ტარება
- აირჩიეთ მარცხენა მხარეს საჭის გამომყენებელი ქვეყნებისათვის
-
- საწყისი პოზიცია ნაპოვნი ჯერ არაა
- პოზიცია უცნობია
- გამჭირვალობის შეცვლა (0 - გამჭირვალე, 255 - გაუმჭირვალე)
- გნებავთ ჩამოტვირთვის შეწყვეტა?
- პროგრამის მთავარი თვისებების გამოსაყენებლად თქვენ გჭირდებათ მონაცემები რომლებიც გამოიყენება გათიშულ რეჟიმში, რომელიც შეგიძლიათ ჩამოტვირთოთ (პარამეტრები->მონაცემები გათიშვისას). ამის შემდეგ თქვენ შეგეძლებათ ძებნა როგორც მისამართის, ასევე საჯარო ტრანსპორტის მიხედვით.
- ბაზური რუკა საჭიროა პროგრამის ფუნქციონირებისათვის და არჩეულ იქნა გადმოსაწერად.
- არაფერი არ იქნა ნაპოვნი. თუ ვერ პოულობთ თქვენი რეგიონის რუკას, შეგიძლიათ შექმნათ თვითონ. (იხილეთ http://osmand.net).
- მიმდინარე რუკები (ნახაზები)
- გათიშული რუკები (ვექტორული)
-
- გათიშული რუკების ჩამოტვირთვა, მართვა და დეტალები
- "ჩართეთ მიმდინარე რუკების დამატება სხვადასხვა წყაროების სანახავად"
- მიმდინარე რუკები
- მიმდინარე რუკების გამოყენება (ჩამოტვირთვა და sdcard-ზე ქეშირება)
- მიმდინარე რუკები
- მიმდინარე და დაქეშირებული ნაწილოვანი რუკების წყაროების გამართვა
-
-
- "დამატება ამსუბუქებს სხვადასხვა მიმდინარე ან ქეშირებულ ნაწილოვან რუკებს. ისინი შეიძლება მომზადდეს როგორც გათიშული რუკები და შეინახოს OsmAnd-ის დასტაში. "
- დამატება გაძლევთ საშუალებს დევნის ან ნავიგაციის მოწყობილობის ძილის დროს პერიოდულად GPS ჩიპის გააქტიურების საშუალებით.
- დამატება მართავს სპეციალური წვდომის შესაძლებლობებს.
-
-
-
- დამატება გაძლევთ საშუალებას განახორციელოთ შეცდომების კონტროლი და განვითარება მახასიათებლებისა როგორიცაა ანიმირებული ნავიგაცია.
- დამატებათა გამმართველი
-
- დამატება გაძლევთ საშუალებას გამოიყენოთ აპლიკაციისათვის თანმოყოლილი ფუნქციები როგორიცაა ნაწილოვანი რუკები, თვალის დევნება, ძილის დროის ოპერაციები და სხვა
- დამატების მმართველი
-
- ეს დამატება გაძლევთ საშუალებას გააცნოთ OSM-ს თქვენი აზრი, გახსნა/დახურვა OSM-ის ხოჭოების შესახებ და მიაწოდოთ პროექტს თქვენი ჩაწერილი GPX ფაილები.
- ვექტორული რუკები როგორც წესი ჩანს უფრო სწრაფად. შეიძლება არ იმუშაოს ზოგიერთ მოწყობილობაზე.
-
- ხმით არჩეული ბრძანებების შესრულება
- OsmAnd -ის განვითარება და გამართვა
- ადგილობრივი რენდერი
-
- ხმის ტესტირება
- მოცემული ადგილისათვის ვექტორული რუკები ნაპოვნი არაა. შეგიძლიათ გადმოწეროთ პარამეტრებში (გამორთული მონაცემები), ან გადაერთოთ მიმდინარე მონაცემებზე.
-
- გავუგზავნო GPX ფაილები OSM-ს?
- ხილვადობა
- ჭდეები
- აღწერა
- შეიყვანეთ OSM მომხმარებელი და პაროლი GPX ფაილების ასატვირთად.
- მხარდაჭერა
- ახალი თვისებების მხარდაჭერა
-
- სახაზავის ჩვენება
- ინფორმაცია
- ადგილზე დაბრუნება
- დახმარება
-
- წვდომადობის რეჟიმი
- რთავს წვდომადობის თვისებებს
- ჩართული
- გამორთული
- გლობალურ სისტემურ პარამეტრებზე დაყრდნობით
- მენიუში დაბრუნება
- დაპატარავება
- გადიდება
- გადიდების ზომა
- ჩრდილოეთი
- ჩრდილო-ჩრდილო-აღმოსავლეთი
- ჩრდილო-აღმოსავლეთი
- აღმოსავლეთი-ჩრდილო-აღმოსავლეთი
- აღმოსავლეთი
- აღმოსავლეთი-სამხრეთ-აღმოსავლეთი
- სამხრეთ-აღმოსავლეთი
- სამხრეთი-სამხრეთ-აღმოსავლეთი
- სამხრეთი
- სამხრეთი-სამხრეთ-დასავლეთი
- სამხრეთ-დასავლეთი
- დასავლეთი-სამხრეთ-დასავლეთი
- დასავლეთი
- დასავლეთი-ჩრდილო-დასავლეთი
- ჩრდილო-დასავლეთი
- ჩრდილოეთი-ჩრდილო-დასავლეთი
- წინა
- წინა მარჯვენა
- მარჯვენა
- უკანა მარჯვენა
- უკან
- უკანა მარცხნივ
- მარცხნივ
- წინა მარცხენა
- საათი
- მიმართულებით
- სიზუსტე
- სიმაღლე ზღვის დონიდან
- ინფორმაცია არაა
- გვერდით (8 ნაწილი)
- საათის ისრის მიმართულებით (12 სექტორი)
- მიმართულება
- მიუთითეთ მოძრაობისას მიმართულებაზე დამოკიდებული მიმართულების სტილი
- თვითგამოცხადების ჩართვა
- თვითგამოცხადების გამორთვა
- აქ ვარ
- რუკის გადიდება ტრეკბოლის ჰორიზონტალური მოძრაობით
- ტრეკბოლის გამოყენება გასადიდებლად
- წვდომადობის პარამეტრები
- წვდომა
- არასაკმარისი მეხსიერება არჩეული ადგილის საჩვენებლად
- მანათობელი დაფარვები
- ბილიკებისა და გზების მანათობელი ფერებით ჩვენება
- POI-ს ჩასწორება გათიშულ რეჟიმში
- ყოველთვის გამოვიყენოთ POI-ს ჩასწორების გათიშული რეჟიმი
-
- აპლიკაციაში POI-ის ცვლილებები არ ეხება ჩამოტვირთულ რუკის ფაილებს. ცვლილებები ინახება ლოკალურ ფაილში.
- ატვირთვა…
- {0} POI/Bugs ატვირთულია
- ყველას ატვირთვა
-
-
- ცვლილების OSM-ზე ატვირთვა
- ცვლილების წაშლა
- OSM POI-ის ასინქრონული ჩასწორება:
- ადგილობრივად შენახული OSM POI-ები/Bugs
- ადგილობრივ ბაზაში შენახული OSM POI-ების/Bugs ჩვენება და მართვა
-
-
- მიუთითეთ მიმდინარე რეჟიმში დევნის ინტერვალი
- ცოცხალი დევნის ინტერვალი
- მიუთითეთ ვებ მისამართუ შემდეგი პარამეტრების სინტაქსით : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}
- ცოცხალი დევნის ვებ-მისამართი
- გთხოვთ ჩართოთ \'დევნის GPX ჟურნალში ჩაწერა\' დევნის პარამეტრებში.
- მიმდინარე დევნის ჩვენება
-
- OsmAnd-ის უფასო ვერსია ლიმიტირებულია %1$s ჩამოტვირთვით და არ გააჩნია გათიშული ვიკიპედიის სტატიების მხარდაჭერა.
- უფასო ვერსია
- POI-ის აღწერის ჩვენება
- ჩრდილო ამერიკა
- ჩრდილო ამერიკა - შეერთებული შტატები
- ცენტრალური ამერიკა
- სამხრეთ ამერიკა
- ევროპა
- ევროპა - საფრანგეთი
- ევროპა - გერმანია
- ევროპა/აზია - რუსეთი
- აფრიკა
- აზია
- ოკეანეთი
- მსოფლიო რუკები
- მსოფლიო ვიკიპედია
- ჩაწერილი ხმოვანი პაკეტები
- ხმის პაკეტები (TTS)
- ვიკიპედია (გათიშული)
- მომხმარებლის მიერ შექმნილი
- რჩეულების ექსპორტირებული ფაილი უკვე არსებობს. გნებავთ თავზე გადაწერა?
- პროფილის პარამეტრები
- მომხმარებლის პროფილი
- აირჩიეთ მომხმარებლის პროფილი რუკისა და ნავიგაციის პარამეტრებით.
-
-
- ნავიგაცია
- მიუთითეთ ნავიგაციის პარამეტრები
- გლობალური პარამეტრები
- გათიშული მონაცემები\n(გადმოწერა)
- მთავარი პარამეტრები
- მთავარი პარამეტრების გამართვა
- აპლიკაციის მთავარი პარამეტრები
- თქვენი OSM-ს მომხმარებლის სახელი
- საჭიროა openstreetmap.org-ზე ოპერაციებისათვის
- თქვენი OSM-ს პაროლი
-
- ფონური პარამეტრები
- გამოიყენეთ OsmAnd-ის ეკრანის გათიშულობის დროს გამოსაყენებლად
-
-
-
-
-
-
-
- არასაკმარისი ადგილი %1$s მბ-ის გადმოსაწერად (თავისუფალია: %2$s).
- თავისუფალი ადგილი {2} მბ! გადმოვწერო {0} ფაილი ზომით ({1} მბ)?
-
-
-
-
- გამჭირვალე თემა
- ადგილობრივი ბიბლიოთეკა მოცემულ მოწყობილობაზე მხარდაჭერილი არაა.
- ადგილობრივი ბიბლიოთეკის ინიციალიზაცია…
- რუკის ხედვის ცენტრისაკენ ავტომატური გასწორება
- დრო, რომელიც გავა სანამ რუკა იქნება მიმდინარე პოზიციის შესაბამისი იქნება
-
- მხოლოდ ავტოცენტრირებული ნავიგაცია
- ავტოცენტრირებული რუკის ხედვა მხოლოდ ნავიგაციის დროს.
- გამოიყენება ავტოცენტრირებული რუკის ხედი.
- ვექტორული რენდერერის სპეციფიური პარამეტრები
- ზედა / ქვედა
- რუკის წყაროს პარამეტრები
- ვექტორული რუკის პარამეტრები
- წავშალო %1$s?
- გარეუბანი
- დასახლება
- სოფელი
- ქალაქი
- ქალაქი
-
- ანიმაციის შეჩერება
- ანიმაციის დაწყება
-
- ფაილისათვის სახელის გადარქმევა შეუძლებელია.
- ფაილი მოცემული სახელით უკვე არსებობს.
- GPX გზა
- ძებნის შედეგები შეიცავს რამოდენიმე POI კატეგორიას :
- ადგილობრივი მონაცემები POI-ს ძებნისათვის არ არსებობს.
- სახელით ძებნა
- POI-ის მონაცემთა ფაილის \'%1$s\', არსებობს ასლი და მისი წაშლა შესაძლებელია.
- ლოკალური ფაილი POI-ის ცვლილებების შესანახად ნაპოვნი არ იქნა და მისი შექმნა შეუძლებელია.
- განახლება OsmAnd+-მდე
- სერვერი შეიცავს რუკის ფაილებს რომლებიც არაა შესაბამისი აპლიკაციის მიმდინარე ვერსიასთან. გთხოვთ განაახლოთ აპლიკაცია მათ ჩამოსაწერად და გამოსაყენებლად.
- სახელის გადარქმევა
-
- მიმდინარე POI-ს ძებნა სახელით
- მდებარეობის ძებნა…
- მდებარეობა (ნაპოვნია)
- მისამართი…
- რჩეულები…
- არააღწერილი
-
-
- უკანასკნელად ნანახი რუკის ხედი
- ძებნა ახლოს :
- ახლოს ძებნა
-
- გზის GPX ბილიკად შენახვა
- გზა შეინახა წარმატებით. სახელი \'%1$s\'.
- "ფაილის სახელი: "
- ფაილი მოცემული სახელით უკვე არსებობს.
- შენახვა
-
- GPX ფაილების OSM-ში ატვირთვა. ისინი გამოიყენება რუკების გასაუმჯობესებლად.
- %1$d %2$d -დან წარმატებით აიტვირთა.
- OSM-ში გაგზავნა
- მეტი დეტალები რუკის შესახებ
- ვექტორული რუკის დეტალების (გზების და ა.შ.) ჩვენება პატარა გადიდებისას
- რჩეული წერტილები წარმატებით წაიშალა.
- თქვენ აპირებთ წაშალოთ %1$d რჩეული და %2$d რჩეულთა ჯგუფი. დარწმუნებული ხართ?
- საწყისი
- მეგობრები
- ადგილები
-
- სახელი
- კატეგორია
- არა, მადლობა
- მსოფლიოს ბაზური რუკა, რომელიც შეიცავს მთელ მსოფლიოს პატარა გადიდებისას, არ არსებობს. გთხოვთ გადმოწეროთ World_basemap_x.obf.
- დასტაში \"offline\" sdcard-ზე არ არსებობს მონაცემები. გთხოვთ გადმოწეროთ რუკებით გათიშულ რეჟიმში სარგებლობისათვის .
- "\n\nპარამეტრების შესაცვლელად დააჭირეთ და გეჭიროთ"
-
-
-
- გამოცემა
- %1$d %2$d -დან წარმატებით გაიარა დეაქტივაცია.
- %1$d %2$d -დან წარმატებით წაიშალა.
- %1$d %2$d -დან წარმატებით გააქტიურდა.
- %1$s არ არსებობს
- თქვენ აპირებთ %1$s %2$s . გავაგრძელოთ?
- გათიშული მონაცემების მმართველი
- აქტივაცია
- დეაქტივაცია
-
-
- ჩამოტვირთვა
-
- POI მონაცემები
- მისამართის მონაცემები
- ტრანსპორტის მონაცემები
- რუკის მონაცემები
-
- დეაქტივირებულია
- ხმოვანი მონაცემები (TTS)
- ხმოვანი მონაცემები (ჩაწერილი)
-
- POI მონაცემები
- TTS ხმა
- ახალი ძებნა
- აირჩიეთ ტექსტის ზომა რუკაზე დატანილი სახელებისათვის
- ტექსტის ზომა
- რენდერინგის ინფორმაცია
- რენდერის სისწრაფის ჩვენება
-
-
-
-
- ახალი მონაცემების განშლა…
- არჩეულია მიმდინარე ნავიგაციის სერვისი მაგრამ ინტერნეტთან შეერთება წვდომადი არაა.
- ენა მხარდაჭერილი არაა
- არჩეული ენა არაა მხარდაჭერილი ანდროიდის მიმდინარე ვერსიის TTS ძრავის მიერ. გნებავთ მოვძებნოთ სხვა ძრავი market-ში? წინააღმდეგ შემთხვევაში გამოყენებულ იქნება მიმდინარე TTS ენა.
- ნაკლული მონაცემები
- არჩეული ენის შესაბამისი მონაცემების პოვნა შეუძლებელია. გნებავთ მაღაზიაში მათი მოძებნა?
- GPX-ის უკუღმა მიმართულება
- მიმდინარე მიმართულების გამოყენება
- მიმდინარე ბილიკის დევნა
- ამ ლოკაციისათვის არსებობს გათიშული ვექტორული რუკა.\n\t\n\tაქტივაციისათვის \'მენიუ\' -> \'ხედის გამართვა\' -> \'რუკის წყარო…\' -> \'გათიშული ვექტორული რუკები\'.
- ხმოვანი ბრძანების შედეგი
- აირჩიეთ არხი ხმოვანი ბრძანებებისათვის
- ხმოვანი დარეკვა
- შეტყობინების ხმა
- მუსიკის ხმა
- შეუძლებელია %1$s -ის ჩამოტვირთვა, გთხოვთ თავიდან დააყენოთ აპლიკაცია.
- გამჭირვალობის შეცვლა
- გამჭირვალობა
- ბაზური რუკის გამჭირვალობის შეცვლა
- ბაზური რუკის გამჭირვალობა
- ქვედა რუკა…
- ქვედა რუკა
- ქვედა რუკის არჩევა
- ზედა რუკა…
- არა
- ზედა რუკა
- ზედა რუკის არჩევა
- რუკა უკვე დაყენებულია. მიმდინარეობს პარამეტრების განახლება
- აირჩიეთ რუკა დასაყენებლად ან განსანახლებლად
- ოპერაციისათვის საჭიროა ინტერნეტი, რომელთანაც წვდომა არ არსებობს
- მეტის ჩაყენება…
-
-
- მინიმალური გადიდება ვექტორული რუკების ჩვენებისათვის
- ვექტორული გადიდების მინ. ზომა
-
-
-
-
- " Online OSM რუკების დალაგება სურათებით"
- შეცდომა გათიშული ძებნის დროს
- მისამართის ძებნა გათიშული რუკების გამოყენებით
- სისტემა
- ენის არჩევა
- ენა
-
-
-
-
-
-
-
-
-
-
-
-
- შემდეგი
- წინა
- სიგრძისა და სიჩქარის ერთეულები
- გაზომვის ერთეული
- მილი/ფუტი
- მილი/იარდი
- კილომეტრი/მეტრი
- იარდი
- ფტ
- მილი/წმ
- მილი
- გავრცელება
- მდებარეობა: %1$s\n%2$s
- მდებარეობის სანახავად მიჰყევით ბმულს %1$s ან ანდროიდის ბმულს %2$s
- მდებარეობის გაგზავნა
- მდებარეობის გაზიარება
- გზის წერტილი \'\'{0}\'\' წარმატებით დაემატა
- ჩაწერილი GPX ბილიკისათვის სანავიგაციო წერტილის დამატება
- GPX-სანავიგაციო წერტილის დამატება
- ადმინისტრაციული
- ბარიერი
- სასწავლო
- სასწრაფო დახმარება
- გასართობი
- ფინანსური
- გეოქეში
- საავადმყოფო
- ისტორიული
- მოხნული მიწები
- ცარიელი
- ქმნილება
- სამხედრო
- ნატურალური
- ოფისი
- სხვა
- მაღაზია
- სპორტი
- ნოყიერი
- ტურიზმი
- სატრანსპორტო
- მისამართების ინდექსირება…
- რუკების ინდექსირება…
- POI-ის ინდექსირება…
- ტრანსპორტის ინდექსირება…
- მოხდა I/O შეცდომა
- კმ
- კმ/ს
- მ
- ამოღებული რუკის ფორმატი \'\'{0}\'\'-ს მხარდაჭერა ამოღებულია
- მანქანის შეკეთება
- უახლოესი POI
- ხელით შეყვანილი ფილტრი
- საჭმლის მაღაზია
- ტურისტებისათვის
- საწვავი
- მიმდინარე სახელის ძებნა
- მიმდინარეობს ნაწილების კითხვა…
- ინდექსი \'\'{0}\'\' არ ეტევა მეხსიერებაში
- ინდექსის ვერსიის \'\'{0}\'\' მხარდაჭერა არ არსებობს
-
-
- OsmAnd-ის გათიშული ნავიგაცია არის საცდელი თვისება რომებიც არ მუშაობს 20 კმ-ზე მეტი მანძილებისათვის.\n\nნავიგაციის სერვისი დროებით გადართულია მიმდინარე სერვისზე CloudMade.
- შეუძლებელია მითითებული დასტის პოვნა.
- შესანახი დასტა
-
- დაყენებულია OsmAnd-ის წინა ვერსია. მთელი გათიშული მონაცემების მხარდაჭერილია და გამოყენებულ იქნება ახალ აპლიკაციაში. რჩეული წერტილების გამოსაყენებლად ისინი უნდა დააექსპორტოთ ძველიდან და შეიტანოთ ახალში.
- ვერსია {0}-ის ჩადგმა წარმატებულად დამთავრდა ({1}).
- ვერსიის გადმოწერა…
- გნებავთ დააყენოთ OsmAnd - {0} დან {1} {2} მბ ?
- OsmAnd-ის ვერსიების სიის გადმოწერა შეუძლებელია
- OsmAnd-ის ვერსიების ჩატვირთვა…
- დასაყენებლად აირჩიეთ OsmAnd-ის ვერსია
- უფასო ვერსიის შეწირულობის აქტივობა
- ვერ ვიპოვე GPS სტატუსის აპლიკაცია. გნებავთ მისი მოძებნა მაღაზიაში?
- ხმოვანი ბრძანებები მიუწვდომელია. გთხოვთ გადახვიდეთ პარამეტრებში, აირჩიოთ მხარდაჭერილი ხმოვანი პაკეტი და დააყენოთ ის.
- ხმოვანი ბრძანებები არჩეული არაა
- დღე
- ღამე
- მზის ჩასვლა/ამოსვლა
- მზის სენსორი
- აირჩიეთ დღეღამის არჩევის წესები
- დღის/ღამის არჩევა
- გადმოვიწერო {0} ფაილი(ები) ზომით ({1} მბ)?
- არჩეულია {0}
- ფილტრები გადმოწერილია
-
- ყველაფრის არჩევა
- განახლება
- უსწრაფესი გზა
- "ჩართეთ უსწრაფესი გზის დასათვლელად ან გამორთეთ უმოკლესისათვის "
- გადიდებისას {0} გადმოსაწერია {1} ნაწილი ({2} MB)
- რუკის გადმოწერა
- აირჩიეთ მაქსიმალური გადიდება ჩასატვირთად
- რუკის გადმოწერა შეუძლებელია
- გაგრძელებადი რენდერი
- მიყოლებული რენდერის ჩვენება ცალცალკე სურათების ჩვენების მაგიერ
- მონიშნული არეალის რენდერის დროს მოხდა შეცდომა
- მდებარეობის პარამეტრები …
- რენდერერი წარმატებით ჩაიტვირთა
- მოხდა შეცდომა: რენდერერი არ ჩაიტვირთა
- ვექტორული მარენდერებელი
- რენდერის გარეგნობის არჩევა
- POI-ს ვებგვერდის ჩვენება
- POI-ს ტელეფონზე ჩვენება
- ვებგვერდი
- ტელეფონი
- ფილტრირებისათვის აკრიფეთ
- მაღალი გარჩევადობის ეკრანი
- არ დააპატარაოს (და დაბუროს) რუკის ნაწილები მაღალი გარჩევადობის ეკრანებზე
-
- ტრანსპორტის ძებნა
- ტრანსპორტის ძებნა (არ მოიძებნა):
- ტრანსპორტის პასუხები ({0} -მდე):
-
- ტრანსპორტის თავიდან ძებნა
-
- ხმა
- ვექტორული რუკები ჩატვირთული არ იქნა
-
- GPX ფაილები /tracks დასტაში ნაპოვნი არ იქნა
- GPX მიყოლა…
- GPX მონაცემების კითხვის შეცდომა
- გათიშული ვექტორული რუკები
- გაჩერებაზე ტრანსპორტის ძებნა
-
-
- POI-ის ჩასწორება
- POI-ს წაშლა
- კომპასისაკენ
- მოძრაობის მიმართულებით
- არ შეაბრუნო
- აირჩიეთ რუკის გასწორება ეკრანის მიმართ
- რუკის ორიენტაცია
- დეტალები გზის შესახებ
- რჩეულების იმპორტი წარმატებით დასრულდა
- რჩეულების შემცველი GPX ფაილი ვერ მოიძებნა {0}
- რჩეულები წარმატებით იქნა შენახული {0} -ში
- არ მოიძებნა შესანახავად მზა რჩეულები
- იმპორტი
-
- შეცდომა GPX-ის ჩატვირთვისას
- რეპორტის გაგზავნა
- გათიშული მონაცემები რაიონისათვის SD card-ზე ნაპოვნი არაა. გთხოვთ გადმოწეროთ ინტერნეტიდან.
- შეიტანეთ მონაცემები POI-ის მოსაძებნად
- ნებისმიერი
-
- მადლობა Yandex-ს ტრაფიკის ინფორმაციისათვის.
- Yandex ტრაფიკი
- გზა
- რჩეულები
- OSM-ის ხოჭოები
-
- POI…
- რუკის წყარო…
- ხედის აღწერა
- POI-ის ძებნა
-
- რუკის სამოძრაოდ გამოიყენეთ ტრეკბოლი
- გამოიყენეთ ტრეკბოლი
- გთხოვთ დააყენოთ ფონური პოზიცირების ჩასასწორებელი მაქსიმალური დრო
- ჩასწორების მოლოდინის მაქსიმალური დრო
-
- სად ვარ?
- OsmAnd-ის ნავიგაციის სერვისი
- ქსელი
- GPS
- წამი
- წთ.
- "ფონური რეჟიმის მიერ გამოყენებული გაღვიძების ინტერვალი "
- გაღვიძების ინტერვალი
- აირჩიეთ მდებარეობის მომწოდებელი ფონური რეჟიმის დროს
- მდებარეობის მომწოდებელი
- როდესაც ეკრანი გამორთულია, OsmAnd დარჩეს გაშვებული ფონურ რეჟიმში
- ფონად გაშვება
- ფონური ნავიგაციის სერვისი მოითხოვს მდებარეობის მომწოდებლის ჩართვას.
- ფილტრის დამალვა
- ფილტრის ჩვენება
- ფილტრი
- ხმა ჩართულია
- ხმა გამორთულია
- აირჩიეთ ხმით წამძღვარება ნავიგაციისათვის
- ხმით წამძღვარება
- ხმოვანი მონაცემების მომზადება…
- ხმოვანი მონაცემები მხარდაჭერილი არაა
- ხმოვანი მონაცემები დაზიანებულია
- არჩეული ხმოვანი მონაცემები მიუწვდომელია
-
- SDcard მიუწვდომელია.\nთქვენ არ შეგეძლებათ რუკების დანახვა ან რაიმეს ძებნა.
- SDcard იმყოფება მხოლოდ-კითხვის რეჟიმში.\nთქვენ შეგიძლიათ მხოლოდ უკვე ჩატვირთული რუკების გამოყენება. ინტერნეტიდან ჩამოტვირთვა შეუძლებელია.
- ფაილის განშლა…
- შებრუნდით მარჯვნივ და წინ
- შებრუნდით მკვეთრად მარჯვნივ და წინ
- შებრუნდით ოდნავ მარჯვნივ და წინ
- შებრუნდით მარცხნივ და წინ
- შებრუნდით მკვეთრად მარცხნივ და წინ
- შებრუნდით ოდნავ მარცხნივ და წინ
- შემობრუნდით
- მიმართულება
- გვიან
- რაიონების გადმოწერა
- სიგნალის ძებნა…
- რუკაზე უკანასკნელი მდებარეობის მოძიება
- ახლო ძიება
- იგივე როგორც მოწყობილობაზე
- პორტრეტი
- ლანდშაფტი
- ეკრანის ორიენტაცია
- პორტრეტი, ლანდშაფტი ან როგორც მოწყობილობა
- საათური ფორმატის გახსნა ჩასწორებისათვის მხარდაჭერილი არაა
- ახალი წესის დამატება
- გზები
- გაჩერება
- გაჩერება
- მომდევნო გზა
- წინა გზა
- ძებნის დასასრული
- ჩამოსასვლელად გთხოვთ გაჩერდეთ
- წინა მანძილი
- დარჩენილი მანძილი
- დარჩენილი გაჩერებები
- გზის სიგრძე
- ტრანსპორტი
- OK
- რუკაზე საზოგადოებრივი ტრანსპორტის გაჩერებების ჩვენება
- გაჩერებების ჩვენება
- OsmAnd - სანავიგაციო აპლიკაცია
- POI მონაცემები წარმატებით განახლდა (ჩატვირთულ იქნა {0})
- შეცდომა ლოკალური POI სიის განახლებისას
- შეცდომა მონაცემების სერვერიდან კითხვისას
- გათიშული POI მონაცემები ამ არეალისათვის ხელმიუწვდომელია
- პატარა ზომის გადიდებისათვის POI-ის განახლება არ შეიძლება
- POI-ის განახლება
- განვანახლო ლოკალური მონაცემები ინტერნეტიდან?
- ქალაქი:\n {0}
- ქუჩა:\n {0}, {1}
- გადაკვეთა: {0} x {1} in {2}
- შენობა: {0}, {1}, {2}
- რჩეული
- გასუფთავება
- ისტორია
- მონაცემების ატვირთვა…
- ატვირთვა…
- არაფერი არ იქნა ნაპოვნი
- მიმდინარეობს ძებნა…
- მისამართის ძებნა…
- მისამართის OSM Nominatim -ით ძებნა
- სახლის ნომერი, ქუჩა, ქალაქი
- გათიშული
- ინტერნეტი
- მაქს. მიმდინარე გადიდება
- აირჩიეთ მაქსიმალური გადიდება მიმდინარე რუკების ნაწილის ჩამოტვირთვისას
- ჯამური სიშორე %1$s,\n მოგზაურობის დრო %2$d სთ %3$d წთ.
- აირჩიეთ მიმდინარე ან გათიშული ნავიგაციის სერვისი
- ნავიგაციის სერვისი
- შენახვის დასტა SDCard-ზე მიუწვდომელია
- ჩამოვტვირთო {0} - {1} ?
- გათიშული მონაცემები {0}-სათვის უკვე არსებობს ({1}). გნებავთ მისი განახლება ({2}) ?
- მისამართი
- ჩამოტვირთვა წარმატებულად დამთავრდა
-
-
-
- წვდომადი რაიონების სიის ჩამოტვირთვა…
- რაიონების ლისტი არ მიღებული არაა osmand.net-იდან.
-
- რჩეული წერტილი ჩასწორებულია
- რჩეული წერტილები არ არსებობს
- შეცვლა
- ჩვენება მხოლოდ
- მიყოლა
- აირჩიეთ გადაადგილების ტიპი (არჩევანი):
- გთხოვთ ჯერ აირჩიოთ მიმართულება
- მიმართულებები
-
- საათების გახსნა
- ცვლილებების გახსნა…
- ცვლილებების დახურვა…
- უჯრედის ატვირთვა…
- POI-ის ჩატვირთვა…
- ავტორიზაცია წარუმატებელია
- შეცდომა
- მიმდინარეობს გადაყვანა ადგილობრივსა და ინგლისურს შორის…
- ქუჩებისა და შენობების ჩატვირთვა…
- საფოსტო კოდების ჩატვირთვა…
- ქუჩების ჩატვირთვა…
- ქალაქების ჩატვირთვა…
-
- POI
- შეცდომნა GPX-ის შენახვისას
- შეცდომა გზის დათვლისას
- გზის დათვლისას მოხდა შეცდომა
- შეცდომა: დათვლილი გზა ცარიელია
- ახალი გზა დათვლილია. დაშორება
- თქვენ მიხვედით თქვენს დანიშნულების ადგილას
- კოორდინატები არასწორია!
- OsmAnd-ის რუკაზე დაბრუნება
- დახურვა
- მონაცემების კითხვა…
- ლოკალური მონაცემების კითხვა…
- ბოლოს გაშვებული OsmAnd მოკვდა. ჟურნალის ფაილია {0}. გთხოვთ მოგვწეროთ ჟურნალის ფაილი და როგორ მოხდა ეს.
- GPX ძიების SD-ზე შენახვა…
- დამთავრდა
-
-
-
-
- ინტერნეტის გამოყენება გზის დასათვლელად
- მიმდინარე ნავიგაციის გამოყენება
- მიუთუთეთ Openstreetmap.org (OSM) პარამეტრები OSM-სთან დასაკავშირებლად
- მიუთითეთ ენა, მონაცემების ხელახლა წაკითხვა/ჩამოტვირთვა
- მონაცემები
-
- OSM-ის გამართვა
- სიჩქარეზე რუკის ავტომატური გადიდება
- რუკის ავტომატური გადიდება
- დამატებითი პარამეტრები
- პარამეტრები
- მიმდინარე ძებნის SDCard-ზე ჩაწერა
- მიმდინარე დევნის დამახსოვრება
- ჟურნალირების ინტერვალი
- აირჩიეთ პოზიცირების ინტერვალი დევნისათვის
- დევნები ჩაიწერება დევნის დასტაში, დალაგდება დღეების მიხედვით
- დევნის GPX-ში ჟურნალირება
- რუკის განახლება
- ხელახალი ჩატვირთვა
- მიზანი
-
-
-
- რჩეულებში დამატება
- აირჩიეთ ადგილობრივ და ინგლისურ სახელებს შორის
- ინგლისური სახელების გამოყენება
- აპლიკაციის პარამეტრები
- ძებნა მისამართით
- აირჩიეთ შენობა
- აირჩიეთ ქუჩა
- აირჩიეთ ქალაქი
- აირჩიეთ ქვეყანა
-
-
-
- ხედვის კუთხის ჩვენება
- რუკის 3D ხედვის ჩართვა
- რუკის 3D ხედვა
- POI-ის რუკაზე ჩვენება (ბოლოს არჩეული ფილტრის გამოყენებით)
- POI-ის ჩვენება
- აირჩიეთ მიმდინარე ან ქეშირებული რუკის ნაწილის წყარო
- რუკის წყარო
- რუკის წყარო
- ინტერნეტის გამოყენება
- მდებარეობის ჩვენება
-
-
- GPS კოორდინატების რუკაზე ჩვენება
- ინტერნეტის გამოყენება ნაკლული რუკის წარწერების ჩამოსატვირთად
- ნავიგაციის აპლიკაცია
- გასვლა
-
-
-
- ძებნა
- ძებნა
- POI-ის არჩევა
- მეტის ძებნა
- ქალაქის ინკრემენტულად ძებნა. ქალაქის/საფოსტო ინდექსის საპოვნელად შეიყვანეთ პირველი 3 ან მეტი სიმბოლო
- ქუჩის ინკრემენტული ძებნა
- შენობის ინკრემენტული ძებნა
- აირჩიეთ რაიონი სიიდან
- აირჩიეთ მკვეთი ქუჩა
- უახლოესი დასახლებული პუნქტები
- რუკის დათვალიერება
- მანქანა
- ველოსიპედი
- ფეხით მოსიარულე
- ცენტრი
- ძირი
- შეიყვანეთ განედი და გრძედი არჩეულ ფორმატში (D - გრადუსი, M - წუთ, S - წამი)
- განედი
- გრძედი
- DDD.DD
- DDD MM.MM
- DDD MM SS.SS
- რუკაზე ჩვენება
-
- აირჩიეთ მისამართი
- რაიონი
- ქალაქი
- ქუჩა
- შენობა
- შენობა
- მკვეთი ქუჩა
-
-
- რუკის განახლება
-
- POI-ის შექმნა
- დიახ
- გაუქმება
- გამოყენება
- ჩამატება
- არა
- რჩეულის სახელი
- რჩეული
- რჩეული წერტილი \'\'{0}\'\' წარმატებით დაემატა.
- რჩეულის ჩასწორება
- რჩეულის წაშლა
- გნებავთ რჩეული წერტილის \'%s\' წაშლა?
- რჩეული წერტილი {0} წარმატებით წაიშალა.
-
-
-
-
- შეტყობინება
- ავტორი
-
-
- კომენტარი დამატებულია
- მოხდა შეცდომა: კომენტარი არ დაემატა
-
-
-
-
-
- POI-ის ჩასწორება
- POI-ის შექმნა
- POI ვერ მოიძებნა
- წავშალო {0} (კომენტარი)?
- POI-ს წაშლა
- წაშლა
- POI წარმატებით წაიშალა
- ჩამატება
- შეცვლა
- მოქმედება {0} წარმატებით დასრულდა.
- გაუთვალისწინებელი შეცდომა {0}-ის შესრულების დროს.
- {0}-ს შესრულების დროს მოხდა შეცდომა I/O.
- უჯრედის მონაცემები ჩატვირთული არაა
- გახსნა
- კომენტარი
- POI-ს შეცვლა
- ყველა დანარჩენი ჭდე ჩანიშულია
- დამატება
- საწყისი მდგომარეობა
- ფილტრი
-
- ჩაწერა როგორც
- წავშალო მონიშნული ფილტრი?
- წაიშალა ფილტრი %1$s
- შეიქმნა ფილტრი %1$s
-
- გზის მონაცემები
- ფორმატი:
- POI - ინტერესის წერტილი
- მისამართის ძებნა
- კოორდინატები
- ტრანსპორტის ძებნა
- რჩეულებში ძებნა
-
- ყველა მიწისზედა რუკის ობიექტის გამჭირვალედ ჩვენება
- პოლიგონების გარეშე
- რენდერის რეჟიმი
- რუკის გაუმჯობესება მომხმარებლის პროფილის მიხედვით
- აირჩიეთ მინიმალური გადიდების ზომა რუკის საჩვენებლად. შეიძლება საჭირო გახდეს SRTM ფაილი:
- კონტურის ჩვენება
- რუკის მეტი წვრილმანის ჩვენება
- მეტი დეტალები რუკის შესახებ
- შემობრუნდით : %1$d
- გეჭიროთ მარცხენა მხარე
- გეჭიროთ მარჯვენა მხარე
-
- სწრაფად
-
- საჯარო
- გამოსაცნობი
- მიყოლის შესაძლებლობა
- საკუთარი
- მანქანის გაჩერებიდან გამოყვანა
- გაფრთხილება
- შეტყობინება თქვენი მანქანის გამოყვენის შესახებ კალენდარში უკვე არსებობს. ის დარჩება ხელით წაშლამდე დარჩება კალენდარში.
- პარკინგის დროის ლიმიტის დაყენება
- გნებავთ დაყენებული მანქანის მდებარეობის წაშლა?
- პარკინგის მაჩვენებლის წაშლა
- აირჩიეთ პარკინგის ტიპი
- დროში შეზღუდული
- დროში შეუზღუდავი
- კალენდარში გაფრთხილების დამატება
- დროში შეზღუდული პარკინგი
- დროში შეუზღუდავი პარკინგი
- დაპარკინგებული მანქანის მდებარეობა. %1$s
- მანქანის გამოყვანის დრო:
- PM
- AM
- პარკინგის ადგილი
- დამატება გაძლევთ საშუალებას შეინახოთ მანქანის პარკინგის მდებარეობა.
- პარკინგის მდებარეობის დამატება
- დამატება პარკინგის მდებარეობად
- პარკინგის მაჩვენებლის წაშლა
- საწყისი წერტილი მეტისმეტად შორსაა უახლოესი გზისაგან.
- გაზიარებული მდებარეობა
- აირჩიეთ მოძრავი გზის აჩქარება
- გამოყოფილი მეხსიერება %1$s მბ (Android-ის ლიმიტი %2$s მბ, Dalvik %3$s მბ).
- გამოყოფილი მეხსიერება
- აპლიკაციის მიერ გამოყენებული ჯამური ადგილობრივი მეხსიერება %1$s მბ (Dalvik %2$s მბ, სხვა %3$s მბ). პროპორციული მეხსიერება %4$s მბ (Android-ის ლიმიტი %5$s მბ, Dalvik %6$s მბ).
- ჯამური ადგილობრივი მეხსიერება
-
- სთ
- წთ
- მანქანის პარკინგის დროა:
- კომპასის გამოყენება მიმართულების დაუდგენლობისას
- კომპასის გამოყენება
- გზის გადათვლა სასურველი წერტილის პოვნის შემთხვევაში
- წინა გზა არ დასრულებულა. გნებავთ მისი გაყოლა? (%1$s წმ)
-
-
-
- სიჩქარის კამერების ჩვენება
- სიჩქარის ლიმიტების ჩვენება
- ფასიანი გზებისათვის გვერდის ავლა
-
- ქუჩის სახელი
- გამართვა
-
- სად ვარ
- ეკრანის ჩაკეტვა
- კომპასი
-
- ნაგულისხმევზე დაბრუნება
-
-
- პარკინგი
- დევნა
- სიჩქარე
- მიზანი
- სიმაღლე
- წასვლის დროა
- შემდეგი შესახვევი
- შემდეგი შესახვევი (პატარა)
- მეორე შემდეგი შესახვევი
- პატარა რუკა
- ეკრანის ჩაკეტვის ჩართვა/გამორთვა
- ეკრანი ჩაკეტილია
- დააყენეთ გაღვიძების ინტერვალი:
- დააჭირეთ ბოქლომს ეკრანის გასახსნელად
- ეკრანზე ჩაკეტვის მოხსნა
- ძილის რეჟიმის გამორთვა
- ძილის რეჟიმის ჩართვა
-POI ფილტრის შექმნა
-ინფორმაცია დღეღამის შესახებ
-
-რენდერის ატრიბუტები:
-
-
-ეკრანის გამართვა
-ბილიკების ჩვენება
-მოუკირწყლავი გზებისათვის თავის არიდება
-ბორნისათვის თავის არიდება
-თავის არიდება…
-გაფრთხილებების ჩვენება…
-სიჩქარის ლიმიტის, კამერებისა და საცობების ჩვენება
-მანათობელი გზები
-სახაზავის ჩვენება
-
-ხედვის მიმართულება
-გამჭირვალე ხედი
-
-
-გაგრძელებადი
-ელ-ფოსტა
-მზის ამოსვლა: %1$s \nჩასვლა: %2$s
-რენდერის რეჟიმი
-
-აირჩიეთ მხოლოდ გზების საჩვენებლად:
- რუკები მხოლოდ გზებით
+
+ OsmAnd-ით ნავიგაცია გათიშულ რეჟიმში დროებით მიუწვდომელია.
+ მარცხენა ხელით ტარება
+ აირჩიეთ მარცხენა მხარეს საჭის გამომყენებელი ქვეყნებისათვის
+ საწყისი პოზიცია ნაპოვნი ჯერ არაა
+ პოზიცია უცნობია
+ გამჭირვალობის შეცვლა (0 - გამჭირვალე, 255 - გაუმჭირვალე)
+ გნებავთ ჩამოტვირთვის შეწყვეტა?
+ პროგრამის მთავარი თვისებების გამოსაყენებლად თქვენ გჭირდებათ მონაცემები რომლებიც გამოიყენება გათიშულ რეჟიმში, რომელიც შეგიძლიათ ჩამოტვირთოთ (პარამეტრები->მონაცემები გათიშვისას). ამის შემდეგ თქვენ შეგეძლებათ ძებნა როგორც მისამართის, ასევე საჯარო ტრანსპორტის მიხედვით.
+ ბაზური რუკა საჭიროა პროგრამის ფუნქციონირებისათვის და არჩეულ იქნა გადმოსაწერად.
+ არაფერი არ იქნა ნაპოვნი. თუ ვერ პოულობთ თქვენი რეგიონის რუკას, შეგიძლიათ შექმნათ თვითონ. (იხილეთ http://osmand.net).
+ მიმდინარე რუკები (ნახაზები)
+ გათიშული რუკები (ვექტორული)
+ გათიშული რუკების ჩამოტვირთვა, მართვა და დეტალები
+ "ჩართეთ მიმდინარე რუკების დამატება სხვადასხვა წყაროების სანახავად"
+ მიმდინარე რუკები
+ მიმდინარე რუკების გამოყენება (ჩამოტვირთვა და sdcard-ზე ქეშირება)
+ მიმდინარე რუკები
+ მიმდინარე და დაქეშირებული ნაწილოვანი რუკების წყაროების გამართვა
+ "დამატება ამსუბუქებს სხვადასხვა მიმდინარე ან ქეშირებულ ნაწილოვან რუკებს. ისინი შეიძლება მომზადდეს როგორც გათიშული რუკები და შეინახოს OsmAnd-ის დასტაში. "
+ დამატება გაძლევთ საშუალებს დევნის ან ნავიგაციის მოწყობილობის ძილის დროს პერიოდულად GPS ჩიპის გააქტიურების საშუალებით.
+ დამატება მართავს სპეციალური წვდომის შესაძლებლობებს.
+ დამატება გაძლევთ საშუალებას განახორციელოთ შეცდომების კონტროლი და განვითარება მახასიათებლებისა როგორიცაა ანიმირებული ნავიგაცია.
+ დამატებათა გამმართველი
+ დამატება გაძლევთ საშუალებას გამოიყენოთ აპლიკაციისათვის თანმოყოლილი ფუნქციები როგორიცაა ნაწილოვანი რუკები, თვალის დევნება, ძილის დროის ოპერაციები და სხვა
+ დამატების მმართველი
+ ეს დამატება გაძლევთ საშუალებას გააცნოთ OSM-ს თქვენი აზრი, გახსნა/დახურვა OSM-ის ხოჭოების შესახებ და მიაწოდოთ პროექტს თქვენი ჩაწერილი GPX ფაილები.
+ ვექტორული რუკები როგორც წესი ჩანს უფრო სწრაფად. შეიძლება არ იმუშაოს ზოგიერთ მოწყობილობაზე.
+ ხმით არჩეული ბრძანებების შესრულება
+ OsmAnd -ის განვითარება და გამართვა
+ ადგილობრივი რენდერი
+ ხმის ტესტირება
+ მოცემული ადგილისათვის ვექტორული რუკები ნაპოვნი არაა. შეგიძლიათ გადმოწეროთ პარამეტრებში (გამორთული მონაცემები), ან გადაერთოთ მიმდინარე მონაცემებზე.
+ გავუგზავნო GPX ფაილები OSM-ს?
+ ხილვადობა
+ ჭდეები
+ აღწერა
+ შეიყვანეთ OSM მომხმარებელი და პაროლი GPX ფაილების ასატვირთად.
+ მხარდაჭერა
+ ახალი თვისებების მხარდაჭერა
+ სახაზავის ჩვენება
+ ინფორმაცია
+ ადგილზე დაბრუნება
+ დახმარება
+ წვდომადობის რეჟიმი
+ რთავს წვდომადობის თვისებებს
+ ჩართული
+ გამორთული
+ გლობალურ სისტემურ პარამეტრებზე დაყრდნობით
+ მენიუში დაბრუნება
+ დაპატარავება
+ გადიდება
+ გადიდების ზომა
+ ჩრდილოეთი
+ ჩრდილო-ჩრდილო-აღმოსავლეთი
+ ჩრდილო-აღმოსავლეთი
+ აღმოსავლეთი-ჩრდილო-აღმოსავლეთი
+ აღმოსავლეთი
+ აღმოსავლეთი-სამხრეთ-აღმოსავლეთი
+ სამხრეთ-აღმოსავლეთი
+ სამხრეთი-სამხრეთ-აღმოსავლეთი
+ სამხრეთი
+ სამხრეთი-სამხრეთ-დასავლეთი
+ სამხრეთ-დასავლეთი
+ დასავლეთი-სამხრეთ-დასავლეთი
+ დასავლეთი
+ დასავლეთი-ჩრდილო-დასავლეთი
+ ჩრდილო-დასავლეთი
+ ჩრდილოეთი-ჩრდილო-დასავლეთი
+ წინა
+ წინა მარჯვენა
+ მარჯვენა
+ უკანა მარჯვენა
+ უკან
+ უკანა მარცხნივ
+ მარცხნივ
+ წინა მარცხენა
+ საათი
+ მიმართულებით
+ სიზუსტე
+ სიმაღლე ზღვის დონიდან
+ ინფორმაცია არაა
+ გვერდით (8 ნაწილი)
+ საათის ისრის მიმართულებით (12 სექტორი)
+ მიმართულება
+ მიუთითეთ მოძრაობისას მიმართულებაზე დამოკიდებული მიმართულების სტილი
+ თვითგამოცხადების ჩართვა
+ თვითგამოცხადების გამორთვა
+ აქ ვარ
+ რუკის გადიდება ტრეკბოლის ჰორიზონტალური მოძრაობით
+ ტრეკბოლის გამოყენება გასადიდებლად
+ წვდომადობის პარამეტრები
+ წვდომა
+ არასაკმარისი მეხსიერება არჩეული ადგილის საჩვენებლად
+ მანათობელი დაფარვები
+ ბილიკებისა და გზების მანათობელი ფერებით ჩვენება
+ POI-ს ჩასწორება გათიშულ რეჟიმში
+ ყოველთვის გამოვიყენოთ POI-ს ჩასწორების გათიშული რეჟიმი
+ აპლიკაციაში POI-ის ცვლილებები არ ეხება ჩამოტვირთულ რუკის ფაილებს. ცვლილებები ინახება ლოკალურ ფაილში.
+ ატვირთვა…
+ {0} POI/Bugs ატვირთულია
+ ყველას ატვირთვა
+ ცვლილების OSM-ზე ატვირთვა
+ ცვლილების წაშლა
+ OSM POI-ის ასინქრონული ჩასწორება:
+ ადგილობრივად შენახული OSM POI-ები/Bugs
+ ადგილობრივ ბაზაში შენახული OSM POI-ების/Bugs ჩვენება და მართვა
+ მიუთითეთ მიმდინარე რეჟიმში დევნის ინტერვალი
+ ცოცხალი დევნის ინტერვალი
+ მიუთითეთ ვებ მისამართუ შემდეგი პარამეტრების სინტაქსით : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}
+ ცოცხალი დევნის ვებ-მისამართი
+ გთხოვთ ჩართოთ \'დევნის GPX ჟურნალში ჩაწერა\' დევნის პარამეტრებში.
+ მიმდინარე დევნის ჩვენება
+ OsmAnd-ის უფასო ვერსია ლიმიტირებულია %1$s ჩამოტვირთვით და არ გააჩნია გათიშული ვიკიპედიის სტატიების მხარდაჭერა.
+ უფასო ვერსია
+ POI-ის აღწერის ჩვენება
+ ჩრდილო ამერიკა
+ ჩრდილო ამერიკა - შეერთებული შტატები
+ ცენტრალური ამერიკა
+ სამხრეთ ამერიკა
+ ევროპა
+ ევროპა - საფრანგეთი
+ ევროპა - გერმანია
+ ევროპა/აზია - რუსეთი
+ აფრიკა
+ აზია
+ ოკეანეთი
+ მსოფლიო რუკები
+ მსოფლიო ვიკიპედია
+ ჩაწერილი ხმოვანი პაკეტები
+ ხმის პაკეტები (TTS)
+ ვიკიპედია (გათიშული)
+ მომხმარებლის მიერ შექმნილი
+ რჩეულების ექსპორტირებული ფაილი უკვე არსებობს. გნებავთ თავზე გადაწერა?
+ პროფილის პარამეტრები
+ მომხმარებლის პროფილი
+ აირჩიეთ მომხმარებლის პროფილი რუკისა და ნავიგაციის პარამეტრებით.
+ ნავიგაცია
+ მიუთითეთ ნავიგაციის პარამეტრები
+ გლობალური პარამეტრები
+ გათიშული მონაცემები\n(გადმოწერა)
+ მთავარი პარამეტრები
+ მთავარი პარამეტრების გამართვა
+ აპლიკაციის მთავარი პარამეტრები
+ თქვენი OSM-ს მომხმარებლის სახელი
+ საჭიროა openstreetmap.org-ზე ოპერაციებისათვის
+ თქვენი OSM-ს პაროლი
+ ფონური პარამეტრები
+ გამოიყენეთ OsmAnd-ის ეკრანის გათიშულობის დროს გამოსაყენებლად
+ არასაკმარისი ადგილი %1$s მბ-ის გადმოსაწერად (თავისუფალია: %2$s).
+ თავისუფალი ადგილი {2} მბ! გადმოვწერო {0} ფაილი ზომით ({1} მბ)?
+ გამჭირვალე თემა
+ ადგილობრივი ბიბლიოთეკა მოცემულ მოწყობილობაზე მხარდაჭერილი არაა.
+ ადგილობრივი ბიბლიოთეკის ინიციალიზაცია…
+ რუკის ხედვის ცენტრისაკენ ავტომატური გასწორება
+ დრო, რომელიც გავა სანამ რუკა იქნება მიმდინარე პოზიციის შესაბამისი იქნება
+ მხოლოდ ავტოცენტრირებული ნავიგაცია
+ ავტოცენტრირებული რუკის ხედვა მხოლოდ ნავიგაციის დროს.
+ გამოიყენება ავტოცენტრირებული რუკის ხედი.
+ ვექტორული რენდერერის სპეციფიური პარამეტრები
+ ზედა / ქვედა
+ რუკის წყაროს პარამეტრები
+ ვექტორული რუკის პარამეტრები
+ წავშალო %1$s?
+ გარეუბანი
+ დასახლება
+ სოფელი
+ ქალაქი
+ ქალაქი
+ ანიმაციის შეჩერება
+ ანიმაციის დაწყება
+ ფაილისათვის სახელის გადარქმევა შეუძლებელია.
+ ფაილი მოცემული სახელით უკვე არსებობს.
+ GPX გზა
+ ძებნის შედეგები შეიცავს რამოდენიმე POI კატეგორიას :
+ ადგილობრივი მონაცემები POI-ს ძებნისათვის არ არსებობს.
+ სახელით ძებნა
+ POI-ის მონაცემთა ფაილის \'%1$s\', არსებობს ასლი და მისი წაშლა შესაძლებელია.
+ ლოკალური ფაილი POI-ის ცვლილებების შესანახად ნაპოვნი არ იქნა და მისი შექმნა შეუძლებელია.
+ განახლება OsmAnd+-მდე
+ სერვერი შეიცავს რუკის ფაილებს რომლებიც არაა შესაბამისი აპლიკაციის მიმდინარე ვერსიასთან. გთხოვთ განაახლოთ აპლიკაცია მათ ჩამოსაწერად და გამოსაყენებლად.
+ სახელის გადარქმევა
+ მიმდინარე POI-ს ძებნა სახელით
+ მდებარეობის ძებნა…
+ მდებარეობა (ნაპოვნია)
+ მისამართი…
+ რჩეულები…
+ არააღწერილი
+ უკანასკნელად ნანახი რუკის ხედი
+ ძებნა ახლოს :
+ ახლოს ძებნა
+ გზის GPX ბილიკად შენახვა
+ გზა შეინახა წარმატებით. სახელი \'%1$s\'.
+ "ფაილის სახელი: "
+ ფაილი მოცემული სახელით უკვე არსებობს.
+ შენახვა
+ GPX ფაილების OSM-ში ატვირთვა. ისინი გამოიყენება რუკების გასაუმჯობესებლად.
+ %1$d %2$d -დან წარმატებით აიტვირთა.
+ OSM-ში გაგზავნა
+ მეტი დეტალები რუკის შესახებ
+ ვექტორული რუკის დეტალების (გზების და ა.შ.) ჩვენება პატარა გადიდებისას
+ რჩეული წერტილები წარმატებით წაიშალა.
+ თქვენ აპირებთ წაშალოთ %1$d რჩეული და %2$d რჩეულთა ჯგუფი. დარწმუნებული ხართ?
+ საწყისი
+ მეგობრები
+ ადგილები
+ სახელი
+ კატეგორია
+ არა, მადლობა
+ მსოფლიოს ბაზური რუკა, რომელიც შეიცავს მთელ მსოფლიოს პატარა გადიდებისას, არ არსებობს. გთხოვთ გადმოწეროთ World_basemap_x.obf.
+ დასტაში \"offline\" sdcard-ზე არ არსებობს მონაცემები. გთხოვთ გადმოწეროთ რუკებით გათიშულ რეჟიმში სარგებლობისათვის .
+ "\n\nპარამეტრების შესაცვლელად დააჭირეთ და გეჭიროთ"
+ გამოცემა
+ %1$d %2$d -დან წარმატებით გაიარა დეაქტივაცია.
+ %1$d %2$d -დან წარმატებით წაიშალა.
+ %1$d %2$d -დან წარმატებით გააქტიურდა.
+ %1$s არ არსებობს
+ თქვენ აპირებთ %1$s %2$s . გავაგრძელოთ?
+ გათიშული მონაცემების მმართველი
+ აქტივაცია
+ დეაქტივაცია
+ ჩამოტვირთვა
+ POI მონაცემები
+ მისამართის მონაცემები
+ ტრანსპორტის მონაცემები
+ რუკის მონაცემები
+ დეაქტივირებულია
+ ხმოვანი მონაცემები (TTS)
+ ხმოვანი მონაცემები (ჩაწერილი)
+ POI მონაცემები
+ TTS ხმა
+ ახალი ძებნა
+ აირჩიეთ ტექსტის ზომა რუკაზე დატანილი სახელებისათვის
+ ტექსტის ზომა
+ რენდერინგის ინფორმაცია
+ რენდერის სისწრაფის ჩვენება
+ ახალი მონაცემების განშლა…
+ არჩეულია მიმდინარე ნავიგაციის სერვისი მაგრამ ინტერნეტთან შეერთება წვდომადი არაა.
+ ენა მხარდაჭერილი არაა
+ არჩეული ენა არაა მხარდაჭერილი ანდროიდის მიმდინარე ვერსიის TTS ძრავის მიერ. გნებავთ მოვძებნოთ სხვა ძრავი market-ში? წინააღმდეგ შემთხვევაში გამოყენებულ იქნება მიმდინარე TTS ენა.
+ ნაკლული მონაცემები
+ არჩეული ენის შესაბამისი მონაცემების პოვნა შეუძლებელია. გნებავთ მაღაზიაში მათი მოძებნა?
+ GPX-ის უკუღმა მიმართულება
+ მიმდინარე მიმართულების გამოყენება
+ მიმდინარე ბილიკის დევნა
+ ამ ლოკაციისათვის არსებობს გათიშული ვექტორული რუკა.\n\t\n\tაქტივაციისათვის \'მენიუ\' -> \'ხედის გამართვა\' -> \'რუკის წყარო…\' -> \'გათიშული ვექტორული რუკები\'.
+ ხმოვანი ბრძანების შედეგი
+ აირჩიეთ არხი ხმოვანი ბრძანებებისათვის
+ ხმოვანი დარეკვა
+ შეტყობინების ხმა
+ მუსიკის ხმა
+ შეუძლებელია %1$s -ის ჩამოტვირთვა, გთხოვთ თავიდან დააყენოთ აპლიკაცია.
+ გამჭირვალობის შეცვლა
+ გამჭირვალობა
+ ბაზური რუკის გამჭირვალობის შეცვლა
+ ბაზური რუკის გამჭირვალობა
+ ქვედა რუკა…
+ ქვედა რუკა
+ ქვედა რუკის არჩევა
+ ზედა რუკა…
+ არა
+ ზედა რუკა
+ ზედა რუკის არჩევა
+ რუკა უკვე დაყენებულია. მიმდინარეობს პარამეტრების განახლება
+ აირჩიეთ რუკა დასაყენებლად ან განსანახლებლად
+ ოპერაციისათვის საჭიროა ინტერნეტი, რომელთანაც წვდომა არ არსებობს
+ მეტის ჩაყენება…
+ მინიმალური გადიდება ვექტორული რუკების ჩვენებისათვის
+ ვექტორული გადიდების მინ. ზომა
+ " Online OSM რუკების დალაგება სურათებით"
+ შეცდომა გათიშული ძებნის დროს
+ მისამართის ძებნა გათიშული რუკების გამოყენებით
+ სისტემა
+ ენის არჩევა
+ ენა
+ შემდეგი
+ წინა
+ სიგრძისა და სიჩქარის ერთეულები
+ გაზომვის ერთეული
+ მილი/ფუტი
+ მილი/იარდი
+ კილომეტრი/მეტრი
+ იარდი
+ ფტ
+ მილი/წმ
+ მილი
+ გავრცელება
+ მდებარეობა: %1$s\n%2$s
+ მდებარეობის სანახავად მიჰყევით ბმულს %1$s ან ანდროიდის ბმულს %2$s
+ მდებარეობის გაგზავნა
+ მდებარეობის გაზიარება
+ გზის წერტილი \'\'{0}\'\' წარმატებით დაემატა
+ ჩაწერილი GPX ბილიკისათვის სანავიგაციო წერტილის დამატება
+ GPX-სანავიგაციო წერტილის დამატება
+ ადმინისტრაციული
+ ბარიერი
+ სასწავლო
+ სასწრაფო დახმარება
+ გასართობი
+ ფინანსური
+ გეოქეში
+ საავადმყოფო
+ ისტორიული
+ მოხნული მიწები
+ ცარიელი
+ ქმნილება
+ სამხედრო
+ ნატურალური
+ ოფისი
+ სხვა
+ მაღაზია
+ სპორტი
+ ნოყიერი
+ ტურიზმი
+ სატრანსპორტო
+ მისამართების ინდექსირება…
+ რუკების ინდექსირება…
+ POI-ის ინდექსირება…
+ ტრანსპორტის ინდექსირება…
+ მოხდა I/O შეცდომა
+ კმ
+ კმ/ს
+ მ
+ ამოღებული რუკის ფორმატი \'\'{0}\'\'-ს მხარდაჭერა ამოღებულია
+ მანქანის შეკეთება
+ უახლოესი POI
+ ხელით შეყვანილი ფილტრი
+ საჭმლის მაღაზია
+ ტურისტებისათვის
+ საწვავი
+ მიმდინარე სახელის ძებნა
+ მიმდინარეობს ნაწილების კითხვა…
+ ინდექსი \'\'{0}\'\' არ ეტევა მეხსიერებაში
+ ინდექსის ვერსიის \'\'{0}\'\' მხარდაჭერა არ არსებობს
+ OsmAnd-ის გათიშული ნავიგაცია არის საცდელი თვისება რომებიც არ მუშაობს 20 კმ-ზე მეტი მანძილებისათვის.\n\nნავიგაციის სერვისი დროებით გადართულია მიმდინარე სერვისზე CloudMade.
+ შეუძლებელია მითითებული დასტის პოვნა.
+ შესანახი დასტა
+ დაყენებულია OsmAnd-ის წინა ვერსია. მთელი გათიშული მონაცემების მხარდაჭერილია და გამოყენებულ იქნება ახალ აპლიკაციაში. რჩეული წერტილების გამოსაყენებლად ისინი უნდა დააექსპორტოთ ძველიდან და შეიტანოთ ახალში.
+ ვერსია {0}-ის ჩადგმა წარმატებულად დამთავრდა ({1}).
+ ვერსიის გადმოწერა…
+ გნებავთ დააყენოთ OsmAnd - {0} დან {1} {2} მბ ?
+ OsmAnd-ის ვერსიების სიის გადმოწერა შეუძლებელია
+ OsmAnd-ის ვერსიების ჩატვირთვა…
+ დასაყენებლად აირჩიეთ OsmAnd-ის ვერსია
+ უფასო ვერსიის შეწირულობის აქტივობა
+ ვერ ვიპოვე GPS სტატუსის აპლიკაცია. გნებავთ მისი მოძებნა მაღაზიაში?
+ ხმოვანი ბრძანებები მიუწვდომელია. გთხოვთ გადახვიდეთ პარამეტრებში, აირჩიოთ მხარდაჭერილი ხმოვანი პაკეტი და დააყენოთ ის.
+ ხმოვანი ბრძანებები არჩეული არაა
+ დღე
+ ღამე
+ მზის ჩასვლა/ამოსვლა
+ მზის სენსორი
+ აირჩიეთ დღეღამის არჩევის წესები
+ დღის/ღამის არჩევა
+ გადმოვიწერო {0} ფაილი(ები) ზომით ({1} მბ)?
+ არჩეულია {0}
+ ფილტრები გადმოწერილია
+ ყველაფრის არჩევა
+ განახლება
+ უსწრაფესი გზა
+ "ჩართეთ უსწრაფესი გზის დასათვლელად ან გამორთეთ უმოკლესისათვის "
+ გადიდებისას {0} გადმოსაწერია {1} ნაწილი ({2} MB)
+ რუკის გადმოწერა
+ აირჩიეთ მაქსიმალური გადიდება ჩასატვირთად
+ რუკის გადმოწერა შეუძლებელია
+ გაგრძელებადი რენდერი
+ მიყოლებული რენდერის ჩვენება ცალცალკე სურათების ჩვენების მაგიერ
+ მონიშნული არეალის რენდერის დროს მოხდა შეცდომა
+ მდებარეობის პარამეტრები …
+ რენდერერი წარმატებით ჩაიტვირთა
+ მოხდა შეცდომა: რენდერერი არ ჩაიტვირთა
+ ვექტორული მარენდერებელი
+ რენდერის გარეგნობის არჩევა
+ POI-ს ვებგვერდის ჩვენება
+ POI-ს ტელეფონზე ჩვენება
+ ვებგვერდი
+ ტელეფონი
+ ფილტრირებისათვის აკრიფეთ
+ მაღალი გარჩევადობის ეკრანი
+ არ დააპატარაოს (და დაბუროს) რუკის ნაწილები მაღალი გარჩევადობის ეკრანებზე
+ ტრანსპორტის ძებნა
+ ტრანსპორტის ძებნა (არ მოიძებნა):
+ ტრანსპორტის პასუხები ({0} -მდე):
+ ტრანსპორტის თავიდან ძებნა
+ ხმა
+ ვექტორული რუკები ჩატვირთული არ იქნა
+ GPX ფაილები /tracks დასტაში ნაპოვნი არ იქნა
+ GPX მიყოლა…
+ GPX მონაცემების კითხვის შეცდომა
+ გათიშული ვექტორული რუკები
+ გაჩერებაზე ტრანსპორტის ძებნა
+ POI-ის ჩასწორება
+ POI-ს წაშლა
+ კომპასისაკენ
+ მოძრაობის მიმართულებით
+ არ შეაბრუნო
+ აირჩიეთ რუკის გასწორება ეკრანის მიმართ
+ რუკის ორიენტაცია
+ დეტალები გზის შესახებ
+ რჩეულების იმპორტი წარმატებით დასრულდა
+ რჩეულების შემცველი GPX ფაილი ვერ მოიძებნა {0}
+ რჩეულები წარმატებით იქნა შენახული {0} -ში
+ არ მოიძებნა შესანახავად მზა რჩეულები
+ იმპორტი
+ შეცდომა GPX-ის ჩატვირთვისას
+ რეპორტის გაგზავნა
+ გათიშული მონაცემები რაიონისათვის SD card-ზე ნაპოვნი არაა. გთხოვთ გადმოწეროთ ინტერნეტიდან.
+ შეიტანეთ მონაცემები POI-ის მოსაძებნად
+ ნებისმიერი
+ მადლობა Yandex-ს ტრაფიკის ინფორმაციისათვის.
+ Yandex ტრაფიკი
+ გზა
+ რჩეულები
+ OSM-ის ხოჭოები
+ POI…
+ რუკის წყარო…
+ ხედის აღწერა
+ POI-ის ძებნა
+ რუკის სამოძრაოდ გამოიყენეთ ტრეკბოლი
+ გამოიყენეთ ტრეკბოლი
+ გთხოვთ დააყენოთ ფონური პოზიცირების ჩასასწორებელი მაქსიმალური დრო
+ ჩასწორების მოლოდინის მაქსიმალური დრო
+ სად ვარ?
+ OsmAnd-ის ნავიგაციის სერვისი
+ ქსელი
+ GPS
+ წამი
+ წთ.
+ "ფონური რეჟიმის მიერ გამოყენებული გაღვიძების ინტერვალი "
+ გაღვიძების ინტერვალი
+ აირჩიეთ მდებარეობის მომწოდებელი ფონური რეჟიმის დროს
+ მდებარეობის მომწოდებელი
+ როდესაც ეკრანი გამორთულია, OsmAnd დარჩეს გაშვებული ფონურ რეჟიმში
+ ფონად გაშვება
+ ფონური ნავიგაციის სერვისი მოითხოვს მდებარეობის მომწოდებლის ჩართვას.
+ ფილტრის დამალვა
+ ფილტრის ჩვენება
+ ფილტრი
+ ხმა ჩართულია
+ ხმა გამორთულია
+ აირჩიეთ ხმით წამძღვარება ნავიგაციისათვის
+ ხმით წამძღვარება
+ ხმოვანი მონაცემების მომზადება…
+ ხმოვანი მონაცემები მხარდაჭერილი არაა
+ ხმოვანი მონაცემები დაზიანებულია
+ არჩეული ხმოვანი მონაცემები მიუწვდომელია
+ SDcard მიუწვდომელია.\nთქვენ არ შეგეძლებათ რუკების დანახვა ან რაიმეს ძებნა.
+ SDcard იმყოფება მხოლოდ-კითხვის რეჟიმში.\nთქვენ შეგიძლიათ მხოლოდ უკვე ჩატვირთული რუკების გამოყენება. ინტერნეტიდან ჩამოტვირთვა შეუძლებელია.
+ ფაილის განშლა…
+ შებრუნდით მარჯვნივ და წინ
+ შებრუნდით მკვეთრად მარჯვნივ და წინ
+ შებრუნდით ოდნავ მარჯვნივ და წინ
+ შებრუნდით მარცხნივ და წინ
+ შებრუნდით მკვეთრად მარცხნივ და წინ
+ შებრუნდით ოდნავ მარცხნივ და წინ
+ შემობრუნდით
+ მიმართულება
+ გვიან
+ რაიონების გადმოწერა
+ სიგნალის ძებნა…
+ რუკაზე უკანასკნელი მდებარეობის მოძიება
+ ახლო ძიება
+ იგივე როგორც მოწყობილობაზე
+ პორტრეტი
+ ლანდშაფტი
+ ეკრანის ორიენტაცია
+ პორტრეტი, ლანდშაფტი ან როგორც მოწყობილობა
+ საათური ფორმატის გახსნა ჩასწორებისათვის მხარდაჭერილი არაა
+ ახალი წესის დამატება
+ გზები
+ გაჩერება
+ გაჩერება
+ მომდევნო გზა
+ წინა გზა
+ ძებნის დასასრული
+ ჩამოსასვლელად გთხოვთ გაჩერდეთ
+ წინა მანძილი
+ დარჩენილი მანძილი
+ დარჩენილი გაჩერებები
+ გზის სიგრძე
+ ტრანსპორტი
+ OK
+ რუკაზე საზოგადოებრივი ტრანსპორტის გაჩერებების ჩვენება
+ გაჩერებების ჩვენება
+ OsmAnd - სანავიგაციო აპლიკაცია
+ POI მონაცემები წარმატებით განახლდა (ჩატვირთულ იქნა {0})
+ შეცდომა ლოკალური POI სიის განახლებისას
+ შეცდომა მონაცემების სერვერიდან კითხვისას
+ გათიშული POI მონაცემები ამ არეალისათვის ხელმიუწვდომელია
+ პატარა ზომის გადიდებისათვის POI-ის განახლება არ შეიძლება
+ POI-ის განახლება
+ განვანახლო ლოკალური მონაცემები ინტერნეტიდან?
+ ქალაქი:\n {0}
+ ქუჩა:\n {0}, {1}
+ გადაკვეთა: {0} x {1} in {2}
+ შენობა: {0}, {1}, {2}
+ რჩეული
+ გასუფთავება
+ ისტორია
+ მონაცემების ატვირთვა…
+ ატვირთვა…
+ არაფერი არ იქნა ნაპოვნი
+ მიმდინარეობს ძებნა…
+ მისამართის ძებნა…
+ მისამართის OSM Nominatim -ით ძებნა
+ სახლის ნომერი, ქუჩა, ქალაქი
+ გათიშული
+ ინტერნეტი
+ მაქს. მიმდინარე გადიდება
+ აირჩიეთ მაქსიმალური გადიდება მიმდინარე რუკების ნაწილის ჩამოტვირთვისას
+ ჯამური სიშორე %1$s,\n მოგზაურობის დრო %2$d სთ %3$d წთ.
+ აირჩიეთ მიმდინარე ან გათიშული ნავიგაციის სერვისი
+ ნავიგაციის სერვისი
+ შენახვის დასტა SDCard-ზე მიუწვდომელია
+ ჩამოვტვირთო {0} - {1} ?
+ გათიშული მონაცემები {0}-სათვის უკვე არსებობს ({1}). გნებავთ მისი განახლება ({2}) ?
+ მისამართი
+ ჩამოტვირთვა წარმატებულად დამთავრდა
+ წვდომადი რაიონების სიის ჩამოტვირთვა…
+ რაიონების ლისტი არ მიღებული არაა osmand.net-იდან.
+ რჩეული წერტილი ჩასწორებულია
+ რჩეული წერტილები არ არსებობს
+ შეცვლა
+ ჩვენება მხოლოდ
+ მიყოლა
+ აირჩიეთ გადაადგილების ტიპი (არჩევანი):
+ გთხოვთ ჯერ აირჩიოთ მიმართულება
+ მიმართულებები
+ საათების გახსნა
+ ცვლილებების გახსნა…
+ ცვლილებების დახურვა…
+ უჯრედის ატვირთვა…
+ POI-ის ჩატვირთვა…
+ ავტორიზაცია წარუმატებელია
+ შეცდომა
+ მიმდინარეობს გადაყვანა ადგილობრივსა და ინგლისურს შორის…
+ ქუჩებისა და შენობების ჩატვირთვა…
+ საფოსტო კოდების ჩატვირთვა…
+ ქუჩების ჩატვირთვა…
+ ქალაქების ჩატვირთვა…
+ POI
+ შეცდომნა GPX-ის შენახვისას
+ შეცდომა გზის დათვლისას
+ გზის დათვლისას მოხდა შეცდომა
+ შეცდომა: დათვლილი გზა ცარიელია
+ ახალი გზა დათვლილია. დაშორება
+ თქვენ მიხვედით თქვენს დანიშნულების ადგილას
+ კოორდინატები არასწორია!
+ OsmAnd-ის რუკაზე დაბრუნება
+ დახურვა
+ მონაცემების კითხვა…
+ ლოკალური მონაცემების კითხვა…
+ ბოლოს გაშვებული OsmAnd მოკვდა. ჟურნალის ფაილია {0}. გთხოვთ მოგვწეროთ ჟურნალის ფაილი და როგორ მოხდა ეს.
+ GPX ძიების SD-ზე შენახვა…
+ დამთავრდა
+ ინტერნეტის გამოყენება გზის დასათვლელად
+ მიმდინარე ნავიგაციის გამოყენება
+ მიუთუთეთ Openstreetmap.org (OSM) პარამეტრები OSM-სთან დასაკავშირებლად
+ მიუთითეთ ენა, მონაცემების ხელახლა წაკითხვა/ჩამოტვირთვა
+ მონაცემები
+ OSM-ის გამართვა
+ სიჩქარეზე რუკის ავტომატური გადიდება
+ რუკის ავტომატური გადიდება
+ დამატებითი პარამეტრები
+ პარამეტრები
+ მიმდინარე ძებნის SDCard-ზე ჩაწერა
+ მიმდინარე დევნის დამახსოვრება
+ ჟურნალირების ინტერვალი
+ აირჩიეთ პოზიცირების ინტერვალი დევნისათვის
+ დევნები ჩაიწერება დევნის დასტაში, დალაგდება დღეების მიხედვით
+ დევნის GPX-ში ჟურნალირება
+ რუკის განახლება
+ ხელახალი ჩატვირთვა
+ მიზანი
+ რჩეულებში დამატება
+ აირჩიეთ ადგილობრივ და ინგლისურ სახელებს შორის
+ ინგლისური სახელების გამოყენება
+ აპლიკაციის პარამეტრები
+ ძებნა მისამართით
+ აირჩიეთ შენობა
+ აირჩიეთ ქუჩა
+ აირჩიეთ ქალაქი
+ აირჩიეთ ქვეყანა
+ ხედვის კუთხის ჩვენება
+ რუკის 3D ხედვის ჩართვა
+ რუკის 3D ხედვა
+ POI-ის რუკაზე ჩვენება (ბოლოს არჩეული ფილტრის გამოყენებით)
+ POI-ის ჩვენება
+ აირჩიეთ მიმდინარე ან ქეშირებული რუკის ნაწილის წყარო
+ რუკის წყარო
+ რუკის წყარო
+ ინტერნეტის გამოყენება
+ მდებარეობის ჩვენება
+ GPS კოორდინატების რუკაზე ჩვენება
+ ინტერნეტის გამოყენება ნაკლული რუკის წარწერების ჩამოსატვირთად
+ ნავიგაციის აპლიკაცია
+ გასვლა
+ ძებნა
+ ძებნა
+ POI-ის არჩევა
+ მეტის ძებნა
+ ქალაქის ინკრემენტულად ძებნა. ქალაქის/საფოსტო ინდექსის საპოვნელად შეიყვანეთ პირველი 3 ან მეტი სიმბოლო
+ ქუჩის ინკრემენტული ძებნა
+ შენობის ინკრემენტული ძებნა
+ აირჩიეთ რაიონი სიიდან
+ აირჩიეთ მკვეთი ქუჩა
+ უახლოესი დასახლებული პუნქტები
+ რუკის დათვალიერება
+ მანქანა
+ ველოსიპედი
+ ფეხით მოსიარულე
+ ცენტრი
+ ძირი
+ შეიყვანეთ განედი და გრძედი არჩეულ ფორმატში (D - გრადუსი, M - წუთ, S - წამი)
+ განედი
+ გრძედი
+ DDD.DD
+ DDD MM.MM
+ DDD MM SS.SS
+ რუკაზე ჩვენება
+ აირჩიეთ მისამართი
+ რაიონი
+ ქალაქი
+ ქუჩა
+ შენობა
+ შენობა
+ მკვეთი ქუჩა
+ რუკის განახლება
+ POI-ის შექმნა
+ დიახ
+ გაუქმება
+ გამოყენება
+ ჩამატება
+ არა
+ რჩეულის სახელი
+ რჩეული
+ რჩეული წერტილი \'\'{0}\'\' წარმატებით დაემატა.
+ რჩეულის ჩასწორება
+ რჩეულის წაშლა
+ გნებავთ რჩეული წერტილის \'%s\' წაშლა?
+ რჩეული წერტილი {0} წარმატებით წაიშალა.
+ შეტყობინება
+ ავტორი
+ კომენტარი დამატებულია
+ მოხდა შეცდომა: კომენტარი არ დაემატა
+ POI-ის ჩასწორება
+ POI-ის შექმნა
+ POI ვერ მოიძებნა
+ წავშალო {0} (კომენტარი)?
+ POI-ს წაშლა
+ წაშლა
+ POI წარმატებით წაიშალა
+ ჩამატება
+ შეცვლა
+ მოქმედება {0} წარმატებით დასრულდა.
+ გაუთვალისწინებელი შეცდომა {0}-ის შესრულების დროს.
+ {0}-ს შესრულების დროს მოხდა შეცდომა I/O.
+ უჯრედის მონაცემები ჩატვირთული არაა
+ გახსნა
+ კომენტარი
+ POI-ს შეცვლა
+ ყველა დანარჩენი ჭდე ჩანიშულია
+ დამატება
+ საწყისი მდგომარეობა
+ ფილტრი
+ ჩაწერა როგორც
+ წავშალო მონიშნული ფილტრი?
+ წაიშალა ფილტრი %1$s
+ შეიქმნა ფილტრი %1$s
+ გზის მონაცემები
+ ფორმატი:
+ POI - ინტერესის წერტილი
+ მისამართის ძებნა
+ კოორდინატები
+ ტრანსპორტის ძებნა
+ რჩეულებში ძებნა
+ ყველა მიწისზედა რუკის ობიექტის გამჭირვალედ ჩვენება
+ პოლიგონების გარეშე
+ რენდერის რეჟიმი
+ რუკის გაუმჯობესება მომხმარებლის პროფილის მიხედვით
+ აირჩიეთ მინიმალური გადიდების ზომა რუკის საჩვენებლად. შეიძლება საჭირო გახდეს SRTM ფაილი:
+ კონტურის ჩვენება
+ რუკის მეტი წვრილმანის ჩვენება
+ მეტი დეტალები რუკის შესახებ
+ შემობრუნდით : %1$d
+ გეჭიროთ მარცხენა მხარე
+ გეჭიროთ მარჯვენა მხარე
+ სწრაფად
+ საჯარო
+ გამოსაცნობი
+ მიყოლის შესაძლებლობა
+ საკუთარი
+ მანქანის გაჩერებიდან გამოყვანა
+ გაფრთხილება
+ შეტყობინება თქვენი მანქანის გამოყვენის შესახებ კალენდარში უკვე არსებობს. ის დარჩება ხელით წაშლამდე დარჩება კალენდარში.
+ პარკინგის დროის ლიმიტის დაყენება
+ გნებავთ დაყენებული მანქანის მდებარეობის წაშლა?
+ პარკინგის მაჩვენებლის წაშლა
+ აირჩიეთ პარკინგის ტიპი
+ დროში შეზღუდული
+ დროში შეუზღუდავი
+ კალენდარში გაფრთხილების დამატება
+ დროში შეზღუდული პარკინგი
+ დროში შეუზღუდავი პარკინგი
+ დაპარკინგებული მანქანის მდებარეობა. %1$s
+ მანქანის გამოყვანის დრო:
+ PM
+ AM
+ პარკინგის ადგილი
+ დამატება გაძლევთ საშუალებას შეინახოთ მანქანის პარკინგის მდებარეობა.
+ პარკინგის მდებარეობის დამატება
+ დამატება პარკინგის მდებარეობად
+ პარკინგის მაჩვენებლის წაშლა
+ საწყისი წერტილი მეტისმეტად შორსაა უახლოესი გზისაგან.
+ გაზიარებული მდებარეობა
+ აირჩიეთ მოძრავი გზის აჩქარება
+ გამოყოფილი მეხსიერება %1$s მბ (Android-ის ლიმიტი %2$s მბ, Dalvik %3$s მბ).
+ გამოყოფილი მეხსიერება
+ აპლიკაციის მიერ გამოყენებული ჯამური ადგილობრივი მეხსიერება %1$s მბ (Dalvik %2$s მბ, სხვა %3$s მბ). პროპორციული მეხსიერება %4$s მბ (Android-ის ლიმიტი %5$s მბ, Dalvik %6$s მბ).
+ ჯამური ადგილობრივი მეხსიერება
+ სთ
+ წთ
+ მანქანის პარკინგის დროა:
+ კომპასის გამოყენება მიმართულების დაუდგენლობისას
+ კომპასის გამოყენება
+ გზის გადათვლა სასურველი წერტილის პოვნის შემთხვევაში
+ წინა გზა არ დასრულებულა. გნებავთ მისი გაყოლა? (%1$s წმ)
+ სიჩქარის კამერების ჩვენება
+ სიჩქარის ლიმიტების ჩვენება
+ ფასიანი გზებისათვის გვერდის ავლა
+ ქუჩის სახელი
+ გამართვა
+ სად ვარ
+ ეკრანის ჩაკეტვა
+ კომპასი
+ ნაგულისხმევზე დაბრუნება
+ პარკინგი
+ დევნა
+ სიჩქარე
+ მიზანი
+ სიმაღლე
+ წასვლის დროა
+ შემდეგი შესახვევი
+ შემდეგი შესახვევი (პატარა)
+ მეორე შემდეგი შესახვევი
+ პატარა რუკა
+ ეკრანის ჩაკეტვის ჩართვა/გამორთვა
+ ეკრანი ჩაკეტილია
+ დააყენეთ გაღვიძების ინტერვალი:
+ დააჭირეთ ბოქლომს ეკრანის გასახსნელად
+ ეკრანზე ჩაკეტვის მოხსნა
+ ძილის რეჟიმის გამორთვა
+ ძილის რეჟიმის ჩართვა
+ POI ფილტრის შექმნა
+ ინფორმაცია დღეღამის შესახებ
+ რენდერის ატრიბუტები:
+ ეკრანის გამართვა
+ ბილიკების ჩვენება
+ მოუკირწყლავი გზებისათვის თავის არიდება
+ ბორნისათვის თავის არიდება
+ თავის არიდება…
+ გაფრთხილებების ჩვენება…
+ სიჩქარის ლიმიტის, კამერებისა და საცობების ჩვენება
+ მანათობელი გზები
+ სახაზავის ჩვენება
+ ხედვის მიმართულება
+ გამჭირვალე ხედი
+ გაგრძელებადი
+ ელ-ფოსტა
+ მზის ამოსვლა: %1$s \nჩასვლა: %2$s
+ რენდერის რეჟიმი
+ აირჩიეთ მხოლოდ გზების საჩვენებლად:
+ რუკები მხოლოდ გზებით"გზები. "ჩვეულებრივი რუკებირუკები მხოლოდ გზებით
@@ -925,23 +779,20 @@
დაცული რეჟიმიაპლიკაცია გაშვებულია დაცულ რეჟიმში(გამოსართველად იხილეთ პარამეტრები).ფონური სერვისი ჯერ კიდევ გაშვებულია. გნებავთ მისი გამორთვა?
-
-
ცვლილებების ფანფრის დახურვა
- აპლიკაცია ZXing Barcode Scanner ჩადგმული არაა. გნებავთ მისი მოძებნა მარკეტში?
- აირჩიეთ გზების ფერების სქემა:
- გზების ფერების სქემა
+ აპლიკაცია ZXing Barcode Scanner ჩადგმული არაა. გნებავთ მისი მოძებნა მარკეტში?
+ აირჩიეთ გზების ფერების სქემა:
+ გზების ფერების სქემადანიშნულების პუნქტისაკენ მიმართულების ჩვენებაშენობები ნაპოვნი არაა.ძებნა დასახლებებითა და საფოსტო კოდებით
- ჩართეთ დევნის დამატება პიზიცირების ჟურნალირების სერვისის გამოსაყენებლად(ჟურნალირება, ცოცხალი დევნა)
+ ჩართეთ დევნის დამატება პიზიცირების ჟურნალირების სერვისის გამოსაყენებლად(ჟურნალირება, ცოცხალი დევნა)გრძელი გზის შემთხვევაში მოსალოდნელი არაოპტიმალური მარშრუტის დათვლა
- გთხოვთ ჩართოთ GPS
-
- ჟურნალირების სერვისები
- გზა ვერ მოიძებნა
- გზის სანიშნის მოცილება
- გზის სანიშნი %1$s
+ გთხოვთ ჩართოთ GPS
+ ჟურნალირების სერვისები
+ გზა ვერ მოიძებნა
+ გზის სანიშნის მოცილება
+ გზის სანიშნი %1$sგზის სანიშნი %1$sგზის ბოლო ნიშნის დამატებაგზის პირველი წერტილის დამატება
@@ -964,11 +815,10 @@
რესტორნებიღირსშესანიშნაობებიმოტოციკლეტის გზებისათვის თავის არიდება
- ნავიგაციისას პიზიციის მიბმა გზებისათვის
- გზისთვის მიბმა
- OsmAnd არის ნავიგაციის აპლიკაცია ღია წყაროთი გათიშული და ონლაინ რუკების მხარდაჭერით
- გზის წერტილი
-
+ ნავიგაციისას პიზიციის მიბმა გზებისათვის
+ გზისთვის მიბმა
+ OsmAnd არის ნავიგაციის აპლიკაცია ღია წყაროთი გათიშული და ონლაინ რუკების მხარდაჭერით
+ გზის წერტილიაუდიო/ვიდეო მონაცემებიდარწმუნებული ბრძანდებით რომ გნებავთ ნავიგაციის შეწყვეტა?დარწმუნებული ბრძანდებით რომ გნებავთ გაასუფთაოთ თქვენი დანიშნულების წერტილი?
@@ -980,7 +830,6 @@
ფოტოს გადაღებაDropbox-ის დამატება საშუალებას გაძლევთ გააკეთოთ სინქრონიზაცია თქვენი გზებისა და აუდიო/ვიდეო შენიშვნებისა თქვენს dropbox-ის ანგარიშთან.Dropbox-ის დამატება
-
წყობის შეცვლაპროგრამის განვითარების მხარდასაჭერად გთხოვთ შეიძინოთ Contour lines დამატება Market-დან.დამატება Contour lines
@@ -1000,7 +849,6 @@
მოცემული ჩანაწერიდან იკვრება მხოლოდ ხმა.\n%1$sგარე დამკვრელის გაშვებაგნებავთ ჩანაწერის წაშლა?
-
მიუწვდომელიახმოვანი შენიშვნის ჩაწერავიდეო შენიშვნის ჩაწერა
@@ -1012,14 +860,9 @@
ჩანაწერიხმოვანი/ვიდეო შენიშვნებიOsmAnd-ის დამატება გათიშული კონტურული ხაზებისათვის
-
"ეს დამატება უზრუნველყოფს კონტურულ ხაზებს, რომლებიც შეიძლება ნაჩვენები იქნას OsmAnd-ის გათიშულ რუკებზე. გლობალური მონაცემები (70 გრადუს ჩრდილოეთსა და 70 გრადუს სამხრეთს შორის) ემყარება SRTM (Shuttle Radar Topography Mission) და ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer)-ის მონაცემებს, რომელიც წარმოადგენს ფოტოკამერას Terra-ზე, NASA-ს წამყვან თანამგზავრზე, რომელიც ემსახურება დედამიწის დათვალიერების სისტემას. ASTER წარმოადგენს ერთობლივ პროექტს NASA-ს, იაპონიის ეკონომიკის სამინისტროს, ვაჭრობისა და ინდუსტრიის (METI), და იაპონიის კოსმოსურ სისტემებს (J-spacesystems) შორის. "
-
-
-
მანძილის გაზომვამდებარეობა შენიშვნის მისაბმელად ჯერ განსაზღვრული არაა. გამოიყენეთ \"მდებარეობის გამოყენება…\" შენიშვნის სასურველი მდებარეობისათვის მისანიჭებლად
-
ხმოვანი შენიშვნებიმგზავრობისას ხმოვანი/ვიდეო შენიშვნების ჩაწერახმოვანი/ვიდეო შენიშვნები
@@ -1030,52 +873,39 @@
სხვა რუკებიკოტურული ხაზების მონაცემებისაზღვრების დამალვა
- რეგიონალური საზღვრების ჩვენების შეზღუდვა (ადმინისტრირების დონე 5-9)
-
-
-
-
- შეწყვეტა
+ რეგიონალური საზღვრების ჩვენების შეზღუდვა (ადმინისტრირების დონე 5-9)
+ შეწყვეტადაწყებასიჩქარის ლიმიტიGPX დევნაგან %1$.3f, გრძ %2$.3f
-
-
-
OsmAnd წარმოადგენს აპლიკაციას ღია კოდით გათიშული და მიმდინარე რუკებით ნავიგაციისათვის
- აირჩიეთ ტრანსპორტის ტიპი
- დაუსრულებელი
- აირჩიეთ აპლიკაციის რეჟიმები
+ აირჩიეთ ტრანსპორტის ტიპი
+ დაუსრულებელი
+ აირჩიეთ აპლიკაციის რეჟიმებიაპლიკაციის პროფილები
- რუკის რენდერი:
+ რუკის რენდერი:ფეხით მოგზაურობამოტოციკლიგემითვითმფრინავი
-
-
თქვენ შლით osm ცვლილებას %1$d. დარწმუნებული ბრძანდებით?ყველას წაშლაგთხოვთ ჯერ გადაითვალოთ გზასიმულაცია გამოთვლილი გზის გამოყენებით სიმულაცია GPX მიყოლითჩემი არჩევნის დამახსოვრება
-
დაან
-
- ავტომატური გადიდების გათიშვა
- გასადიდებლად
- საშუალო დისტანციამდე
- დიდ მანძილზე
- რუკის გამადიდებელი
- დედამიწის ბაზისური რუკა
-
- ვერსია:
+ ავტომატური გადიდების გათიშვა
+ გასადიდებლად
+ საშუალო დისტანციამდე
+ დიდ მანძილზე
+ რუკის გამადიდებელი
+ დედამიწის ბაზისური რუკა
+ ვერსია:შესახებინფორმაცია ვერსიის, ლიცენზიების და პროექტის წევრების შესახებ
-
ჩამოტვირთულია გადიდებები: %1$sდროის გასვლა (წთ): %1$sგადმოტვირთვადი: %1$s
@@ -1090,21 +920,20 @@
ბმულიაირჩიეთ არსებული…აღწერა/ჩასწორება…
- FPS გარჩევის ინფორმაცია
- აირჩიეთ გზის რეგიონი: აშშ, ევროპა, UK, აზია და სხვა
- გზის რეგიონი
- იაპონია
- აშშ
- კანადა
- ევროპა & აზია
- UK, ინდოეთია, ავსტრალია & სხვანი
-
+ FPS გარჩევის ინფორმაცია
+ აირჩიეთ გზის რეგიონი: აშშ, ევროპა, UK, აზია და სხვა
+ გზის რეგიონი
+ იაპონია
+ აშშ
+ კანადა
+ ევროპა & აზია
+ UK, ინდოეთია, ავსტრალია & სხვანიგაცხადება…
- გაცხადებებში ქუჩის სახელების, სიჩქარის შეზღუდვის (იძულებითი გაჩერებების, სიჩქარის კონტროლის), ჩქაროსნული კამერების, სიჩქარის ლიმიტების მითითების ჩასწორება
- ქუჩის სახელების გაცხადება
+ გაცხადებებში ქუჩის სახელების, სიჩქარის შეზღუდვის (იძულებითი გაჩერებების, სიჩქარის კონტროლის), ჩქაროსნული კამერების, სიჩქარის ლიმიტების მითითების ჩასწორება
+ ქუჩის სახელების გაცხადებასიჩქარის ლიმიტის გაცხადებაჩქაროსნული კამერების გაცხადება
- ტრაფიკის შეტყობინებების გაცხადება
+ ტრაფიკის შეტყობინებების გაცხადებაგთხოვთ პარამეტრებში მიუთითოთ OSM-ის მომხმარებელი და პაროლიშუალედური წერტილების გასუფთავებაშუალედური წერტილების დატოვება
@@ -1115,9 +944,7 @@
სადამდე:გავლით:საიდან:
-
-
- დანიშნულების წერტილი %1$s
+ დანიშნულების წერტილი %1$sდანიშნულების წერტილად დაყენებაჯერ აირჩიეთ ქალაქი ან ქუჩაქუჩის ახლომდებარე ქალაქებში ძებნა
@@ -1141,7 +968,6 @@
ჩასწორების დამთავრებაახალი ქვეგზის დაწყებაყველა წერტილის გასუფთავება
-
არსებული GPX-ის გახსნაგთხოვთ მოითმინოთ სანამ დასრულდება მიმდინარე ამოცანაკომპასის ცდომილებების თავიდან ასაცილებლად გამოიყენეთ კალმანის ფილტრი
@@ -1157,10 +983,9 @@
დანიშნულების გასუფთავებაwifi მიწვდომადი არაა. ნამდვილად გნებავთ მიმდინარე კავშირით ფაილის ჩამოტვირთვის გაგრძელება?ქუჩა
- სახლის ნომერი
+ სახლის ნომერიჟურნალიზაციის სერვისები & ძილის რეჟიმიმოგზაურობების ჩაწერის გამართვა & ძილის რეჟიმის ჩართვა
-
აპლიკაციის თემის არჩევააპლიკაციის თემამაღალი წვდომადობის რეჟიმის გამართვა
@@ -1168,16 +993,14 @@
რჩეულის არჩევაOSM ცვლილებებისხვა საქმიანობები
-
- GPS ინფორმაცია
-
+ GPS ინფორმაციაჩასვლის დროშემოწმებულიაშეუმოწმებელიარუკამოტოციკლების გზების არჩევა
- არჩევნის გაკეთება…
- მოტოციკლების გზებისათვის უპირატესობის მინიჭება
+ არჩევნის გაკეთება…
+ მოტოციკლების გზებისათვის უპირატესობის მინიჭებაარაOpenMaps EUკონტურული ხაზების მონაცემები
@@ -1185,25 +1008,25 @@
ფოტოებისათვის სისტემური აპლიკაციის გამოყენებაკამერის აპლიკაციის გამოყენებაOsmAnd რუკები & ნავიგაცია
- OsmAnd+ რუკები & ნავიგაცია
- შემომწირეთ აპლიკაციაში ახალი მახასიათებლების სანახავად
- ჩამოტვირთვა
- OSM პაროლი(არასავალდებულო)
- კამერის ფოკუსის ტიპი
- აირჩიეთ შიდა კამერის ფოკუსის ტიპი
- ავტოფოკუსი
- ზემაღალი ფოკუსი
- ველის გაფართოებული სიღრმავე (EDOF)
- ფოკუსი უსასრულოა
- მაკრო (მიახლოებული) ფოკუსის რეჟიმი
- კამერა განაგრძობს ფოკუსის დაჭერას
- ფოტოს გადაღებისას ხმის გამოცემა
- აირჩიეთ ფოტოების გადაღებისას ხმის გამოსაცემად
-საშიშროება
+ OsmAnd+ რუკები & ნავიგაცია
+ შემომწირეთ აპლიკაციაში ახალი მახასიათებლების სანახავად
+ ჩამოტვირთვა
+ OSM პაროლი(არასავალდებულო)
+ კამერის ფოკუსის ტიპი
+ აირჩიეთ შიდა კამერის ფოკუსის ტიპი
+ ავტოფოკუსი
+ ზემაღალი ფოკუსი
+ ველის გაფართოებული სიღრმავე (EDOF)
+ ფოკუსი უსასრულოა
+ მაკრო (მიახლოებული) ფოკუსის რეჟიმი
+ კამერა განაგრძობს ფოკუსის დაჭერას
+ ფოტოს გადაღებისას ხმის გამოცემა
+ აირჩიეთ ფოტოების გადაღებისას ხმის გამოსაცემად
+ საშიშროებაგანახლებები ნაპოვნი არააცოცხალი განახლებები
- ნაგულისხმევი (13)
- GPX-ის ფერი
+ ნაგულისხმევი (13)
+ GPX-ის ფერიGPX-ის სიგანეწითელიგამჭირვალე წითელი
@@ -1319,7 +1142,7 @@
სიმაღლის მონაცემების გამოყენებასიღრმის წერტილებისა და კონტურების ჩვენებასიღრმის კონტურები
- დაშორება შესწორებულია
+ დაშორება შესწორებულიაჩადგმაფოტოების დამატებამოცემული ლოკაციისთვის ფოტოები არ არსებობს
@@ -1348,11 +1171,6 @@
დროის შეზღუდვის გარეშე"მთლიანი სტატიის წაკითხვა"სტატიის წაკითხვა
-
-
-
-
-
დამატებითი მოქმედებებიძებნის შინაარსის შეცვლა.მოქმედებები
@@ -1388,4 +1206,41 @@
სანიშნისრული აღწერის დამალვასრული აღწერის ჩვენება
+ კოორდინატების კოპირება
+ ჩანაწერების გასუფთავება
+ მენიუ
+ პლაგინი გამორთულია
+ პარამეტრები
+ გადათვლის გამორთვა
+ ორივეს დატოვება
+ ყველას შეცვლა
+ პროფილები
+ არაფერი აგირჩევიათ
+ POI_ს ტიპები
+ მომზადება
+ კუთხე
+ რელიეფი
+ გამჭირვალობა
+ გადიდების დონე
+ შემოტანა დასრულებულია
+ შემოტანა
+ მონაცემების შემოტანა %1$s-დან
+ პროფილის დამარქაფება შეუძლებელია.
+ ახალი პროფილის ჩაწერა
+ %1$s %2$s-დან
+ დაქანებები
+ რელიეფის ჩვენება/დამალვა
+ რელიეფის დამალვა
+ რელიეფის ჩვენება
+ რელიეფის შრის საჩვენებელი ღილაკი.
+ აღწერის წაშლა
+ აღწერის დამატება
+ აირჩიეთ ჯგუფი
+ აირჩიეთ ფორმა
+ წრეწირი
+ რვაკუთხედი
+ ოთხკუთხედი
+ წთ
+ სასრიალო ტურიზმი
+ სნოუმობილი
\ No newline at end of file
diff --git a/OsmAnd/res/values-kn/strings.xml b/OsmAnd/res/values-kn/strings.xml
index cf40b4668a..bbe6999e0d 100644
--- a/OsmAnd/res/values-kn/strings.xml
+++ b/OsmAnd/res/values-kn/strings.xml
@@ -362,7 +362,7 @@
ಶೀರ್ಷಿಕೆಯನ್ನು ಸೇರಿಸಿರೆಕಾರ್ಡಿಂಗ್ ಮಾಡುವಾಗ ಪ್ರತಿ ಟ್ರ್ಯಾಕ್ ಪಾಯಿಂಟ್ಗೆ ಶೀರ್ಷಿಕೆ ಉಳಿಸಿ.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sವೈಯಕ್ತಿಕಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ%sದಪ್ಪ
diff --git a/OsmAnd/res/values-large/sizes.xml b/OsmAnd/res/values-large/sizes.xml
index 13ae7b9b65..d503d642db 100644
--- a/OsmAnd/res/values-large/sizes.xml
+++ b/OsmAnd/res/values-large/sizes.xml
@@ -160,6 +160,7 @@
84dp15dp84dp
+ 192dp354dp102dp
diff --git a/OsmAnd/res/values-my/strings.xml b/OsmAnd/res/values-my/strings.xml
index 0c5390199f..0213e847ac 100644
--- a/OsmAnd/res/values-my/strings.xml
+++ b/OsmAnd/res/values-my/strings.xml
@@ -37,7 +37,7 @@
နှင်းပန်းခြံခရီးဝေးလမ်းရှောက်တောင်ဂုံးဆင်း
- "နှင်းတောင်ပေါ် ski စီးလမ်းအမြိုး"
+ နှင်းတောင်ပေါ် ski စီးလမ်းအမြိုးလွယ်တယ်မြေပုံ orientation ကန့်သတ်နေရာဒီနေ့
diff --git a/OsmAnd/res/values-nb/phrases.xml b/OsmAnd/res/values-nb/phrases.xml
index 0b5afb250f..fbdde985e2 100644
--- a/OsmAnd/res/values-nb/phrases.xml
+++ b/OsmAnd/res/values-nb/phrases.xml
@@ -21,7 +21,7 @@
KunsthandlerSkobutikkMusikkinstrumenter
- Økologisk mat
+ Økologiske produkterBruktbutikkMarkedsplassPoliti
@@ -36,7 +36,7 @@
BusstasjonJernbanestasjonJernbaneperrong
- T-banestasjon
+ JaTaxiholdeplassFlyplassFergeterminal
@@ -190,7 +190,7 @@
AmbassadeFengselToll
- Hovedstad
+ JaBoligområdeHistorisk gårdsbrukHistorisk jernbanestasjon
@@ -473,7 +473,7 @@
Pesco-vegetariskJaJa
- Mikrobryggeri
+ JaJaJaJa
@@ -753,7 +753,7 @@
KraftverkKjøletårnGjenbruk
- Container
+ BeholderGlassKlærAluminium
@@ -1284,7 +1284,7 @@
PaganismeJehovas vitnerDrinker
- Verksted
+ TjenesteytelseBilverkstedStorkjøpInnfartsparkering
@@ -1330,10 +1330,10 @@
ManikyrMinibankStryk
- Bestikkbutikk
+ ServisebutikkAnimalsk avfallSøppelkurv
- Nyttevekstbeplantning
+ FrukthageReservoarHøyskoleFogd
@@ -1354,4 +1354,8 @@
HandicapadkomstHelsekostReddit
+ Frossenmat
+ Dyrefor
+ Drikkevarer og mat
+ Mat
\ No newline at end of file
diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml
index a7d926cf99..fac215406e 100644
--- a/OsmAnd/res/values-nb/strings.xml
+++ b/OsmAnd/res/values-nb/strings.xml
@@ -1041,7 +1041,7 @@
Spesifiser innstillinger for OpenStreetMap.org (OSM) som er nødvendige for bidrag til OSM.DeaktivertAktivert
- Skru på
+ AktiverDeaktiverDu må være på Internett for å installere dette programtillegget.Aldri
@@ -1812,7 +1812,7 @@
dagerKoble tilIngen trapper
- Unngår trapper.
+ Unngår trapperAngi talehastigheten for TTS.TalehastighetRask ruteberegning mislyktes (%s), faller tilbake på treg beregning.
@@ -2289,8 +2289,8 @@
La stå tomt for å bruke adressen eller stedsnavnet.Denne meldingen inkluderes i kommentarfeltet.Du må være koblet til Internett for å vise bilder fra Mapillary.
- Last ned \"Relieffskyggeoverlegg\"-kart for å se loddrett skyggelegging.
- Installer programtillegget for koter for å se relieffskygger på kartet.
+ Last ned kart for \'Relieffskyggeoverlegg\' for å vise vertikal skyggelegging.
+ Installer programtillegget \'Koter\' for å vise graderte vertikale områder.Oppfør nytt navnTilbakeRutepunkter lagt til kartmarkører
@@ -2474,7 +2474,7 @@
Aktiver tillegget \"Turopptak\" for å bruke posisjonloggingstjenester (GPX-logging, nettbasert sporing)Beregn mulig ikke-optimal rute over lange avstanderLast ned (\'nettfrakoblede\') data for å kunne bruke kart nettfrakoblet.
- string name=\"lat_lon_pattern\">Br: %1$.5f Le: %2$.5f</string
+ Online OSM – kartklassifisering med bilder.Hurtighandlingsnavn endret til %1$s for å unngå duplisering.Navneduplisering for hurtighandlingOSM-mottakere
@@ -3165,7 +3165,7 @@
\n
PersontransportørMonohjul
- Sparkesykkel
+ ScooterVannrett nøyaktighet: %1$s, loddrett: %2$sVannrett nøyaktighet: %sProfil beholder sine egne innstillinger
@@ -3259,7 +3259,7 @@
Vis koterSkjul koterVis/skjul koter
- Å trykke på denne handlingsknappen viser eller skjuler relieffskygge på kartet
+ En knapp for å vise eller skjule relieffskygger på kartet.Vis relieffskyggeSkjul relieffskyggeVis/skjul relieffskygge
@@ -3390,10 +3390,10 @@
NodenettverkBind sammen segmenterLegg til ny profil «%1$s»\?
- Ta med overskrift
- Lagre overskrift på hvert veipunkt under opptak.
+ Inkluder retning
+ Lagre retning til hvert sporpunkt under opptak.Tilbakestill
- En knapp for å enten gjøre midten av skjermen til startpunkt og rute til målet, eller åpne en dialog for valg av mål hvis målmarkøren ikke er på kartet.
+ En knapp for å gjøre midten av skjermen til avreisepunktet. Vil deretter be om å angi reisemål eller utløse ruteberegningen.Vis nettverksnoder for sykkelruterTøm %1$s\?Kartnedlastingsdialog
@@ -3406,12 +3406,12 @@
Skru avNytt programtillegg lagt til%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonligLaster ned %sTykkFor ørkener og andre tynt befolkede områder. Høyere detaljnivå.
- Velg navigasjonsikon
+ Posisjonsikon under bevegelseVelg kartikonEtter å ha trykket «Bruk», går slettede profiler tapt for godt.Hovedprofil
@@ -3425,7 +3425,7 @@
Valgt profilVed å klikke %1$s vil alle endringene dine gå tapt.Alle profilinnstillinger må tilbakestilles til forvalg.
- Tilbakestill alle innstillinger til forvalg\?
+ Tilbakestill alle profilinnstillinger\?%1$s: %2$s%1$s %2$sImporter profil
@@ -3455,7 +3455,7 @@
Kartikon vises kun på kartet, og endrer seg under navigasjon til navigasjonsikonet.Bruk systemprogramTilgjengelig
- Soloppgang klokken %1$s
+ Soloppgang kl. %1$sKopier koordinaterSorter etter kategoriAntarktis
@@ -3464,7 +3464,7 @@
Vinkel: %s°VinkelForbereder
- POI-typer
+ InteressepunkttyperIngenting valgtHurtighandlingerProfiler
@@ -3475,4 +3475,60 @@
Importerer data fra %1$sImportererVelg form
+ Minimumshastighet
+ Minimumsnøyaktighet
+ Merknad
+ Nettadresse
+ Opptegningsstil
+ %1$s/%2$s
+ Kun vis om natten
+ Legg til egendefinert kategori
+ Meny
+ Åpne innstillinger
+ Terreng
+ %1$s av %2$s
+ Vis/skjul terreng
+ Skjul terreng
+ Vis terreng
+ Slett beskrivelse
+ Legg til beskrivelse
+ Velg gruppe
+ Sirkel
+ Oktogon
+ Kvadrat
+ Kunne ikke lese %1$s.
+ Kunne ikke importere %1$s.
+ Kunne ikke skrive %1$s.
+ Språk
+ Språk
+ Alle språk
+ Import fullført
+ Ekstra kart er nødvendige for å vise Wikipedia-interessepunkter på kartet.
+ Ekstra kart er nødvendige for å vise relieffskygge på kartet.
+ Forstørrelsesnivåer
+ Relieffskygge
+ Elementer lagt til
+ Gjenopprett alle profilinnstillinger\?
+ En knapp for å vise eller skjule terrenglag på kartet.
+ Handlinger i bindeleddsmeny
+ Skjult
+ Hovedhandlinger inneholder kun 4 knapper.
+ Hovedhandlinger
+ Du får tilgang til disse handlingene ved å trykke på knappen “Handlinger”.
+ Du kan kun flytte elementer innenfor denne kategorien.
+ Utvikler-tillegg
+ Erstatt et annet punkt med dette
+ Snøscooter
+ Egendefinert OsmAnd-tillegg
+ Elementer
+ Endringer utført på %1$s-profilen.
+ Velg sporfil
+ Angi minste og største forstørrelsesnivå laget skal vises på.
+ Min
+ Noen elementer finnes allerede
+ Tilgang kreves for å bruke dette alternativet.
+ Solnedgang kl. %1$s
+ Alle profilinnstillinger gjenopprettet til forvalg.
+ Gjennomsiktighet
+ Tegnforklaring
\ No newline at end of file
diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml
index ac990ab2c1..4327f37146 100644
--- a/OsmAnd/res/values-nl/strings.xml
+++ b/OsmAnd/res/values-nl/strings.xml
@@ -87,7 +87,7 @@
Wis de bewerkingOpenStreetMap asynchroon wijzigen:Lokaal opgeslagen OSM-Interessepunten/Opmerkingen
- Beheer OSM-Interessepunten/Opmerkingen die lokaal zijn bewaard.
+ Toon en beheer OSM-Interessepunten/Opmerkingen die lokaal zijn bewaard.Specificeer interval voor online tracking.Interval voor online trackingSpecificeer het webadres met parameters: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.
@@ -248,7 +248,7 @@
Installeer meer…Minimum zoomniveau om vectorkaarten in plaats van (raster)kaartsegmenten te gebruiken.Min. vector zoomniveau
- string name=\"lat_lon_pattern\">Lat: %1$.5f Lon: %2$.5f</string
+ Online OSM kaart classificatie met afbeeldingen.Fout bij offline zoeken.Zoek adres in de offline kaartenSysteem
@@ -633,7 +633,7 @@
Activeer in een land waar men links rijdt.Vertrekpunt is nog niet bepaald.Downloaden afbreken?
- De basiskaart is nodig voor de goede werking van OsmAnd en is al geselecteerd om te downloaden.
+ De basiskaart, nodig voor de goede werking van OsmAnd, is al geselecteerd om te downloaden.Activeer de \'Online Kaarten\' plug-in om andere kaartbronnen te kunnen selecterenOnline (raster-) kaartenGebruik online kaarten (download en bewaar deze op SD-kaart).
@@ -887,10 +887,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Audio/video-instellingen
Fout opgetreden bij opnemen Camera is niet beschikbaar
- Overweeg om de plug-in \"Hoogtelijnen\" te kopen in de Play-store om verdere ontwikkeling te ondersteunen.
+ Overweeg om de plug-in \"Hoogtelijnen\" te kopen, in de Play-store, om verdere ontwikkeling te ondersteunen.Hoogtelijnen-PluginVolgorde wijzigen
- De Dropbox plug-in kan tracks en audio-/videonotities synchroniseren met je Dropbox-account.
+ Synchroniseren tracks en audio-/videonotities met je Dropbox-account.Dropbox plug-inToonFoto %1$s %2$s
@@ -2151,7 +2151,7 @@ voor Gebied: %1$s x %2$s
Kies een categorie (optie).POI-lijstJe kunt één of meerdere POI-categorieën kiezen om weer te geven.
- Druk knop om door de onderstaande lijst te bladeren.
+ Een knop om door de onderstaande lijst te bladeren.Kaartstijl toevoegenAlle parameters invullenKaartstijlen
@@ -3281,7 +3281,7 @@ voor Gebied: %1$s x %2$s
Richting toevoegenPersoonlijk%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sDownloaden %sVoor woestijnen en andere dunbevolkte gebieden. Meer gedetailleerd.Dik
@@ -3316,7 +3316,7 @@ voor Gebied: %1$s x %2$s
Online volgenOpnamenauwkeurigheidU kan al uw opgenomen tracks terugvinden bij %1$s of in OsmAnd-map met een bestand verkenner.
- U kan al uw notities terugvinden bij %1$s
+ U kan al uw notities terugvinden in %1$sVideonotitiesFotonotitiesRoute herberekening
@@ -3349,7 +3349,7 @@ voor Gebied: %1$s x %2$s
Camera sluiter geluidToestemming is geluktHerschik categorieën
- Je kan eigen categorieën toevoegen, categorieën die niet nuttig zijn verbergen en de sorteervolgorde van de lijst wijzigen. De lijst kan met profielen geïmporteerd en geëxporteerd worden.
+ Wijzig de sorteervolgorde van een lijst, verberg onnodige categorieën. U kunt alle wijzigingen in profielen, exporteren of importeren.Je kan een nieuwe eigen categorie toevoegen door een of meerdere benodigde categorieën te kiezen.Herstel naar standaard zal de sorteervolgorde terugzetten zoals die was bij installatie.Beschikbaar
@@ -3410,4 +3410,17 @@ voor Gebied: %1$s x %2$s
Alle profielinstellingen herstellen\?Slaat nieuw profiel opKan profiel niet back-uppen.
+ %1$s of %2$s
+ Hellingen
+ Toon/Verberg de omgeving
+ Verberg de omgeving
+ Toon de omgeving
+ Een knop om een laag op de kaart weer te geven of te verbergen.
+ Verwijder een beschrijving
+ Voeg een beschrijving toe
+ Selecteer groep
+ Selecteer vorm
+ cirkel
+ Ruit
+ Min
\ No newline at end of file
diff --git a/OsmAnd/res/values-oc/strings.xml b/OsmAnd/res/values-oc/strings.xml
index 8db78dec1f..6df44d7459 100644
--- a/OsmAnd/res/values-oc/strings.xml
+++ b/OsmAnd/res/values-oc/strings.xml
@@ -508,7 +508,7 @@
Error d\'importacion de %1$s: %2$s%1$s es estat importat correctament.Blanc
- "Inversar %1$s e %2$s"
+ Inversar %1$s e %2$sPonch de partençaTraça enregistradaLo fichier es pas nommat
diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml
index 7449eccef1..948af08860 100644
--- a/OsmAnd/res/values-pl/strings.xml
+++ b/OsmAnd/res/values-pl/strings.xml
@@ -3403,7 +3403,7 @@ Reprezentuje obszar: %1$s x %2$s
Dołączenie kierunkuZapisuje podczas rejestrowania kierunek do każdego punktu trasy.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sOsobistePobieranie %sDla pustyń i innych słabo zaludnionych obszarów. Bardziej szczegółowa.
@@ -3608,4 +3608,36 @@ Reprezentuje obszar: %1$s x %2$s
\n
\nTo może zająć chwilę.
Min
+ Ośmiokąt
+ Turystyka narciarska
+ Skuter śnieżny
+ Zastąp tym inny punkt
+ Niestandardowa wtyczka OsmAnd
+ Zmiany zastosowano do profilu %1$s.
+ Nie udało się przeczytać %1$s.
+ Nie udało się napisać %1$s.
+ Nie udało się zaimportować %1$s.
+ Elementy szuflady, menu kontekstowe
+ Ustawienia interfejsu użytkownika
+ Szuflada
+ Menu kontekstowe działań
+ Przeorganizuj lub ukryj elementy z %1$s.
+ Dzielnik
+ Elementy poniżej tego punktu są oddzielone dzielnikiem.
+ Ukryte
+ Te elementy są ukryte w menu, jednak reprezentowane opcje i wtyczki będą wciąż działać.
+ Ustawienia zostaną zrestetowane po schowaniu.
+ Główne działania zajmują tylko 4 przyciski.
+ Główne działania
+ Możesz uzyskać te akcje przez naciśnięcie przycisku \"Działania\".
+ Możesz przemieszczać elementy tylko wewnątrz tej kategorii.
+ Wtyczka deweloperska
+ Elementy
+ Wybierz plik ścieżki
+ Języki
+ Język
+ Wszystkie języki
+ Niektóre artykuły Wikipiedii mogą nie być dostępne w twoim języku, wybierz w których językach artykuły Wikipedii mogą pojawiać się na mapie.
+\nBędziesz mógł zmieniać pomiędzy wszystkimi możliwymi językami podczas czytania artykułu.
+ Potrzebne są dodatkowe mapy, żeby przeglądać UM Wikipedii na mapie.
\ No newline at end of file
diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml
index d129fdb794..abfdf7a5ff 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -349,7 +349,7 @@
A fonte da quadrícula %1$s foi salvaModeradores de tráfegoRota a partir daqui
- Explorar mapa
+ Navegar no mapaDados de Áudio/VídeoConfirma que quer parar a navegação?h
@@ -3392,7 +3392,7 @@ Pôr do Sol: %2$s
Incluir direçãoSalve o cabeçalho em cada ponto da trilha durante a gravação.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPessoalBaixando %sGrosso
@@ -3568,4 +3568,62 @@ Pôr do Sol: %2$s
A rota será recalculada se a distância da rota até o local atual for maior que o valor selecionado.Selecione a distância após a qual o percurso será recalculado.Recalcular rota em caso de desvio
+ Terreno
+ Mapa de sombras de relevo usando tons escuros para mostrar encostas, picos e planícies.
+ A inclinação é visualizações coloridas no terreno.
+ Defina os níveis mínimo e máximo de zoom nos quais a camada será exibida.
+ Mapas adicionais são necessários para visualizar sombras de relevo no mapa.
+ Mapas adicionais são necessários para visualizar as Inclinações no mapa.
+ Você pode ler mais sobre pistas em %1$s.
+ Transparência
+ Níveis de zoom
+ Legenda
+ Ative para visualizar mapa de colinas ou declives. Você pode ler mais sobre esses tipos de mapa em nosso site
+ Sombras de relevo
+ %1$s de %2$s
+ Encostas
+ Mostrar/ocultar terreno
+ Ocultar terreno
+ Mostrar terreno
+ Um botão para mostrar ou ocultar a camada do terreno no mapa.
+ Excluir descrição
+ Adicionar descrição
+ Selecionar grupo
+ Selecionar forma
+ Círculo
+ Octógono
+ Quadrado
+ Min
+ Passeio de esqui
+ Moto de neve
+ Plug-in OsmAnd personalizado
+ Substitua outro ponto por este
+ Alterações aplicadas ao perfil %1$s.
+ Não foi possível ler %1$s.
+ Não foi possível escrever %1$s.
+ Não foi possível importar %1$s.
+ Selecionar arquivo de faixa
+ Idiomas
+ Idioma
+ Todos os idiomas
+ Mapas adicionais são necessários para visualizar os POIs da Wikipédia no mapa.
+ Personalize a quantidade de itens na Gaveta, Configurar mapa e menu de contexto.
+\n
+\nVocê pode desativar plugins não utilizados para ocultar todos os seus controles do aplicativo %1$s.
+ Itens da gaveta, menu de contexto
+ Personalização da interface do usuário
+ Gaveta
+ Ações do menu de contexto
+ Reordene ou oculte itens do %1$s.
+ Divisor
+ Elementos abaixo deste ponto separados por um divisor.
+ Escondido
+ Esses itens estão ocultos no menu, mas as opções ou plug-ins representados ainda estão funcionando.
+ As configurações serão redefinidas para o estado original após ocultar.
+ As ações principais contêm apenas 4 botões.
+ Principais ações
+ Você pode acessar essas ações tocando no botão \"Ações\".
+ Você pode mover itens somente dentro desta categoria.
+ Plugin do desenvolvedor
+ Itens
\ No newline at end of file
diff --git a/OsmAnd/res/values-pt/phrases.xml b/OsmAnd/res/values-pt/phrases.xml
index 572e50ceee..f75dc4d647 100644
--- a/OsmAnd/res/values-pt/phrases.xml
+++ b/OsmAnd/res/values-pt/phrases.xml
@@ -1991,7 +1991,7 @@
MonotrilhoFunicularBalsa
- Metrô
+ MetropolitanoRota ferroviáriaObjeto históricoVigilância: sim
@@ -3543,7 +3543,7 @@
SimTremÔnibus
- Metrô
+ MetropolitanoVia para veículos com alta ocupaçãoBondeBalsa
diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml
index 028668e7b9..3ace6a28db 100644
--- a/OsmAnd/res/values-pt/strings.xml
+++ b/OsmAnd/res/values-pt/strings.xml
@@ -365,7 +365,7 @@
Nó não pode ser encontrado ou POI não é um único nóEliminar {0} (comentário)\?Eliminar POI
- Eliminar
+ ApagarPOI eliminadoAdicionarModificar
@@ -689,7 +689,7 @@
PolígonosModo de VisualizaçãoOtimizar mapa para
- "Mostrar desde o nível de ampliação (requer dados de contorno):"
+ Mostrar desde o nível de ampliação (requer dados de contorno):Mostrar curvas de nívelAumentar a quantidade de detalhe no mapa.Ver mais detalhes no mapa
@@ -958,7 +958,7 @@
Descartar rotaParar navegaçãoFicheiro de alterações OSM gerado %1$s
- Não foi possível fazer backup de alterações OSM
+ Não foi possível fazer backup das alterações do OSM.Fazer backup como mudança de OSMEliminar pontotempo
@@ -969,7 +969,7 @@
Nome do ficheiro GPXFicheiro GPX guardado em {0}Calculadora de distância e ferramenta de planeamento
- Este complemento fornece um widget no ecrã do mapa que permite criar caminhos ao tocar no mapa, ou usar/alterar ficheiros GPX existentes, para planear uma viagem e medir a distância entre os pontos. Os resultados podem ser guardados como um ficheiro GPX, que pode ser usado posteriormente para orientação.
+ Crie caminhos tocando no mapa ou usando ou modificando os ficheiros GPX existentes para planejar uma viagem e medir a distância entre pontos. O resultado pode ser salvo como um ficheiro GPX para uso posterior para orientação.Selecione a região de condução: EUA, Europa, Reino Unido, Ásia e outros.Região de conduçãoJapão
@@ -977,7 +977,7 @@
Europa, Ásia, América Latina e similaresReino Unido, Índia e similaresAnunciar…
- Configurar anúncio de nomes de ruas, avisos de trânsito (paragens forçadas, lombadas de velocidade), avisos de radares de trânsito, limites de velocidade.
+ Configurar anúncio de nomes de ruas, avisos de trânsito (paragens forçadas, lombos de velocidade), avisos de radares de trânsito, limites de velocidade.Nomes das ruas (TTS)Limite de velocidadeRadares de velocidade
@@ -1015,7 +1015,7 @@
Para a leitura da bússola, use o sensor magnético em vez do sensor de orientação.Use sensor magnéticoOutro
- Linhas de contorno
+ Curvas de nívelGPXMapas OsmAnd & NavegaçãoMapas OsmAnd+ & Navegação
@@ -1088,7 +1088,7 @@
MotocicletaBarcoAeronave
- Vai eliminar %1$d alterações do OpenStreetMap. Tem a certeza\?
+ Tem certeza de que deseja apagar %1$d alterações no OSM\?Eliminar tudoWikipédia (off-line)Marca Marítima
@@ -1822,10 +1822,10 @@
Usar teclado do sistemaEscolher formato de introdução de coordenada. Poderá sempre alterá-lo ao selecionar \'Opções\'.Introdução rápida de coordenadas
- Evitar estradas com gelo, vales
- Evitar estradas de gelo e vales.
+ Sem estradas de gelo ou vaus
+ Evitar estradas de gelo e vaus.Usar posição
- Adicione a sua posição como primeiro ponto para planear o percurso perfeito.
+ Adicionar a sua posição como ponto de partida para planear uma rota perfeita.A minha posiçãoTerminarPlanear percurso
@@ -1839,12 +1839,12 @@
Mostrar setas no mapaMostrar passadoEsconder o passado
- Remover dos marcadores do mapa
- descendente
- ascendente
- Data adicionada
+ Remover dos \'Marcadores do mapa\'
+ Z-A
+ A-Z
+ AdicionadaOrdenar por:
- Selecionar como indicar a distância e direção aos marcadores do mapa no ecrã do mapa:
+ Selecionar como indicar a distância e a direção para os marcadores no mapa:Limiar de orientação do mapaSelecione a velocidade de mudança de orientação do \'Direção de movimento\' a \'Direção de bússola\' abaixo.Todos os marcadores do mapa movidos para histórico
@@ -1862,7 +1862,7 @@
Indicação da distânciaOrdenar porSem animações
- Desativar animações na aplicação.
+ Desligar as animações do mapa.Manter o mapa observávelSair sem guardar?Linha
@@ -1882,10 +1882,10 @@
Explorar o mapa e adicionar pontosMedir distânciaPausar/reatar navegação
- Selecionar este botão para pausa ou retomar a navegação.
+ Botão para pausar ou retomar a navegação.Mostrar diálogo \'Final de Navegação\'Iniciar/parar navegação
- Selecionar este botão para parar ou terminar a navegação.
+ Botão para iniciar ou terminar a navegação.Armazenar percursos gravados em diretórios mensaisArmazenar percursos gravados em subdiretórios por mês de gravação (como 2018-01).Reiniciar
@@ -1895,7 +1895,7 @@
Nome de utilizador erradoParaA partir de
- Visualizar só imagens adicionadas
+ Ver apenas imagens adicionadasDataIntroduza nome de utilizadorVer imagens adicionadas por
@@ -1903,7 +1903,7 @@
Pode filtrar imagens por quem submeteu, por data our por tipo. Filtros aplicáveis apenas para zoom de proximidade.Régua de raioPermissões
- OsmAnd não pode importar o ficheiro. Por favor confirme se OsmAnd tem permissão para ler o ficheiro da sua localização.
+ Não foi possível importar o ficheiro. Por favor, certifique-se de que OsmAnd tem permissão para lê-lo.Distância corrigidaImagem do MapillaryAbrir Mapillary
@@ -1912,30 +1912,30 @@
Instale o Mapillary para adicionar uma ou mais fotos a este local do mapa.Fotos on-lineAdicionar fotos
- Não temos fotos para esta localização.
- Contribua com as suas fotos ao nível da rua desta localização atravéz de Mapillary.
+ Não há fotos aqui.
+ Partilhe a sua vista ao nível da rua através do Mapillary.Widget MapillaryPermite contribuir rapidamente para Mapillary.Fotos on-line ao nível da rua para todos. Descubra locais, colabore, capture o mundo.MapillaryFotos ao nível da rua para todos. Descubra locais, colabore, capture o mundo.
- O seu destino está localizado numa área de acesso privado. Permitir o acesso a estradas privadas para esta viagem\?
+ O seu destino está localizado numa área de acesso privado. Permitir uso de estradas privadas para esta viagem\?Reiniciar pesquisaAumentar raio de pesquisaNada encontrado
- Modifique termo de pesquisa ou aumente raio de pesquisa.
- Mostrar/esconder anotações OSM
+ Altere a pesquisa ou aumente o raio dela.
+ Mostrar ou ocultar anotações do OSMMostrar anotações OSM
- Esconder anotações OSM
- Tocar no botão de ação irá mostrar ou esconder as anotações OSM no mapa.
+ Ocultar anotações do OSM
+ Botão para mostrar ou ocultar notas OSM no mapa.Ordenar por distância
- Favoritos de pesquisa
+ Pesquisar em FavoritosDescarregar o mapa \'Hillshade Overlay\' para mostrar as sombras verticais.
- Para ver relief sobreamento de relevo no mapa, precisa de comprar e instalar o complemento \'Contour Lines\'
- Esconder do nível de zoom
- Descarregue o mapa de \'linha de contorno\' para esta região.
+ Instale o plugin \'Curvas de nível\' para mostrar áreas verticais graduadas.
+ Ocultar a partir do nível de zoom
+ Descarregue o mapa de \'Curvas de nível\' para usar nesta região.Complemento
- Para ver as linhas de contorno no mapa, precisa de comprar e instalar o complemento de \'Linhas de Contorno\'
+ Compre e instale o plugin \'Curvas de nível\' para mostrar as áreas verticais graduadas.Esquema de coresMostrar a partir do nível de zoomPermitir acesso privado
@@ -1944,7 +1944,7 @@
Nome de grupoMudar corEditar nome
- Animar Minha Posição
+ Animar a própria posiçãoAtivar animação panorâmica do mapa da \'Minha Posição\' durante navegação.Visão GeralSelecionar rua
@@ -2033,14 +2033,14 @@
Divisão automática de gravações após separaçãoIniciar novo segmento após uma quebra de 6 min, novo percurso após quebra de 2 h, ou novo ficheiro após uma quebra mais longa se a data se tiver alterada.Densidade de curvas de nível
- Densidade de linhas de contorno
+ Densidade de curvas de nívelAltoMédioBaixoLargura das curvas de nívelLargura das curvas de nívelÁgua
- Esconder água
+ Ocultar águaPesquisa antigaMostrar pesquisa antigaAdicionar pesquisa antiga à lista da gaveta
@@ -2189,7 +2189,7 @@
Renova anualmente%1$.2f %2$sPeríodo de pagamento:
- As doações ajudam a financiar a cartografia do OpenStreetMap.
+ As doações ajudam a financiar a cartografia do OSM.• Navegação: Fix barra de progresso, troca rápida do ponto inicial e final da rota
\n
\n • Marcadores de mapa: corrigir ligar/desligar grupos, a capacidade de esconder os marcadores do mapa
@@ -2209,8 +2209,8 @@
Estilo simples e contrastante para a navegação do carro. É suave para os olhos no modo noturno. Características principais: curvas de nível, estradas contrastantes de estilo laranja, menos objetos secundários do mapa para evitar distrações.Para caminhadas, trekking e ciclismo de natureza. Legível ao ar livre. Estradas e objetos naturais contrastantes, diferentes tipos de rotas, opções avançadas de linha de contorno, detalhes extras. O ajuste da integridade da superfície distingue a qualidade da estrada. Sem modo noturno.O velho estilo padrão \'Mapnik\'. Cores como \'Mapnik\'.
- Estilo de alto detalhe para turismo. Inclui todas as opções de configuração de estilo padrão e além disso: mostra o máximo de detalhes possível, em particular todas as estradas, caminhos e outras formas de viajar. Distinção visual clara entre todos os tipos de estradas diferentes, reminiscente de muitos mapas de turismo. Esquema de cores de alto contraste para uso ao ar livre, modo diurno e noturno.
- Estilo de propósito geral. Renderização simplificada e limpa em cidades densamente povoadas. Características principais: linhas de contorno, rotas, qualidade de superfície, restrições de acesso, escudos rodoviários, caminhos de renderização de acordo com a escala SAC, características desportivas Whitewater.
+ Estilo turístico com alto contraste e máximo detalhe. Inclui todas as opções do estilo OsmAnd padrão, enquanto exibe o máximo de detalhes possíveis, particularmente estradas, caminhos e outras formas de viajar. Distinção clara do \"atlas do touring\" entre as categorias de estrada. Adequado para uso diurno, noturno e ao ar livre.
+ Estilo de propósito geral. Renderização simplificada e limpa em cidades densamente povoadas. Características principais: curvas de nível, rotas, qualidade de superfície, restrições de acesso, escudos rodoviários, caminhos de renderização de acordo com a escala SAC, características desportivas Whitewater.Abrir página da Wikipédia na InternetA hiperligação será aberta no navegador de Internet.Obtenha uma assinatura do OsmAnd Live para ler artigos da Wikipédia e da Wikivoyage desligado da Internet.
@@ -2312,11 +2312,11 @@
Mostrar notas fechadasMostrar/esconder notas do OSM no mapa.GPX - adequado para exportar para o JOSM ou outros editores do OSM.
- OSC - adequado para exportar para o OpenStreetMap.
+ OSC - adequado para exportar para o OSM.Ficheiro GPXFicheiro OSCSelecione o tipo de ficheiro
- Selecione o tipo de exportação: notas do OSM, POIs ou ambos.
+ Selecione a categoria de exportação: notas do OSM, POIs, ou ambos.Todos os dadosNotas do OSMAbre amanhã às
@@ -2359,9 +2359,9 @@
Marcador %s ativado.Toque num marcador no mapa para movê-lo para a parte superior dos marcadores ativos sem abrir o menu de contexto.\'Um toque\' ativo
- Tomar notas!
+ Faça anotações!Adicione nota de áudio, vídeo ou foto em qualquer ponto do mapa, usando o widget ou o menu de contexto.
- Notas por data
+ Notas do OSM por dataPor dataPor tipoProcurando trilhas com pontos de rota
@@ -2383,7 +2383,7 @@
Mostrar linha direcional desde a sua posição até os locais dos marcadores ativos.Mostrar uma ou duas setas indicando a direção para os marcadores ativos.Escolher como mostrar a distância para os marcadores ativos.
- Escolha o número de indicadores de direção a mostrar.
+ Escolha a quantidade de indicadores de direção:Número de casas decimaisDireitaEsqueda
@@ -2409,7 +2409,7 @@
Rota calculadaIda e voltaTem de adicionar pelo menos um marcador para usar esta função.
- Não foi possível modificar a nota
+ Não foi possível modificar a anotação.Modificar notaModificar anotação do OSMAdicionar cópia do ponto de partida como destino.
@@ -2977,7 +2977,7 @@
Mostrar maisTrilhos mostradosMostrar/ocultar trajetos GPX
- Uma alternância para mostrar ou ocultar trajetos GPX selecionados no mapa.
+ Um botão para mostrar ou ocultar trajetos GPX selecionados no mapa.Ocultar trajetos GPXSem elétricosEvita elétricos
@@ -3053,7 +3053,7 @@
Tipo de navegaçãoTáxiAutocarro de vaivem
- Metrô
+ MetropolitanoCavaloHelicópteroVocê pode adicionar sua própria versão modificada do ficheiro routing.xml em ..osmand/routing
@@ -3084,7 +3084,7 @@
Carro, caminhão, motocicletaMountain bike, ciclomotor, cavaloAndar, caminhar, correr
- Todos os tipos de TP
+ Categorias de transportes públicosNavio, remar, navegarAvião, asa-DeltaGeocodificação
@@ -3134,28 +3134,28 @@
Novo perfilTravouA última execução de OsmAnd falhou. Por favor ajude-nos a melhorar o OsmAnd enviando-nos uma mensagem de erro.
- UFO
- "- Perfis de app: crie o seu perfil personalizado para as suas necessidades, com um ícone e cor personalizados
-\n
+ OVNI
+ - Perfis de app: crie o seu perfil personalizado para as suas necessidades, com um ícone e cor personalizados
+\n
\n - Adaptar predefinições para perfis e velocidades mínimas/máximas
-\n
+\n
\n - Um widget para as coordenadas atuais adicionado
-\n
-\n - Opções para mostrar a bússola no mapa com uma régua de raio adicionados
-\n
-\n - Registo de caminho de fundo corrigido
-\n
-\n - Descarregamento de mapas em segundo plano melhorado
-\n
+\n
+\n - Opções para mostrar a bússola no mapa com uma régua de raio adicionados
+\n
+\n - Registo de caminho de fundo corrigido
+\n
+\n - Descarregamento de mapas em segundo plano melhorado
+\n
\n- Opção \'Ativar ecrã\' retornada
-\n
+\n
\n - A seleção da língua na Wikipedia corrigida
-\n
+\n
\n - Comportamento fixo do botão da bússola durante a navegação
-\n
+\n
\n - Correções de outros bugs
\n
-\n"
+\nTransportador pessoalMonorodaScooter
@@ -3240,7 +3240,7 @@
Aplicar a todos os perfisMensagem de inicializaçãoAnálises
- Mostrar mapa durante a navegação no ecrã de bloqueio.
+ Mostrar mapa no ecrã de bloqueio durante a navegação.Configurações de roteamento no perfil selecionado \"%1$s\".Tempo de despertarUnidades e formatos
@@ -3251,7 +3251,7 @@
Configurar a navegaçãoTema do app, unidades, regiãoConfigurar o perfil
- Os alertas serão mostrados no canto inferior esquerdo durante a navegação.
+ Alertas mostrados no canto inferior esquerdo durante a navegação.Mudar de perfilIdioma e saídaRedefinir para o padrão
@@ -3286,8 +3286,8 @@
Colar caminho para a pasta com dados OsmAndAlterar a pasta de dados OsmAnd\?Mover para o novo destino
- Armazenamento interno, oculto do utilizador e outros apps, exclusivamente acessível ao OsmAnd
- Alterar pasta de armazenamento de dados
+ Armazenamento interno para OsmAnd (oculto aos utilizadores e outras aplicações).
+ Alterar pasta de armazenamentoParque do terrenoTrenóTrenó
@@ -3336,80 +3336,66 @@
Preferir estradas não pavimentadas.Atualizar todos os mapasTem certeza de que deseja atualizar todos os mapas (%1$d)\?
- - Configurações de app e perfil atualizados. Arranjo conveniente de configurações por tipo, com capacidade de personalizar cada perfil
+ - Configurações atualizadas do aplicativo e do perfil: as definições estão agora organizadas por tipo. Cada perfil pode ser personalizado separadamente.
\n
-\n
+\n - Novo diálogo para descarregar mapas sugerindo um mapa para descarregar enquanto navega
\n
-\n - Nova caixa de diálogo de descarregamento de mapas que sugere um mapa para descarregamento durante a navegação
+\n - Correções de temas escuros
\n
-\n
+\n - Vários problemas de roteamento resolvidos ao redor do mundo
\n
-\n - Correções do tema noturno
+\n - Basemap atualizado com uma rede rodoviária mais detalhada
\n
-\n
+\n - Áreas fixas inundadas em todo o mundo
\n
-\n - Poucos problemas de roteamento em todo o mundo corrigidos
+\n - Roteamento do esqui: perfil de elevação e complexidade da rota adicionado aos detalhes da rota
\n
-\n
-\n
-\n - Basemap atualizado com uma rede rodoviária mais detalhada
-\n
-\n
-\n
-\n - Áreas inundadas corrigidas em todo o mundo
-\n
-\n
-\n
-\n - Roteamento de esqui: perfil de altura e complexidade da rota adicionados aos detalhes da rota
-\n
-\n
-\n
-\n - Outras correções de bugs
+\n - Outras correções de erros
\n
\n
- Pode aplicar esta modificação a todos os perfis ou apenas ao atualmente selecionado.
+ Pode aplicar esta modificação a todos ou apenas ao perfil atualmente selecionado.PartilhadoPreferir estradas não pavimentadas
- Preferir estradas não pavimentadas.
- Usado para calcular o tempo de chegada previsto durante o roteiro
+ Preferir estradas não pavimentadas sobre pavimentadas para o roteamento.
+ Estima a hora de chegada de categorias de estradas desconhecidas e limita a velocidade para todas as estradas (pode afetar o roteamento)Branco
- Adicionar novo perfil \'%1$s\'\?
+ Adicionar o novo perfil \'%1$s\'\?Incluir a direçãoGravar direção para cada ponto de pista durante a gravação.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPessoalDescarregando %sGrosso
- Para desertos e outras áreas pouco povoadas. Exibe mais detalhes numa escala de visualização.
- Selecione o ícone de navegação
- Selecione o ícone do mapa
- Depois de tocar em Aplicar, os perfis eliminados serão completamente perdidos.
+ Para desertos e outras áreas pouco povoadas. Mais detalhado.
+ Ícone de posição durante a movimentação
+ Ícone de posição em repouso
+ Tocar em \'Aplicar\' apagará os perfis removidos permanentemente.Perfil principalSelecione a cor
- Não pode excluir perfis OsmAnd padrão, mas pode desativá-los no ecrã anterior, ou movê-los para o fundo.
+ Perfis padrão do OsmAnd não podem ser apagados, mas desativados (na tela anterior) ou classificados na parte inferior.Editar perfis
- O tipo de navegação afeta as regras para cálculos de rotas.
+ O \'Tipo de navegação\' controla como as rotas são calculadas.Aspecto do perfilEdições OSM
- Uma alternância para mostrar ou esconder curvas de nível no mapa.
+ Botão que mostra ou oculta curvas de nível no mapa.Mostrar curvas de nívelOcultar curvas de nívelMostrar/ocultar curvas de nível
- Uma alternância para mostrar ou ocultar sombras de relevo.
+ Um botão para mostrar ou ocultar sombras de relevo.Mostrar sombras de relevoOcultar sombras de relevoMostrar/ocultar sombras de relevo
- Não é possível iniciar o mecanismo de conversão de texto em fala
+ Não é possível iniciar o mecanismo de conversão de texto em fala.Simule a sua posição usando um caminho GPX gravado.Perfil de exportaçãoPerfil OsmAnd: %1$sO perfil \'%1$s\' já existe. Sobregravar\?Não podia exportar o perfil.
- Importação de perfis
- Para importar um perfil, selecione o seu ficheiro no aparelho e abra-o com OsmAnd.
+ Importar perfil
+ Adicione um perfil abrindo o seu ficheiro com OsmAnd.%1$s erro de importação: %2$s
- %1$s importados com sucesso.
+ %1$s importado(s).Trocar %1$s com %2$sPonto de partidaCaminho gravado
@@ -3420,21 +3406,236 @@
Limpar %1$s\?Diálogo de descarregar mapasDiálogos e notificações
- Controlar popups, diálogos e notificações que o OsmAnd mostra durante a utilização.
+ Controlar popups, diálogos e notificações.Redes de nósMapas sugeridos
- Esses mapas são necessários para usar com o plugin
+ Esses mapas são necessários para o plugin.Perfis adicionados
- O plugin adiciona um perfil novo ao OsmAnd
+ Perfis adicionados pelo pluginDesligarNovo plugin adicionadoJuntar segmentos
- Escolha o ícone, cor e nome
+ Ícone, cor e nomeEditar lista de perfisPerfil selecionadoTocar em %1$s descartará todas as suas alterações.
- Todas as configurações de perfil serão redefinidas para o estado após a instalação.
- Redefinir todas as configurações de perfil para o padrão\?
+ Redefinir todas as configurações de perfil para as predefinicões de instalação.
+ Redefinir todas as configurações de perfil\?%1$s %2$s%1$s: %2$s
+ OSM
+ Mostrar apenas à noite
+ Avaliar
+ Terreno
+ Mapa de sombras de relevo usando sombras escuras para mostrar pistas, picos e planícies.
+ Pistas são visualizações coloridas no terreno.
+ Defina os níveis de zoom mínimos e máximos em que a camada será exibida.
+ Mapas adicionais são necessários para ver sombras de relevo no mapa.
+ Mapas adicionais são necessários para ver Pistas no mapa.
+ Pode ler mais sobre Inclinações em %1$s.
+ Transparência
+ Níveis de zoom
+ Legenda
+ Ativar ver o mapa de colinas ou encostas. Pode ler mais sobre este tipo de mapa no nosso site
+ Sombras de relevo
+ %1$s de %2$s
+ Pistas
+ Mostrar/ocultar terreno
+ Ocultar terreno
+ Mostrar terreno
+ Um botão para mostrar ou esconder a camada do terreno no mapa.
+ Apagar descrição
+ Adicionar descrição
+ Selecione o grupo
+ Selecione a forma
+ Círculo
+ Paralelograma
+ Mín
+ Quadrado
+ Recalcular rota em caso de desvio
+ Selecione a distância após a qual o percurso será recalculado.
+ A rota será recalculada se a distância da rota até o local atual for maior que o valor selecionado.
+ Todos os dados do %1$s são importados. Pode usar os botões abaixo para abrir a parte necessária da aplicação para gerá-lo.
+ Importação concluída
+ Itens adicionados
+ OsmAnd verifica %1$s para duplicatas com itens existentes na aplicação.
+\n
+\nPode levar algum tempo.
+ Importando
+ Importando dados de %1$s
+ Tem certeza de que deseja limpar os dados gravados\?
+ Não foi possível fazer o backup do perfil.
+ Gravando novo perfil
+ Restaurar todas as configurações de perfil\?
+ Todas as configurações de perfil serão restauradas ao seu estado original após a criação/importação deste perfil.
+ Importar ficheiro de renderização
+ Estilo de renderização
+ Selecione os dados a serem importados.
+ Alguns itens já existem
+ OsmAnd já possui elementos com os mesmos nomes dos importados.
+\n
+\nSelecione uma ação.
+ Os itens importados serão adicionados com prefixo
+ Manter os dois
+ Substituir tudo
+ Os itens atuais serão substituídos pelos itens do ficheiro
+ Listado %1$s já existe no OsmAnd.
+ Perfis
+ Ações rápidas
+ Nada selecionado
+ Tipos de POI
+ Preparando
+ Ângulo mínimo entre minha localização e rota
+ Segmento reto adicional entre minha localização e a rota calculada será exibida até que a rota seja recalculada
+ Ângulo
+ Ângulo: %s°
+ Perfil personalizado
+ A rota será recalculada se a distância até à rota for maior que o parâmetro especificado
+ Distância mínima para recalcular a rota
+ Desativar recálculo
+ App predefinido (%s)
+ Antártida
+ Pode selecionar dados adicionais para exportar junto com o perfil.
+ O perfil importado contém dados adicionais. Clique em Importar para importar apenas dados do perfil ou selecione dados adicionais a serem importados.
+ Incluir dados adicionais
+ Roteamento
+ %1$s — %2$s — %3$s
+ Menu
+ Este plugin é uma aplicação separada, precisará removê-lo separadamente se não planeja usá-lo mais.
+\n
+\nO plug-in permanecerá no aparelho após a remoção do OsmAnd.
+ Plugin desativado
+ Abrir configurações
+ Forneça um nome para o perfil
+ Classificar por categoria
+ Direto ao ponto
+ Copiar coordenadas
+ • Perfis: agora pode alterar a ordem, definir o ícone para o mapa, alterar todas as configurações dos perfis básicos e restaurá-los para as predefinições
+\n
+\n • Número de saída adicionado na navegação
+\n
+\n • Configurações de plug-in reformuladas
+\n
+\n • Ecrã Configurações retrabalhadas para acesso rápido a todos os perfis
+\n
+\n • Opção adicionada para copiar configurações de outro perfil
+\n
+\n • Adicionado capacidade de alterar um pedido ou ocultar categorias de PI na Pesquisa
+\n
+\n • Ícones de POI corretamente alinhados no mapa
+\n
+\n • Dados do pôr-do-sol/nascer do sol adicionados para configurar o mapa
+\n
+\n • Adicionado ícones Casa/Trabalho no mapa
+\n
+\n • Adicionado suporte para descrição de múltiplas linhas em Configurações
+\n
+\n • Adicionado transliteração correta no mapa do Japão
+\n
+\n • Adicionado mapa da Antártica
+\n
+\n
+ Limpar dados gravados
+ Desativado por predefinição, se OsmAnd estiver sendo executado em primeiro plano, o ecrã não atingirá o tempo limite.
+\n
+\nSe ativado, o OsmAnd usará as configurações de tempo limite do sistema.
+ Usar tempo limite do ecrã do sistema
+ Modo de acessibilidade desativado no seu sistema.
+ Nascer do sol em %1$s
+ Pôr do sol em %1$s
+ %1$s/%2$s
+ Todas as configurações de perfil restauradas para o estado predefinido.
+ Todas as configurações de plug-in restauradas para o estado predefinido.
+ Adicionar categoria personalizada
+ Disponível
+ Redefinir como predifinição redefinirá a ordem de classificação para o estado predefinido após a instalação.
+ Pode adicionar uma nova categoria personalizada selecionando uma ou algumas categorias necessárias.
+ Altere a ordem de classificação da lista, oculte categorias desnecessárias. Pode importar ou exportar todas as alterações com perfis.
+ Reorganizar categorias
+ Autorização bem sucedida
+ Som do obturador da câmera
+ Usar app do sistema
+ Divisão do gravador
+ Redefinir as configurações do plug-in para a predefinição
+ Deslocamento mínimo
+ Precisão mínima
+ Velocidade mínima
+ Notificação
+ Especificar o endereço web com a sintaxe de parâmetros: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.
+ Endereço da Web
+ Intervalo de rastreamento
+ Buffer de tempo
+ Recomendação: Uma configuração de 5 metros pode funcionar bem se não precisar capturar detalhes mais refinados do que isso e não desejar capturar dados explicitamente enquanto estiver em repouso.
+ Efeitos colaterais: Períodos em repouso não são registados em absoluto ou em apenas um ponto cada. Pequenos movimentos (do mundo real) (por exemplo, de lado, para marcar um possível desvio na sua viagem) podem ser filtrados. Seu ficheiro contém menos informações para pós-processamento e possui estatísticas piores ao filtrar pontos obviamente redundantes no tempo de gravação, mantendo potencialmente artefatos causados por má recepção ou efeitos de chipset GPS.
+ Esse filtro evita que pontos duplicados sejam gravados onde muito pouco movimento real possa ter ocorrido, cria uma aparência espacial mais agradável das faixas que não são processadas posteriormente.
+ Observação: se o GPS estava desligado imediatamente antes de uma gravação, o primeiro ponto medido pode ter uma precisão diminuída; portanto, no nosso código, podemos esperar um segundo antes da gravação de um ponto (ou gravar o melhor de três pontos consecutivos, etc.), mas isso ainda não foi implementado.
+ Recomendação: É difícil prever o que será gravado e o que não será, talvez seja melhor desativar esse filtro.
+ Efeito colateral: como resultado da filtragem por precisão, os pontos podem estar totalmente ausentes por ex. debaixo de pontes, sob árvores, entre prédios altos ou com certas condições climáticas.
+ Isso registrará apenas os pontos medidos com uma indicação de precisão mínima (em metros/pés, conforme relatado pelo Android para o seu chipset). A precisão refere-se à dispersão de medidas repetidas e não está diretamente relacionada à precisão, que define que perto suas medidas estão da sua posição real.
+ Observação: verificação de velocidade > 0: A maioria dos chipsets GPS relata uma velocidade apenas se o algoritmo determinar que esteja em movimento e nenhum se não estiver. Portanto, o uso da configuração > 0 neste filtro usa a deteção de movimento do chipset GPS. Mas mesmo que não seja filtrado no momento da gravação, ainda usamos esse recurso na nossa análise GPX para determinar a Distância corrigida, ou seja, o valor exibido nesse campo é a distância registrada enquanto estiver em movimento.
+ Recomendação: Tente usar a deteção de movimento através do filtro de deslocamento mínimo de registro (B) primeiro, pode produzir melhores resultados e você perderá menos dados. Se suas faixas permanecerem barulhentas em baixas velocidades, tente valores diferentes de zero. Observe que algumas medições podem não relatar nenhuma velocidade (alguns métodos baseados em rede); nesse caso, não gravaria nada.
+ Efeito colateral: sua faixa estará ausente de todas as seções em que o critério de velocidade mínima não foi atendido (por exemplo, onde empurra sua bicicleta por uma colina íngreme). Além disso, não haverá informações sobre períodos de descanso, como intervalos. Isso afeta qualquer análise ou pós-processamento, como ao tentar determinar a duração total da sua viagem, o tempo em movimento ou a sua velocidade média.
+ Este é um filtro de corte de baixa velocidade para não registar pontos abaixo de uma determinada velocidade. Isso pode fazer com que as faixas gravadas pareçam mais suaves quando visualizadas no mapa.
+ É necessária permissão para usar esta opção.
+ Não foi possível analisar a intenção geográfica \'%s\'.
+ Verifique e compartilhe logs detalhados da aplicação
+ Ícone mostrado em repouso.
+ Ícone mostrado ao navegar ou mover.
+ Pode ver todos os erros de OSM do editor carregado em %1$s. Os pontos enviados não são exibidos no OsmAnd.
+ Edição OSM
+ Essas configurações aplicam-se a todos os perfis.
+ Utilizador e palavra-passe
+ Anunciar
+ Recálculo da rota
+ Notas fotográficas
+ Notas de vídeo
+ Pode encontrar todas as suas anotações em %1$s.
+ Pode encontrar todas as suas faixas gravadas em %1$ss ou na pasta OsmAnd usando o gerador de ficheiros.
+ Precisão de registo
+ Rastreamento online
+ Permite compartilhar a localização atual usando a gravação de viagem.
+ Escolha ícone, cor e nome
+ Entrada, palavra-passe, edição offline
+ Tamanho da imagem, qualidade de áudio e vídeo
+ Navegação, precisão de registo
+ Importar perfil
+ Importar ficheiro de roteamento
+ Importar do ficheiro
+ Selecione um ficheiro de extensão %1$s suportado.
+ Nenhuma regra de roteamento em \'%1$s\'. Por favor, escolha outro ficheiro.
+ Octógono
+ Substitua outro ponto por este
+ Passeios de esqui
+ Moto de neve
+ Plug-in OsmAnd personalizado
+ Alterações aplicadas ao perfil %1$s.
+ Não foi possível ler %1$s.
+ Não foi possível escrever %1$s.
+ Não foi possível importar %1$s.
+ Personalize a quantidade de itens na Gaveta, Configurar mapa e menu de contexto.
+\n
+\nPode desativar plugins não utilizados para ocultar todos os seus controles da aplicação %1$s.
+ Itens da gaveta, menu de contexto
+ Personalização da interface do utilizador
+ Gaveta
+ Ações do menu de contexto
+ Reordene ou oculte itens do %1$s.
+ Divisor
+ Elementos abaixo deste ponto separados por um divisor.
+ Ocultado
+ Esses itens estão ocultos no menu, mas as opções ou plug-ins representados ainda estão funcionando.
+ As configurações serão redefinidas para o estado original após ocultar.
+ As ações principais contêm apenas 4 botões.
+ Principais ações
+ Pode acessar essas ações tocando no botão \"Ações\".
+ Pode mover itens somente dentro desta categoria.
+ Plugin do programador
+ Itens
+ Selecionar ficheiro de faixa
+ Idiomas
+ Idioma
+ Todos os idiomas
+ Alguns artigos da Wikipédia podem não estar disponíveis em seu nome. Selecione os idiomas nos quais os artigos da Wikipédia aparecerão no mapa.
+\nPoderá alternar entre todos os idiomas disponíveis enquanto lê o artigo.
+ Mapas adicionais são necessários para visualizar os POIs da Wikipédia no mapa.
\ No newline at end of file
diff --git a/OsmAnd/res/values-ro/strings.xml b/OsmAnd/res/values-ro/strings.xml
index 81f34c5594..67c7894459 100644
--- a/OsmAnd/res/values-ro/strings.xml
+++ b/OsmAnd/res/values-ro/strings.xml
@@ -2252,7 +2252,7 @@
Căutați stradaSelectați mai întâi orașulRestaurați
- "Acordați OsmAnd acces la locație pentru a continua."
+ Acordați OsmAnd acces la locație pentru a continua.Mulțumim pentru părerea dvsCreșteți raza de căutare la %1$sLume
@@ -2341,7 +2341,7 @@
Există deja un profil cu un astfel de numeNu puteți șterge profile de bază OsmAndSalvați modificările
- "Trebuie să salvați modificările profilului înainte de a continua"
+ Trebuie să salvați modificările profilului înainte de a continuaȘtergeți profilulSigur doriți să ștergeți profilul %sSelectați profilul cu care să începeți
@@ -2400,7 +2400,7 @@
AlbPunct de plecareModifica stilul implicit pentru a crește contrastul dintre drumurile pietonale și biciclete. Utilizează culori Mapnik.
- "Trimite o copie a ecranului al acestei notificări către suport@osmand.net"
+ Trimite o copie a ecranului al acestei notificări către suport@osmand.netAi adăugat puncte%1$s. Scrie un nume de fișier și apăsați \"Salvează\".Cererea de căutare va fi trimisă la: \"%1$s\", împreună cu locația dumneavoastră.
\nInformaţiile personale nu sunt colectate, doar datele de căutare necesare pentru a îmbunătăţi căutarea.
@@ -2542,15 +2542,15 @@
BlocatUltima data OsnAnd s-a blocat. Varog săAjutati OsmAnd prin a trimite eroarea.OZN
- "• Creaza profile: creează un profil personalizat pentru nevoile tale, cu o pictogramă și o culoare personalizate
+ • Creaza profile: creează un profil personalizat pentru nevoile tale, cu o pictogramă și o culoare personalizate
\n
\n • Personalizați acum orice profil implicit și viteze min / max
\n
\n • A fost adăugat un widget pentru coordonatele actuale
\n
-\n • Opțiuni adăugate pentru a afișa busola și o riglă pe hartă
+\n • Opțiuni adăugate pentru a afișa busola și o riglă pe hartă
\n
-\n • Remediat jurnalul de cale in fundal
+\n • Remediat jurnalul de cale in fundal
\n
\n • Descărcări de hărți de fundal îmbunătățite
\n
@@ -2562,7 +2562,7 @@
\n
\n • Alte bug-uri
\n
-\n"
+\nTransportator personalMonoroatăScuter
@@ -2654,7 +2654,7 @@
Includeți titluSalvați poziția fiecarui punct al traseului în timpul înregistrării.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonalDescarcarea %sGros
diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml
index 66a046a938..f50faecd7a 100644
--- a/OsmAnd/res/values-ru/phrases.xml
+++ b/OsmAnd/res/values-ru/phrases.xml
@@ -653,8 +653,8 @@
ОриентирМаяк (навигационный ориентир)Причал
- Уведомление
- Радиостанция
+ Уведомление (навигационный ориентир)
+ Радиостанция (навигационный ориентир)Сигнальная станцияСигнал опасностиЛодочная станция
@@ -2815,8 +2815,8 @@
Е10Е20E85
- Бакен с маяком
- Плавучий маяк
+ Бакен с маяком (навигационный ориентир)
+ Плавучий маяк (навигационный ориентир)СпецииТовары для рукоделияЗарядка: есть
@@ -3267,8 +3267,8 @@
Объединяющая Церковь в АвстралииРеформистский иудаизмВодяной знак: насыпь
- Радиолокационный транспондер (навигационный знак)
- Топовая фигура (навигационный знак)
+ Радиолокационный транспондер (навигационный ориентир)
+ Топовая фигура (навигационный ориентир)Габаритная высотаГабаритная ширинаYouTube
@@ -3511,7 +3511,7 @@
Взрывной залп: первая детонация залпового тестаМетроМагазин каннабиса
- Type 1
+ Тип 1CHAdeMOTesla SuperchargerTesla Roadster
@@ -3659,4 +3659,81 @@
Доступ для трейлеровТипСтатус
+ Да
+ Да
+ Да
+ Да
+ Выделенный
+ Да
+ Доступ для такси: нет
+ Доступ для такси: выделенный
+ Доступ для такси: да
+ Доступ на лыжах: нет
+ Доступ на лыжах: да
+ Доступ для снегохода: нет
+ Доступ для снегохода: частный
+ Доступ для туристического автобуса: выделенный
+ Доступ для туристического автобуса: нет
+ Доступ для туристического автобуса: да
+ Доступ для автобуса: нет
+ Доступ для каравана: нет
+ Доступ для автодома: нет
+ Доступ для трейлера: нет
+ Ледопад
+ Скалолазание
+ Тип карты: топоскоп
+ Плата за парковку
+ Искусственное покрытие
+ УКВ-канал
+ Шаурма
+ Сухой баррель
+ Габаритная высота (открытая)
+ Габаритная высота (закрытая)
+ Видео
+ SMS
+ Пастель
+ Выделенный
+ Да
+ Выделенный
+ Да
+ Доставка
+ Выделенный
+ Выделенный
+ Да
+ Выделенный
+ Да
+ Выделенный
+ Выделенный
+ Выделенный
+ Да
+ Выделенный
+ Выделенный
+ Да
+ Выделенный
+ Выделенный
+ Доступ для инвалидов: нет
+ Доступ для сельскохозяйственных машин: нет
+ Доступ для сельскохозяйственных машин: да
+ Пейнтбол
+ Ледник, спускающийся в море
+ Выводной ледник
+ Местонахождение: в киоске
+ Вино: розничная продажа
+ Центр подводного плавания с аквалангом
+ Охотничья база
+ Номер ссылки на трассу
+ Боулинг-центр
+ Нет
+ Да
+ Нет
+ Да
+ Только если разрешена ходьба
+ Сеть заправки питьевой воды
+ Заправка питьевой водой: нет
+ Заправка питьевой водой: да
+ Тип 3
+ Тип 2 комбинированный
+ Тип 2
+ Тип 1 комбинированный
+ Доступ для автодомов
\ No newline at end of file
diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml
index 8af8abe06c..8593da7eb2 100644
--- a/OsmAnd/res/values-ru/strings.xml
+++ b/OsmAnd/res/values-ru/strings.xml
@@ -542,7 +542,7 @@
Выберите слой наложения поверх основной картыКарта уже установлена, настройки будут обновлены.Выберите (тайловые) карты для установки или обновления.
- Требуется Интернет соединение для данной операции, но оно недоступно.
+ Для данной операции требуется подключение к интернету, но оно недоступно.Загрузить еще…Минимальный масштаб для использования векторных карт.Минимальный уровень векторных карт
@@ -1582,7 +1582,7 @@
Плагин активирует функции для записи и сохранения ваших треков вручную нажатием на виджет записи GPX на карте, или также автоматически записывает все ваши маршруты навигации в файл GPX.
\n
\nЗаписанными треками можно поделиться с вашими друзьями или использовать их для вклада в OSM. Спортсмены могут использовать записанные треки для контроля за тренировками. Некоторый базовый анализ треков может быть выполнен непосредственно в OsmAnd, например, время прохождения круга, средняя скорость и т.д., треки, конечно, позднее также могут быть проанализированы в специальных инструментах анализа сторонних производителей.
- string name=\"lat_lon_pattern\">Широта: %1$.5f Долгота: %2$.5f</string
+ Онлайн OSM классификация карт с изображениями.Всегда спрашиватьУкажите интервал регистрации во время записи трека (включается через виджет записи GPX на карте).Общий интервал записи трека
@@ -2237,7 +2237,7 @@
Свободное местоОпределение местоположения…Требуется загрузить карты
- Соединение с Интернетом отсутствует
+ Соединение с интернетом отсутствуетНе удалось определить местоположениеOsmAnd определит ваше местоположение и предложит загрузить карты для этой области.Поиск карт…
@@ -3354,7 +3354,7 @@
Предлагаемые картыОбъединить сегменты%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sДля пустынь и других малонаселенных районов. Более детально.Положение значка при движенииПоложение значка в состоянии покоя
@@ -3565,4 +3565,70 @@
Все данные из %1$s импортированы, вы можете использовать кнопки ниже, чтобы открыть соответствующий раздел приложения для управления ими.Маршрут будет пересчитан, если расстояние от маршрута до текущего местоположения больше выбранного значения.Выберите расстояние, после которого маршрут будет пересчитан.
+ Легенда
+ Невозможно разобрать геоссылку \"%s\".
+ Для отображения затенения рельефа на карте необходимы дополнительные карты.
+ Мин.
+ Отображение затенения рельефа или склонов. Подробнее об этих типах карт вы можете прочитать на нашем сайте.
+ Прозрачность
+ Уровни масштаба
+ Пересчитывать маршрут в случае отклонения
+ %1$s из %2$s
+ Настройка минимального и максимального уровней масштабирования, при которых слой будет отображаться.
+ Показать/скрыть рельеф
+ Кнопка для отображения или скрытия слоя рельефа местности на карте.
+ Показать рельеф
+ Скрыть рельеф
+ Рельеф
+ Лыжный туризм
+ Снегоход
+ Пользовательский плагин
+ Удалить описание
+ Добавить описание
+ Выберите группу
+ Квадрат
+ Выберите фигуру
+ Круг
+ Восьмиугольник
+ Сообщение о доступности
+ Примечание: проверка скорости > 0: большинство модулей GPS сообщают значение скорости только в том случае, если алгоритм определяет, что вы движетесь, и ничего, если вы не перемещаетесь. Следовательно, использование параметра > 0 в этом фильтре в некотором смысле приводит к обнаружению факта перемещения модуля GPS. Но даже если мы не производим данную фильтрацию во время записи, то все равно эта функция используется при анализе GPX для определения скорректированного расстояния, то есть значение, отображаемое в этом поле, является расстоянием, записанным во время движения.
+ Разделение записи
+ Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.
+ В этом случае будут записываться только точки, измеренные с минимальной точностью (в метрах/футах согласно настройкам устройства). Точность относится к разбросу повторяющихся измерений и не связана непосредственно с точностью, которая определяет, насколько ваши измерения близки к вашему истинному положению.
+ Рекомендация: попробуйте сначала воспользоваться детектором движения через фильтр минимального смещения (B), что может дать лучшие результаты и вы потеряете меньше данных. Если треки остаются шумными на низких скоростях, попробуйте использовать ненулевые значения. Обратите внимание, что некоторые измерения могут вообще не указывать значения скорости (некоторые сетевые методы), и в этом случае ничего не будет записываться.
+ Склон выделяется цветовой визуализацией на рельефе местности.
+ Подробнее о склонах можно прочитать в %1$s.
+ Затенение рельефа
+ Затенение рельефа использует темные оттенки для отображения склонов, вершин и низменностей.
+ Для отображения склонов на карте необходимы дополнительные карты.
+ Склоны
+ Заменить другую точку на эту
+ Изменения применены к профилю %1$s.
+ Невозможно прочитать %1$s.
+ Невозможно записать %1$s.
+ Невозможно импортировать %1$s.
+ Выберите файл трека
+ Языки
+ Язык
+ Все языки
+ Для просмотра POI Википедии на карте необходимы дополнительные карты.
+ Настройка количества элементов в разделах \"Панель\", \"Настройка карты\" и контекстном меню.
+\n
+\nМожно отключить неиспользуемые плагины, чтобы скрыть их элементы управления из приложения %1$s.
+ Элементы панели, контекстное меню
+ Панель
+ Элементы ниже разделенные делителем.
+ Элементы
+ Настройка интерфейса
+ Действия контекстного меню
+ Изменить порядок или скрыть элементы из %1$s.
+ Разделитель
+ Скрыто
+ Эти элементы скрыты из меню, но представляемые ими функции или плагины продолжают работать.
+ Настройки будут сброшены в исходное состояние после скрытия.
+ Основные действия содержат только 4 кнопки.
+ Основные действия
+ Доступ к этим действиям происходит нажатием кнопки \"Действия\".
+ Перемещать элементы можно только внутри данной категории.
+ Плагин для разработчиков
\ No newline at end of file
diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml
index d672156ebf..5120a4ecde 100644
--- a/OsmAnd/res/values-sc/strings.xml
+++ b/OsmAnd/res/values-sc/strings.xml
@@ -158,7 +158,7 @@
A:Pro:Dae:
- Predefinidu
+ Esplora sa mapaProfilu predefiniduIssèbera unu profilu de impreu cun impostatziones personalizadas pro sa mapa e sa navigatzione.Destinatzione %1$s
@@ -1239,7 +1239,7 @@
Amenidades prus a curtzuMàchinaBitzicleta
- A pede
+ A peeIn tzentruIn bassuInserta sa latitùdine e sa longitùdine in su formadu ischertadu (G - grados, M - minutos, S - segundos)
@@ -3404,7 +3404,7 @@ Pro praghere iscrie su còdighe intreuInclue sa diretzioneSarva sa diretzione pro cada puntu cando ses registrende.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonaleIscarrighende %sGrussa
@@ -3580,4 +3580,62 @@ Pro praghere iscrie su còdighe intreuS\'àndala at a torrare a èssere carculada si sa distàntzia dae s\'àndala a sa positzione de su momentu at a èssere prus manna de su valore ischertadu.Ischerta sa distàntzia a pustis de sa cale s\'àndala at a torrare a èssere carculada.Torra a carculare s\'àndala in casu de deviatzione
+ Mapa de sas umbraduras de sos rilevos chi impreat umbras iscuras pro ammustrare pendèntzias, cùcuros e pranos.
+ Terrinu
+ Sa pista benit ammustrada cun colores in su terrinu.
+ Imposta sos livellos de ismanniamentu mìnimu e màssimu pro ammustrare s\'istratu.
+ Pro bìdere sas umbraduras de sos rilievos in sa mapa b\'at bisòngiu de mapas additzionales.
+ Pro bìdere sas pistas in sa mapa b\'at bisòngiu de mapas additzionales.
+ Podes lèghere àteras informatziones a pitzu de sas pistas in %1$s.
+ Trasparèntzia
+ Livellos de ismanniada
+ Legenda
+ Abìlita·lu pro ammustrare sas mapas de sas umbraduras de sos rilievos o de sas pistas. Podes lèghere àteras informatziones a pitzu de custas castas de mapas in su situ nostru
+ Umbraduras de sos rilievos
+ %1$s de %2$s
+ Pistas
+ Ammustra/cua su terrinu
+ Cua su terrinu
+ Ammustra su terrinu
+ Unu butone pro ammustrare o cuare s\'istratu de su terrinu in sa mapa.
+ Iscantzella sa descritzione
+ Annanghe una descritzione
+ Ischerta su grupu
+ Ischerta sa forma
+ Tzìrculu
+ Otàgonu
+ Cuadradu
+ Mìn
+ Remplasa un\'àteru puntu cun custu
+ Iscì-alpinismu
+ Motoislita
+ Estensione de OsmAnd personalizada
+ Modìficas aplicadas a su profilu %1$s.
+ Leghidura de %1$s fallida.
+ Iscritura de %1$s fallida.
+ Importatzione de %1$s fallida.
+ Ischerta su documentu de sa rasta
+ Limbas
+ Limba
+ Totu sas limbas
+ Pro bìdere sos PDI de Wikipedia in sa mapa b\'at bisòngiu de mapas agiuntivas.
+ Personaliza sa cantidade de elementos in su Calàssiu, cunfigura sa mapa e su menù de cuntestu.
+\n
+\nPodes disabilitare sas estensiones chi no impreas, pro cuare totu sos controllos issoro dae s\'aplicatzione %1$s.
+ Elementos de su calàssiu, menù de cuntestu
+ Personalizatzione de s\'interfache de s\'impreadore
+ Calàssiu
+ Atziones de su menù de cuntestu
+ Torra a ordinare o cua elementos dae su %1$s.
+ Separadore
+ Elementos in suta de custu puntu iscrobados dae unu separadore.
+ Cuadu
+ Custos elementos sunt cuados dae su menù, ma sas optziones o sas estensiones rapresentadas ant a sighire a funtzionare.
+ Sas impostatziones ant a torrare a sos valores predefinidos a pustis de sa cuadura.
+ Sas atziones printzipales cuntenent 4 butones ebbia.
+ Atziones printzipales
+ Podes atzèdere a custas atziones incarchende su butone \"Atziones\".
+ Podes mòere elementos in intro de custa categoria ebbia.
+ Estensione pro sos isvilupadores
+ Elementos
\ No newline at end of file
diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml
index dec54e265e..c95045acee 100644
--- a/OsmAnd/res/values-sk/phrases.xml
+++ b/OsmAnd/res/values-sk/phrases.xml
@@ -345,8 +345,8 @@
Internetové pripojenie: službaKláštorHistorický kláštor
- Božie muky
- Malá kaplnka pri ceste
+ Božie muky/Náboženský prícestný kríž
+ Náboženská prícestná schránkaInformácieHodinyCestovná kancelária
@@ -2898,7 +2898,7 @@
KoneCicavceRyby
- Značenie trasy
+ Turistická/trasová značkaTyp pohyblivého mostu: otočnýTyp pohyblivého mostu: zdvíhacíTyp pohyblivého mostu: padací
@@ -3273,7 +3273,7 @@
MaronitskýMahájanaZamrznutí
- Turistická značka
+ Turistická/trasová značka
@@ -3552,4 +3552,6 @@
NiePoľovnícka základňaPotápačské centrum
+ Video
+ SMS
\ No newline at end of file
diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml
index 39408e8766..42eac3f419 100644
--- a/OsmAnd/res/values-sk/strings.xml
+++ b/OsmAnd/res/values-sk/strings.xml
@@ -296,7 +296,7 @@
Upraviť priehľadnosť prekrývacej mapy.Priehľadnosť prekrývacej mapyUpraviť priehľadnosť základnej mapy.
- Priehľadnosť mapy
+ Priehľadnosť základnej mapyZadajte priehľadnosť (0 - priehľadný, 255 - nepriehľadný)Podkladová mapa…Podkladová mapa
@@ -650,7 +650,7 @@
Vybrať oblasť zo zoznamuVybrať pretínajúcu ulicuNajbližšie body záujmu
- Štandardný
+ Prehliadať mapuRiadenie vozidlaJazda na bicykliChôdza
@@ -3392,7 +3392,7 @@ Zodpovedá oblasti: %1$s x %2$s
Pridať nadpisPridať nadpis ku každému bodu trasy pri zázname.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sOsobnéSťahujem %sHrubé
@@ -3595,4 +3595,39 @@ Zodpovedá oblasti: %1$s x %2$s
KosoštvorecŠtvorecMin
+ Osemholník
+ Lyžiarske okruhy
+ Snežný skúter
+ Vlastný modul pre OsmAnd
+ Nahradiť iný bod týmto
+ Zmeny boli použité na profil %1$s.
+ Nepodarilo sa prečítať %1$s.
+ Nepodarilo sa zapísať %1$s.
+ Nepodarilo sa importovať %1$s.
+ Zvoľte súbor stopy
+ Jazyky
+ Jazyk
+ Všetky jazyky
+ Niektoré články Wikipedia nemusia byť dostupné vo vašom jazyku. Zvoľte jazyky, v ktorých sa články Wikipedia budú zobrazovať na mape.
+\nPri čítaní článku budete môcť prepínať medzi všetkými dostupnými jazykmi.
+ Pre zobrazenie bodov Wikipedie na mape sú potrebné ďalšie mapy.
+ Upraviť počet položiek v úvodnom paneli, nastaviť mapu a kontextové menu.
+\n
+\nMôžete vypnúť nepoužívané moduly, aby sa skryli ich ovládacie prvky z aplikácie %1$s.
+ Položky v úvodnom paneli a kontextovom menu
+ Prispôsobenie používateľského rozhrania
+ Úvodný panel
+ Akcie kontextového menu
+ Preusporiadajte alebo skryte položky z %1$s.
+ Rozdeľovač
+ Položky pod týmto bodom sú oddelené rozdeľovačom.
+ Skryté
+ Tieto položky sú skryté z menu, ale ich možnosti a moduly sú stále funkčné.
+ Po skrytí sa nastavenia resetujú do pôvodného stavu.
+ Hlavné akcie sú obmedzené na 4 tlačidlá.
+ Hlavné akcie
+ K akciám sa môžete pristúpiť stlačením tlačidla \"Akcie\".
+ Môžete presúvať položky len v rámci tejto kategórie.
+ Doplnok pre vývojárov
+ Položky
\ No newline at end of file
diff --git a/OsmAnd/res/values-sl/strings.xml b/OsmAnd/res/values-sl/strings.xml
index 508ec9d421..e06ef3099b 100644
--- a/OsmAnd/res/values-sl/strings.xml
+++ b/OsmAnd/res/values-sl/strings.xml
@@ -3275,7 +3275,7 @@ Koda predstavlja območje: %1$s x %2$s
Vključi glavoShrani glavo k vsaki točki sledi med beleženjem.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sOsebnoPoteka prejemanje %sDebelo
diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml
index 27c8dcf23e..c7a830f3f8 100644
--- a/OsmAnd/res/values-sr/phrases.xml
+++ b/OsmAnd/res/values-sr/phrases.xml
@@ -2562,7 +2562,7 @@
Приступ коњем: шумскиПриступ за пешаке: даПриступ за пешаке: приватни
- "Приступ за пешаке: не"
+ Приступ за пешаке: неПриступ за пешаке: само до одредиштаПриступ за пешаке: одобренПриступ за пешаке: за муштерије
diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml
index 6a08f1cd88..2f2a240c0e 100644
--- a/OsmAnd/res/values-sr/strings.xml
+++ b/OsmAnd/res/values-sr/strings.xml
@@ -3402,7 +3402,7 @@
Укључи заглављеСачувај заглавље свакој тачки праћења приликом снимања.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sЛичниПреузимам %sДебело
@@ -3566,4 +3566,25 @@
Поврати све поставке профила\?Чувам нови профилНе могу да направим резервну копију профила.
+ Прикажи/сакриј терен
+ Сакриј терен
+ Прикажи терен
+ Дугме да прикаже или сакрите слој терена на карти.
+ Обриши опис
+ Додај опис
+ Одаберите групу
+ Одаберите облик
+ Круг
+ Октагон
+ Квадрат
+ Мин
+ Замени другу тачку са овом
+ Сноумобил
+ Произвољни OsmAnd додатак
+ Не могу да читам %1$s.
+ Не могу да увезем %1$s.
+ Не могу да пишем %1$s.
+ Језици
+ Језик
+ Сви језици
\ No newline at end of file
diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml
index e4f5c3a41d..fc8bf50103 100644
--- a/OsmAnd/res/values-sv/strings.xml
+++ b/OsmAnd/res/values-sv/strings.xml
@@ -2920,4 +2920,19 @@ Vänligen tillhandahåll fullständig kod
Sida vid sida%1$d filer kopierades (%2$s).Växla start och mål
+ Du kan bara flytta objekt inom den här kategorin.
+ Utvecklar-plugin
+ Ersätt en annan punkt med den här
+ Skid-touring
+ Snöskoter
+ Anpassad OsmAnd-plugin
+ Objekt
+ Ändringar tillämpas på %1$s profil.
+ Kunde inte läsa %1$s.
+ Kunde inte skriva till %1$s.
+ Kunde inte importera %1$s.
+ Välj spårfil
+ Språk
+ Språk
+ Alla språk
\ No newline at end of file
diff --git a/OsmAnd/res/values-te/strings.xml b/OsmAnd/res/values-te/strings.xml
index 2dd06451f6..1eff111193 100644
--- a/OsmAnd/res/values-te/strings.xml
+++ b/OsmAnd/res/values-te/strings.xml
@@ -39,7 +39,7 @@
తాత్కాలిక హడ్డులు ఎంచుకోతాత్కాలిక హద్దులు ఎన్నుకోఫైల్ నుండి దిగుమతి చేయండి
- "రూటింగ్ ఫైలు దిగుమతి చేయండి"
+ రూటింగ్ ఫైలు దిగుమతి చేయండిప్రొఫైల్ ను దిగుమతి చేయండిచిత్ర పరిమాణం, ఆడియో మరియు వీడియో నాణ్యతలాగిన్, పాస్వర్డ్, ఆఫ్లైన్ ఎడిటింగ్
diff --git a/OsmAnd/res/values-tr/phrases.xml b/OsmAnd/res/values-tr/phrases.xml
index a21db8b09e..dcebe0738f 100644
--- a/OsmAnd/res/values-tr/phrases.xml
+++ b/OsmAnd/res/values-tr/phrases.xml
@@ -894,33 +894,33 @@
Vikipediİngilizce wikiArapça wiki
- Belarus wiki
- Bulgar wiki
- Katalan wiki
- Sebuanca wiki
- Çek wiki
- Danimarka wiki
- Yunan wiki
+ Belarusça wiki
+ Bulgarca wiki
+ Katalanca wiki
+ Sabuanca wiki
+ Çekçe wiki
+ Danca wiki
+ Yunanca wikiGaliçyaca wikiİbranice wikiHintçe wiki
- Hırvat wiki
- Haiti wiki
- Macar wiki
- Endonezya wiki
- İtalyan wiki
+ Hırvatça wiki
+ Haiti dilinde wiki
+ Macarca wiki
+ Endonezyaca wiki
+ İtalyanca wikiLetonca wiki
- Malay wiki
- Newar wiki
- Hollandalı wiki
- Norveç Nynorsk wiki
- Norveç wiki
+ Malayca wiki
+ Newar dilinde wiki
+ Flemenkçe wiki
+ Norveççe Nynorsk wiki
+ Norveççe wikiLehçe wiki
- Romen wiki
- Rus wiki
- Sloven wiki
- Swahili wiki
- Çin wiki
+ Romence wiki
+ Rusça wiki
+ Slovence wiki
+ Swahili dilinde wiki
+ Çince wikiİskele babasıÇevrim bariyeriMotosiklet bariyer
@@ -1108,8 +1108,8 @@
Tip 3 çıkışCEE mavi çıkışSchuko çıkışı
- Buzul tipi
- Kontrol noktası tipi
+ Buzul türü
+ Kontrol noktası türüToplu satın almaNükleer atıkTerkedilmiş endüstriyel bölge
@@ -1152,8 +1152,8 @@
Pediatriİnternet erişimi: evetİnternet erişimi: hayır
- İnternet erişimi - ücretli
- İnternet erişimi - ücretsiz
+ İnternet erişimi: ücretli
+ İnternet erişimi: ücretsizUçak yakıtı istasyonuTarihi uçakBal dükkanı
@@ -1400,7 +1400,7 @@
Yerel isimEski isimAlternatif isim
- Manuel
+ ElleEnerjiliPompa yokMineral
@@ -1480,10 +1480,10 @@
PatenHayırTümsek
- Bahçe tipi: konut
- Bahçe tipi: topluluk
- Bahçe tipi: özel
- Bahçe tipi: botanik
+ Bahçe türü: konut
+ Bahçe türü: topluluk
+ Bahçe türü: özel
+ Bahçe türü: botanikBahçe tarzı: mutfakBahçe tarzı: gül bahçesiBahçe tarzı: Fransız
@@ -1904,8 +1904,8 @@
Wi-FiTerminalKablolu
- İnternet erişim tipi: genel
- İnternet erişim tipi: servis
+ İnternet erişim türü: genel
+ İnternet erişim türü: servisİnternet erişimi yokMaksimum genişlikIATA kodu
@@ -1990,14 +1990,14 @@
Köprü yapısı: viyadükKöprü yapısı: su kemeriKöprü yapısı: kütük
- Köprü tipi: hareketli
- Hareketli köprü tipi: baskül
- Hareketli köprü tipi: döner
- Hareketli köprü tipi: asansör
- Hareketli köprü tipi: açılır asma
- Hareketli köprü tipi: suya batırılabilir
- Hareketli köprü tipi: taşıyıcı
- Hareketli köprü tipi: geri çekilebilir
+ Köprü türü: hareketli
+ Hareketli köprü türü: baskül
+ Hareketli köprü türü: döner
+ Hareketli köprü türü: asansör
+ Hareketli köprü türü: açılır asma
+ Hareketli köprü türü: suya batırılabilir
+ Hareketli köprü türü: taşıyıcı
+ Hareketli köprü türü: geri çekilebilirAydınlatma: evetAydınlatma: hayırYüzey: kaplamasız
@@ -2164,14 +2164,14 @@
ErkekOrtopedikTarihi malikane
- Kale tipi: malikane
- Kale tipi: savunma
- Kale tipi: hisar
- Kale tipi: saray
- Kale tipi: kremlin
- Kale tipi: savunma, malikane
- Kale tipi: castrum
- Kale tipi: shiro
+ Kale türü: malikane
+ Kale türü: savunma
+ Kale türü: hisar
+ Kale türü: saray
+ Kale türü: kremlin
+ Kale türü: savunma, malikane
+ Kale türü: castrum
+ Kale türü: shiroTayCinselÇin
@@ -2310,4 +2310,51 @@
Uygarlık: kikladUygarlık: minosUygarlık: tiahuanaco
+ Dil okulu
+ Hayvanlara izin verilmez
+ Hayvanlara izin verilir
+ At
+ Köpek
+ Hayvan eğitimi
+ Video
+ SMS
+ Durum
+ Tür
+ Tarihi çağ: kalkolitik (MÖ 4.–3. milenyum)
+ Tarihi çağ: neolitik
+ Tarihi çağ: mezolitik
+ Tarihi çağ: paleolitik (günümüzden 2,6 milyon yıl önce – 10000 yıl önce)
+ Tarihi dönem: imparatorluk (dönem V, MS 900 – MS 1200
+ Tarihi dönem: klasik (dönem IV, MS 374 – MS 900)
+ Tarihi dönem: kentsel (dönem III, MS 133 – MS 374)
+ Tarihi dönem: kırsal (dönem I, II, MÖ 1580 – MS 133)
+ Tarihi dönem: dominate (MS 285 – MS 476)
+ Tarihi dönem: Roma krallığı (MÖ 753 – MÖ 509)
+ Tarihi dönem: Roma Yunanistanı (MÖ 146 – MS 330)
+ Tarihi dönem: Yunan Karanlık Çağı (MÖ 1100 – MÖ 800)
+ Tarihi dönem: ilk pers dönemi
+ Tarihi dönem: ikinci pers dönemi
+ Tarihi dönem: pers işgali
+ Tarihi dönem: bizans mısırı (MÖ 30 – MS 641)
+ Tarihi dönem: hristiyan mısır
+ Tarihi dönem: ptolemaik mısır (MÖ 305 – MÖ 30)
+ Tarihi dönem: Büyük İskender
+ Tarihi dönem: geç dönem (MÖ 664 – MÖ 332)
+ Tarihi dönem: üçüncü ara dönem (MÖ 1069 – MÖ 664)
+ Tarihi dönem: ikinci ara dönem (MÖ 1650 – MÖ 1550)
+ Tarihi dönem: birinci ara dönem (MÖ 2181 – MÖ 2055)
+ Tarihi dönem: eski krallık (MÖ 2686 – MÖ 2181)
+ Tarihi dönem: erken hanedan dönemi (MÖ 3100 – MÖ 2686)
+ Tarihi dönem: hanedan öncesi mısır
+ Tarihi dönem: orta krallık (MÖ 2055 – MÖ 1650)
+ Tarihi dönem: yeni krallık (MÖ 1550 – MÖ 1069)
+ Tarihi dönem: helenistik yunanistan
+ Tarihi dönem: Roma cumhuriyeti (MÖ 508 – MÖ 27)
+ Tarihi dönem: demir devri
+ Tarihi dönem: arkaik yunanistan
+ Tarihi dönem: klasik yunanistan (MÖ 5. – 4. yy)
+ Tarihi dönem: principate (MÖ 27 – MS 284)
+ Tarihi dönem: tunç devri
+ Tarihi dönem: taş devri / tunç devri (belirsiz)
+ Tarihi dönem: nuragic
\ No newline at end of file
diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml
index 1bc18430b1..ee1efe89ed 100644
--- a/OsmAnd/res/values-tr/strings.xml
+++ b/OsmAnd/res/values-tr/strings.xml
@@ -41,7 +41,7 @@
Uyarıları göster…Pusulayı kullanOtoyol yok
- Hızınıza göre zoom seviyesi (harita mevcut konumla senkronize edilirken).
+ Hızınıza göre yakınlaştırma seviyesi (geçerli konum ile harita eşzamanlandığında).Haritayı kendiliğinden yakınlaştırPOI filtresi yaratUlaşım modu:
@@ -57,7 +57,7 @@
NeredeyimKilitlePusula
- Varsayılanlara geri dön
+ Öntanımlılara sıfırlaGPX günlüğüHızVarış Noktası
@@ -88,17 +88,17 @@
Fotoğraf %1$s %2$sFotoğraf çekFotoğraf çek
- İzlenen yolları ve ses/video notlarını Dropbox hesabınızla senkronize edin.
+ İzlenen yolları ve ses/video notlarını Dropbox hesabınızla eşzamanlayın.Dropbox eklentisiSıralamayı değiştirLütfen geliştirilmesinin devamını desteklemek için \'Eş yükselti eğrileri\' eklentisini satın almayı göz önünde bulundurun.Eş yükselti eğrileri eklentisiVideo çekSes kaydet
- Varsayılan widget eylemi:
- Varsayılan eklenti eylemi
- Video çıkış formatı:
- Video formatı
+ Öntanımlı widget eylemi:
+ Öntanımlı widget eylemi
+ Video çıkış biçimi:
+ Video çıkış biçimiVideo için sistem kayıt cihazını kullanın.Dahili kaydediciyi kullanSes ve video ayarlarını ayarlayın.
@@ -131,7 +131,7 @@
Mesafe ölçümüKonuma bir not eklemek için \'Konumu kullan…\' düğmesine dokunun.Sesli notlar
- Bir harita butonu veya konum içerik menüsünü kullanarak yolculuk sırasında ses/fotoğraf/video notları alın.
+ Bir harita düğmesi veya konum içerik menüsünü kullanarak yolculuk sırasında ses/fotoğraf/video notları alın.Ses/video notlarıbölümlerEş yükselti eğrileri
@@ -184,7 +184,7 @@
\n
\n OsmAnd+, çok geniş ölçekte global OpenStreetMap (OSM) verilerine erişim sağlayan açık kaynaklı bir yazılımsal navigasyon uygulamasıdır. Tüm harita verileri (vektör veya tile haritaları) çevrim dışı kullanım için telefonun hafıza kartında saklanabilir. Adım adım sesli rehberlik de dahil olmak üzere çevrim dışı ve çevrim içi yönlendirme işlevi de sunulmaktadır.
\n
-\n OsmAnd+, uygulamanın ücretli versiyonudur, onu satın alarak projeyi desteklemekte, yeni özelliklerin gelişimini finanse etmekte ve en son güncellemeleri almaktasınız
+\n OsmAnd+, uygulamanın ücretli sürümüdür, onu satın alarak projeyi desteklemekte, yeni özelliklerin gelişimini finanse etmekte ve en son güncellemeleri almaktasınız
\n.
\n Temel özelliklerden bazıları:
\n - Eksiksiz çevrim dışı işlevsellik (indirilen vektör veya tile haritalarını cihazda saklayın)
@@ -261,7 +261,7 @@
Sesli uyarılar (TTS, tercih edilen)Wikipedia (çevrim dışı)Kullanıcı tanımlı
- Varsayılan profil
+ Öntanımlı profilOSM şifrenizİndirme için yeterli yer yok: %1$s MB (free: %2$s).Animasyonu durdur
@@ -285,7 +285,7 @@
Haritadaki adlar için metin boyutu:Harita yazı karakteri boyutuDesteklenmeyen dil
- Kayıp data
+ Eksik veriHarita zaten kurulu, \'Ayarlar\' güncellenecek.Çevrim dışı arama gerçekleştirilemedi.Coğrafi konuma göre ara
@@ -383,7 +383,7 @@
AraPOI seçDaha fazla bul
- Varsayılan
+ Haritaya göz atAraba sürmeBisiklet sürmeYürüme
@@ -463,11 +463,11 @@
Çevrim içi ve döşeme haritalarÇevrim içi haritalar kullanın (döşemeleri bellek kartına indir ve önbelleğe al).Çevrim içi veya önbelleğe alınmış döşeme harita kaynaklarını seçin.
- Önceden tanımlanmış OSM döşemelerinden (Mapnik gibi) uydu görüntülerine ve hava durumu haritaları, iklim haritaları, jeolojik haritalar, yamaç katmanları vb. gibi özel amaçlı katmanlara kadar birçok çevrim içi (döşeme veya raster) haritaya erişin.
-\n
-\n Bu haritalardan herhangi biri, görüntülenecek ana (temel) harita olarak veya başka bir temel haritaya (OsmAnd\'ın standart çevrim dışı haritaları gibi) üst veya alt katman olarak kullanılabilir. OsmAnd vektör haritalarının belirli ögeleri, herhangi bir alt haritayı daha görünür hale getirmek için \'Haritayı yapılandır\' menüsü aracılığıyla gizlenebilir.
-\n
-\n Döşeme haritalarını doğrudan çevrim içi olarak indirin veya çeşitli üçüncü taraf harita hazırlama araçları tarafından üretilebilen bir SQLite veri tabanı olarak çevrim dışı kullanım için (OsmAnd\'ın veri klasörüne manuel olarak kopyalayarak) hazırlayın.
+ Önceden tanımlanmış OSM döşemelerinden (Mapnik gibi) uydu görüntülerine ve hava durumu haritaları, iklim haritaları, jeolojik haritalar, yamaç katmanları vb. gibi özel amaçlı katmanlara kadar birçok çevrim içi (döşeme veya raster) haritaya erişin.
+\n
+\n Bu haritalardan herhangi biri, görüntülenecek ana (temel) harita olarak veya başka bir temel haritaya (OsmAnd\'ın standart çevrim dışı haritaları gibi) üst veya alt katman olarak kullanılabilir. OsmAnd vektör haritalarının belirli ögeleri, herhangi bir alt haritayı daha görünür hale getirmek için \'Haritayı yapılandır\' menüsü aracılığıyla gizlenebilir.
+\n
+\n Döşeme haritalarını doğrudan çevrim içi olarak indirin veya çeşitli üçüncü taraf harita hazırlama araçları tarafından üretilebilen bir SQLite veri tabanı olarak çevrim dışı kullanım için (OsmAnd\'ın veri klasörüne elle kopyalayarak) hazırlayın.Cihazın erişilebilirlik özelliklerini doğrudan OsmAnd\'da kullanılabilir hale getirir. Örneğin; metinden konuşmaya sesleri için konuşma hızını ayarlama, D-pad navigasyonunu yapılandırma, yakınlaştırma kontrolü için bir izleme topu kullanma veya örneğin konumunuzu otomatik olarak duyurmak için metinden konuşmaya geri bildirimi.Navigasyon simülasyonu, görselleştirme performansı veya sesli komutlar gibi geliştirme ve hata ayıklama özellikleri için ayarlar. Geliştiriciler için tasarlanmıştır, normal uygulama kullanımı için gerekli değildir.Eklentiler
@@ -543,7 +543,7 @@
tümünü yükleDüzenlemeyi OSM\'ye yükleDüzenlemeyi sil
- Asenkron OSM düzenleme:
+ Eşzamansız OSM düzenleme:Cihazda kayıtlı OSM POI\'leri/notlarıCihaz veri tabanınızdaki OSM-POI\'lerini/notlarını görüntüleyin ve yönetin.Çevrim içi izleme aralığını belirtin.
@@ -564,7 +564,7 @@
Dünya Wikipedia POIleriDaha önce dışa aktarılan Sık Kullanılanları içeren dosya zaten var. Değiştir\?Profile Özel Ayarlar
- Harita görünümü ve navigasyon ayarları kullanılan profile göre hatırlanır. Varsayılan profilinizi burada ayarlayın.
+ Harita görünümü ve navigasyon ayarları kullanılan profile göre hatırlanır. Öntanımlı profilinizi burada ayarlayın.NavigasyonNavigasyon seçeneklerini belirtin.Genel ayarlar
@@ -582,7 +582,7 @@
Yerel kütüphane bu aygıtta desteklenmiyor.Yerel kütüphane başlatılıyor…Harita görünümünü otomatik olarak ortala
- Harita görünümünün geçerli konumla senkronize edilmesine kadar geçen süre.
+ Geçerli konum ile harita görünümünü eşzamanlamaya kadar geçecek süre.Otomatik-sadece merkezi navOtomatik-navigasyon yaparken sadece merkezi harita görünümü.Haritayı kullanırken görünümü otomatik olarak ortala.
@@ -633,7 +633,7 @@
"
\n
\nSeçenekler için uzun bas"
- Yerel Versiyon
+ Yerel sürüm%1$d/%2$d öge devre dışı bırakıldı.%1$d/%2$d öge silindi.%1$d/%2$d öge aktifleştirildi.
@@ -712,7 +712,7 @@
Web sitesiSeyahat kaydetmeSeyahatlerinizi nasıl kaydedeceğinizi ayarlayın.
- Yükleme versiyonu
+ Yükleme sürümüUygulama görünümünü özelleştirin.Uygulama gövdesiErişilebilirlik ayarları
@@ -721,7 +721,7 @@
OSM değişiklikleriDiğer komutlarEş yükselti eğrileri
- Versiyon:
+ Sürüm :HakkındaSürüm bilgisi, lisanslar, proje üyeleriSona erecek (dakika): %1$s
@@ -766,7 +766,7 @@
BinaBinaKesişen sokak
- Seçilen formatta enlem ve boylam girin (D - derece, M - dakika, S - saniye)
+ Seçilen biçimde enlem ve boylam girin (D - derece, M - dakika, S - saniye)EnlemBoylamMevcut harita konumu yakınlarında ara
@@ -928,7 +928,7 @@
Bu filtreyi sil\?\'%1$s\' filtresi silindi\'%1$s\' filtresi oluşturuldu
- Kamera odaklama tipi
+ Kamera odaklama türüKamera odak modu:Otomatik odaklamaGenişletilmiş alan derinliği (EDOF)
@@ -1035,8 +1035,8 @@
Geçmişi temizle\?Kullanılabilir güncelleme yokCanlı güncelleştirmeler
- Varsayılan (13)
- Varsayılan (yarı saydam camgöbeği)
+ Öntanımlı (13)
+ Öntanımlı (yarı saydam camgöbeği)GPX rengiGPX genişliğiKırmızı
@@ -1106,7 +1106,7 @@
YerlerimSık KullanılanlarSes
- Vidyo
+ VideoFotoğrafgün gerideHaritaya dön
@@ -1121,7 +1121,7 @@
GPS durumuNoktalarYol tarzı
- Varsayılan
+ ÖntanımlıStandartYaya geçidiYaya geçitleri
@@ -1210,11 +1210,11 @@
TaycaTelugu diliNorveççe Nynorsk
- Malezyalı
- Haitice
+ Malezyaca
+ Haiti diliGaliçyacaEstonca
- Sabuan dili
+ SabuancaTek başına günlüğe eklemeyi önleUygulama kapatılırsa (son uygulamalardan) GPX iz kaydına ara verilecektir. (OsmAnd arka plan göstergesi Android bildirim çubuğundan kaybolur.)Shuttle treni yok
@@ -1248,7 +1248,7 @@
İz bölümüİz noktasıSeyahat kaydetme
- Bu eklenti, harita üzerindeki GPX kayıt widget\'ına manuel olarak dokunarak gezinme rotalarınızı kaydetme işlevini, ya da tüm navigasyon rotalarınızı bir GPX dosyasına otomatik olarak kaydetme özelliğini etkinleştirir.
+ Bu eklenti, harita üzerindeki GPX kayıt widget\'ına elle dokunarak gezinme rotalarınızı kaydetme işlevini, ya da tüm navigasyon rotalarınızı bir GPX dosyasına otomatik olarak kaydetme özelliğini etkinleştirir.
\n
\nKaydedilen yollar arkadaşlarınızla paylaşılabilir veya OSM\'ye katkıda bulunmak için kullanılabilir. Atletler antremanlarını izlemek için kayıtlı yolları kullanabilir. Tur zamanı, ortalama hız vs. gibi bazı basit yol analizi doğrudan OsmAnd içinde yapılabilir, ve tabii ki daha sonra özel üçüncü parti araçlarla da analiz edilebilir.Harita gezinti görünümü
@@ -1262,7 +1262,7 @@
Dakika/kilometreMil/saatLütfen doğru POI türünü belirtin veya bu aşamayı atlayın.
- Menü butonu, menü yerine gösterge panelini başlatır
+ Menü düğmesi, menü yerine gösterge panelini başlatırHaritadan Erişim\'Off\' doğrudan haritayı başlatır.Başlangıçta göster
@@ -1381,7 +1381,7 @@
Kapanışİletişim BilgileriAçılış saatleri ekle
- POI Tipi
+ POI TürüDash %1$s satır sayısıPOI türü belirtiniz.İş Günleri
@@ -1395,7 +1395,7 @@
Hiperodak odakKamera resim boyutuKamera resim boyutunu ayarlayın
- Geçersiz format:%s
+ Geçersiz biçim:%sBu eklentiyi yüklemek için çevrim içi olmanız gerekmektedir.AlAkıllı rota yeniden hesaplama
@@ -1449,7 +1449,7 @@
Son Osmand çalıştırmak çöktü. Log dosya {0} olduğunu. Sorunu bildirmek ve günlük dosyasını ekleyiniz.OSM gönderimleri için gereken OpenStreetMap.org (OSM) ayarlarını belirtin.Sayfaya kiremit
- Çalışma saatleri formatı değiştirilemez.
+ Çalışma saatleri biçimi değiştirilemez.Kurtulmak için durdurmak seçinÖnceki mesafeSonraki mesafe
@@ -1472,7 +1472,7 @@
GPX dosyaları…Durakta ulaşım aracı araHarita yönlendirme
- Endeksin versiyonu \'\' {0} \'desteklenmiyor
+ \'\'{0}\'\' indeks sürümü desteklenmemektedirOsmAnd çevrim dışı navigasyon deneysel bir özelliktir ve yaklaşık 20 km\'den daha uzun mesafelerde çalışmaz.
\n
\nNavigasyon geçici olarak çevrim içi CloudMade servisine geçti.
@@ -1487,7 +1487,7 @@
Dizin Oluşturma haritası …Dizin Oluşturma POI …Dizin Oluşturma taşımacılığı …
- Artık kullanılmayan harita veri formatı \'\'{0}\'\', desteklenmiyor
+ Artık kullanılmayan harita veri biçimi \'\'{0}\'\', desteklenmiyorÇevrim içi NameFinderÖnbelleğe fayans okunuyor …Index \'\' {0} \'belleğe sığmadı
@@ -1547,45 +1547,45 @@
Minimum zoomVarış yeriOSM değişikliği olarak yedekle
- Bulgaristan
- Katalonya
- Hırvatistan
- Çek
- Danimarka
- Hollanda
- Finlandiya
+ Bulgarca
+ Katalanca
+ Hırvatça
+ Çekçe
+ Danca
+ Flemenkçe
+ FinceFransızca
- Gürcü
+ GürcüceAlmancaYunancaİbraniceHintçeMacarca
- Endonezya
+ EndonezyacaİtalyancaJaponca
- Kore
- Letonya
- Litvanya
+ Korece
+ Letonca
+ LitvanyacaMarathiNorveççe BokmålFarsça
- Polonya
+ LehçePortekizce
- Romen
+ RomenceRusça
- Sardunyalı
+ SardunyacaSırpça (kiril)Basitleştirilmiş ÇinceSlovakça
- Sloven
+ Slovenceİspanyolcaİsveççe
- Geleneksel çince
+ Geleneksel ÇinceTürkçeUkraynaca
- Vietnam
- Galliler
+ Vietnamca
+ GalceKuzey Amerika - KanadaAvrupa - İtalyaAvrupa - İngiltere
@@ -1597,12 +1597,12 @@
ÇincePortekizce (Brezilya)İngilizce
- Afrikaans
- Arnavut
+ Afrikanca
+ ArnavutçaArapçaErmenice
- Bask
- Belarus
+ Baskça
+ BelarusçaBoşnakçaNoktalar arasındaki rotayı hesaplamakKonumu sürekli ortada tut
@@ -1645,11 +1645,11 @@
Önce uzun dokunarak bir GPX dosyası belirtin.Bir izlenen yol seçinBölünmüş aralık
- Navigasyon sırasında yakınlaştırma butonlarını göster.
- Yakınlaştırma butonlarını göster
+ Navigasyon sırasında yakınlaştırma düğmelerini göster.
+ Yakınlaştırma düğmelerini gösterSık Kullanılanlar grubu olarak kaydetAndroid 4.4\'ten (KitKat) sonra, eski depolama klasörü (%s) kullanımdan kaldırıldı. Tüm OsmAnd dosyaları yeni depolama konumuna kopyalansın mı\?
-\n Not 1: Eski dosyalarınız dokunulmadan kalacaktır (ancak manuel olarak silinebilir).
+\n Not 1: Eski dosyalarınız dokunulmadan kalacaktır (ancak elle silinebilir).
\n Not 2: Yeni depolama konumunda OsmAnd ve OsmAnd+ arasında dosya paylaşımı mümkün olmayacaktır.Yer:Bölge çapında haritalar
@@ -1751,7 +1751,7 @@
İçindeAnonim kullanıcılar şunları yapamaz:
\n- Grup oluşturmak;
-\n- Grupları ve aygıtları sunucu ile senkronize etmek;
+\n- Grupları ve aygıtları sunucu ile eşzamanlamak;
\n- Web sitesindeki kişisel kontrol panelinde grupları ve aygıtları yönetmek.Anonim Kullanıcı%1$s olarak giriş
@@ -1889,7 +1889,7 @@
BağışlarAlıcıların sayısı%1$s , rütbe %2$s , toplam düzenlemeleri %3$s düzenler
- OSM Editör sıralaması
+ OSM Düzenleyici sıralamasıOsmAnd Live aboneliğiAbone olYaptığınız katkılar hakkında size bilgi vermek için gerekli.
@@ -1935,7 +1935,7 @@
Rotadan çıkıldıktan sonra rota yeniden hesaplanmaz.Aksi yönde iken rota yeniden-hesaplanmasınSadece ters yönde hareket ederken rota yeniden hesaplanmaz.
- Varsayılan renk
+ Öntanımlı renkKategori seçAd girKategori gir
@@ -2000,9 +2000,9 @@
OSM notlarını göster ya da gizleOSM notlarını gösterOSM notlarını gizle
- OSM notlarını haritada göstermek veya gizlemek için bir buton.
+ OSM notlarını haritada göstermek veya gizlemek için bir düğme.Mesafeye göre sıralandı
- Butona uzunca basıp sürüklemek, ekrandaki konumunu değiştirir.
+ Düğmeye uzunca basıp sürüklemek, ekrandaki konumunu değiştirir.Aramayı yeniden başlatArama yarıçapını artırHiçbir şey bulunamadı
@@ -2027,8 +2027,8 @@
Genel bakışSokağı seçinAdresi yazın
- Buton konumunu değiştir
- Kayıtlı parçaları, kayıt ayına (2018-01 gibi) alt klasörler halinde depolayın.
+ Düğme konumunu değiştir
+ Kaydedilen izlenen yolları, kayıt ayına (2018-01 gibi) göre alt klasörler halinde depolayın.Yeniden başlatTekrar yükleGüncel verileri görmek için döşemeleri yeniden yükleyin.
@@ -2090,9 +2090,9 @@
OSM notunu değiştirKalkış noktasının bir kopyasını hedef olarak ekleyin.Gidiş-dönüş seyahat yap
- Koordinat formatı
+ Koordinat biçimiSistemde tanımlı klavyeyi kullan
- Koordinat giriş formatını seçin. Bunu her zaman \'Seçenekler\'den değiştirebilirsiniz.
+ Koordinat giriş biçimini seçin. Bunu her zaman \'Seçenekler\'den değiştirebilirsiniz.Hızlı koordinat girişiBuzlu yol veya nehir geçişleri yokBuzlu yollardan ve nehir geçişlerinden kaçınır.
@@ -2112,14 +2112,14 @@
Widget veya içerik menüsünü kullanarak, harita üzerinde her nokta için ses, video veya fotoğraf notları al.Tarihe göre OSM notlarıTarihe göre
- Tipe göre
+ Türe göreDaha fazlaHarita üzerinde görünüşFavoriler kategorisiGrup ekleGrupları Sık Kullanılanlar ya da GPX referans noktalarından içe aktarın.Harita işaretleyicileri oluştur!
- Uzun ya da kısa olarak \'Yerler\'e, ardından işaretçi bayrağı butonuna dokunun.
+ Uzun ya da kısa olarak \'Yerler\'e, ardından işaretçi bayrağı düğmesine dokunun.Grupları alİkiBir
@@ -2137,7 +2137,7 @@
Yeni isim girGeriGörünüm
- Yanlış format
+ Yanlış biçimİşaretçilerKonumumBitir
@@ -2174,10 +2174,10 @@
Harita işaretleyici Geçmiş\'e taşındıTümünü Geçmiş\'e taşıNavigasyonu duraklat/sürdür
- Navigasyonu duraklatma veya devam ettirme butonu.
+ Navigasyonu duraklatma veya devam ettirme düğmesi.\'Navigasyon tamamlandı\' iletisi gösterNavigasyonu başlat/durdur
- Navigasyonu başlatmak ya da sonlandırmak için buton.
+ Navigasyonu başlatmak ya da sonlandırmak için düğme.BuradanKullanıcı adıİzinler
@@ -2237,7 +2237,7 @@
Geçmişe taşıHarita üzerinde göstermeye devam etAktif işaretleyicilere olan uzaklığın nasıl gösterileceğini seçin.
- Harita üzerine dokunarak basmak, kontrol butonları ve widget\'lara geçiş yapmayı sağlar.
+ Harita üzerine dokunarak basmak kontrol düğmeleri ve widget\'lara geçiş yapmayı sağlar.Waypoint\'ler harita işaretleyicilerine eklendiİşaretleyicilerinizi şu GPX dosyasına aktarın:GPX dosyası olarak kaydet
@@ -2245,7 +2245,7 @@
OsmAnd seçilmiş profil için rotalı noktalara bağlanacak.Lütfen en az bir nokta ekleyiniz.Haritayı görüntüle ve nokta ekle
- Kaydedilmiş track\'ları aylık klasörlerde depola
+ Kaydedilmiş izlenen yolları aylık klasörlerde depolaResimleri göndericiye, tarihe ya da türüne göre filtreleyin. Sadece yakınlaştırılmış zoomda etkin.Düzeltilmiş uzaklıkMapillary görüntüsü
@@ -2302,11 +2302,11 @@
Yarıçap cetveliSokak düzeyinde görüşünüzü Mapillary ile paylaşın.Şehir/kasaba/bölgeyi yazın
- Hız kontrollü otomatik yakınlaştırma özelliğini açmak veya kapatmak için buton.
+ Hız kontrollü otomatik yakınlaştırma özelliğini açmak veya kapatmak için düğme.Seyahatteki ilk ara-noktayı ekleyin
- Ekranın rota hedefini ortalamasını sağlayan bir buton, önceden seçilen bir hedef son ara hedef haline gelecektir.
- Ekranın, (varsa) daha önce seçilen hedefi değiştirerek yeni rota hedefini ortalamasını sağlamak için bir buton.
- Ekranın, ilk ara hedefi ortalamasını sağlamak için bir buton.
+ Ekranın rota hedefini ortalamasını sağlayan bir düğme, önceden seçilen bir hedef son ara hedef haline gelecektir.
+ Ekranın, (varsa) daha önce seçilen hedefi değiştirerek yeni rota hedefini ortalamasını sağlamak için bir düğme.
+ Ekranın, ilk ara hedefi ortalamasını sağlamak için bir düğme.Sağdan akan trafikTepelikliAz tepelikli
@@ -2332,7 +2332,7 @@
Henüz GPX dosyanız yokAyrıca klasöre GPX dosyaları ekleyebilirsinizDaha fazla ekle…
- Görünüş
+ GörünümHızlı kaydı açKayıt-tutma minimum hızıFiltre: Bu hızın altında nokta kaydı yok.
@@ -2401,7 +2401,7 @@
%1$d dosya kopyalanamadı (%2$s).TaşımaYürüme rotasını hesapla
- Transfer tipi
+ Taşıma türüRapor gönderTramvay yokTramvaylardan kaçınır
@@ -2418,7 +2418,7 @@
DerecelerKaçınılacak toplu taşıma türlerini seçin:%s modu
- Geçersiz taşıma tipleri…
+ Kaçınılacak taşıma türleri…YürüToplu taşıma rotaları beta aşamasındadır.Ara nokta ekle
@@ -2590,12 +2590,12 @@
HaftaHaftalarProfil için ayarlar:
- OsmAnd, UTM NATO formatına benzer ancak aynı olmayan UTM Standard kullanmaktadır.
+ OsmAnd, UTM NATO biçimine benzer ancak aynı olmayan UTM Standard biçimini kullanmaktadır.ÖrnekUTM StandartKonum Kodunu Aç
- Seçilen format uygulama boyunca uygulanacaktır.
- Bu ayar profiller için varsayılan olarak seçilidir: %s
+ Seçilen biçim uygulama boyunca uygulanacaktır.
+ Bu ayar profiller için öntanımlı olarak seçilidir: %sAyarı değiştirDeğişikliği iptal etSadece \"%1$s\"e uygula
@@ -2605,7 +2605,7 @@
Navigasyon sırasında haritayı kilit ekranında göster.Seçili profildeki yönlendirme ayarları \"%1$s\".Uyanma zamanı
- Birimler ve formatlar
+ Birimler ve biçimlerGörünümHarita görünümüHarita görünümü
@@ -2616,7 +2616,7 @@
Navigasyon sırasında sol altta gösterilen uyarılar.Profil değiştirDil ve çıkış
- Varsayılanlara geri dön
+ Öntanımlılara sıfırlaProfil oluşturma, içe aktarma, düzenlemeUygulama profillerini yönet…Uygulama profili \"%s\" olarak değiştirildi
@@ -2625,7 +2625,7 @@
OsmAnd+ (OSM Automated Navigation Directions), özgür, dünya çapında ve yüksek kaliteli OSM verilerine erişim sağlayan bir harita ve navigasyon uygulamasıdır.
\n Sesli ve görüntülü navigasyonun, POI\'leri (points of interest) görüntülemenin, GPX yolları oluşturma ve yönetmenin, eş yükselti eğrileri görselleştirmenin ve irtifa bilgilerini kullanmanın, araç, bisiklet, yaya modları arasında tercih yapmanın, OSM düzenleme ve daha fazlasının keyfini çıkarın.
\n
-\n OsmAnd+ uygulamanın ücretli versiyonudur. Satın alarak, projeyi desteklemekte, yeni özelliklerin geliştirilmesini finanse etmekte ve en son güncellemeleri almaktasınız.
+\n OsmAnd+ uygulamanın ücretli sürümüdür. Satın alarak, projeyi desteklemekte, yeni özelliklerin geliştirilmesini finanse etmekte ve en son güncellemeleri almaktasınız.
\n
\n Ana özelliklerden bazıları:OsmAnd\'ın anonim uygulama kullanım verilerini toplamasına ve işlemesine izin ver. Konumunuz veya haritada görüntülediğiniz yerler hakkında veri toplanmaz.
@@ -2643,13 +2643,13 @@
UFO• Uygulama profilleri: Özel bir simge ve renk ile kendi ihtiyaçlarınız için özel bir profil oluşturun
\n
-\n • Şimdi herhangi bir profilin varsayılan ve minimum/maksimum hızlarını özelleştirin
+\n • Şimdi herhangi bir profilin öntanımlı ve minimum/maksimum hızlarını özelleştirin
\n
\n • Mevcut koordinatlar için bir widget eklendi
\n
\n • Pusulayı ve haritadaki yarıçap cetvelini göstermek için seçenekler eklendi
\n
-\n • Arkaplan izleme kaydı düzeltildi
+\n • Arka plan izleme kaydı düzeltildi
\n
\n • Arka plan harita indirmeleri iyileştirildi
\n
@@ -2657,7 +2657,7 @@
\n
\n • Wikipedia dil seçimi düzeltildi
\n
-\n • Navigasyon sırasında pusula butonu davranışı düzeltildi
+\n • Navigasyon sırasında pusula düğmesi davranışı düzeltildi
\n
\n • Diğer hata düzeltmeleri
\n
@@ -2696,7 +2696,7 @@
Haritada Düşük Emisyon Bölgelerini göster. Yönlendirmeyi etkilemez.Düşük Emisyon Bölgelerini gösterGeçici sınırlamaları göz önünde bulundurun
- Varsayılan
+ ÖntanımlıVagonKamyonetHafta
@@ -2729,7 +2729,7 @@
Ekran uyarılarıRota parametrelerini yapılandırRota parametreleri
- Varsayılan olarak
+ Öntanımlı olarakBu alanı görüntülemek için detaylı %s haritasını indirin.Yukarı gitAkıllı otomatik duyuru
@@ -2820,7 +2820,7 @@
Yarın şu saatte açılıyorKapalı notları gösterHaritada OSM notlarını göster/gizle.
- GPX - JOSM veya diğer OSM editörlerine aktarmak için uygundur.
+ GPX - JOSM veya diğer OSM düzenleyicilerine aktarmak için uygundur.OSC - OSM\'ye aktarmak için uygundur.OSC dosyasıDosya türünü seçin
@@ -2883,12 +2883,12 @@
Deniz navigasyonu için. Şamandıralar, deniz fenerleri, nehir yolları, deniz şeritleri ve işaretleri, limanlar, deniz kenarı hizmetleri ve eş derinlik eğrilerini içermektedir.Kayak yapmak için. Pistler, telesiyejler, kros kayak yolları vb. içermektedir. İkincil harita nesnelerini karartır.Basit sürüş tarzı. Yumuşak gece modu, eş yükselti eğrileri, turuncu tarzdaki zıtlaştırılmış yollar, ikincil harita nesnelerini karartma.
- Yürüyüş, doğa yürüyüşü ve doğa bisikleti için. Dış mekanda okunabilir. Zıtlaştırılmış yollar ve doğal nesneler, farklı rota tipleri, gelişmiş eş yükselti eğrisi seçenekleri, ekstra detaylar. Yüzey bütünlüğünün ayarlanması yol kalitesini ayırt eder. Gece modu yok.
- Eski varsayılan \'Mapnik\' tarzı. \'Mapnik\' ile benzer renkler.
+ Yürüyüş, doğa yürüyüşü ve doğa bisikleti için. Dış mekanda okunabilir. Zıtlaştırılmış yollar ve doğal nesneler, farklı rota türleri, gelişmiş eş yükselti eğrisi seçenekleri, ekstra detaylar. Yüzey bütünlüğünün ayarlanması yol kalitesini ayırt eder. Gece modu yok.
+ Eski öntanımlı \'Mapnik\' tarzı. \'Mapnik\' ile benzer renkler.Genel amaçlı stil. Yoğun şehirler temiz bir şekilde gösterilmiştir. Eş yükselti eğrileri, rotalar, yüzey kalitesi, erişim kısıtlamaları, yol kalkanları, SAC ölçeğine göre yol görselleştirme, akarsu sporları öğeleri içermektedir.
- Yüksek zıtlık ve maksimum ayrıntı ile turne tarzı. OsmAnd varsayılan stilinin tüm seçenekleri ile birlikte, mümkün olduğu kadar çok ayrıntıyı, özellikle de yolları, patikaları ve seyahat etmenin diğer yollarını gösterir. Yol tipleri arasındaki \"touring atlas\" ayrımını temizleyin. Gündüz, gece ve dış mekan kullanımı için uygundur.
+ Yüksek zıtlık ve maksimum ayrıntı ile gezi tarzı. OsmAnd öntanımlı stilinin tüm seçenekleri ile birlikte, mümkün olduğu kadar çok ayrıntıyı, özellikle de yolları, patikaları ve seyahat etmenin diğer yollarını gösterir. Yol türleri arasındaki \"touring atlas\" ayrımını kaldırın. Gündüz, gece ve dış mekan kullanımı için uygundur.\'Topo\' stiline dayalı arazi sürüşleri ve yeşil uydu görüntüleriyle alt tabaka olarak kullanım için. Ana yol kalınlığı azaltılmış, izlenen yollar, patikalar, bisiklet ve diğer rotaların kalınlığı arttırılmıştır.
- Yaya ve bisiklet yollarının kontrastını artırmak için varsayılan stilin değiştirilmesi. Eski Mapnik renklerini kullanır.
+ Yaya ve bisiklet yollarının kontrastını artırmak için öntanımlı stilin değiştirilmesi. Eski Mapnik renklerini kullanır.GPX dosyasıİzlenen yol ara noktalarıSeyahat Rehberleri
@@ -2934,7 +2934,7 @@
Adım adımBurada çıkDurakta bin
- Seçilen GPX yollarını haritada göstermek veya gizlemek için bir buton.
+ Seçilen GPX yollarını haritada göstermek veya gizlemek için bir düğme.Lütfen önce hedefi ayarlayın• Yeni \'Yol Tarifleri\' ekranı: Ev ve İş hedefi düğmelerini, \'önceki rota\' kısayolunu, etkin GPX yol-izlerinin ve işaretleyicilerin listesini, arama geçmişini görüntüler
\n
@@ -2983,7 +2983,7 @@
Ne yazık ki, OsmAnd ayarlarınıza uygun bir rota bulamadı.GPS aranıyorKoordinatlar widget\'ı
- Özel profilinizi varsayılan uygulama profillerinden birine dayandırın, bu widget\'ların varsayılan görünürlüğü ile hız ve mesafe birimleri gibi temel ayarları tanımlar. Bunlar, genişletilebilecekleri özel profillerin örnekleri ile birlikte varsayılan uygulama profilleridir:
+ Özel profilinizi öntanımlı uygulama profillerinden birine dayandırın, bu widget\'ların öntanımlı görünürlüğü ile hız ve mesafe birimleri gibi temel ayarları tanımlar. Bunlar, genişletilebilecekleri özel profillerin örnekleri ile birlikte öntanımlı uygulama profilleridir:Toplu taşıma türleriBRouter (çevrim dışı)OsmAnd yönlendirme
@@ -3037,15 +3037,15 @@
Harita kaynaklarıHarita kaynağı ekleHarita kaynağı \"%s\" olarak değiştirildi.
- Ekranın merkez konumuna bir harita işaretleyici eklemek için bir buton.
- Ekranın ortasına bir GPX ara noktası eklemek için bir buton.
- Ekranın ortasına bir sesli not eklemek için bir buton.
- Ekranın ortasına bir video notu eklemek için bir buton.
- Ekranın ortasına bir fotoğraf notu eklemek için bir buton.
- Ekranın ortasına bir OSM notu eklemek için bir buton.
- Ekranın ortasına bir POI eklemek için bir buton.
+ Ekranın merkez konumuna bir harita işaretleyici eklemek için bir düğme.
+ Ekranın ortasına bir GPX ara noktası eklemek için bir düğme.
+ Ekranın ortasına bir sesli not eklemek için bir düğme.
+ Ekranın ortasına bir video notu eklemek için bir düğme.
+ Ekranın ortasına bir fotoğraf notu eklemek için bir düğme.
+ Ekranın ortasına bir OSM notu eklemek için bir düğme.
+ Ekranın ortasına bir POI eklemek için bir düğme.Navigasyon sırasında sesli yönlendirmeyi açmak veya kapatmak için bir geçiş.
- Ekranın ortasına bir park yeri eklemek için bir buton.
+ Ekranın ortasına bir park yeri eklemek için bir düğme.Harita üzerinde \'Favori\' noktalarını göstermek veya gizlemek için bir geçiş.Haritada POI\'leri göstermek veya gizlemek için bir geçiş.Bu mesaj yorum alanına dahil edilmiştir.
@@ -3055,7 +3055,7 @@
Geçici bir iletişim kutusu gösterHarita üst katmanı \"%s\" olarak değiştirildi.Harita alt katmanı \"%s\" olarak değiştirildi.
- Aşağıdaki listede gezinmek için bir buton.
+ Aşağıdaki listede gezinmek için bir düğme.OsmAnd (OSM Automated Navigation Directions) özgür, dünya çapında ve yüksek kaliteli OSM verilerine erişim sağlayan bir harita ve navigasyon uygulamasıdır.
\n
\n Sesli ve optik yönlendiricinin, POI\'leri (ilgi çekici noktaları) görüntülemenin, GPX yolları oluşturma ve yönetmenin, eş yükselti eğrileri görselleştirme ve irtifa bilgilerinin (eklenti aracılığıyla), sürüş, bisiklet, yaya modları arasında seçim yapmanın, OSM düzenleme ve daha pek çok seçeneğin tadını çıkarın.
@@ -3195,7 +3195,7 @@
Wikipedia makaleleri nasıl açılır\?Orta varış zamanıOrta zaman
- Bir butona dokunun ve eksik veya hatalı olup olmadığını duymak için ilgili sesli uyarıyı dinleyin
+ Bir düğmeye dokunun ve eksik veya hatalı olup olmadığını duymak için ilgili sesli uyarıyı dinleyinOsmAnd tarafından desteklenen {0} Haritasını kullanıyorsunuz. OsmAnd\'ın tam sürümünü başlatmak ister misiniz\?OsmAnd\'ı başlat\?\'Gündüz\' ve \'Gece\' modu arasında değişiklik yapmak için bir geçiş.
@@ -3221,7 +3221,7 @@
Sadece-paten rotalarına izin verKlasik yollar olmadan serbest stil ya da sadece paten için düzenlenmiş rotalar.Sadece-klasik rotalarına izin ver
- Paten yolları olmadan sadece klasik stil için düzenlenmiş rotalar. Buna daha gevşek bir palete sahip daha küçük bir kar arabasıyla düzenlenen rotalar ve kayakçılar tarafından manuel olarak yapılan pistler dahildir.
+ Paten yolları olmadan sadece klasik stil için düzenlenmiş rotalar. Buna daha gevşek bir palete sahip daha küçük bir kar arabasıyla düzenlenen rotalar ve kayakçılar tarafından elle yapılan pistler dahildir.Tercih edilen zorlukBu zorluktaki rotaları tercih et, ancak eğer daha kısa ise daha zor veya daha kolay pistler üzerinden yönlendirmek yine de mümkündür.Pist dışı
@@ -3317,11 +3317,11 @@
Asfaltsız yolları tercih etYönlendirme için asfaltsız yolları asfaltlılara tercih et.OSM düzenlemeleri
- Eş yükselti eğrilerini haritada gösterme veya gizleme butonu.
+ Eş yükselti eğrilerini haritada gösterme veya gizleme düğmesi.Eş yükselti eğrilerini gösterEş yükselti eğrilerini gizleEş yükselti eğrilerini göster/gizle
- Haritada tepe gölgelerini göstermek veya gizlemek için bir buton.
+ Haritada tepe gölgelerini göstermek veya gizlemek için bir düğme.Tepe gölgesini gösterTepe gölgesini gizleTepe gölgesini göster/gizle
@@ -3342,7 +3342,7 @@
Yol izi kaydedildiDosya adı boşEski haline döndür
- Ekranın, kalkış noktasını ortalamasını sağlamak için bir buton. Daha sonra hedef belirlemeyi veya rota hesaplamasını tetiklemeyi isteyecektir.
+ Ekranın, kalkış noktasını ortalamasını sağlamak için bir düğme. Daha sonra hedef belirlemeyi veya rota hesaplamasını tetiklemeyi isteyecektir.Düğüm ağı bisiklet rotalarını göster%1$s\'i temizle\?Harita indirme iletişim kutusu
@@ -3360,7 +3360,7 @@
Başlığı dahil etKayıt sırasında her izleme noktasına başlığı kaydet.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sKişisel%s indiriliyorKalın
@@ -3370,7 +3370,7 @@
\'Uygula\'ya dokunmak, kaldırılan profilleri kalıcı olarak siler.Ana profilRenk seç
- OsmAnd varsayılan profilleri silinemez, ancak (önceki ekranda) devre dışı bırakılabilir veya en altta sıralanabilir.
+ OsmAnd öntanımlı profilleri silinemez, ancak (önceki ekranda) devre dışı bırakılabilir veya en altta sıralanabilir.Profilleri düzenle\'Navigasyon türü\' rotaların nasıl hesaplandığını yönetir.Profil görünümü
@@ -3378,7 +3378,7 @@
Profil listesini düzenleSeçilen profil%1$s\'e dokunmak tüm değişikliklerinizi atacaktır.
- Tüm profil ayarları kurulum anındaki varsayılanlarına sıfırlayın.
+ Tüm profil ayarlarını kurulum anındaki öntanımlılarına sıfırlayın.Tüm profil ayarları sıfırlansın mı\?%1$s: %2$s%1$s %2$s
@@ -3430,51 +3430,51 @@
Minimum hızMinimum doğrulukMinimum yer değiştirme
- Eklenti ayarlarını varsayılana sıfırla
+ Eklenti ayarlarını öntanımlılara sıfırlaKaydedici bölmesiSistem uygulamasını kullanKamera deklanşör sesiYetkilendirme başarılıKategorileri yeniden düzenle
- Özel kategoriler ekleyebilir, gerekli bulmadığınız kategorileri gizleyebilir ve listenin sıralama düzenini değiştirebilirsiniz. Liste, profillerle içe ve dışa aktarılabilir.
+ Listenin sıralama düzenini değiştirin, gereksiz kategorileri gizleyin. Profillerle tüm değişiklikleri içe veya dışa aktarabilirsiniz.Bir veya birkaç gerekli kategori seçerek yeni bir özel kategori ekleyebilirsiniz.MevcutÖzel kategori ekleSadece geceleri göster
- Tüm eklenti ayarları varsayılan durumuna geri yüklendi.
- Tüm profil ayarları varsayılan durumuna geri yüklendi.
+ Tüm eklenti ayarları öntanımlı durumuna geri yüklendi.
+ Tüm profil ayarları öntanımlı durumuna geri yüklendi.%1$s/%2$s%1$s\'de gün batımı%1$s\'de gün doğumuSisteminizde erişilebilirlik modu devre dışı.
- Varsayılana sıfırla, sıralama düzenini kurulumdan sonraki varsayılan duruma sıfırlayacaktır.
+ Öntanımlılara sıfırla, sıralama düzenini kurulumdan sonraki öntanımlı duruma sıfırlayacaktır.Sistem ekran zaman aşımını kullan
- Varsayılan olarak devre dışıdır, OsmAnd ön planda çalışıyorsa ekran zaman aşımına uğramaz.
-\n
+ Öntanımlı olarak devre dışıdır, OsmAnd ön planda çalışıyorsa ekran zaman aşımına uğramaz.
+\n
\nEtkinleştirilirse OsmAnd sistem zaman aşımı ayarlarını kullanacaktır.Kaydedilen verileri temizle
- • Profiller: artık sırayı değiştirebilir, harita simgesini ayarlayabilir, temel profiller için tüm ayarları değiştirebilir ve bunları varsayılanlara geri yükleyebilirsiniz
-\n
-\n • Navigasyona çıkış numarası eklendi
-\n
-\n • Eklenti ayarları yenilendi
-\n
-\n • Tüm profillere hızlı erişim için Ayarlar ekranı yenilendi
-\n
-\n • Ayarları başka bir profilden kopyalama seçeneği eklendi
-\n
-\n • Arama\'da sıralamayı değiştirme veya POI kategorilerini gizleme özelliği eklendi
-\n
-\n • POI simgeleri haritada doğru şekilde hizalandı
-\n
-\n • Harita Yapılandırmaya Gün Batımı / Gün Doğumu verileri eklendi
-\n
-\n • Haritaya Ev / İş simgeleri eklendi
-\n
-\n • Ayarlarda çok satırlı açıklama desteği eklendi
-\n
-\n • Japonya haritasına doğru harf çevirisi eklendi
-\n
+ • Profiller: artık sırayı değiştirebilir, harita simgesini ayarlayabilir, temel profiller için tüm ayarları değiştirebilir ve bunları öntanımlılara geri yükleyebilirsiniz
+\n
+\n • Navigasyona çıkış numarası eklendi
+\n
+\n • Eklenti ayarları yenilendi
+\n
+\n • Tüm profillere hızlı erişim için Ayarlar ekranı yenilendi
+\n
+\n • Ayarları başka bir profilden kopyalama seçeneği eklendi
+\n
+\n • Arama\'da sıralamayı değiştirme veya POI kategorilerini gizleme özelliği eklendi
+\n
+\n • POI simgeleri haritada doğru şekilde hizalandı
+\n
+\n • Harita Yapılandırmaya Gün Batımı / Gün Doğumu verileri eklendi
+\n
+\n • Haritaya Ev / İş simgeleri eklendi
+\n
+\n • Ayarlarda çok satırlı açıklama desteği eklendi
+\n
+\n • Japonya haritasına doğru harf çevirisi eklendi
+\n
\n • Antarktika haritası eklendi
\n
\n
@@ -3494,7 +3494,7 @@
İçe aktarılan profil ilave veriler içermektedir. Yalnızca profil verilerini içe aktarmak için İçe Aktar\'ı tıklayın veya içe aktarılacak ilave verileri seçin.Profil ile birlikte dışa aktarılacak ilave veriler seçebilirsiniz.Antarktika
- Uygulama Varsayılanı (%s)
+ Uygulama Öntanımlı Değeri (%s)Yeniden hesaplamayı devre dışı bırakRotayı yeniden hesaplamak için minimum mesafeRotaya olan mesafe belirtilen parametreden daha uzunsa rota yeniden hesaplanacak
@@ -3512,11 +3512,86 @@
Geçerli ögeler, dosyadaki ögelerle değiştirilecekHepsini değiştirHer ikisini de sakla
- İçe aktarılan ögeler ön ek ile eklenecek
+ İçe aktarılan ögelere ön ek eklenecekOsmAnd\'da içe aktarılanlarla aynı isme sahip ögeler zaten var.
\n
\nBir eylem seçin.Bazı ögeler zaten varİçe aktarılacak verileri seçin.Görselleştirme stili
+ Görselleştirme dosyasını içe aktar
+ Arazi
+ Yamaçları, zirveleri ve ovaları göstermek için koyu tonları kullanan tepe gölgesi haritası.
+ Yamaç, arazide renklendirilmiş görselleştirmelerdir.
+ Katmanın görüntüleneceği minimum ve maksimum zoom seviyelerini ayarlayın.
+ Harita üzerinde tepe gölgesi görüntülemek için ek haritalara ihtiyaç vardır.
+ Harita üzerinde yamaçları görüntülemek için ek haritalara ihtiyaç vardır.
+ %1$s\'de yamaçlar hakkında daha fazla bilgi edinebilirsiniz.
+ Şeffaflık
+ Zoom seviyeleri
+ Lejand
+ Tepe gölgesi veya yamaç haritasını görüntülemeyi etkinleştir. Bu harita türleri hakkında daha fazla bilgiyi sitemizde okuyabilirsiniz
+ Tepe gölgesi
+ %1$s\'deki tüm veriler içe aktarıldı, yönetmek amacıyla uygulamanın gerekli bölümünü açmak için aşağıdaki düğmeleri kullanabilirsiniz.
+ İçe aktarma tamamlandı
+ Eklenen ögeler
+ OsmAns, uygulamadaki mevcut ögelerle yinelenme durumu için %1$s\'i kontrol ediyor.
+\n
+\nBu biraz zaman alabilir.
+ İçe aktarılıyor
+ Veriler %1$s\'den içe aktarılıyor
+ Profil yedeklenemedi.
+ Yeni profil kaydediliyor
+ Tüm profil ayarları geri yüklensin mi\?
+ Bu profili oluşturduktan/ içe aktardıktan sonra tüm profil ayarları orijinal değerlerine geri yüklenecektir.
+ Kayıtlı verileri silmek istediğinize emin misiniz\?
+ Sapma durumunda rotayı yeniden hesapla
+ Rotanın yeniden hesaplanacağı mesafeyi seçin.
+ Rotadan geçerli konuma olan mesafe seçilen değerden fazla ise rota yeniden hesaplanacaktır.
+ %1$s / %2$s
+ Yamaçlar
+ Araziyi göster/gizle
+ Araziyi gizle
+ Araziyi göster
+ Haritada arazi katmanını göstermek veya gizlemek için bir düğme.
+ Açıklamayı sil
+ Açıklama ekle
+ Grup seç
+ Şekil seç
+ Daire
+ Sekizgen
+ Kare
+ Min
+ Başka bir noktayı bununla değiştirin
+ Kayak turu
+ Kar arabası
+ Özel OsmAnd eklentisi
+ %1$s profiline değişiklikler uygulandı.
+ %1$s okunamadı.
+ %1$s yazılamadı.
+ %1$s içe aktarılamadı.
+ İzlenen yol dosyasını seç
+ Diller
+ Dil
+ Tüm diller
+ Wikipedia POI\'lerini haritada görüntülemek için ek haritalara ihtiyaç vardır.
+ Çekmece ögeleri, içerik menüsü
+ Çekmece
+ Gizlendikten sonra ayarlar orijinal durumuna sıfırlanacaktır.
+ Ögeler
+ Çekmecedeki ögelerin sayısını özelleştirin, haritayı ve içerik menüsünü yapılandırın.
+\n
+\n%1$s uygulamasından tüm denetimlerini gizlemek için kullanılmayan eklentileri devre dışı bırakabilirsiniz.
+ Kullanıcı Arayüzü Özelleştirme
+ İçerik menüsü eylemleri
+ %1$s\'den ögeleri yeniden sırala veya gizle.
+ Bölücü
+ Bu noktanın altındaki ögeler bir bölücü ile ayrılır.
+ Gizli
+ Bu ögeler menüden gizlenir, ancak temsil edilen seçenekler veya eklentiler hala çalışır.
+ Ana eylemler sadece 4 düğme içerir.
+ Ana eylemler
+ Bu eylemlere “Eylemler” düğmesine dokunarak erişebilirsiniz.
+ Ögeleri yalnızca bu kategorinin içine taşıyabilirsiniz.
+ Geliştirici Eklentisi
\ No newline at end of file
diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml
index b0f41824b2..1a4d5018e6 100644
--- a/OsmAnd/res/values-uk/strings.xml
+++ b/OsmAnd/res/values-uk/strings.xml
@@ -28,7 +28,7 @@
Скасувати завантаження\?Дякуємо за використання OsmAnd. Завантажуйте регіональні дані для використання в автономному режимі за допомогою пункту меню \'Налаштування\' → \'Управління мапами\' для перегляду мап, пошуку адрес, POI, громадського транспорту тощо.Основна мапа, необхідна для забезпечення основних можливостей, знаходиться у черзі завантаження.
- Нічого не знайдено. Якщо ви не знайшли свій регіон, ви можете створити його самостійно (див. https://osmand.net).
+ Нічого не знайдено. Якщо Ви не знайшли свій регіон, Ви можете створити його самостійно (див. https://osmand.net).Мережеві та кешовані растрові мапиСтандартні мапи (векторні)Завантаження, перегляд подробиць та управління локальними мапами.
@@ -37,7 +37,7 @@
Використовувати мережеві мапи (завантажити та кешувати плитки на карті пам\'яті).Мережеві мапиОберіть мережеві або кешовані джерела (тайлів) мап.
- Цей втулок надає можливість отримати доступ до багатьох видів мережевих (так званих растрових) мап які ви хочете, від попередньо створених квадратів OpenStreetMap (на зразок стилю Mapnik) до супутникових знімків та особливих шарів, як-от погодні, кліматичні та землезнавчі (геологічні) мапи, шари рельєфу тощо.
+ Цей втулок надає можливість отримати доступ до багатьох видів мережевих (так званих растрових) мап які Ви хочете, від попередньо створених квадратів OpenStreetMap (на зразок стилю Mapnik) до супутникових знімків та особливих шарів, як-от погодні, кліматичні та землезнавчі (геологічні) мапи, шари рельєфу тощо.
\n
\nБудь яка з цих мап може використовуватись як основна мапа в OsmAnd, або як покриття чи підкладка до іншої основної мапи (наприклад усталена безмережева мапа OsmAnd). Для того, щоб зробити більш помітною будь-яку мапу-підкладку, певні елементи векторної мапи OsmAnd можна легко сховати через меню „Налаштування мапи“ за бажанням, щоб зробити будь-яку підкладку мапи помітнішою..
\n
@@ -59,7 +59,7 @@
ВидимістьТегиОпис
- Для вивантаження GPX-файлів, будь ласка, вкажіть ваше ім\'я користувача і пароль в OSM.
+ Для вивантаження GPX-файлів, будь ласка, вкажіть Ваше ім\'я користувача і пароль в OSM.ПідтримкаПідтримати розробку нових функційВідображати масштаб
@@ -120,7 +120,7 @@
Використовувати флуоресцентні кольори для відображення треків та шляхів.Оффлайн редагуванняЗавжди використовувати оффлайн редагування.
- Зміни POI всередині застосунку не впливають на завантажені файли мап - вони зберігаються в окремий файл на вашому пристрої.
+ Зміни POI всередині застосунку не впливають на завантажені файли мап - вони зберігаються в окремий файл на Вашому пристрої.Вивантаження…{0} POI/нотатки вивантаженоВивантажити усе
@@ -262,7 +262,7 @@
Налагоджувальні відомості про відмалюванняВідображає плідність відмалювання.Розпаковуються нові дані…
- Мережева служба навігації обрана, але ви не підключені до Всемережжя.
+ Мережева служба навігації обрана, але Ви не підключені до Всемережжя.Мова не підтримуєтьсяВибрана мова не підтримується встановленим двигуном Android TTS (текстовим мовленням), замість цього буде використана його попередньо налаштована мова TTS. Шукаєте інший двигун TTS\?Дані відсутні
@@ -457,7 +457,7 @@
Інтервал вмикання GPSВиберіть метод позиціонування, що використовується тловою службою:Джерело позиціювання
- Відслідковує ваше місцерозташування, поки екран вимкнено.
+ Відслідковує Ваше місцерозташування, поки екран вимкнено.Запустити OsmAnd у фоніСлужбі навігації у тлі необхідно, аби постачальник позиціювання був активним.Сховати фільтр
@@ -588,7 +588,7 @@
Налаштування даних: мова, оновлення даних.ДаніOpenStreetMap-редагування
- Зміна масштабу мапи згідно вашої швидкості (якщо мапа синхронізована з поточним положенням).
+ Зміна масштабу мапи згідно Вашої швидкості (якщо мапа синхронізована з поточним положенням).Самозменшення/збільшенняДодаткові налаштуванняНалаштування
@@ -619,7 +619,7 @@
Джерело растрових мапДжерело мапиВикористовувати Інтернет
- Показати ваше місцерозташування
+ Показати Ваше місцерозташуванняПоказати GPS-координати на мапіЗавантажити відсутні плитки мапиНавігаційна програма
@@ -635,9 +635,9 @@
Виберіть перехрестяНайближчі послугиОгляд мапи
- Автомобіль
+ ВодінняВелосипед
- Пішохід
+ ХодінняВ центріВнизуШирота та довгота введення у вибраному форматі (D - градуси, M - хвилини, S - секунди)
@@ -702,7 +702,7 @@
ПриватнийЗабрати автомобіль зі стоянкиПопередження
- Повідомлення про прийом автомобіля було додано до вашого календаря, і його можна редагувати чи видаляти там.
+ Повідомлення про прийом автомобіля було додано до Вашого календаря, і його можна редагувати чи видаляти там.Вкажіть максимальний час стоянкиВидалити позначку місця стоянки?Вилучити позначку місця стоянки
@@ -712,12 +712,12 @@
Додати нагадування в КалендарОбмежений час стоянкиЧас стоянки необмежений
- Розташування вашого припаркованого автомобіля. %1$s
+ Розташування Вашого припаркованого автомобіля. %1$sЗабрати автомобіль о:PMAMМісце стоянки
- Дозволяє записувати, де вашу автівку припарковано, а також, скільки часу залишається на парковці.
+ Дозволяє записувати, де Вашу автівку припарковано, а також, скільки часу залишається на парковці.
\n Місце розташування та час видно на приладовій панелі, а також у віджеті мапи. Нагадування про сигналізацію можна додати в календар Android.Місце стоянкиПозначити як місце паркування
@@ -781,7 +781,7 @@
Світлина %1$s %2$sЗробити світлинуЗробити світлину
- Взаємозберігайте треки та звуко/відео-нотатки з вашим обліковим записом Dropbox.
+ Взаємозберігайте треки та звуко/відео-нотатки з Вашим обліковим записом Dropbox.Втулок DropboxЗмінити порядокБудь ласка, зверніть увагу на оплату втулка \"Горизонталі\" для підтримки подальшого розвитку.
@@ -939,26 +939,26 @@
\n - відсутній автономний доступ до POI з Вікіпедії
\n
\n OsmAnd активно розвивається, і наш проєкт та його подальший розвиток покладається на фінансові внески на розробку та тестування. Будь ласка, розгляньте можливість придбання OsmAnd+, профінансуйте конкретні нові можливості програми або зробіть благодійний внесок на https://osmand.net.
- OsmAnd+ (OSM Automated Navigation Directions)
-\n
-\n OsmAnd+ — навігаційний застосунок з відкритим сирцевим кодом з доступом до широкого спектра всесвітніх даних OSM. Всі дані мапи (векторні або растрові мапи) можуть бути збережені на карті пам\'яті телефону для автономного використання. OsmAnd також пропонує можливість прокладання маршруту як автономно, так і з використанням мережевих служб з покроковим голосовим супроводом.
-\n
-\n OsmAnd+ — це платна версія застосунку. Купуючи його, ви підтримуєте проєкт, фінансуєте розробку нових функцій та отримуєте останні оновлення.
-\n
-\n Кілька основних можливостей:
+ OsmAnd+ (OSM Automated Navigation Directions)
+\n
+\n OsmAnd+ — навігаційний застосунок з відкритим сирцевим кодом з доступом до широкого спектра всесвітніх даних OSM. Всі дані мапи (векторні або растрові мапи) можуть бути збережені на карті пам\'яті телефону для автономного використання. OsmAnd також пропонує можливість прокладання маршруту як автономно, так і з використанням мережевих служб з покроковим голосовим супроводом.
+\n
+\n OsmAnd+ — це платна версія застосунку. Купуючи його, Ви підтримуєте проєкт, фінансуєте розробку нових функцій та отримуєте останні оновлення.
+\n
+\n Кілька основних можливостей:
\n - Повністю автономна функціональність (просто збережіть векторні чи растрові мапи на пристрій)
-\n - Доступні компактні автономні векторні мапи для усього світу
-\n - Необмежена кількість завантажень мап окремої країни чи області безпосередньо у програмі
-\n - Можливість автономної роботи із даними Вікіпедії (завантажте POI Вікіпедії) є чудовим інструментом для мандрівників
-\n - Можливість накладання додаткових даних на мапу: наприклад, GPX- або навігаційні треки, POI, Закладки, горизонталі, зупинки громадського транспорту, додаткові мапи з налаштовуваною прозорістю
-\n
-\n - Автономний пошук адрес та місць (POI)
-\n - Автономне прокладання маршрутів для середніх відстаней
-\n - Режими автомобіліста, велосипедиста або пішохода з опціями:
-\n - Самоперемикання денного/нічного режиму відображення
-\n - Масштабування мапи відповідно до швидкості руху
-\n - Орієнтація мапи за компасом чи напрямком руху
-\n - Ведення по смугах руху, відображення обмежень швидкості, записані чи синтезовані (TTS) голоси супроводу
+\n - Доступні компактні автономні векторні мапи для усього світу
+\n - Необмежена кількість завантажень мап окремої країни чи області безпосередньо у програмі
+\n - Можливість автономної роботи із даними Вікіпедії (завантажте POI Вікіпедії) є чудовим інструментом для мандрівників
+\n - Можливість накладання додаткових даних на мапу: наприклад, GPX- або навігаційні треки, POI, Закладки, горизонталі, зупинки громадського транспорту, додаткові мапи з налаштовуваною прозорістю
+\n
+\n - Автономний пошук адрес та місць (POI)
+\n - Автономне прокладання маршрутів для середніх відстаней
+\n - Режими автомобіліста, велосипедиста або пішохода з опціями:
+\n - Самоперемикання денного/нічного режиму відображення
+\n - Масштабування мапи відповідно до швидкості руху
+\n - Орієнтація мапи за компасом чи напрямком руху
+\n - Ведення по смугах руху, відображення обмежень швидкості, записані чи синтезовані (TTS) голоси супроводу
\nНазва вулиціНомер будинку
@@ -1235,8 +1235,8 @@
Уникати автомагістралейОбмеження по вазіВказати дозволений ліміт ваги автомобіля на маршрутах.
- Починаючи з Android версії 4.4 (KitKat) ви не в змозі завантажувати та оновлювати мапи у попередню теку (%s). Скопіювати всі файли OsmAnd в нове місце\?
-\n Примітка 1: ваші старі файли залишаться недоторканими (їх можна вилучити вручну).
+ Починаючи з Android версії 4.4 (KitKat) Ви не в змозі завантажувати та оновлювати мапи у попередню теку (%s). Скопіювати всі файли OsmAnd в нове місце\?
+\n Примітка 1: Ваші старі файли залишаться недоторканими (їх можна вилучити вручну).
\n Примітка 2: в новій теці спільне використання файлів програмами OsmAnd та OsmAnd+ неможливе.Файл (%s) копіюється на нове місце…Копіювання файлів даних OsmAnd до нового місця (%s)…
@@ -1280,7 +1280,7 @@
Тільки вручну (натискати на стрілку)Повторювати навігаційні вказівки через регулярні проміжки часу.Повторювати навігаційні вказівки
- string name=\"lat_lon_pattern\">Шир: %1$.5f Дов: %2$.5f</string
+ Online OSM класифікація карт із зображенням.Зберегти дані як GPX-файл чи імпортувати маршрутні точки в \'Закладки\'?ПоділитисяЗакладки, якими поділились через OsmAnd
@@ -1305,9 +1305,9 @@
АвтівкаВелосипедПішки
- Цей втулок задіює можливість записувати та зберігати ваші треки вручну, торкаючись віджету часопису GPX на екрані мапи, або автоматично записувати всі ваші подорожі у файл GPX.
+ Цей втулок задіює можливість записувати та зберігати Ваші треки вручну, торкаючись віджету часопису GPX на екрані мапи, або автоматично записувати всі Ваші подорожі у файл GPX.
\n
-\nЗаписаними треками можна поділитись з вашими друзями або іншими учасниками спільноти OSM. Атлети можуть використовувати записані треки для відстежування власних тренувань. Основний розбір треків наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість й т.п., звісно, записані треки можна також проаналізувати за допомогою іншого програмного забезпечення.
+\nЗаписаними треками можна поділитись з Вашими друзями або іншими учасниками спільноти OSM. Атлети можуть використовувати записані треки для відстежування власних тренувань. Основний розбір треків наявний безпосередньо в OsmAnd, наприклад: час проходження кола, середня швидкість й т.п., звісно, записані треки можна також проаналізувати за допомогою іншого програмного забезпечення.Писати трек у файл GPXЗагальний запис розташування до файлу GPX можна ввімкнути або вимкнути кнопкою часопису GPX на екрані з мапою.Інтервал записування
@@ -1434,9 +1434,9 @@
Увімкнути HTTP проксі-серверНалаштування HTTP проксі-сервера для усіх мережевих запитів.Адреса проксі-серверу
- Налаштуйте ім’я госту вашого проксі-сервера (наприклад, 127.0.0.1).
+ Налаштуйте ім’я госту Вашого проксі-сервера (наприклад, 127.0.0.1).Порт проксі-сервера
- Вкажіть номер порту вашого проксі-сервера (наприклад, 8118).
+ Вкажіть номер порту Вашого проксі-сервера (наприклад, 8118).Голосові повідомленняЕкспортВимкнено
@@ -1463,7 +1463,7 @@
Ваші правкиВідвідати післяВідвідати, перш ніж
- Моделювання вашого місця розташування
+ Моделювання Вашого місця розташуванняСуцільним спискомШир %1$s\nДов %2$sЗапитання та відповіді, останні зміни та інше.
@@ -1501,9 +1501,9 @@
Показати опис.ПовідомленняЗавантажені дані A-GPS: %1$s
- У багатьох країнах (Німеччина, Франція, Італія та інші) використання детекторів камер контролю швидкості не дозволено законом. OsmAnd не несе ніякої відповідальності, якщо Ви порушите закон. Будь ласка, натисніть кнопку „Так“, тільки якщо ви маєте право використовувати цю функцію.
+ У багатьох країнах (Німеччина, Франція, Італія та інші) використання детекторів камер контролю швидкості не дозволено законом. OsmAnd не несе ніякої відповідальності, якщо Ви порушите закон. Будь ласка, натисніть кнопку „Так“, тільки якщо Ви маєте право використовувати цю функцію.Завантаження мап
- Щоб правильно показувати дорожні знаки та правила дорожнього руху, будь ласка, виберіть ваш регіон:
+ Щоб правильно показувати дорожні знаки та правила дорожнього руху, будь ласка, виберіть Ваш регіон:OsmAnd забезпечує перегляд глобальної автономної (офлайн-) мапи і автономну навігацію.Ласкаво просимоПоточний маршрут
@@ -1526,7 +1526,7 @@
\nЦей вигляд можна знедіяти тут або змінити на інший, змінивши „Стиль мапи“ на потрібний в „Налаштування мапи“.Втулок забезпечує вам доступ до даних про гірськолижні траси, маршрути для бігових лиж, гірськолижні спуски, фунікулери та підйомники. Маршрути і спуски відзначені різними кольорами залежно від їх складності та зображені з використанням спеціального „зимового“ стилю мапи, який полягає в тому, що використовуються „снігові“ кольори зимового пейзажу.
\n
-\nУ разі задіювання цього вигляду, стиль мапи змінюється на „Winter and ski“, показуючи усі деталі пейзажу так, як вони виглядають взимку. Цей (зимовий) вид може бути де-активований тут, або якщо ви поміняєте „Стиль мапи“ в меню „Налаштування мапи“ на бажаний вид.
+\nУ разі задіювання цього вигляду, стиль мапи змінюється на „Winter and ski“, показуючи усі деталі пейзажу так, як вони виглядають взимку. Цей (зимовий) вид може бути де-активований тут, або якщо Ви поміняєте „Стиль мапи“ в меню „Налаштування мапи“ на бажаний вид.Номери будинківПеремістити файли даних OsmAnd в нове місце\?Не вдалося створити мапи у вказаній теці
@@ -1696,7 +1696,7 @@
НавігаціяПрацює у фоновому режиміВідомості по закладці
- Зупинити симуляцію вашої позиції.
+ Зупинити симуляцію Вашої позиції.Пошук адресиМісцяВтулки
@@ -1763,7 +1763,7 @@
Оновити все (%1$s МБ)Використано безкоштовних завантаженьПоказує кількість безкоштовних завантажень, що лишилися.
- Виберіть, де ви будете зберігати мапи та файли даних.
+ Виберіть, де Ви будете зберігати мапи та файли даних.Введіть назву країниНова версіяПерші кроки з OsmAnd
@@ -1814,10 +1814,10 @@
СамооновленняДоступні мапиВиберіть голосові вказівки
- Виберіть або завантажте голосові вказівки для вашої мови.
+ Виберіть або завантажте голосові вказівки для Вашої мови.Виберіть дороги, які потрібно уникнути під час навігації.Звук
- POI буде вилучено після того, як ви вивантажите ваші зміни
+ POI буде вилучено після того, як Ви вивантажите Ваші зміниМапа виключно доріг не потрібна, оскільки у вас є стандартна (повна) мапа. Все одно завантажити?OsmAnd не має дозволу на використання карти пам\'ятіОстаннє оновлення: %s
@@ -1878,7 +1878,7 @@
Позначка мапиРекомендується вимкнути промальовку полігонів.GPX-файл з координатами.
- Навіть, якщо ви придбали платну версію, ви все ще можете бачити банер для безкоштовної версії.
+ Навіть, якщо Ви придбали платну версію, Ви все ще можете бачити банер для безкоштовної версії.На вибір пропонується керувати додатком головним чином за допомогою гнучкої панелі керування або статичного меню. Ваш вибір завжди може бути змінений в налаштуваннях панелі керування.Перша позначка мапиДруга позначка мапи
@@ -1963,7 +1963,7 @@
Передплата дозволяє щогодини отримувати оновлення для мап по всьому світу.
\nЧастина від передплати переводиться спільноті OSM та виплачується кожному землеписцю за його внесок.
\nЯкщо Вам подобається OsmAnd та OSM, і хочете підтримати і бути підтриманими ними, це ідеальний спосіб зробити це.
- Надішліть вашу OSM-нотатку таємно, або скориставшись обліковим записом на OSM.org.
+ Надішліть Вашу OSM-нотатку таємно, або скориставшись обліковим записом на OSM.org.Надіслати нотатку в OSMІм\'я файлу містить неприпустимі знакиСлідкуйте за нами
@@ -2021,7 +2021,7 @@
Мінімальна точність записуФільтр: не часописати, якщо ця точність не досягнута.Різдвяні POI
- Напередодні різдвяних і новорічних свят, ви можете вибрати для відображення POI, пов\'язані з Різдвом: ялинки, ярмарки і т.п.
+ Напередодні різдвяних і новорічних свят, Ви можете вибрати для відображення POI, пов\'язані з Різдвом: ялинки, ярмарки і т.п.Показати різдвяні POI?Світло-коричневийТемно-коричневий
@@ -2043,7 +2043,7 @@
Введіть назву для нового фільтра. Ви зможете його знайти у списку категорій.Абонентська плата стягується щомісячно. Скасувати підписку можна в Google Play у будь-який момент.Пожертва для спільноти OSM
- Частина вашого пожертвування надсилається до OSM-вкладників. Вартість передплати залишається однаковою.
+ Частина Вашого пожертвування надсилається до OSM-вкладників. Вартість передплати залишається однаковою.Підписка включає в себе щогодинні, щоденні і щотижневі оновлення, а також необмежену кількість доступних завантажень для усіх мап з усього світу.ОтриматиОтримати на %1$s
@@ -2054,7 +2054,7 @@
У Вас немає завантажених мап. Ви можете вибрати мапу зі списку або завантажити її пізніше за допомогою меню — %1$s.Виберіть інший регіонПошук мапи…
- OsmAnd визначить ваше місце розташування і запропонує завантажити мапи для цього регіону.
+ OsmAnd визначить Ваше місце розташування і запропонує завантажити мапи для цього регіону.Неможливо визначити місце розташуванняЗ’єднання з Інтернетом відсутнєНеобхідно завантажити мапи.
@@ -2317,12 +2317,12 @@
\nМапа
\n• Відображає POI (цікаві точки) навколо вас
-\n• Налаштовує мапу за напрямком вашого руху (чи за компасом)
-\n• Показує ваше розташування та напрямок вашого погляду
+\n• Налаштовує мапу за напрямком Вашого руху (чи за компасом)
+\n• Показує Ваше розташування та напрямок Вашого погляду
\n• Діліться своїм розташуванням, щоб друзі змогли знайти вас
-\n• Зберігає ваші найважливіші місця у \'Закладки\'
+\n• Зберігає Ваші найважливіші місця у \'Закладки\'
\n• Дозволяє Вам вибрати вигляд назв на мапі: англійською мовою, локальною мовою або фонетичним написанням
-\n• Показує спеціалізовані онлайн-мапи, супутниковий вид (від Bing), різні накладки на кшталт туристичних/навігаційних GPX-треків та додаткові шари з налаштовуваною прозорістю
+\n• Показує спеціалізовані онлайн-мапи, супутниковий вид (від Bing), різні накладки на кшталт туристичних/навігаційних GPX-треків та додаткові шари з налаштовуваною прозорістю
\nКатання на лижах
\nOsmAnd-втулок лижних мап дозволяє бачити лижні траси з рівнем складності та деякою додатковими відомостями на зразок розташування підйомників та інших об’єктів.
@@ -2330,19 +2330,19 @@
\n• Знаходьте велосипедні доріжки на мапі
\n• GPS-навігація у велосипедному режимі будує маршрут з використанням велосипедних доріжок
\n• Ви можете бачити свою швидкість та висотне положення
-\n• Опція запису GPX дозволяє вам записувати вашу подорож та ділитися нею
-\n• Через додатковий втулок ви можете увімкнути відображення горизонталей та рельєфу
- Прогулянки, походи, екскурсія по місту
-\n• Мапа показує доріжки для прогулянок та походів
-\n• Вікіпедія вашою обраною мовою може багато розповісти під час екскурсії містом
-\n• Зупинки громадського транспорту (автобус, трамвай, поїзд), в тому числі назви лінії, допомагають орієнтуватися в новому місті
-\n• GPS-навігація в пішохідному режимі будує маршрут, використовуючи доріжки для прогулянок
-\n• Завантажте і слідуйте GPX-маршрутом або запишіть і поділіться своїм власним
+\n• Опція запису GPX дозволяє вам записувати Вашу подорож та ділитися нею
+\n• Через додатковий втулок Ви можете увімкнути відображення горизонталей та рельєфу
+ Прогулянки, походи, екскурсія по місту
+\n• Мапа показує доріжки для прогулянок та походів
+\n• Вікіпедія Вашою обраною мовою може багато розповісти під час екскурсії містом
+\n• Зупинки громадського транспорту (автобус, трамвай, поїзд), в тому числі назви лінії, допомагають орієнтуватися в новому місті
+\n• GPS-навігація в пішохідному режимі будує маршрут, використовуючи доріжки для прогулянок
+\n• Завантажте і слідуйте GPX-маршрутом або запишіть і поділіться своїм власним
\n
- Участь в OSM
-\n• Звітуйте про помилки в даних
-\n• Вивантажуйте GPX-треки в OSM безпосередньо з програми
-\n• Додавайте POI та вивантажуйте їх безпосередньо в OSM (або пізніше, якщо ви зараз в офлайні)
+ Участь в OSM
+\n• Звітуйте про помилки в даних
+\n• Вивантажуйте GPX-треки в OSM безпосередньо з програми
+\n• Додавайте POI та вивантажуйте їх безпосередньо в OSM (або пізніше, якщо Ви зараз в офлайні)
\nOsmand — це програмне забезпечення з відкритим кодом, що активно розвивається. Кожен може зробити внесок у програму шляхом звітування про помилки, поліпшення перекладів або створення нових функцій. Крім того, проєкт покладається на фінансові внески для оплати створення та тестування нових можливостей.
\nПриблизне охоплення та якість мап:
@@ -2361,24 +2361,24 @@
OsmAnd+ (OSM Automated Navigation Directions) — картографічний навігаційний застосунок з доступом до вільних, всесвітніх та високоякісних даних OSM.
\nНасолоджуйтесь голосовою та візуальною навігацією, переглядом цікавих точок (англ. POI), створенням та керуванням GPX-треками, використовуючи відображення горизонталей та даних про висоту (за допомогою зовнішнього втулка), вибором між режимами автомобіліста, велосипедиста й пішохода, редагуванням OSM та ще багато чим іншим.
\n
-\nOsmAnd+ є платною версією програми. Купуючи її, ви підтримуєте проєкт, фінансуєте розробку нових можливостей та отримуєте останні оновлення.
+\nOsmAnd+ є платною версією програми. Купуючи її, Ви підтримуєте проєкт, фінансуєте розробку нових можливостей та отримуєте останні оновлення.
\n
\nДеякі з основних можливостей:Навігація
-\n• Працює через мережу (швидше) або в автономному режимі (без плати за роумінг, коли ви за кордоном)
+\n• Працює через мережу (швидше) або в автономному режимі (без плати за роумінг, коли Ви за кордоном)
\n• Покроковий голосовий супровід (записані чи синтезовані голоси)
\n• Опціональне ведення по смугах руху, відображення назви вулиці та приблизного часу прибуття
-\n• Підтримує проміжні точки на вашому маршруті
+\n• Підтримує проміжні точки на Вашому маршруті
\n• Самооновлення маршруту у разі відхилення від нього
\n• Пошук місць за адресою, типом (наприклад, ресторан, готель, заправка, музей) чи географічними координатами
\nПерегляд мапи
-\n• Відображення вашої позиції та орієнтації у просторі
-\n• За потреби, вирівнювання мапи за компасом чи за напрямком вашого руху
-\n• Зберігайте ваші найважливіші місця у Закладках
+\n• Відображення Вашої позиції та орієнтації у просторі
+\n• За потреби, вирівнювання мапи за компасом чи за напрямком Вашого руху
+\n• Зберігайте Ваші найважливіші місця у Закладках
\n• Відображення POI (цікавих точок) навколо вас
\n• Показує спеціалізовані мережеві мапи, супутникові знімки (Bing), різні накладки на кшталт туристичних/навігаційних GPX-треків та додаткові шари з налаштовуваною прозорістю
-\n• Може відображати назви на мапі: українською, англійською, локальною чи з фонетичним написанням
+\n• Може відображати назви на мапі: українською, англійською, локальною чи з фонетичним написанням
\nВикористовуйте дані OSM та Вікіпедії
\n • Відомості високої якості від найкращих спільних проєктів світу
@@ -2389,9 +2389,9 @@
\n • Вибір між повними даними регіону та лише дорожньою мережею (приклад: уся Японія займає 700 МБ та лише 200 МБ займає її дорожня мережа)Засоби безпеки
\n• Опціональне автоматичне перемикання між режимами день/ніч
-\n• Опціональне відображення обмеження швидкості з нагадуванням, якщо ви перевищите його
+\n• Опціональне відображення обмеження швидкості з нагадуванням, якщо Ви перевищите його
\n• Опціональна зміна масштабу в залежності від швидкості
-\n• Можливість ділитися своїм розташуванням, щоб ваші друзі могли знайти вас
+\n• Можливість ділитися своїм розташуванням, щоб Ваші друзі могли знайти вас
\nМожливості для пішоходів та велосипедистів
\n• Перегляд прогулянкових маршрутів, пішохідних та велосипедних доріжок, чудово підходить для активного відпочинку
@@ -2403,9 +2403,9 @@
Безпосередній вклад у OSM
\n• Звітуйте про помилки в даних
\n• Вивантажуйте GPX-треки в OSM безпосередньо з програми
-\n• Додавайте POI (цікаві точки) та безпосередньо вивантажуйте їх в OSM (чи пізніше, якщо зараз ви в офлайні)
+\n• Додавайте POI (цікаві точки) та безпосередньо вивантажуйте їх в OSM (чи пізніше, якщо зараз Ви в офлайні)
\n• Опція запису подорожі також і у фоновому режимі (в той час як пристрій знаходиться в сплячому режимі)
-\nOsmAnd — вільне й відкрите програмне забезпечення, що активно розвивається. Кожен може внести свій вклад, звітуючи про помилки, поліпшуючи переклад чи розробляючи нові функції. Також проєкт покладається на фінансові внески для оплати розробки та тестування нових функціональних можливостей.
+\nOsmAnd — вільне й відкрите програмне забезпечення, що активно розвивається. Кожен може внести свій вклад, звітуючи про помилки, поліпшуючи переклад чи розробляючи нові функції. Також проєкт покладається на фінансові внески для оплати розробки та тестування нових функціональних можливостей.
\nПриблизне охоплення мап та якість:
\n • Західна Європа: ****
@@ -2419,7 +2419,7 @@
\n • Африка: **
\n • Антарктида: *
\nБільшість країн по всьому світу доступні для завантаження!
-\nОтримайте надійний навігатор у вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша…
+\nОтримайте надійний навігатор у Вашій країні — будь то Україна, Франція, Німеччина, Мексика, Великобританія, Іспанія, Нідерланди, США, Росія, Бразилія чи будь-яка інша…
\nНазва містить занадто багато великих літер. Продовжити?Додати світлини
@@ -2725,7 +2725,7 @@
Завантажити файлБезкоштовний всесвітній путівник, який може редагувати кожен.Туристичні путівники в даний час засновані на Вікімандрах. Перевірте усі функції безкоштовно під час відкритого бета-тестування. Потім путівники будуть доступні передплатникам OsmAnd Unlimited і власникам OsmAnd+.
- Вам можна і слід редагувати будь-яку статтю на Вікімандрах. Діліться знаннями, досвідом, талантом і вашої увагою.
+ Вам можна і слід редагувати будь-яку статтю на Вікімандрах. Діліться знаннями, досвідом, талантом і Вашої увагою.Розпочати редагуванняОтримати необмежений доступЛаскаво просимо на відкрите бета-тестування
@@ -3007,7 +3007,7 @@
На %1$sКнопка, що показує чи приховує вибрані треки GPX на мапі.Цікаві місця (POI)
- Оберіть дорогу, яку ви хочете уникати при навігації, або на мапі, або зі списку нижче:
+ Оберіть дорогу, яку Ви хочете уникати при навігації, або на мапі, або зі списку нижче:Показувати поруч з маршрутомОберіть файл треку для слідуванняПеремикач для режимів дня та ночі OsmAnd.
@@ -3022,7 +3022,7 @@
Перемістити мапиНе переміщувати мапиПіший маршрут займе приблизно %1$s і він може виявитися швидшим за громадський транспорт
- На жаль, OsmAnd не зміг підібрати маршрут, що відповідав би вашим налаштуванням.
+ На жаль, OsmAnd не зміг підібрати маршрут, що відповідав би Вашим налаштуванням.Спробуйте пішу навігацію.Спробуйте змінити налаштування.Розрахувати піший маршрут
@@ -3032,18 +3032,18 @@
Поділіться своїми відгуками та оцініть нашу роботу в Google Play.Політика конфіденційностіДопоможіть нам зробити OsmAnd кращим
- Дозвольте OsmAnd збирати та обробляти анонімні дані про використання застосунку. Ми не збираємо і не зберігаємо дані про ваше розташування або будь-які інші розташування, які ви переглядаєте на мапі.
+ Дозвольте OsmAnd збирати та обробляти анонімні дані про використання застосунку. Ми не збираємо і не зберігаємо дані про Ваше розташування або будь-які інші розташування, які Ви переглядаєте на мапі.
\n
\nВи можете змінити свій вибір у будь-який час через «Налаштування» → «Конфіденційність та безпека».
- Оберіть, даними якого типу ви хотіли б поділитися:
+ Оберіть, даними якого типу Ви хотіли б поділитися:Мап завантаженоЕкранів відвідано
- Вкажіть, якими даними ви дозволяєте OsmAnd-у ділитися.
+ Вкажіть, якими даними Ви дозволяєте OsmAnd-у ділитися.Допомагає нам зрозуміти популярність на мапі країни та областей.Допомагає нам зрозуміти, які можливості OsmAnd є найпопулярнішими.
- Натискаючи \"Дозволити\", ви погоджуєтесь з нашими %1$s
+ Натискаючи \"Дозволити\", Ви погоджуєтесь з нашими %1$sКонфіденційність та безпека
- Оберіть, якими даними ви ділитися з нами
+ Оберіть, якими даними Ви ділитися з намиНі, дякуюДозволитиНазва профілю
@@ -3052,7 +3052,7 @@
Приміський автобусМетроКінь
- Гелікоптер
+ ВертилітВи можете додати власну модифіковану версію файлу routing.xml до теки ..osmand/routingЛижіЛижі
@@ -3090,7 +3090,7 @@
ЗбійПід час останнього запуску OsmAnd сталася помилка. Допоможіть нам покращити OsmAnd - надішліть повідомлення про помилку.НЛО
- • Профілі застосунку: створюйте довільний профіль з довільною піктограмою та кольором для ваших особистих потреб
+ • Профілі застосунку: створюйте довільний профіль з довільною піктограмою та кольором для Ваших особистих потреб
\n
\n• Налаштовуйте типову та мінімальну/максимальну швидкості профілю
\n
@@ -3109,8 +3109,8 @@
\n• Інші виправлення помилок
\n
\n
- Персональний транспортер
- Моноколесо
+ Особистий перевізник
+ ОдноколіснийСамокатПоземна точність: %1$s, прямовисна точність: %2$sПоземна точність: %s
@@ -3193,7 +3193,7 @@
Відкрити трекТрек %s збереженоОб\'єднати прогалини
- Житель табору
+ ТабірникДім на колесахПоказати на мапі зони низьких викидів. Не впливає на маршрутизацію.Показати зони низьких викидів
@@ -3307,7 +3307,7 @@
Обмеження шириниВкажіть дозволену межу ширини транспортного засобу на маршрутах.Уникати певних маршрутів та типів доріг
- Мотовсюдихід
+ ПоручПовітряна дорогаЗ\'єднанняРозрахувати
@@ -3395,7 +3395,7 @@
Зберегти заголовокЗберегти заголовок для кожної точки треку під час запису.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sОсобистийЗавантаження %sТовсто
@@ -3447,15 +3447,15 @@
Не вдалося розібрати метод \'%s\'.Для використання цього параметра потрібен дозвіл.Це низькошвидкісний відсічний фільтр, щоб не записувати точки нижче певної швидкості. Це може призвести до плавнішого вигляду записаних треків при перегляді на мапі.
- Побічний вплив: у вашому треці будуть відсутні всі ділянки, де не було дотримано критерій найменшої швидкості (наприклад, коли ви підштовхуєте велосипед до крутого пагорба). Також не буде відомостей про проміжки спокою, як-от перерви. Це впливає на будь-який аналіз або після обробки, як, наприклад, при спробі визначити загальну тривалість вашої поїздки, час у русі або середню швидкість.
- Порада: Спробуйте спочатку скористатись виявленням руху через фільтр найменшого переміщення (B), який може здійснюватись, це може принести кращі наслідки, і ви втратите менше даних. Якщо ваші треки залишаються занадто шумними на низькій швидкості, спробуйте тут ненульові значення. Зауважте, що деякі вимірювання можуть взагалі не повідомляти про значення швидкості (деякі мережеві методи), і в цьому випадку ви нічого не записуєте.
- Зауваження: швидкість > 0 перевірка: Більшість наборів чіпів GPS повідомляють про значення швидкості, лише якщо алгоритм визначає, що ви перебуваєте в русі, і жоден, якщо ви цього не робите. Отже, використовуючи налаштування> 0 у цьому фільтрі, в деякому сенсі використовується виявлення руху GPS-чіпсета. Але навіть якщо не фільтровано під час запису, ми все одно використовуємо цю функцію в нашому аналізі GPX для визначення виправленої відстані, тобто значення, що відображається в цьому полі, - це відстань, записана під час руху.
- Записує лише значення, виміряні з найменшою точністю (у метрах/футах, як повідомляє Android до вашого чіпсета). Точність стосується розсіювання повторних вимірювань і не пов\'язана безпосередньо з точністю, яка визначає, наскільки близькі ваші вимірювання до вашого справжнього положення.
+ Побічний вплив: у Вашому треці будуть відсутні всі ділянки, де не було дотримано критерій найменшої швидкості (наприклад, коли Ви підштовхуєте велосипед до крутого пагорба). Також не буде відомостей про проміжки спокою, як-от перерви. Це впливає на будь-який аналіз або після обробки, як, наприклад, при спробі визначити загальну тривалість Вашої поїздки, час у русі або середню швидкість.
+ Порада: Спробуйте спочатку скористатись виявленням руху через фільтр найменшого переміщення (B), який може здійснюватись, це може принести кращі наслідки, і Ви втратите менше даних. Якщо Ваші треки залишаються занадто шумними на низькій швидкості, спробуйте тут ненульові значення. Зауважте, що деякі вимірювання можуть взагалі не повідомляти про значення швидкості (деякі мережеві методи), і в цьому випадку Ви нічого не записуєте.
+ Зауваження: швидкість > 0 перевірка: Більшість наборів чіпів GPS повідомляють про значення швидкості, лише якщо алгоритм визначає, що Ви перебуваєте в русі, і жоден, якщо Ви цього не робите. Отже, використовуючи налаштування> 0 у цьому фільтрі, в деякому сенсі використовується виявлення руху GPS-чіпсета. Але навіть якщо не фільтровано під час запису, ми все одно використовуємо цю функцію в нашому аналізі GPX для визначення виправленої відстані, тобто значення, що відображається в цьому полі, - це відстань, записана під час руху.
+ Записує лише значення, виміряні з найменшою точністю (у метрах/футах, як повідомляє Android до Вашого чіпсета). Точність стосується розсіювання повторних вимірювань і не пов\'язана безпосередньо з точністю, яка визначає, наскільки близькі Ваші вимірювання до Вашого справжнього положення.Побічний вплив: внаслідок фільтрації на точність, значення можуть бути повністю відсутні, наприклад, під мостами, під деревами, між високих будинків, або при певних погодних умовах.Порада: Важко передбачити, що буде записано, а що ні, можливо, найкраще вимкнути цей фільтр.Зауваження: Якщо GPS був вимкнений безпосередньо перед записом, перша вимірювана точка може мати знижену точність, тому в нашому коді ми можемо зачекати секунду або близько того, перш ніж записати точку (або записати найкраще з 3-х підрядних точок тощо), але це ще не реалізовано.Цей фільтр уникає повторюваних точок, які записуються, де занадто мало фактичний рух може статися, робить краще просторовий вигляд композицій, не післяоброблених пізніше.
- Побічні впливи: проміжки спокою не реєструються взагалі або лише по одній миті. Невеликі (справжні) рухи (наприклад, збоку, щоб позначити можливий поворот у вашій поїздці) можуть бути відфільтровані. Ваш файл містить менше відомостей для післяобробки та має гіршу статистику, фільтруючи очевидно зайві точки під час запису, при цьому потенційно зберігаючи артефакти, спричинені поганими впливами прийому чи GPS-чіпсетами.
+ Побічні впливи: проміжки спокою не реєструються взагалі або лише по одній миті. Невеликі (справжні) рухи (наприклад, збоку, щоб позначити можливий поворот у Вашій поїздці) можуть бути відфільтровані. Ваш файл містить менше відомостей для післяобробки та має гіршу статистику, фільтруючи очевидно зайві точки під час запису, при цьому потенційно зберігаючи артефакти, спричинені поганими впливами прийому чи GPS-чіпсетами.Порада. Налаштування в 5 метрів може вам знадобитися, якщо вам не потрібно буде збирати подробиці тонкіші, ніж ці, і якщо Ви не хочете явно збирати дані, перебуваючи в стані спокою.Буфер часуПроміжок відстеження
@@ -3481,16 +3481,16 @@
%1$s/%2$sЗахід сонця о %1$sСхід сонця о %1$s
- У вашій системі вимкнено режим доступності.
+ У Вашій системі вимкнено режим доступності.Скидання до усталених після установки усталить упорядкування.Використовувати системний час очікування екранаУсталено вимкнено, якщо OsmAnd працює на передньому плані, час очікування не закінчується.
\n
\nЯкщо увімкнено, OsmAnd використовуватиме налаштування часу очікування системи.Очистити записані дані
- • Профілі: тепер ви можете змінити порядок, встановити значок для мапи, змінити всі налаштування основних профілів та відновити їх до усталених значень.
+ • Профілі: тепер Ви можете змінити порядок, встановити значок для мапи, змінити всі налаштування основних профілів та відновити їх до усталених значень.
\n
-\n • Додано нумерацію з\'їздів за навігації
+\n • Додано нумерацію з\'їздів за навігації
\n
\n • Перероблені налаштування втулків
\n
@@ -3510,8 +3510,8 @@
\n
\n • Додано правильну транслітерацію на мапу Японії
\n
-\n • Додано мапу Антарктиди
-\n
+\n • Додано мапу Антарктиди
+\n
\nСкопіювати координатиПряма точка
@@ -3519,8 +3519,8 @@
Укажіть назву профілюВідкрити налаштуванняВтулок вимкнено
- Цей втулок - окремий застосунок, його потрібно буде видалити окремо, якщо ви більше не плануєте ним користуватися.
-\n
+ Цей втулок - окремий застосунок, його потрібно буде видалити окремо, якщо Ви більше не плануєте ним користуватися.
+\n
\nВтулок залишиться на пристрої після видалення OsmAnd.Меню%1$s — %2$s — %3$s
@@ -3567,8 +3567,48 @@
\nЦе може зайняти деякий час.Елементи доданоІмпорт завершено
- Усі дані з %1$s імпортуються, ви можете використовувати кнопки нижче, щоб відкрити необхідну частину застосунку для управління ними.
+ Усі дані з %1$s імпортуються, Ви можете використовувати кнопки нижче, щоб відкрити необхідну частину застосунку для управління ними.Маршрут буде перераховано, якщо відстань від маршруту до поточного місця розташування перевищує вибране значення.Виберіть відстань, після якого маршрут буде перераховано.Перерахунок маршруту у випадку відхилення
+ Хв
+ Місцевість
+ Мапа пагорбів використовує темні відтінки для показу схилів, вершин і низин.
+ Схил - це кольорове відмальовування на місцевості.
+ Встановіть найменший та найбільший рівні масштабування, при якому шар буде відображатися.
+ Потрібні додаткові мапи для перегляду пагорбів.
+ Для перегляду схилів потрібні додаткові мапи.
+ Ви можете прочитати більше про схили в %1$s.
+ Прозорість
+ Рівні масштабування
+ Позначення
+ Увімкнути для перегляду мапи пагорбів або схилів. Докладніше про ці види мап Ви можете прочитати на нашому сайті
+ Пагорб
+ %1$s з %2$s
+ Схили
+ Показати/приховати місцевість
+ Сховати місцевість
+ Показати місцевість
+ Кнопка для відображення або приховування шару місцевості на мапі.
+ Видалити опис
+ Додати опис
+ Вибрати групу
+ Вибрати фігуру
+ Коло
+ Ромб
+ Площа
+ Восьмикутник
+ Замінити іншу точку цією
+ Гірськолижний туризм
+ Снігохід
+ Користувацький втулок OsmAnd
+ Зміни застосовано до профілю %1$s.
+ Не вдається прочитати %1$s.
+ Не вдалося записати %1$s.
+ Не вдалося імпортувати %1$s.
+ Виберіть файл треку
+ Мови
+ Мова
+ Усі мови
+ Для перегляду POI Вікіпедії на мапі потрібні додаткові мапи.
\ No newline at end of file
diff --git a/OsmAnd/res/values-zh-rCN/strings.xml b/OsmAnd/res/values-zh-rCN/strings.xml
index a928de2878..99f6bd51d0 100644
--- a/OsmAnd/res/values-zh-rCN/strings.xml
+++ b/OsmAnd/res/values-zh-rCN/strings.xml
@@ -317,8 +317,8 @@
搜索搜索浏览地图
- 开车
- 坐自行车
+ 驾驶
+ 自行车出行走路中心底部
@@ -1199,7 +1199,7 @@
添加地图来源地图模式地图缩放
-
+ 显示道路质量左边栏右边栏
@@ -2719,7 +2719,7 @@
黑色木地铁
- 马
+ 骑马品红色下个栏位别
@@ -2827,4 +2827,6 @@
角度选择要导入的数据。导入渲染文件
+ 班车
+ 皮卡
\ No newline at end of file
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 693dfe0bfe..77461da3ac 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -3150,9 +3150,9 @@
\n • 其他臭蟲修復
\n
\n
- 個人運輸
+ 個人運輸工具單輪
- 摩托車
+ 速克達水平精度:%1$s,垂直:%2$s水平精度:%s越野
@@ -3201,7 +3201,7 @@
路徑:距離 %s,路徑時間 %s
\n計算:%.1f 秒,%d 路,%d 圖磚)Occitan
- 休旅車
+ 旅行車皮卡車天天
@@ -3395,7 +3395,7 @@
包含標題在記錄時將標題儲存到每個追蹤點。%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$s個人正在下載 %s密集
@@ -3597,4 +3597,37 @@
圓形菱形方形
+ 八邊形
+ 滑雪旅遊
+ 雪地摩托車
+ 自訂 OsmAnd 外掛程式
+ 以此取代另一點
+ 變更已套用至 %1$s 設定檔。
+ 無法讀取 %1$s。
+ 無法寫入 %1$s。
+ 無法匯入 %1$s。
+ 選取軌跡檔案
+ 語言
+ 語言
+ 所有語言
+ 需要額外的地圖才能在地圖上檢視維基百科的 POI。
+ 在「抽屜」、「設定地圖」與情境選單中自訂項目數量。
+\n
+\n您可以停用未使用的外掛程式,以從應用程式 %1$s 中隱藏其控制元件。
+ 抽屜項目,情境選單
+ 自訂使用者介面
+ 抽屜
+ 情境選單動作
+ 重新排列或從 %1$s 隱藏項目。
+ 分隔符
+ 低於此點的元素將由分隔符分離。
+ 已隱藏
+ 這些項目已從選單隱藏,但對應的選項或外掛程式仍在運作中。
+ 隱藏後,設定將會重設回原始狀態。
+ 主要動作僅包含 4 個按鈕。
+ 主要動作
+ 您可以透過輕點「動作」按鈕來存取此動作。
+ 您只能在此分類中移動項目。
+ 開發者外掛程式
+ 項目
\ No newline at end of file
diff --git a/OsmAnd/res/values/attrs.xml b/OsmAnd/res/values/attrs.xml
index 750eb1993a..048cd83aca 100644
--- a/OsmAnd/res/values/attrs.xml
+++ b/OsmAnd/res/values/attrs.xml
@@ -34,6 +34,7 @@
+
diff --git a/OsmAnd/res/values/colors.xml b/OsmAnd/res/values/colors.xml
index 4217d5c9ed..2d2f8ddb2d 100644
--- a/OsmAnd/res/values/colors.xml
+++ b/OsmAnd/res/values/colors.xml
@@ -178,7 +178,7 @@
#CC33BBE0
- #d00d0d
+ #b4d00d0d#c79c00#32CD32#EE3232
diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml
index 57f4331982..39e8847cc5 100644
--- a/OsmAnd/res/values/sizes.xml
+++ b/OsmAnd/res/values/sizes.xml
@@ -71,6 +71,7 @@
24dp40dp
+ 66dp10dp13dp16dp
@@ -258,6 +259,7 @@
10dp56dp1.25
+ 128dp236dp68dp
@@ -356,9 +358,12 @@
72dp72dp42dp
+ 128dp
+ 164dp8dp12dp2dp
+ 65dp
\ No newline at end of file
diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml
index cfc57b3cb0..fad1a692d0 100644
--- a/OsmAnd/res/values/strings.xml
+++ b/OsmAnd/res/values/strings.xml
@@ -11,9 +11,69 @@
Thx - Hardy
-->
+ Custom color
+ Lombard
+ Aragonese
+ Bashkir
+ Bavarian
+ Chechen
+ Chuvash
+ Gujarati
+ Javanese
+ Kazakh
+ Kyrgyz
+ Malagasy
+ Minangkabau
+ Mongolian
+ Burmese
+ Neapolitan
+ Nepali
+ Punjabi
+ Sicilian
+ Scots
+ Tajik
+ Tatar
+ Urdu
+ Uzbek
+ Waray
+ Yoruba
+ Southern Min
+ Cantonese
+ Some Wikipedia articles may not be available in your language.
+ Select the languages in which Wikipedia articles will appear on the map. You can switch between all available languages while reading the article.
+ Additional maps are needed to view Wikipedia POIs on the map.
+ All languages
+ Language
+ Languages
+ Select track file
+ Could not import %1$s.
+ Could not write %1$s.
+ Could not read %1$s.
+ Changes applied to %1$s profile.
+ Items
+ Custom OsmAnd plugin
+ Snowmobile
+ Ski touring
+ Replace another point with this
+ Developer Plugin
+ You can move items only inside this category.
+ You can access these actions by tapping the “Actions” button.
+ Main actions
+ Main actions containt only 4 buttons.
+ Settings will be reset to the original state after hiding.
+ These items are hidden from the menu, but the represented options or plugins will remain working.
+ Hidden
+ Elements below this point separated by a divider.
+ Divider
+ Reorder or hide items from the %1$s.
+ Context menu actions
+ Drawer
+ UI Customization
+ Drawer items, context menu
+ Customize the quantity of items in Drawer, Configure map and context menu.\n\nYou can disable unused plugins, to hide all its controls from the application %1$s.MinSquare
- Rhomb
+ OctagonCircleSelect shapeSelect group
@@ -185,7 +245,7 @@
Edit profilesThe \'Navigation type\' governs how routes are calculated.%1$s • %2$s
- %1$s, %2$s
+ %1$s, %2$sPersonalAdd the new profile \'%1$s\'?Include heading
diff --git a/OsmAnd/res/values/styles.xml b/OsmAnd/res/values/styles.xml
index e458172437..8fea939e8f 100644
--- a/OsmAnd/res/values/styles.xml
+++ b/OsmAnd/res/values/styles.xml
@@ -101,11 +101,13 @@
@@ -275,6 +277,7 @@
@color/list_background_color_light@color/list_background_color_light@style/OsmandPreferenceTheme
+ @color/stroked_buttons_and_links_outline_light
-
@@ -766,4 +770,8 @@
?attr/app_bar_primary_item_color@dimen/dialog_header_text_size
+
+
diff --git a/OsmAnd/res/xml/configure_profile.xml b/OsmAnd/res/xml/configure_profile.xml
index 938f77077a..d86a80620f 100644
--- a/OsmAnd/res/xml/configure_profile.xml
+++ b/OsmAnd/res/xml/configure_profile.xml
@@ -52,6 +52,14 @@
android:title="@string/profile_appearance"
tools:icon="@drawable/ic_action_offroad" />
+
+
diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java
index de35fad5a0..f16cc52e71 100644
--- a/OsmAnd/src/net/osmand/AndroidUtils.java
+++ b/OsmAnd/src/net/osmand/AndroidUtils.java
@@ -784,4 +784,18 @@ public class AndroidUtils {
return newName;
}
-}
+
+ public static StringBuilder formatWarnings(List warnings) {
+ StringBuilder builder = new StringBuilder();
+ boolean f = true;
+ for (String w : warnings) {
+ if (f) {
+ f = false;
+ } else {
+ builder.append('\n');
+ }
+ builder.append(w);
+ }
+ return builder;
+ }
+}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/access/AccessibilityPlugin.java b/OsmAnd/src/net/osmand/access/AccessibilityPlugin.java
index 3336895bad..084c5ee508 100644
--- a/OsmAnd/src/net/osmand/access/AccessibilityPlugin.java
+++ b/OsmAnd/src/net/osmand/access/AccessibilityPlugin.java
@@ -23,12 +23,12 @@ public class AccessibilityPlugin extends OsmandPlugin {
public static final int INCLINATION_RIGHT = 3;
private static final String ID = "osmand.accessibility";
- private OsmandApplication app;
+
private SoundPool sounds;
private Map soundIcons = new HashMap();
public AccessibilityPlugin(OsmandApplication app) {
- this.app = app;
+ super(app);
OsmandSettings settings = app.getSettings();
pluginPreferences.add(settings.ACCESSIBILITY_MODE);
pluginPreferences.add(settings.SPEECH_RATE);
@@ -88,11 +88,6 @@ public class AccessibilityPlugin extends OsmandPlugin {
}
}
- @Override
- public int getAssetResourceName() {
- return 0;
- }
-
@Override
public int getLogoResourceId() {
return R.drawable.ic_plugin_accessibility;
diff --git a/OsmAnd/src/net/osmand/data/FavouritePoint.java b/OsmAnd/src/net/osmand/data/FavouritePoint.java
index bf7d0da095..f13872fa02 100644
--- a/OsmAnd/src/net/osmand/data/FavouritePoint.java
+++ b/OsmAnd/src/net/osmand/data/FavouritePoint.java
@@ -77,7 +77,11 @@ public class FavouritePoint implements Serializable, LocationPoint {
}
public int getColor() {
- return color;
+ if ((color & 0xFF000000) != 0) {
+ return color;
+ } else {
+ return color | 0xFF000000;
+ }
}
public String getAddress() {
@@ -295,7 +299,7 @@ public class FavouritePoint implements Serializable, LocationPoint {
public enum BackgroundType {
CIRCLE("circle", R.string.shared_string_circle, R.drawable.bg_point_circle),
- RHOMB("rhomb", R.string.shared_string_rhomb, R.drawable.bg_point_rhomb),
+ OCTAGON("octagon", R.string.shared_string_octagon, R.drawable.bg_point_octagon),
SQUARE("square", R.string.shared_string_square, R.drawable.bg_point_square);
private String typeName;
diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java
index ca4f35aeab..457052796b 100644
--- a/OsmAnd/src/net/osmand/plus/AppInitializer.java
+++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java
@@ -16,6 +16,7 @@ import android.os.Build;
import androidx.appcompat.app.AlertDialog;
+import net.osmand.AndroidUtils;
import net.osmand.IProgress;
import net.osmand.IndexConstants;
import net.osmand.PlatformUtil;
@@ -618,7 +619,7 @@ public class AppInitializer implements IProgress {
File[] fl = routingFolder.listFiles();
if (fl != null && fl.length > 0) {
for (File f : fl) {
- if (f.isFile() && f.getName().endsWith(IndexConstants.ROUTING_AND_RENDERING_FILE_EXT) && f.canRead()) {
+ if (f.isFile() && f.getName().endsWith(IndexConstants.ROUTING_FILE_EXT) && f.canRead()) {
try {
String fileName = f.getName();
RoutingConfiguration.Builder builder = new RoutingConfiguration.Builder(defaultAttributes);
@@ -761,7 +762,7 @@ public class AppInitializer implements IProgress {
appInitializing = false;
notifyFinish();
if (warnings != null && !warnings.isEmpty()) {
- app.showToastMessage(formatWarnings(warnings).toString());
+ app.showToastMessage(AndroidUtils.formatWarnings(warnings).toString());
}
}
}
@@ -880,22 +881,6 @@ public class AppInitializer implements IProgress {
}
}
-
- private StringBuilder formatWarnings(List warnings) {
- final StringBuilder b = new StringBuilder();
- boolean f = true;
- for (String w : warnings) {
- if (f) {
- f = false;
- } else {
- b.append('\n');
- }
- b.append(w);
- }
- return b;
- }
-
-
public void notifyFinish() {
app.uiHandler.post(new Runnable() {
diff --git a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java
index b164989528..22e9ea13e2 100644
--- a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java
+++ b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java
@@ -23,6 +23,7 @@ import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.IdRes;
import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
@@ -33,6 +34,9 @@ import net.osmand.plus.activities.HelpActivity;
import net.osmand.plus.activities.actions.AppModeDialog;
import net.osmand.plus.dialogs.ConfigureMapMenu;
import net.osmand.plus.dialogs.HelpArticleDialogFragment;
+import net.osmand.plus.helpers.AndroidUiHelper;
+import net.osmand.plus.OsmandSettings.ContextMenuItemsPreference;
+import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
@@ -40,11 +44,12 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.APP_PROFILES_ID;
+
public class ContextMenuAdapter {
private static final Log LOG = PlatformUtil.getLog(ContextMenuAdapter.class);
@@ -59,6 +64,11 @@ public class ContextMenuAdapter {
private boolean profileDependent = false;
private boolean nightMode;
private ConfigureMapMenu.OnClickListener changeAppModeListener = null;
+ private OsmandApplication app;
+
+ public ContextMenuAdapter(OsmandApplication app) {
+ this.app = app;
+ }
public int length() {
return items.size();
@@ -74,7 +84,13 @@ public class ContextMenuAdapter {
public void addItem(ContextMenuItem item) {
try {
+ String id = item.getId();
+ if (id != null) {
+ item.setHidden(isItemHidden(id));
+ item.setOrder(getItemOrder(id, item.getOrder()));
+ }
items.add(item.getPos(), item);
+ sortItemsByOrder();
} catch (IndexOutOfBoundsException ex) {
items.add(item);
}
@@ -84,6 +100,10 @@ public class ContextMenuAdapter {
return items.get(position);
}
+ public List getItems() {
+ return items;
+ }
+
public void removeItem(int position) {
items.remove(position);
}
@@ -106,7 +126,6 @@ public class ContextMenuAdapter {
this.DEFAULT_LAYOUT_ID = defaultLayoutId;
}
-
public void setChangeAppModeListener(ConfigureMapMenu.OnClickListener changeAppModeListener) {
this.changeAppModeListener = changeAppModeListener;
}
@@ -127,16 +146,45 @@ public class ContextMenuAdapter {
});
}
+ private boolean isItemHidden(@NonNull String id) {
+ ContextMenuItemsPreference contextMenuItemsPreference = app.getSettings().getContextMenuItemsPreference(id);
+ if (contextMenuItemsPreference == null) {
+ return false;
+ }
+ List hiddenIds = contextMenuItemsPreference.get().getHiddenIds();
+ if (!Algorithms.isEmpty(hiddenIds)) {
+ return hiddenIds.contains(id);
+ }
+ return false;
+ }
+
+ private int getItemOrder(@NonNull String id, int defaultOrder) {
+ ContextMenuItemsPreference contextMenuItemsPreference = app.getSettings().getContextMenuItemsPreference(id);
+ if (contextMenuItemsPreference == null) {
+ return defaultOrder;
+ }
+ List orderIds = contextMenuItemsPreference.get().getOrderIds();
+ if (!Algorithms.isEmpty(orderIds)) {
+ int order = orderIds.indexOf(id);
+ if (order != -1) {
+ return order;
+ }
+ }
+ return defaultOrder;
+ }
+
public ArrayAdapter createListAdapter(final Activity activity, final boolean lightTheme) {
final int layoutId = DEFAULT_LAYOUT_ID;
final OsmandApplication app = ((OsmandApplication) activity.getApplication());
final OsmAndAppCustomization customization = app.getAppCustomization();
- for (Iterator iterator = items.iterator(); iterator.hasNext(); ) {
- String id = iterator.next().getId();
- if (!TextUtils.isEmpty(id) && !customization.isFeatureEnabled(id)) {
- iterator.remove();
+ List itemsToRemove = new ArrayList<>();
+ for (ContextMenuItem item : items) {
+ String id = item.getId();
+ if (item.isHidden() || !TextUtils.isEmpty(id) && !customization.isFeatureEnabled(id)) {
+ itemsToRemove.add(item);
}
}
+ items.removeAll(itemsToRemove);
return new ContextMenuArrayAdapter(activity, layoutId, R.id.title,
items.toArray(new ContextMenuItem[items.size()]), app, lightTheme, changeAppModeListener);
}
@@ -258,6 +306,9 @@ public class ContextMenuAdapter {
icon.setVisibility(View.INVISIBLE);
desc.setVisibility(View.GONE);
} else {
+ AndroidUiHelper.updateVisibility(icon, true);
+ AndroidUiHelper.updateVisibility(desc, true);
+ AndroidUtils.setTextPrimaryColor(app, title, nightMode);
icon.setImageDrawable(mIconsCache.getIcon(item.getIcon(), colorResId));
desc.setText(item.getDescription());
boolean selectedMode = tag == PROFILES_CHOSEN_PROFILE_TAG;
@@ -404,7 +455,7 @@ public class ContextMenuAdapter {
}
};
ch.setOnCheckedChangeListener(listener);
- ch.setVisibility(View.VISIBLE);
+ ch.setVisibility(item.shouldHideCompoundButton() ? View.GONE : View.VISIBLE);
} else if (ch != null) {
ch.setVisibility(View.GONE);
}
@@ -528,4 +579,30 @@ public class ContextMenuAdapter {
}
}
}
+
+ public List getDefaultItems() {
+ String idScheme = getIdScheme();
+ List items = new ArrayList<>();
+ for (ContextMenuItem item : this.items) {
+ String id = item.getId();
+ if (id != null && id.startsWith(idScheme) && !APP_PROFILES_ID.equals(id)) {
+ items.add(item);
+ }
+ }
+ return items;
+ }
+
+ private String getIdScheme() {
+ String idScheme = "";
+ for (ContextMenuItem item : items) {
+ String id = item.getId();
+ if (id != null) {
+ ContextMenuItemsPreference pref = app.getSettings().getContextMenuItemsPreference(id);
+ if (pref != null) {
+ return pref.getIdScheme();
+ }
+ }
+ }
+ return idScheme;
+ }
}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/plus/ContextMenuItem.java b/OsmAnd/src/net/osmand/plus/ContextMenuItem.java
index 0e5b89ab5c..b3d38dd37a 100644
--- a/OsmAnd/src/net/osmand/plus/ContextMenuItem.java
+++ b/OsmAnd/src/net/osmand/plus/ContextMenuItem.java
@@ -30,13 +30,15 @@ public class ContextMenuItem {
private final boolean category;
private final boolean clickable;
private final boolean skipPaintingWithoutColor;
+ private boolean hidden;
private final int pos;
- private final int order;
+ private int order;
private String description;
private final ContextMenuAdapter.ItemClickListener itemClickListener;
private final ContextMenuAdapter.OnIntegerValueChangedListener integerListener;
private final ContextMenuAdapter.ProgressListener progressListener;
private final boolean hideDivider;
+ private final boolean hideCompoundButton;
private final int minHeight;
private final int tag;
private final String id;
@@ -60,6 +62,7 @@ public class ContextMenuItem {
ContextMenuAdapter.OnIntegerValueChangedListener integerListener,
ContextMenuAdapter.ProgressListener progressListener,
boolean hideDivider,
+ boolean hideCompoundButton,
int minHeight,
int tag,
String id) {
@@ -82,6 +85,7 @@ public class ContextMenuItem {
this.integerListener = integerListener;
this.progressListener = progressListener;
this.hideDivider = hideDivider;
+ this.hideCompoundButton = hideCompoundButton;
this.minHeight = minHeight;
this.tag = tag;
this.id = id;
@@ -150,6 +154,10 @@ public class ContextMenuItem {
return clickable;
}
+ public boolean isHidden() {
+ return hidden;
+ }
+
public int getPos() {
return pos;
}
@@ -182,6 +190,14 @@ public class ContextMenuItem {
return hideDivider;
}
+ public void setHidden(boolean hidden) {
+ this.hidden = hidden;
+ }
+
+ public boolean shouldHideCompoundButton() {
+ return hideCompoundButton;
+ }
+
public void setTitle(String title) {
this.title = title;
}
@@ -206,6 +222,10 @@ public class ContextMenuItem {
this.progress = progress;
}
+ public void setOrder(int order) {
+ this.order = order;
+ }
+
public void setLoading(boolean loading) {
this.loading = loading;
}
@@ -255,6 +275,7 @@ public class ContextMenuItem {
private ContextMenuAdapter.ProgressListener mProgressListener = null;
private boolean mSkipPaintingWithoutColor;
private boolean mHideDivider;
+ private boolean mHideCompoundButton;
private int mMinHeight;
private int mTag;
private String mId;
@@ -358,6 +379,11 @@ public class ContextMenuItem {
return this;
}
+ public ItemBuilder hideCompoundButton(boolean hideCompoundButton) {
+ mHideCompoundButton = hideCompoundButton;
+ return this;
+ }
+
public ItemBuilder setMinHeight(int minHeight) {
this.mMinHeight = minHeight;
return this;
@@ -381,7 +407,7 @@ public class ContextMenuItem {
return new ContextMenuItem(mTitleId, mTitle, mIcon, mColorRes, mSecondaryIcon,
mSelected, mProgress, mLayout, mLoading, mIsCategory, mIsClickable, mSkipPaintingWithoutColor,
mPosition, mOrder, mDescription, mItemClickListener, mIntegerListener, mProgressListener,
- mHideDivider, mMinHeight, mTag, mId);
+ mHideDivider, mHideCompoundButton, mMinHeight, mTag, mId);
}
}
}
diff --git a/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java b/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java
new file mode 100644
index 0000000000..88c9e53042
--- /dev/null
+++ b/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java
@@ -0,0 +1,430 @@
+package net.osmand.plus;
+
+import android.app.Activity;
+import android.content.res.Configuration;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import net.osmand.IndexConstants;
+import net.osmand.PlatformUtil;
+import net.osmand.map.ITileSource;
+import net.osmand.map.TileSourceManager;
+import net.osmand.plus.SettingsHelper.AvoidRoadsSettingsItem;
+import net.osmand.plus.SettingsHelper.MapSourcesSettingsItem;
+import net.osmand.plus.SettingsHelper.PluginSettingsItem;
+import net.osmand.plus.SettingsHelper.PoiUiFilterSettingsItem;
+import net.osmand.plus.SettingsHelper.ProfileSettingsItem;
+import net.osmand.plus.SettingsHelper.QuickActionsSettingsItem;
+import net.osmand.plus.SettingsHelper.SettingsCollectListener;
+import net.osmand.plus.SettingsHelper.SettingsItem;
+import net.osmand.plus.helpers.AvoidSpecificRoads;
+import net.osmand.plus.poi.PoiUIFilter;
+import net.osmand.plus.quickaction.QuickAction;
+import net.osmand.plus.quickaction.QuickActionRegistry;
+import net.osmand.util.Algorithms;
+
+import org.apache.commons.logging.Log;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import static net.osmand.IndexConstants.SQLITE_EXT;
+
+public class CustomOsmandPlugin extends OsmandPlugin {
+
+ private static final Log LOG = PlatformUtil.getLog(CustomOsmandPlugin.class);
+
+ private String pluginId;
+ private String resourceDirName;
+ private Map names = new HashMap<>();
+ private Map descriptions = new HashMap<>();
+ private Map iconNames = new HashMap<>();
+ private Map imageNames = new HashMap<>();
+
+ private Drawable icon;
+ private Drawable image;
+
+ private List rendererNames = new ArrayList<>();
+ private List routerNames = new ArrayList<>();
+
+ public CustomOsmandPlugin(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app);
+ pluginId = json.getString("pluginId");
+ readAdditionalDataFromJson(json);
+ readDependentFilesFromJson(json);
+ loadResources();
+ }
+
+ @Override
+ public boolean init(@NonNull OsmandApplication app, @Nullable Activity activity) {
+ super.init(app, activity);
+ if (activity != null) {
+ // called from UI
+ File pluginItemsFile = getPluginItemsFile();
+ if (pluginItemsFile.exists()) {
+ addPluginItemsFromFile(pluginItemsFile);
+ }
+ }
+ return true;
+ }
+
+ private void addPluginItemsFromFile(final File file) {
+ app.getSettingsHelper().collectSettings(file, "", 1, new SettingsCollectListener() {
+ @Override
+ public void onSettingsCollectFinished(boolean succeed, boolean empty, @NonNull List items) {
+ if (succeed && !items.isEmpty()) {
+ for (Iterator iterator = items.iterator(); iterator.hasNext(); ) {
+ SettingsItem item = iterator.next();
+ if (item instanceof ProfileSettingsItem) {
+ ProfileSettingsItem profileSettingsItem = (ProfileSettingsItem) item;
+ ApplicationMode mode = profileSettingsItem.getAppMode();
+ ApplicationMode savedMode = ApplicationMode.valueOfStringKey(mode.getStringKey(), null);
+ if (savedMode != null) {
+ ApplicationMode.changeProfileAvailability(savedMode, true, app);
+ }
+ iterator.remove();
+ } else if (item instanceof PluginSettingsItem) {
+ iterator.remove();
+ } else {
+ item.setShouldReplace(true);
+ }
+ }
+ app.getSettingsHelper().importSettings(file, items, "", 1, null);
+ }
+ }
+ });
+ }
+
+ public void removePluginItems(PluginItemsListener itemsListener) {
+ File pluginItemsFile = getPluginItemsFile();
+ if (pluginItemsFile.exists()) {
+ removePluginItemsFromFile(pluginItemsFile, itemsListener);
+ }
+ }
+
+ private void removePluginItemsFromFile(final File file, final PluginItemsListener itemsListener) {
+ app.getSettingsHelper().collectSettings(file, "", 1, new SettingsCollectListener() {
+ @Override
+ public void onSettingsCollectFinished(boolean succeed, boolean empty, @NonNull List items) {
+ if (succeed && !items.isEmpty()) {
+ for (SettingsItem item : items) {
+ if (item instanceof QuickActionsSettingsItem) {
+ QuickActionsSettingsItem quickActionsSettingsItem = (QuickActionsSettingsItem) item;
+ List quickActions = quickActionsSettingsItem.getItems();
+ QuickActionRegistry actionRegistry = app.getQuickActionRegistry();
+ for (QuickAction action : quickActions) {
+ QuickAction savedAction = actionRegistry.getQuickAction(app, action.getType(), action.getName(app), action.getParams());
+ if (savedAction != null) {
+ actionRegistry.deleteQuickAction(savedAction);
+ }
+ }
+ } else if (item instanceof MapSourcesSettingsItem) {
+ MapSourcesSettingsItem mapSourcesSettingsItem = (MapSourcesSettingsItem) item;
+ List mapSources = mapSourcesSettingsItem.getItems();
+
+ for (ITileSource tileSource : mapSources) {
+ if (tileSource instanceof TileSourceManager.TileSourceTemplate) {
+ TileSourceManager.TileSourceTemplate sourceTemplate = (TileSourceManager.TileSourceTemplate) tileSource;
+ File tPath = app.getAppPath(IndexConstants.TILES_INDEX_DIR);
+ File dir = new File(tPath, sourceTemplate.getName());
+ Algorithms.removeAllFiles(dir);
+ } else if (tileSource instanceof SQLiteTileSource) {
+ SQLiteTileSource sqLiteTileSource = ((SQLiteTileSource) tileSource);
+ sqLiteTileSource.closeDB();
+
+ File tPath = app.getAppPath(IndexConstants.TILES_INDEX_DIR);
+ File dir = new File(tPath, sqLiteTileSource.getName() + SQLITE_EXT);
+ Algorithms.removeAllFiles(dir);
+ }
+ }
+ } else if (item instanceof PoiUiFilterSettingsItem) {
+ PoiUiFilterSettingsItem poiUiFilterSettingsItem = (PoiUiFilterSettingsItem) item;
+ List poiUIFilters = poiUiFilterSettingsItem.getItems();
+ for (PoiUIFilter filter : poiUIFilters) {
+ app.getPoiFilters().removePoiFilter(filter);
+ }
+ app.getPoiFilters().reloadAllPoiFilters();
+ app.getPoiFilters().loadSelectedPoiFilters();
+ app.getSearchUICore().refreshCustomPoiFilters();
+ } else if (item instanceof AvoidRoadsSettingsItem) {
+ AvoidRoadsSettingsItem avoidRoadsSettingsItem = (AvoidRoadsSettingsItem) item;
+ List avoidRoadInfos = avoidRoadsSettingsItem.getItems();
+ for (AvoidSpecificRoads.AvoidRoadInfo avoidRoad : avoidRoadInfos) {
+ app.getAvoidSpecificRoads().removeImpassableRoad(avoidRoad);
+ }
+ } else if (item instanceof ProfileSettingsItem) {
+ ProfileSettingsItem profileSettingsItem = (ProfileSettingsItem) item;
+ ApplicationMode mode = profileSettingsItem.getAppMode();
+ ApplicationMode savedMode = ApplicationMode.valueOfStringKey(mode.getStringKey(), null);
+ if (savedMode != null) {
+ ApplicationMode.changeProfileAvailability(savedMode, false, app);
+ }
+ }
+ }
+ }
+ if (itemsListener != null) {
+ itemsListener.onItemsRemoved();
+ }
+ }
+ });
+ }
+
+ @Override
+ public void disable(OsmandApplication app) {
+ super.disable(app);
+ removePluginItems(null);
+ }
+
+ public File getPluginDir() {
+ return app.getAppPath(IndexConstants.PLUGINS_DIR + pluginId);
+ }
+
+ public File getPluginItemsFile() {
+ return new File(getPluginDir(), "items" + IndexConstants.OSMAND_SETTINGS_FILE_EXT);
+ }
+
+ public File getPluginResDir() {
+ File pluginDir = getPluginDir();
+ if (!Algorithms.isEmpty(resourceDirName)) {
+ return new File(pluginDir, resourceDirName);
+ }
+ return pluginDir;
+ }
+
+ @Override
+ public String getId() {
+ return pluginId;
+ }
+
+ @Override
+ public String getName() {
+ Configuration config = app.getResources().getConfiguration();
+ String lang = config.locale.getLanguage();
+ String name = names.get(lang);
+ if (Algorithms.isEmpty(name)) {
+ name = names.get("");
+ }
+ if (Algorithms.isEmpty(name)) {
+ name = app.getString(R.string.custom_osmand_plugin);
+ }
+ return name;
+ }
+
+ @Override
+ public String getDescription() {
+ Configuration config = app.getResources().getConfiguration();
+ String lang = config.locale.getLanguage();
+ String description = descriptions.get(lang);
+ if (Algorithms.isEmpty(description)) {
+ description = descriptions.get("");
+ }
+ return description;
+ }
+
+ public String getResourceDirName() {
+ return resourceDirName;
+ }
+
+ public void setResourceDirName(String resourceDirName) {
+ this.resourceDirName = resourceDirName;
+ }
+
+ public void readAdditionalDataFromJson(JSONObject json) throws JSONException {
+ JSONObject iconJson = json.has("icon") ? json.getJSONObject("icon") : null;
+ if (iconJson != null) {
+ for (Iterator it = iconJson.keys(); it.hasNext(); ) {
+ String iconKey = it.next();
+ String name = iconJson.getString(iconKey);
+ iconNames.put(iconKey, name);
+ }
+ }
+ JSONObject imageJson = json.has("image") ? json.getJSONObject("image") : null;
+ if (imageJson != null) {
+ for (Iterator it = imageJson.keys(); it.hasNext(); ) {
+ String imageKey = it.next();
+ String name = imageJson.getString(imageKey);
+ imageNames.put(imageKey, name);
+ }
+ }
+ JSONObject nameJson = json.has("name") ? json.getJSONObject("name") : null;
+ if (nameJson != null) {
+ for (Iterator it = nameJson.keys(); it.hasNext(); ) {
+ String localeKey = it.next();
+ String name = nameJson.getString(localeKey);
+ names.put(localeKey, name);
+ }
+ }
+ JSONObject descriptionJson = json.has("description") ? json.getJSONObject("description") : null;
+ if (descriptionJson != null) {
+ for (Iterator it = descriptionJson.keys(); it.hasNext(); ) {
+ String localeKey = it.next();
+ String name = descriptionJson.getString(localeKey);
+ descriptions.put(localeKey, name);
+ }
+ }
+ }
+
+ public void writeAdditionalDataToJson(JSONObject json) throws JSONException {
+ JSONObject iconJson = new JSONObject();
+ for (Map.Entry entry : iconNames.entrySet()) {
+ iconJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("icon", iconJson);
+
+ JSONObject imageJson = new JSONObject();
+ for (Map.Entry entry : imageNames.entrySet()) {
+ imageJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("image", imageJson);
+
+ JSONObject nameJson = new JSONObject();
+ for (Map.Entry entry : names.entrySet()) {
+ nameJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("name", nameJson);
+
+ JSONObject descriptionJson = new JSONObject();
+ for (Map.Entry entry : descriptions.entrySet()) {
+ descriptionJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("description", descriptionJson);
+ }
+
+ public void readDependentFilesFromJson(JSONObject json) throws JSONException {
+ JSONArray rendererNamesJson = json.has("rendererNames") ? json.getJSONArray("rendererNames") : null;
+ if (rendererNamesJson != null) {
+ for (int i = 0; i < rendererNamesJson.length(); i++) {
+ String renderer = rendererNamesJson.getString(i);
+ rendererNames.add(renderer);
+ }
+ }
+ JSONArray routerNamesJson = json.has("routerNames") ? json.getJSONArray("routerNames") : null;
+ if (routerNamesJson != null) {
+ for (int i = 0; i < routerNamesJson.length(); i++) {
+ String renderer = routerNamesJson.getString(i);
+ routerNames.add(renderer);
+ }
+ }
+ JSONObject iconNamesJson = json.has("iconNames") ? json.getJSONObject("iconNames") : null;
+ if (iconNamesJson != null) {
+ for (Iterator it = iconNamesJson.keys(); it.hasNext(); ) {
+ String localeKey = it.next();
+ String name = iconNamesJson.getString(localeKey);
+ iconNames.put(localeKey, name);
+ }
+ }
+ JSONObject imageNamesJson = json.has("imageNames") ? json.getJSONObject("imageNames") : null;
+ if (imageNamesJson != null) {
+ for (Iterator it = imageNamesJson.keys(); it.hasNext(); ) {
+ String localeKey = it.next();
+ String name = imageNamesJson.getString(localeKey);
+ imageNames.put(localeKey, name);
+ }
+ }
+ resourceDirName = json.has("pluginResDir") ? json.getString("pluginResDir") : null;
+ }
+
+ public void writeDependentFilesJson(JSONObject json) throws JSONException {
+ JSONArray rendererNamesJson = new JSONArray();
+ for (String render : rendererNames) {
+ rendererNamesJson.put(render);
+ }
+ json.put("rendererNames", rendererNamesJson);
+
+ JSONArray routerNamesJson = new JSONArray();
+ for (String render : routerNames) {
+ routerNamesJson.put(render);
+ }
+ json.put("routerNames", routerNamesJson);
+
+ JSONObject iconNamesJson = new JSONObject();
+ for (Map.Entry entry : iconNames.entrySet()) {
+ iconNamesJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("iconNames", iconNamesJson);
+
+ JSONObject imageNamesJson = new JSONObject();
+ for (Map.Entry entry : imageNames.entrySet()) {
+ imageNamesJson.put(entry.getKey(), entry.getValue());
+ }
+ json.put("imageNames", imageNamesJson);
+
+ json.put("pluginResDir", resourceDirName);
+ }
+
+ @Override
+ public List getRendererNames() {
+ return rendererNames;
+ }
+
+ @Override
+ public List getRouterNames() {
+ return routerNames;
+ }
+
+ public void addRouter(String fileName) {
+ String routerName = Algorithms.getFileWithoutDirs(fileName);
+ routerNames.add(routerName);
+ }
+
+ public void addRenderer(String fileName) {
+ String rendererName = Algorithms.getFileWithoutDirs(fileName);
+ rendererNames.add(rendererName);
+ }
+
+ public void loadResources() {
+ File pluginResDir = getPluginResDir();
+ if (pluginResDir.exists() && pluginResDir.isDirectory()) {
+ File[] files = pluginResDir.listFiles();
+ for (File resFile : files) {
+ String path = resFile.getAbsolutePath();
+ if (icon == null) {
+ icon = getIconForFile(path, iconNames);
+ }
+ if (image == null) {
+ image = getIconForFile(path, imageNames);
+ }
+ }
+ }
+ }
+
+ private Drawable getIconForFile(String path, Map fileNames) {
+ for (Map.Entry entry : fileNames.entrySet()) {
+ String value = entry.getValue();
+ if (value.startsWith("@")) {
+ value = value.substring(1);
+ }
+ if (path.endsWith(value)) {
+ return BitmapDrawable.createFromPath(path);
+ }
+ }
+ return null;
+ }
+
+ @NonNull
+ @Override
+ public Drawable getLogoResource() {
+ return icon != null ? icon : super.getLogoResource();
+ }
+
+ @Override
+ public Drawable getAssetResourceImage() {
+ return image;
+ }
+
+ public interface PluginItemsListener {
+
+ void onItemsRemoved();
+
+ }
+}
\ No newline at end of file
diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
index a61083d7d2..ca8b6ad8f0 100644
--- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
+++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
@@ -1,5 +1,6 @@
package net.osmand.plus;
+import android.app.Activity;
import android.content.Context;
import androidx.annotation.NonNull;
@@ -101,7 +102,11 @@ public class FavouritesDbHelper {
}
public int getColor() {
- return color;
+ if ((color & 0xFF000000) != 0) {
+ return color;
+ } else {
+ return color | 0xFF000000;
+ }
}
public boolean isVisible() {
@@ -354,7 +359,7 @@ public class FavouritesDbHelper {
}
}
- public static AlertDialog.Builder checkDuplicates(FavouritePoint p, FavouritesDbHelper fdb, Context uiContext) {
+ public static AlertDialog.Builder checkDuplicates(FavouritePoint p, FavouritesDbHelper fdb, Activity activity) {
boolean emoticons = false;
String index = "";
int number = 0;
@@ -383,12 +388,15 @@ public class FavouritesDbHelper {
}
}
if ((index.length() > 0 || emoticons)) {
- AlertDialog.Builder builder = new AlertDialog.Builder(uiContext);
+ OsmandApplication app = (OsmandApplication) activity.getApplication();
+ boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
+ AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
builder.setTitle(R.string.fav_point_dublicate);
if (emoticons) {
- builder.setMessage(uiContext.getString(R.string.fav_point_emoticons_message, name));
+ builder.setMessage(activity.getString(R.string.fav_point_emoticons_message, name));
} else {
- builder.setMessage(uiContext.getString(R.string.fav_point_dublicate_message, name));
+ builder.setMessage(activity.getString(R.string.fav_point_dublicate_message, name));
}
p.setName(name);
return builder;
diff --git a/OsmAnd/src/net/osmand/plus/OsmAndAppCustomization.java b/OsmAnd/src/net/osmand/plus/OsmAndAppCustomization.java
index 7bf7dd9628..b6841eda16 100644
--- a/OsmAnd/src/net/osmand/plus/OsmAndAppCustomization.java
+++ b/OsmAnd/src/net/osmand/plus/OsmAndAppCustomization.java
@@ -17,6 +17,7 @@ import androidx.annotation.Nullable;
import net.osmand.AndroidUtils;
import net.osmand.IProgress;
import net.osmand.IndexConstants;
+import net.osmand.PlatformUtil;
import net.osmand.aidl.ConnectedApp;
import net.osmand.data.LocationPoint;
import net.osmand.plus.activities.MapActivity;
@@ -24,22 +25,28 @@ import net.osmand.plus.activities.PluginsActivity;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.activities.TrackActivity;
import net.osmand.plus.download.DownloadActivity;
+import net.osmand.plus.helpers.ImportHelper;
import net.osmand.plus.helpers.WaypointHelper;
import net.osmand.plus.myplaces.FavoritesActivity;
import net.osmand.plus.routing.RouteCalculationResult;
import net.osmand.plus.views.OsmandMapTileView;
+import net.osmand.util.Algorithms;
+import org.apache.commons.logging.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -53,10 +60,13 @@ public class OsmAndAppCustomization {
private static final int MAX_NAV_DRAWER_ITEMS_PER_APP = 3;
+ private static final Log LOG = PlatformUtil.getLog(OsmAndAppCustomization.class);
+
protected OsmandApplication app;
protected OsmandSettings osmandSettings;
- private Bitmap navDrawerLogo;
+ private Map navDrawerLogos = new HashMap<>();
+
private ArrayList navDrawerParams;
private String navDrawerFooterIntent;
@@ -134,7 +144,6 @@ public class OsmAndAppCustomization {
}
public boolean restoreOsmand() {
- navDrawerLogo = null;
featuresCustomized = false;
widgetsCustomized = false;
customOsmandSettings = null;
@@ -218,7 +227,30 @@ public class OsmAndAppCustomization {
@Nullable
public Bitmap getNavDrawerLogo() {
- return navDrawerLogo;
+ ApplicationMode mode = app.getSettings().APPLICATION_MODE.get();
+ Bitmap drawerLogo = navDrawerLogos.get(mode.getStringKey());
+ if (drawerLogo == null) {
+ String logoFileName = app.getSettings().NAV_DRAWER_LOGO.get();
+ if (!Algorithms.isEmpty(logoFileName)) {
+ try {
+ JSONObject json = new JSONObject(logoFileName);
+ for (Iterator it = json.keys(); it.hasNext(); ) {
+ String iconPath = json.getString(it.next());
+
+ File iconFile = app.getAppPath(iconPath);
+ if (iconFile.exists()) {
+ drawerLogo = BitmapFactory.decodeFile(iconFile.getAbsolutePath());
+ navDrawerLogos.put(mode.getStringKey(), drawerLogo);
+ break;
+ }
+ }
+ } catch (JSONException e) {
+ LOG.error("Failed to read json", e);
+ }
+ }
+ }
+
+ return drawerLogo;
}
@Nullable
@@ -227,20 +259,46 @@ public class OsmAndAppCustomization {
}
public boolean setNavDrawerLogo(String uri, @Nullable String packageName, @Nullable String intent) {
+ String connectedAppDirPath = IndexConstants.PLUGINS_DIR + packageName;
+ File connectedAppDir = app.getAppPath(connectedAppDirPath);
if (TextUtils.isEmpty(uri)) {
- navDrawerLogo = null;
+ app.getSettings().NAV_DRAWER_LOGO.resetToDefault();
+ Algorithms.removeAllFiles(connectedAppDir);
} else {
try {
- InputStream is = app.getContentResolver().openInputStream(Uri.parse(uri));
+ Uri fileUri = Uri.parse(uri);
+ InputStream is = app.getContentResolver().openInputStream(fileUri);
if (is != null) {
- navDrawerLogo = BitmapFactory.decodeStream(is);
- is.close();
-
+ String iconName = ImportHelper.getNameFromContentUri(app, fileUri);
+ if (!connectedAppDir.exists()) {
+ connectedAppDir.mkdirs();
+ }
+ OutputStream fout = new FileOutputStream(new File(connectedAppDir, iconName));
+ try {
+ Algorithms.streamCopy(is, fout);
+ } finally {
+ try {
+ is.close();
+ } catch (IOException e) {
+ LOG.error(e);
+ }
+ try {
+ fout.close();
+ } catch (IOException e) {
+ LOG.error(e);
+ }
+ }
+ JSONObject json = new JSONObject();
+ json.put("", connectedAppDirPath + "/" + iconName);
+ app.getSettings().NAV_DRAWER_LOGO.set(json.toString());
}
} catch (FileNotFoundException e) {
+ LOG.error(e);
return false;
+ } catch (JSONException e) {
+ LOG.error("Failed to read json", e);
} catch (IOException e) {
- // ignore
+ LOG.error("Failed to write file", e);
}
if (packageName != null && intent != null) {
navDrawerParams = new ArrayList<>();
diff --git a/OsmAnd/src/net/osmand/plus/OsmandApplication.java b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
index fef0fdb7cb..c47476edd5 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandApplication.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandApplication.java
@@ -91,7 +91,7 @@ import java.util.concurrent.ConcurrentHashMap;
import btools.routingapp.BRouterServiceConnection;
import btools.routingapp.IBRouterService;
-import static net.osmand.IndexConstants.ROUTING_AND_RENDERING_FILE_EXT;
+import static net.osmand.IndexConstants.ROUTING_FILE_EXT;
public class OsmandApplication extends MultiDexApplication {
public static final String EXCEPTION_PATH = "exception.log";
@@ -844,9 +844,9 @@ public class OsmandApplication extends MultiDexApplication {
RoutingConfiguration.Builder builder = null;
String routingProfileKey = mode.getRoutingProfile();
if (!Algorithms.isEmpty(routingProfileKey)) {
- int index = routingProfileKey.indexOf(ROUTING_AND_RENDERING_FILE_EXT);
+ int index = routingProfileKey.indexOf(ROUTING_FILE_EXT);
if (index != -1) {
- String configKey = routingProfileKey.substring(0, index + ROUTING_AND_RENDERING_FILE_EXT.length());
+ String configKey = routingProfileKey.substring(0, index + ROUTING_FILE_EXT.length());
builder = customRoutingConfigs.get(configKey);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/OsmandPlugin.java b/OsmAnd/src/net/osmand/plus/OsmandPlugin.java
index 54fd13235f..a386303aba 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandPlugin.java
@@ -6,6 +6,7 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
+import android.graphics.drawable.Drawable;
import android.os.Build;
import android.view.View;
@@ -22,6 +23,7 @@ import net.osmand.PlatformUtil;
import net.osmand.access.AccessibilityPlugin;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.TabActivity.TabItem;
+import net.osmand.plus.api.SettingsAPI;
import net.osmand.plus.audionotes.AudioVideoNotesPlugin;
import net.osmand.plus.dashboard.tools.DashFragmentData;
import net.osmand.plus.development.OsmandDevelopmentPlugin;
@@ -42,8 +44,12 @@ import net.osmand.plus.settings.BaseSettingsFragment;
import net.osmand.plus.skimapsplugin.SkiMapsPlugin;
import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.views.OsmandMapTileView;
+import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Collection;
@@ -56,27 +62,45 @@ public abstract class OsmandPlugin {
public static final String PLUGIN_ID_KEY = "plugin_id";
- private static List allPlugins = new ArrayList();
+ private static final String PLUGINS_PREFERENCES_NAME = "net.osmand.plugins";
+ private static final String CUSTOM_PLUGINS_KEY = "custom_plugins";
+
private static final Log LOG = PlatformUtil.getLog(OsmandPlugin.class);
+ private static List allPlugins = new ArrayList();
+
+ protected OsmandApplication app;
+
protected List pluginPreferences = new ArrayList<>();
private boolean active;
private String installURL = null;
+ public OsmandPlugin(OsmandApplication app) {
+ this.app = app;
+ }
+
public abstract String getId();
public abstract String getName();
public abstract String getDescription();
- public abstract int getAssetResourceName();
+ @Nullable
+ public Drawable getAssetResourceImage() {
+ return null;
+ }
@DrawableRes
public int getLogoResourceId() {
return R.drawable.ic_extension_dark;
}
+ @NonNull
+ public Drawable getLogoResource() {
+ return app.getUIUtilities().getIcon(getLogoResourceId());
+ }
+
public Class extends Activity> getSettingsActivity() {
return null;
}
@@ -101,6 +125,12 @@ public abstract class OsmandPlugin {
* Initialize plugin runs just after creation
*/
public boolean init(@NonNull OsmandApplication app, @Nullable Activity activity) {
+ if (activity != null) {
+ // called from UI
+ for (ApplicationMode appMode: getAddedAppModes()) {
+ ApplicationMode.changeProfileAvailability(appMode, true, app);
+ }
+ }
return true;
}
@@ -152,32 +182,46 @@ public abstract class OsmandPlugin {
return Collections.emptyList();
}
+ public List getRendererNames() {
+ return Collections.emptyList();
+ }
+
+ public List getRouterNames() {
+ return Collections.emptyList();
+ }
+
+ protected List getQuickActionTypes() {
+ return Collections.emptyList();
+ }
+
/**
* Plugin was installed
*/
public void onInstall(@NonNull OsmandApplication app, @Nullable Activity activity) {
+ for (ApplicationMode appMode : getAddedAppModes()) {
+ ApplicationMode.changeProfileAvailability(appMode, true, app);
+ }
showInstallDialog(activity);
}
public void showInstallDialog(@Nullable Activity activity) {
if (activity instanceof FragmentActivity) {
FragmentManager fragmentManager = ((FragmentActivity) activity).getSupportFragmentManager();
- if (fragmentManager != null) {
- PluginInstalledBottomSheetDialog.showInstance(fragmentManager, getId(), activity instanceof MapActivity);
- }
+ PluginInstalledBottomSheetDialog.showInstance(fragmentManager, getId(), activity instanceof MapActivity);
}
}
public void showDisableDialog(@Nullable Activity activity) {
if (activity instanceof FragmentActivity) {
FragmentManager fragmentManager = ((FragmentActivity) activity).getSupportFragmentManager();
- if (fragmentManager != null) {
- PluginDisabledBottomSheet.showInstance(fragmentManager, getId(), activity instanceof MapActivity);
- }
+ PluginDisabledBottomSheet.showInstance(fragmentManager, getId(), activity instanceof MapActivity);
}
}
public void disable(OsmandApplication app) {
+ for (ApplicationMode appMode : getAddedAppModes()) {
+ ApplicationMode.changeProfileAvailability(appMode, false, app);
+ }
}
public String getHelpFileName() {
@@ -229,9 +273,75 @@ public abstract class OsmandPlugin {
allPlugins.add(new OsmEditingPlugin(app));
allPlugins.add(new OsmandDevelopmentPlugin(app));
+ loadCustomPlugins(app);
activatePlugins(app, enabledPlugins);
}
+ public static void addCustomPlugin(@NonNull OsmandApplication app, @NonNull CustomOsmandPlugin plugin) {
+ OsmandPlugin oldPlugin = OsmandPlugin.getPlugin(plugin.getId());
+ if (oldPlugin != null) {
+ allPlugins.remove(oldPlugin);
+ }
+ allPlugins.add(plugin);
+ enablePlugin(null, app, plugin, true);
+ saveCustomPlugins(app);
+ }
+
+ public static void removeCustomPlugin(@NonNull OsmandApplication app, @NonNull final CustomOsmandPlugin plugin) {
+ allPlugins.remove(plugin);
+ if (plugin.isActive()) {
+ plugin.removePluginItems(new CustomOsmandPlugin.PluginItemsListener() {
+ @Override
+ public void onItemsRemoved() {
+ Algorithms.removeAllFiles(plugin.getPluginDir());
+ }
+ });
+ } else {
+ Algorithms.removeAllFiles(plugin.getPluginDir());
+ }
+ saveCustomPlugins(app);
+ }
+
+ private static void loadCustomPlugins(@NonNull OsmandApplication app) {
+ SettingsAPI settingsAPI = app.getSettings().getSettingsAPI();
+ Object pluginPrefs = settingsAPI.getPreferenceObject(PLUGINS_PREFERENCES_NAME);
+ String customPluginsJson = settingsAPI.getString(pluginPrefs, CUSTOM_PLUGINS_KEY, "");
+ if (!Algorithms.isEmpty(customPluginsJson)) {
+ try {
+ JSONArray jArray = new JSONArray(customPluginsJson);
+ for (int i = 0; i < jArray.length(); i++) {
+ JSONObject json = jArray.getJSONObject(i);
+ CustomOsmandPlugin plugin = new CustomOsmandPlugin(app, json);
+ allPlugins.add(plugin);
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private static void saveCustomPlugins(OsmandApplication app) {
+ List customOsmandPlugins = getCustomPlugins();
+ SettingsAPI settingsAPI = app.getSettings().getSettingsAPI();
+ Object pluginPrefs = settingsAPI.getPreferenceObject(PLUGINS_PREFERENCES_NAME);
+ JSONArray itemsJson = new JSONArray();
+ for (CustomOsmandPlugin plugin : customOsmandPlugins) {
+ try {
+ JSONObject json = new JSONObject();
+ json.put("pluginId", plugin.getId());
+ plugin.writeAdditionalDataToJson(json);
+ plugin.writeDependentFilesJson(json);
+ itemsJson.put(json);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ String jsonStr = itemsJson.toString();
+ if (!jsonStr.equals(settingsAPI.getString(pluginPrefs, CUSTOM_PLUGINS_KEY, ""))) {
+ settingsAPI.edit(pluginPrefs).putString(CUSTOM_PLUGINS_KEY, jsonStr).commit();
+ }
+ }
+
private static void activatePlugins(OsmandApplication app, Set enabledPlugins) {
for (OsmandPlugin plugin : allPlugins) {
if (enabledPlugins.contains(plugin.getId()) || plugin.isActive()) {
@@ -390,9 +500,6 @@ public abstract class OsmandPlugin {
return true;
}
- protected void registerQuickActionTypes(List quickActionTypes) {
- }
-
protected void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter, MapActivity mapActivity) {
}
@@ -499,6 +606,16 @@ public abstract class OsmandPlugin {
return lst;
}
+ public static List getCustomPlugins() {
+ ArrayList lst = new ArrayList(allPlugins.size());
+ for (OsmandPlugin plugin : allPlugins) {
+ if (plugin instanceof CustomOsmandPlugin) {
+ lst.add((CustomOsmandPlugin) plugin);
+ }
+ }
+ return lst;
+ }
+
@SuppressWarnings("unchecked")
public static T getEnabledPlugin(Class clz) {
for (OsmandPlugin lr : getEnabledPlugins()) {
@@ -528,6 +645,22 @@ public abstract class OsmandPlugin {
return null;
}
+ public static List getDisabledRendererNames() {
+ List l = new ArrayList();
+ for (OsmandPlugin plugin : getNotEnabledPlugins()) {
+ l.addAll(plugin.getRendererNames());
+ }
+ return l;
+ }
+
+ public static List getDisabledRouterNames() {
+ List l = new ArrayList();
+ for (OsmandPlugin plugin : getNotEnabledPlugins()) {
+ l.addAll(plugin.getRouterNames());
+ }
+ return l;
+ }
+
public static List onIndexingFiles(IProgress progress) {
List l = new ArrayList();
for (OsmandPlugin plugin : getEnabledPlugins()) {
@@ -657,12 +790,10 @@ public abstract class OsmandPlugin {
public static void registerQuickActionTypesPlugins(List quickActionTypes) {
for (OsmandPlugin p : getEnabledPlugins()) {
- p.registerQuickActionTypes(quickActionTypes);
+ quickActionTypes.addAll(p.getQuickActionTypes());
}
}
-
-
public static void updateLocationPlugins(net.osmand.Location location) {
for (OsmandPlugin p : getEnabledPlugins()) {
p.updateLocation(location);
diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
index 85c93e31f4..2d67f94d29 100644
--- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java
+++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java
@@ -25,6 +25,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import net.osmand.IndexConstants;
+import net.osmand.PlatformUtil;
import net.osmand.StateChangedListener;
import net.osmand.ValueHolder;
import net.osmand.aidl.OsmandAidlApi;
@@ -56,11 +57,14 @@ import net.osmand.plus.voice.CommandPlayer;
import net.osmand.render.RenderingRulesStorage;
import net.osmand.util.Algorithms;
+import org.apache.commons.logging.Log;
+import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.IOException;
+import java.io.Serializable;
import java.lang.ref.WeakReference;
import java.lang.reflect.Type;
import java.util.ArrayList;
@@ -77,8 +81,14 @@ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.CONFIGURE_MAP_ITEM_ID_SCHEME;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_ITEM_ID_SCHEME;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_ACTIONS;
+
public class OsmandSettings {
+ private static final Log LOG = PlatformUtil.getLog(OsmandSettings.class.getName());
+
public static final int VERSION = 1;
public interface OsmandPreference {
@@ -442,6 +452,10 @@ public class OsmandSettings {
}
return false;
}
+ } else if (preference instanceof ContextMenuItemsPreference) {
+ if (value instanceof ContextMenuItemsSettings) {
+ ((ContextMenuItemsPreference) preference).setModeValue(mode, (ContextMenuItemsSettings) value);
+ }
}
}
return false;
@@ -1012,42 +1026,58 @@ public class OsmandSettings {
super(id, defaultValue);
this.delimiter = delimiter;
}
-
+
public boolean addValue(String res) {
- String vl = get();
+ return addModeValue(getApplicationMode(), res);
+ }
+
+ public boolean addModeValue(ApplicationMode appMode, String res) {
+ String vl = getModeValue(appMode);
if (vl == null || vl.isEmpty()) {
vl = res + delimiter;
} else {
vl = vl + res + delimiter;
}
- set(vl);
+ setModeValue(appMode, vl);
return true;
}
-
+
public void clearAll() {
- set("");
+ clearAllForProfile(getApplicationMode());
+ }
+
+ public void clearAllForProfile(ApplicationMode appMode) {
+ setModeValue(appMode, "");
}
public boolean containsValue(String res) {
- String vl = get();
+ return containsValue(getApplicationMode(), res);
+ }
+
+ public boolean containsValue(ApplicationMode appMode, String res) {
+ String vl = getModeValue(appMode);
String r = res + delimiter;
- return vl.startsWith(r) || vl.indexOf(delimiter + r) >= 0;
+ return vl.startsWith(r) || vl.contains(delimiter + r);
}
public boolean removeValue(String res) {
- String vl = get();
+ return removeValueForProfile(getApplicationMode(), res);
+ }
+
+ public boolean removeValueForProfile(ApplicationMode appMode, String res) {
+ String vl = getModeValue(appMode);
String r = res + delimiter;
if(vl != null) {
if(vl.startsWith(r)) {
vl = vl.substring(r.length());
- set(vl);
+ setModeValue(appMode, vl);
return true;
} else {
int it = vl.indexOf(delimiter + r);
if(it >= 0) {
vl = vl.substring(0, it + delimiter.length()) + vl.substring(it + delimiter.length() + r.length());
}
- set(vl);
+ setModeValue(appMode, vl);
return true;
}
}
@@ -1055,7 +1085,11 @@ public class OsmandSettings {
}
public List getStringsList() {
- final String listAsString = get();
+ return getStringsListForProfile(getApplicationMode());
+ }
+
+ public List getStringsListForProfile(ApplicationMode appMode) {
+ final String listAsString = getModeValue(appMode);
if (listAsString != null) {
if (listAsString.contains(delimiter)) {
return Arrays.asList(listAsString.split(delimiter));
@@ -1069,14 +1103,143 @@ public class OsmandSettings {
}
public void setStringsList(List values) {
+ setStringsListForProfile(getApplicationMode(), values);
+ }
+
+ public void setStringsListForProfile(ApplicationMode appMode, List values) {
if (values == null || values.size() == 0) {
- set(null);
+ setModeValue(appMode, null);
return;
}
+ clearAllForProfile(appMode);
+ for (String value : values) {
+ addModeValue(appMode, value);
+ }
+ }
+
+ public boolean setModeValues(ApplicationMode mode, List values) {
+ if (values == null || values.size() == 0) {
+ setModeValue(mode,null);
+ return false;
+ }
clearAll();
+ String vl = get();
for (String value : values) {
addValue(value);
+ if (vl == null || vl.isEmpty()) {
+ vl = value + delimiter;
+ } else {
+ vl = vl + value + delimiter;
+ }
}
+ return setModeValue(mode, vl);
+ }
+ }
+
+ public class ContextMenuItemsPreference extends CommonPreference {
+ @NonNull
+ private String idScheme;
+
+ private ContextMenuItemsPreference(String id, @NonNull String idScheme) {
+ super(id, new ContextMenuItemsSettings());
+ this.idScheme = idScheme;
+ }
+
+ @Override
+ protected ContextMenuItemsSettings getValue(Object prefs, ContextMenuItemsSettings defaultValue) {
+ String s = settingsAPI.getString(prefs, getId(), "");
+ return readValue(s);
+ }
+
+ @Override
+ protected boolean setValue(Object prefs, ContextMenuItemsSettings val) {
+ return settingsAPI.edit(prefs).putString(getId(), val.writeToJsonString(idScheme)).commit();
+ }
+
+ @Override
+ public ContextMenuItemsSettings parseString(String s) {
+ return readValue(s);
+ }
+
+ private ContextMenuItemsSettings readValue(String s) {
+ ContextMenuItemsSettings value = new ContextMenuItemsSettings();
+ value.readFromJsonString(s, idScheme);
+ return value;
+ }
+
+ @NonNull
+ public String getIdScheme() {
+ return idScheme;
+ }
+ }
+
+ public static class ContextMenuItemsSettings implements Serializable {
+ public static final String HIDDEN = "hidden";
+ public static final String ORDER = "order";
+ private List hiddenIds = new ArrayList<>();
+ private List orderIds = new ArrayList<>();
+
+ public ContextMenuItemsSettings() {
+
+ }
+
+ public ContextMenuItemsSettings(@NonNull List hiddenIds, @NonNull List orderIds) {
+ this.hiddenIds = hiddenIds;
+ this.orderIds = orderIds;
+ }
+
+ public void readFromJsonString(String jsonString, @NonNull String idScheme) {
+ if (Algorithms.isEmpty(jsonString)) {
+ return;
+ }
+ try {
+ JSONObject json = new JSONObject(jsonString);
+ hiddenIds = readIdsList(json.optJSONArray(HIDDEN), idScheme);
+ orderIds = readIdsList(json.optJSONArray(ORDER), idScheme);
+ } catch (JSONException e) {
+ LOG.error("Error converting to json string: " + e);
+ }
+ }
+
+ private List readIdsList(JSONArray jsonArray, @NonNull String idScheme) {
+ List list = new ArrayList<>();
+ if (jsonArray != null) {
+ for (int i = 0; i < jsonArray.length(); i++) {
+ String id = jsonArray.optString(i);
+ list.add(idScheme + id);
+ }
+ }
+ return list;
+ }
+
+ public String writeToJsonString(@NonNull String idScheme) {
+ try {
+ JSONObject json = new JSONObject();
+ json.put(HIDDEN, getJsonArray(hiddenIds, idScheme));
+ json.put(ORDER, getJsonArray(orderIds, idScheme));
+ return json.toString();
+ } catch (JSONException e) {
+ LOG.error("Error converting to json string: " + e);
+ }
+ return "";
+ }
+
+ private JSONArray getJsonArray(List ids, @NonNull String idScheme) {
+ JSONArray jsonArray = new JSONArray();
+ if (ids != null && !ids.isEmpty()) {
+ for (String id : ids) {
+ jsonArray.put(id.replace(idScheme, ""));
+ }
+ }
+ return jsonArray;
+ }
+
+ public List getHiddenIds() {
+ return Collections.unmodifiableList(hiddenIds);
+ }
+
+ public List getOrderIds() {
+ return Collections.unmodifiableList(orderIds);
}
}
@@ -1261,6 +1424,9 @@ public class OsmandSettings {
public final CommonPreference WIKI_ARTICLE_SHOW_IMAGES_ASKED = new BooleanPreference("wikivoyage_show_images_asked", false).makeGlobal();
public final CommonPreference WIKI_ARTICLE_SHOW_IMAGES = new EnumIntPreference<>("wikivoyage_show_imgs", WikiArticleShowImages.OFF, WikiArticleShowImages.values()).makeGlobal();
+ public final CommonPreference SHOW_WIKIPEDIA_POI = new BooleanPreference("show_wikipedia_poi", false).makeProfile();
+ public final CommonPreference GLOBAL_WIKIPEDIA_POI_ENABLED = new BooleanPreference("global_wikipedia_poi_enabled", false).makeProfile();
+ public final ListStringPreference WIKIPEDIA_POI_ENABLED_LANGUAGES = (ListStringPreference) new ListStringPreference("wikipedia_poi_enabled_languages", null, ",").makeProfile().cache();
public final CommonPreference SELECT_MARKER_ON_SINGLE_TAP = new BooleanPreference("select_marker_on_single_tap", false).makeProfile();
public final CommonPreference KEEP_PASSED_MARKERS_ON_MAP = new BooleanPreference("keep_passed_markers_on_map", true).makeProfile();
@@ -1287,6 +1453,7 @@ public class OsmandSettings {
public final CommonPreference API_NAV_DRAWER_ITEMS_JSON = new StringPreference("api_nav_drawer_items_json", "{}").makeGlobal();
public final CommonPreference API_CONNECTED_APPS_JSON = new StringPreference("api_connected_apps_json", "[]").makeGlobal();
+ public final CommonPreference NAV_DRAWER_LOGO = new StringPreference("nav_drawer_logo", "").makeProfile();
public final CommonPreference NUMBER_OF_STARTS_FIRST_XMAS_SHOWN = new IntPreference("number_of_starts_first_xmas_shown", 0).makeGlobal();
@@ -2090,7 +2257,15 @@ public class OsmandSettings {
12/*AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE*/).makeProfile();
// For now this can be changed only in TestVoiceActivity
- public final OsmandPreference BT_SCO_DELAY = new IntPreference("bt_sco_delay", 1500).makeGlobal().cache();
+ public final OsmandPreference[] VOICE_PROMPT_DELAY = new IntPreference[10];
+
+ {
+ // 1500 ms delay works for most configurations to establish a BT SCO link
+ VOICE_PROMPT_DELAY[0] = new IntPreference("voice_prompt_delay_0", 1500).makeGlobal().cache(); /*AudioManager.STREAM_VOICE_CALL*/
+ // On most devices sound output works pomptly so usually no voice prompt delay needed
+ VOICE_PROMPT_DELAY[3] = new IntPreference("voice_prompt_delay_3", 0).makeGlobal().cache(); /*AudioManager.STREAM_MUSIC*/
+ VOICE_PROMPT_DELAY[5] = new IntPreference("voice_prompt_delay_5", 0).makeGlobal().cache(); /*AudioManager.STREAM_NOTIFICATION*/
+ }
// this value string is synchronized with settings_pref.xml preference name
public final CommonPreference MAP_ONLINE_DATA = new BooleanPreference("map_online_data", false).makeProfile();
@@ -3385,13 +3560,34 @@ public class OsmandSettings {
public void setSelectedPoiFilters(final Set poiFilters) {
SELECTED_POI_FILTER_FOR_MAP.set(android.text.TextUtils.join(",", poiFilters));
}
-
+
public final ListStringPreference POI_FILTERS_ORDER = (ListStringPreference)
new ListStringPreference("poi_filters_order", null, ",,").makeProfile().cache();
public final ListStringPreference INACTIVE_POI_FILTERS = (ListStringPreference)
new ListStringPreference("inactive_poi_filters", null, ",,").makeProfile().cache();
+ public final ContextMenuItemsPreference DRAWER_ITEMS =
+ (ContextMenuItemsPreference) new ContextMenuItemsPreference("drawer_items", DRAWER_ITEM_ID_SCHEME).makeProfile().cache();
+
+ public final ContextMenuItemsPreference CONFIGURE_MAP_ITEMS =
+ (ContextMenuItemsPreference) new ContextMenuItemsPreference("context_menu_items", CONFIGURE_MAP_ITEM_ID_SCHEME).makeProfile().cache();
+
+ public final ContextMenuItemsPreference CONTEXT_MENU_ACTIONS_ITEMS =
+ (ContextMenuItemsPreference) new ContextMenuItemsPreference("configure_map_items", MAP_CONTEXT_MENU_ACTIONS).makeProfile().cache();
+
+ public final List CONTEXT_MENU_ITEMS_PREFERENCES = Arrays.asList(DRAWER_ITEMS, CONFIGURE_MAP_ITEMS, CONTEXT_MENU_ACTIONS_ITEMS);
+
+ @Nullable
+ public ContextMenuItemsPreference getContextMenuItemsPreference(@NonNull String id) {
+ for (ContextMenuItemsPreference preference : CONTEXT_MENU_ITEMS_PREFERENCES) {
+ if (id.startsWith(preference.idScheme)) {
+ return preference;
+ }
+ }
+ return null;
+ }
+
public static final String VOICE_PROVIDER_NOT_USE = "VOICE_PROVIDER_NOT_USE";
public static final String[] TTS_AVAILABLE_VOICES = new String[]{
diff --git a/OsmAnd/src/net/osmand/plus/SettingsHelper.java b/OsmAnd/src/net/osmand/plus/SettingsHelper.java
index 494696c861..0c179c123d 100644
--- a/OsmAnd/src/net/osmand/plus/SettingsHelper.java
+++ b/OsmAnd/src/net/osmand/plus/SettingsHelper.java
@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
+import net.osmand.AndroidUtils;
import net.osmand.IndexConstants;
import net.osmand.PlatformUtil;
import net.osmand.data.LatLon;
@@ -25,7 +26,6 @@ import net.osmand.plus.helpers.AvoidSpecificRoads.AvoidRoadInfo;
import net.osmand.plus.poi.PoiUIFilter;
import net.osmand.plus.quickaction.QuickAction;
import net.osmand.plus.quickaction.QuickActionRegistry;
-import net.osmand.plus.quickaction.QuickActionType;
import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
@@ -88,6 +88,8 @@ import static net.osmand.IndexConstants.OSMAND_SETTINGS_FILE_EXT;
public class SettingsHelper {
+ public static final int VERSION = 1;
+
public static final String SETTINGS_LATEST_CHANGES_KEY = "settings_latest_changes";
public static final String SETTINGS_VERSION_KEY = "settings_version";
@@ -125,7 +127,8 @@ public class SettingsHelper {
PLUGIN,
DATA,
FILE,
- QUICK_ACTION,
+ RESOURCES,
+ QUICK_ACTIONS,
POI_UI_FILTERS,
MAP_SOURCES,
AVOID_ROADS
@@ -133,24 +136,37 @@ public class SettingsHelper {
public abstract static class SettingsItem {
- private SettingsItemType type;
+ protected OsmandApplication app;
+
+ private String pluginId;
+ private String fileName;
boolean shouldReplace = false;
- SettingsItem(@NonNull SettingsItemType type) {
- this.type = type;
+ protected List warnings;
+
+ SettingsItem(OsmandApplication app) {
+ this.app = app;
+ init();
}
- SettingsItem(@NonNull SettingsItemType type, @NonNull JSONObject json) throws JSONException {
- this.type = type;
+ SettingsItem(OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ this.app = app;
+ init();
readFromJson(json);
}
- @NonNull
- public SettingsItemType getType() {
- return type;
+ protected void init() {
+ warnings = new ArrayList<>();
}
+ public List getWarnings() {
+ return warnings;
+ }
+
+ @NonNull
+ public abstract SettingsItemType getType();
+
@NonNull
public abstract String getName();
@@ -158,7 +174,32 @@ public class SettingsHelper {
public abstract String getPublicName(@NonNull Context ctx);
@NonNull
- public abstract String getFileName();
+ public String getDefaultFileName() {
+ return getName() + getDefaultFileExtension();
+ }
+
+ @NonNull
+ public String getDefaultFileExtension() {
+ return ".json";
+ }
+
+ public String getPluginId() {
+ return pluginId;
+ }
+
+ @Nullable
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public boolean applyFileName(@NonNull String fileName) {
+ String n = getFileName();
+ return n != null && n.endsWith(fileName);
+ }
public boolean shouldReadOnCollecting() {
return false;
@@ -169,7 +210,14 @@ public class SettingsHelper {
}
static SettingsItemType parseItemType(@NonNull JSONObject json) throws IllegalArgumentException, JSONException {
- return SettingsItemType.valueOf(json.getString("type"));
+ String type = json.has("type") ? json.getString("type") : null;
+ if (type == null) {
+ throw new IllegalArgumentException("No type field");
+ }
+ if (type.equals("QUICK_ACTION")) {
+ type = "QUICK_ACTIONS";
+ }
+ return SettingsItemType.valueOf(type);
}
public boolean exists() {
@@ -181,11 +229,30 @@ public class SettingsHelper {
}
void readFromJson(@NonNull JSONObject json) throws JSONException {
+ pluginId = json.has("pluginId") ? json.getString("pluginId") : null;
+ if (json.has("name")) {
+ fileName = json.getString("name") + getDefaultFileExtension();
+ }
+ if (json.has("file")) {
+ fileName = json.getString("file");
+ }
+ readItemsFromJson(json);
}
void writeToJson(@NonNull JSONObject json) throws JSONException {
- json.put("type", type.name());
- json.put("name", getName());
+ json.put("type", getType().name());
+ String pluginId = getPluginId();
+ if (!Algorithms.isEmpty(pluginId)) {
+ json.put("pluginId", pluginId);
+ }
+ if (getWriter() != null) {
+ String fileName = getFileName();
+ if (Algorithms.isEmpty(fileName)) {
+ fileName = getDefaultFileName();
+ }
+ json.put("file", fileName);
+ }
+ writeItemsToJson(json);
}
String toJson() throws JSONException {
@@ -194,12 +261,69 @@ public class SettingsHelper {
return json.toString();
}
- @NonNull
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ // override
+ }
+
+ void writeItemsToJson(@NonNull JSONObject json) {
+ // override
+ }
+
+ @Nullable
abstract SettingsItemReader getReader();
- @NonNull
+ @Nullable
abstract SettingsItemWriter getWriter();
+ @NonNull
+ SettingsItemReader getJsonReader() {
+ return new SettingsItemReader(this) {
+ @Override
+ public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
+ StringBuilder buf = new StringBuilder();
+ try {
+ BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+ String str;
+ while ((str = in.readLine()) != null) {
+ buf.append(str);
+ }
+ } catch (IOException e) {
+ throw new IOException("Cannot read json body", e);
+ }
+ String json = buf.toString();
+ if (json.length() == 0) {
+ throw new IllegalArgumentException("Json body is empty");
+ }
+ try {
+ readItemsFromJson(new JSONObject(json));
+ } catch (JSONException e) {
+ throw new IllegalArgumentException("Json parsing error", e);
+ }
+ }
+ };
+ }
+
+ @NonNull
+ SettingsItemWriter getJsonWriter() {
+ return new SettingsItemWriter(this) {
+ @Override
+ public boolean writeToStream(@NonNull OutputStream outputStream) throws IOException {
+ JSONObject json = new JSONObject();
+ writeItemsToJson(json);
+ if (json.length() > 0) {
+ try {
+ String s = json.toString(2);
+ outputStream.write(s.getBytes("UTF-8"));
+ } catch (JSONException e) {
+ LOG.error("Failed to write json to stream", e);
+ }
+ return true;
+ }
+ return false;
+ }
+ };
+ }
+
@Override
public int hashCode() {
return (getType().name() + getName()).hashCode();
@@ -217,23 +341,128 @@ public class SettingsHelper {
SettingsItem item = (SettingsItem) other;
return item.getType() == getType()
&& item.getName().equals(getName())
- && item.getFileName().equals(getFileName());
+ && Algorithms.stringsEqual(item.getFileName(), getFileName());
+ }
+ }
+
+ public static class PluginSettingsItem extends SettingsItem {
+
+ private CustomOsmandPlugin plugin;
+ private List pluginDependentItems;
+
+ PluginSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
+ }
+
+ @Override
+ protected void init() {
+ super.init();
+ pluginDependentItems = new ArrayList<>();
+ }
+
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.PLUGIN;
+ }
+
+ @NonNull
+ @Override
+ public String getName() {
+ return plugin.getId();
+ }
+
+ @NonNull
+ @Override
+ public String getPublicName(@NonNull Context ctx) {
+ return plugin.getName();
+ }
+
+ @NonNull
+ @Override
+ public String getDefaultFileName() {
+ return getName();
+ }
+
+ public CustomOsmandPlugin getPlugin() {
+ return plugin;
+ }
+
+ public List getPluginDependentItems() {
+ return pluginDependentItems;
+ }
+
+ @Override
+ public boolean exists() {
+ return OsmandPlugin.getPlugin(getPluginId()) != null;
+ }
+
+ @Override
+ public void apply() {
+ if (shouldReplace || !exists()) {
+ for (SettingsHelper.SettingsItem item : pluginDependentItems) {
+ if (item instanceof SettingsHelper.FileSettingsItem) {
+ FileSettingsItem fileItem = (FileSettingsItem) item;
+ if (fileItem.getSubtype() == FileSettingsItem.FileSubtype.RENDERING_STYLE) {
+ plugin.addRenderer(fileItem.getName());
+ } else if (fileItem.getSubtype() == FileSettingsItem.FileSubtype.ROUTING_CONFIG) {
+ plugin.addRouter(fileItem.getName());
+ } else if (fileItem.getSubtype() == FileSettingsItem.FileSubtype.OTHER) {
+ plugin.setResourceDirName(item.getFileName());
+ }
+ }
+ }
+ OsmandPlugin.addCustomPlugin(app, plugin);
+ }
+ }
+
+ @Override
+ void readFromJson(@NonNull JSONObject json) throws JSONException {
+ super.readFromJson(json);
+ plugin = new CustomOsmandPlugin(app, json);
+ }
+
+ @Override
+ void writeToJson(@NonNull JSONObject json) throws JSONException {
+ super.writeToJson(json);
+ plugin.writeAdditionalDataToJson(json);
+ }
+
+ @Nullable
+ @Override
+ SettingsItemReader getReader() {
+ return null;
+ }
+
+ @Nullable
+ @Override
+ SettingsItemWriter getWriter() {
+ return null;
}
}
public abstract static class CollectionSettingsItem extends SettingsItem {
- protected List items = new ArrayList<>();
- protected List duplicateItems = new ArrayList<>();
+ protected List items;
+ protected List appliedItems;
+ protected List duplicateItems;
protected List existingItems;
- CollectionSettingsItem(@NonNull SettingsItemType type, @NonNull List items) {
- super(type);
+ @Override
+ protected void init() {
+ super.init();
+ items = new ArrayList<>();
+ appliedItems = new ArrayList<>();
+ duplicateItems = new ArrayList<>();
+ }
+
+ CollectionSettingsItem(OsmandApplication app, @NonNull List items) {
+ super(app);
this.items = items;
}
- CollectionSettingsItem(@NonNull SettingsItemType type, @NonNull JSONObject json) throws JSONException {
- super(type, json);
+ CollectionSettingsItem(OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
}
@NonNull
@@ -241,13 +470,18 @@ public class SettingsHelper {
return items;
}
+ @NonNull
+ public List getAppliedItems() {
+ return appliedItems;
+ }
+
@NonNull
public List getDuplicateItems() {
return duplicateItems;
}
@NonNull
- public List excludeDuplicateItems() {
+ public List processDuplicateItems() {
if (!items.isEmpty()) {
for (T item : items) {
if (isDuplicate(item)) {
@@ -255,10 +489,15 @@ public class SettingsHelper {
}
}
}
- items.removeAll(duplicateItems);
return duplicateItems;
}
+ public List getNewItems() {
+ List res = new ArrayList<>(items);
+ res.removeAll(duplicateItems);
+ return res;
+ }
+
public abstract boolean isDuplicate(@NonNull T item);
@NonNull
@@ -295,13 +534,13 @@ public class SettingsHelper {
private OsmandSettings settings;
- protected OsmandSettingsItem(@NonNull SettingsItemType type, @NonNull OsmandSettings settings) {
- super(type);
+ protected OsmandSettingsItem(@NonNull OsmandSettings settings) {
+ super(settings.getContext());
this.settings = settings;
}
protected OsmandSettingsItem(@NonNull SettingsItemType type, @NonNull OsmandSettings settings, @NonNull JSONObject json) throws JSONException {
- super(type, json);
+ super(settings.getContext(), json);
this.settings = settings;
}
@@ -406,7 +645,13 @@ public class SettingsHelper {
public static class GlobalSettingsItem extends OsmandSettingsItem {
public GlobalSettingsItem(@NonNull OsmandSettings settings) {
- super(SettingsItemType.GLOBAL, settings);
+ super(settings);
+ }
+
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.GLOBAL;
}
@NonNull
@@ -421,18 +666,12 @@ public class SettingsHelper {
return ctx.getString(R.string.general_settings_2);
}
- @NonNull
- @Override
- public String getFileName() {
- return getName() + ".json";
- }
-
@Override
public boolean exists() {
return true;
}
- @NonNull
+ @Nullable
@Override
SettingsItemReader getReader() {
return new OsmandSettingsItemReader(this, getSettings()) {
@@ -443,7 +682,7 @@ public class SettingsHelper {
};
}
- @NonNull
+ @Nullable
@Override
SettingsItemWriter getWriter() {
return new OsmandSettingsItemWriter(this, getSettings()) {
@@ -457,22 +696,20 @@ public class SettingsHelper {
public static class ProfileSettingsItem extends OsmandSettingsItem {
- private OsmandApplication app;
private ApplicationMode appMode;
private ApplicationModeBuilder builder;
private ApplicationModeBean modeBean;
private Set appModeBeanPrefsIds;
+ private Map drawerLogoParams;
public ProfileSettingsItem(@NonNull OsmandApplication app, @NonNull ApplicationMode appMode) {
- super(SettingsItemType.PROFILE, app.getSettings());
- this.app = app;
+ super(app.getSettings());
this.appMode = appMode;
appModeBeanPrefsIds = new HashSet<>(Arrays.asList(app.getSettings().appModeBeanPrefsIds));
}
public ProfileSettingsItem(@NonNull OsmandApplication app, @NonNull ApplicationModeBean modeBean) {
- super(SettingsItemType.PROFILE, app.getSettings());
- this.app = app;
+ super(app.getSettings());
this.modeBean = modeBean;
builder = ApplicationMode.fromModeBean(app, modeBean);
appMode = builder.getApplicationMode();
@@ -481,11 +718,21 @@ public class SettingsHelper {
public ProfileSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
super(SettingsItemType.PROFILE, app.getSettings(), json);
- this.app = app;
- readFromJson(app.getSettings().getContext(), json);
appModeBeanPrefsIds = new HashSet<>(Arrays.asList(app.getSettings().appModeBeanPrefsIds));
}
+ @Override
+ protected void init() {
+ super.init();
+ drawerLogoParams = new HashMap<>();
+ }
+
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.PROFILE;
+ }
+
public ApplicationMode getAppMode() {
return appMode;
}
@@ -514,11 +761,13 @@ public class SettingsHelper {
@NonNull
@Override
- public String getFileName() {
- return "profile_" + getName() + ".json";
+ public String getDefaultFileName() {
+ return "profile_" + getName() + getDefaultFileExtension();
}
- void readFromJson(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ @Override
+ void readFromJson(@NonNull JSONObject json) throws JSONException {
+ super.readFromJson(json);
String appModeJson = json.getString("appMode");
modeBean = ApplicationMode.fromJson(appModeJson);
builder = ApplicationMode.fromModeBean(app, modeBean);
@@ -529,6 +778,27 @@ public class SettingsHelper {
this.appMode = appMode;
}
+ @Override
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ try {
+ JSONObject drawerLogoJson = json.has("drawerLogo") ? json.getJSONObject("drawerLogo") : null;
+ if (drawerLogoJson != null) {
+ for (Iterator it = drawerLogoJson.keys(); it.hasNext(); ) {
+ String localeKey = it.next();
+ String name = drawerLogoJson.getString(localeKey);
+ drawerLogoParams.put(localeKey, name);
+ }
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @NonNull
+ public Map getDrawerLogoParams() {
+ return drawerLogoParams;
+ }
+
@Override
public boolean exists() {
return builder != null && ApplicationMode.valueOfStringKey(getName(), null) != null;
@@ -597,7 +867,7 @@ public class SettingsHelper {
json.put("appMode", new JSONObject(appMode.toJson()));
}
- @NonNull
+ @Nullable
@Override
SettingsItemReader getReader() {
return new OsmandSettingsItemReader(this, getSettings()) {
@@ -610,7 +880,7 @@ public class SettingsHelper {
};
}
- @NonNull
+ @Nullable
@Override
SettingsItemWriter getWriter() {
return new OsmandSettingsItemWriter(this, getSettings()) {
@@ -629,7 +899,6 @@ public class SettingsHelper {
public StreamSettingsItemReader(@NonNull StreamSettingsItem item) {
super(item);
}
-
}
public static class StreamSettingsItemWriter extends SettingsItemWriter {
@@ -663,19 +932,21 @@ public class SettingsHelper {
private InputStream inputStream;
protected String name;
- public StreamSettingsItem(@NonNull SettingsItemType type, @NonNull String name) {
- super(type);
+ public StreamSettingsItem(@NonNull OsmandApplication app, @NonNull String name) {
+ super(app);
this.name = name;
+ setFileName(name);
}
- StreamSettingsItem(@NonNull SettingsItemType type, @NonNull JSONObject json) throws JSONException {
- super(type, json);
+ StreamSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
}
- public StreamSettingsItem(@NonNull SettingsItemType type, @NonNull InputStream inputStream, @NonNull String name) {
- super(type);
+ public StreamSettingsItem(@NonNull OsmandApplication app, @NonNull InputStream inputStream, @NonNull String name) {
+ super(app);
this.inputStream = inputStream;
this.name = name;
+ setFileName(name);
}
@Nullable
@@ -699,13 +970,19 @@ public class SettingsHelper {
return getName();
}
+ @NonNull
+ @Override
+ public String getDefaultFileExtension() {
+ return "";
+ }
+
@Override
void readFromJson(@NonNull JSONObject json) throws JSONException {
super.readFromJson(json);
- name = json.getString("name");
+ name = json.has("name") ? json.getString("name") : null;
}
- @NonNull
+ @Nullable
@Override
public SettingsItemWriter getWriter() {
return new StreamSettingsItemWriter(this);
@@ -717,23 +994,29 @@ public class SettingsHelper {
@Nullable
private byte[] data;
- public DataSettingsItem(@NonNull String name) {
- super(SettingsItemType.DATA, name);
+ public DataSettingsItem(@NonNull OsmandApplication app, @NonNull String name) {
+ super(app, name);
}
- DataSettingsItem(@NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.DATA, json);
+ DataSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
}
- public DataSettingsItem(@NonNull byte[] data, @NonNull String name) {
- super(SettingsItemType.DATA, name);
+ public DataSettingsItem(@NonNull OsmandApplication app, @NonNull byte[] data, @NonNull String name) {
+ super(app, name);
this.data = data;
}
@NonNull
@Override
- public String getFileName() {
- return getName() + ".dat";
+ public SettingsItemType getType() {
+ return SettingsItemType.DATA;
+ }
+
+ @NonNull
+ @Override
+ public String getDefaultFileExtension() {
+ return ".dat";
}
@Nullable
@@ -741,7 +1024,16 @@ public class SettingsHelper {
return data;
}
- @NonNull
+ @Override
+ void readFromJson(@NonNull JSONObject json) throws JSONException {
+ super.readFromJson(json);
+ String fileName = getFileName();
+ if (!Algorithms.isEmpty(fileName)) {
+ name = Algorithms.getFileNameWithoutExtension(new File(fileName));
+ }
+ }
+
+ @Nullable
@Override
SettingsItemReader getReader() {
return new StreamSettingsItemReader(this) {
@@ -760,7 +1052,7 @@ public class SettingsHelper {
};
}
- @NonNull
+ @Nullable
@Override
public SettingsItemWriter getWriter() {
setInputStream(new ByteArrayInputStream(data));
@@ -770,28 +1062,157 @@ public class SettingsHelper {
public static class FileSettingsItem extends StreamSettingsItem {
- private File file;
+ public enum FileSubtype {
+ UNKNOWN("", null),
+ OTHER("other", ""),
+ ROUTING_CONFIG("routing_config", IndexConstants.ROUTING_PROFILES_DIR),
+ RENDERING_STYLE("rendering_style", IndexConstants.RENDERERS_DIR),
+ OBF_MAP("obf_map", IndexConstants.MAPS_PATH),
+ TILES_MAP("tiles_map", IndexConstants.TILES_INDEX_DIR),
+ GPX("gpx", IndexConstants.GPX_INDEX_DIR),
+ VOICE("voice", IndexConstants.VOICE_INDEX_DIR),
+ TRAVEL("travel", IndexConstants.WIKIVOYAGE_INDEX_DIR);
- public FileSettingsItem(@NonNull OsmandApplication app, @NonNull File file) {
- super(SettingsItemType.FILE, file.getPath().replace(app.getAppPath(null).getPath(), ""));
+ private String subtypeName;
+ private String subtypeFolder;
+
+ FileSubtype(String subtypeName, String subtypeFolder) {
+ this.subtypeName = subtypeName;
+ this.subtypeFolder = subtypeFolder;
+ }
+
+ public String getSubtypeName() {
+ return subtypeName;
+ }
+
+ public String getSubtypeFolder() {
+ return subtypeFolder;
+ }
+
+ public static FileSubtype getSubtypeByName(@NonNull String name) {
+ for (FileSubtype subtype : FileSubtype.values()) {
+ if (name.equals(subtype.subtypeName)) {
+ return subtype;
+ }
+ }
+ return null;
+ }
+
+ public static FileSubtype getSubtypeByFileName(@NonNull String fileName) {
+ String name = fileName;
+ if (fileName.startsWith(File.separator)) {
+ name = fileName.substring(1);
+ }
+ for (FileSubtype subtype : FileSubtype.values()) {
+ switch (subtype) {
+ case UNKNOWN:
+ case OTHER:
+ break;
+ case OBF_MAP:
+ if (name.endsWith(IndexConstants.BINARY_MAP_INDEX_EXT)) {
+ return subtype;
+ }
+ break;
+ default:
+ if (name.startsWith(subtype.subtypeFolder)) {
+ return subtype;
+ }
+ break;
+ }
+ }
+ return UNKNOWN;
+ }
+
+ @Override
+ public String toString() {
+ return subtypeName;
+ }
+ }
+
+ protected File file;
+ private File appPath;
+ protected FileSubtype subtype;
+
+ public FileSettingsItem(@NonNull OsmandApplication app, @NonNull File file) throws IllegalArgumentException {
+ super(app, file.getPath().replace(app.getAppPath(null).getPath(), ""));
this.file = file;
+ this.appPath = app.getAppPath(null);
+ String fileName = getFileName();
+ if (fileName != null) {
+ this.subtype = FileSubtype.getSubtypeByFileName(fileName);
+ }
+ if (subtype == FileSubtype.UNKNOWN || subtype == null) {
+ throw new IllegalArgumentException("Unknown file subtype: " + fileName);
+ }
}
FileSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.FILE, json);
- this.file = new File(app.getAppPath(null), name);
+ super(app, json);
+ this.appPath = app.getAppPath(null);
+ if (subtype == FileSubtype.OTHER) {
+ this.file = new File(appPath, name);
+ } else if (subtype == FileSubtype.UNKNOWN || subtype == null) {
+ throw new IllegalArgumentException("Unknown file subtype: " + getFileName());
+ } else {
+ this.file = new File(app.getAppPath(subtype.subtypeFolder), name);
+ }
}
@NonNull
@Override
- public String getFileName() {
- return getName();
+ public SettingsItemType getType() {
+ return SettingsItemType.FILE;
}
+ public File getPluginPath() {
+ String pluginId = getPluginId();
+ if (!Algorithms.isEmpty(pluginId)) {
+ return new File(appPath, IndexConstants.PLUGINS_DIR + pluginId);
+ }
+ return appPath;
+ }
+
+ @Override
+ void readFromJson(@NonNull JSONObject json) throws JSONException {
+ super.readFromJson(json);
+ String fileName = getFileName();
+ if (subtype == null) {
+ String subtypeStr = json.has("subtype") ? json.getString("subtype") : null;
+ if (!Algorithms.isEmpty(subtypeStr)) {
+ subtype = FileSubtype.getSubtypeByName(subtypeStr);
+ } else if (!Algorithms.isEmpty(fileName)) {
+ subtype = FileSubtype.getSubtypeByFileName(fileName);
+ } else {
+ subtype = FileSubtype.UNKNOWN;
+ }
+ }
+ if (!Algorithms.isEmpty(fileName)) {
+ if (subtype == FileSubtype.OTHER) {
+ name = fileName;
+ } else if (subtype != null && subtype != FileSubtype.UNKNOWN) {
+ name = Algorithms.getFileWithoutDirs(fileName);
+ }
+ }
+ }
+
+ @Override
+ void writeToJson(@NonNull JSONObject json) throws JSONException {
+ super.writeToJson(json);
+ if (subtype != null) {
+ json.put("subtype", subtype.getSubtypeName());
+ }
+ }
+
+ @NonNull
public File getFile() {
return file;
}
+ @NonNull
+ public FileSubtype getSubtype() {
+ return subtype;
+ }
+
@Override
public boolean exists() {
return file.exists();
@@ -810,18 +1231,21 @@ public class SettingsHelper {
}
}
- @NonNull
+ @Nullable
@Override
SettingsItemReader getReader() {
return new StreamSettingsItemReader(this) {
@Override
public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
OutputStream output;
- if (!file.exists() || shouldReplace) {
- output = new FileOutputStream(file);
- } else {
- output = new FileOutputStream(renameFile(file));
+ File dest = FileSettingsItem.this.file;
+ if (dest.exists() && !shouldReplace) {
+ dest = renameFile(dest);
}
+ if (dest.getParentFile() != null && !dest.getParentFile().exists()) {
+ dest.getParentFile().mkdirs();
+ }
+ output = new FileOutputStream(dest);
byte[] buffer = new byte[BUFFER];
int count;
try {
@@ -836,37 +1260,102 @@ public class SettingsHelper {
};
}
- @NonNull
+ @Nullable
@Override
public SettingsItemWriter getWriter() {
try {
setInputStream(new FileInputStream(file));
} catch (FileNotFoundException e) {
+ warnings.add(app.getString(R.string.settings_item_read_error, file.getName()));
LOG.error("Failed to set input stream from file: " + file.getName(), e);
}
return super.getWriter();
}
}
- public static class QuickActionSettingsItem extends CollectionSettingsItem {
+ public static class ResourcesSettingsItem extends FileSettingsItem {
+
+ ResourcesSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
+ shouldReplace = true;
+ String fileName = getFileName();
+ if (!Algorithms.isEmpty(fileName) && !fileName.endsWith(File.separator)) {
+ setFileName(fileName + File.separator);
+ }
+ }
+
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.RESOURCES;
+ }
+
+ @Override
+ void readFromJson(@NonNull JSONObject json) throws JSONException {
+ subtype = FileSubtype.OTHER;
+ super.readFromJson(json);
+ }
+
+ @Override
+ void writeToJson(@NonNull JSONObject json) throws JSONException {
+ super.writeToJson(json);
+ String fileName = getFileName();
+ if (!Algorithms.isEmpty(fileName)) {
+ if (fileName.endsWith(File.separator)) {
+ fileName = fileName.substring(0, fileName.length() - 1);
+ }
+ json.put("file", fileName);
+ }
+ }
+
+ @Override
+ public boolean applyFileName(@NonNull String fileName) {
+ if (fileName.endsWith(File.separator)) {
+ return false;
+ }
+ String itemFileName = getFileName();
+ if (itemFileName != null && itemFileName.endsWith(File.separator)) {
+ if (fileName.startsWith(itemFileName)) {
+ this.file = new File(getPluginPath(), fileName);
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return super.applyFileName(fileName);
+ }
+ }
+
+ @Nullable
+ @Override
+ public SettingsItemWriter getWriter() {
+ return null;
+ }
+ }
+
+ public static class QuickActionsSettingsItem extends CollectionSettingsItem {
- private OsmandApplication app;
private QuickActionRegistry actionRegistry;
- public QuickActionSettingsItem(@NonNull OsmandApplication app,
- @NonNull List items) {
- super(SettingsItemType.QUICK_ACTION, items);
- this.app = app;
+ public QuickActionsSettingsItem(@NonNull OsmandApplication app, @NonNull List items) {
+ super(app, items);
+ }
+
+ QuickActionsSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
+ }
+
+ @Override
+ protected void init() {
+ super.init();
actionRegistry = app.getQuickActionRegistry();
existingItems = actionRegistry.getQuickActions();
}
- QuickActionSettingsItem(@NonNull OsmandApplication app,
- @NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.QUICK_ACTION, json);
- this.app = app;
- actionRegistry = app.getQuickActionRegistry();
- existingItems = actionRegistry.getQuickActions();
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.QUICK_ACTIONS;
}
@Override
@@ -882,7 +1371,9 @@ public class SettingsHelper {
@Override
public void apply() {
- if (!items.isEmpty() || !duplicateItems.isEmpty()) {
+ List newItems = getNewItems();
+ if (!newItems.isEmpty() || !duplicateItems.isEmpty()) {
+ appliedItems = new ArrayList<>(newItems);
List newActions = new ArrayList<>(existingItems);
if (!duplicateItems.isEmpty()) {
if (shouldReplace) {
@@ -898,9 +1389,9 @@ public class SettingsHelper {
renameItem(duplicateItem);
}
}
- newActions.addAll(duplicateItems);
+ appliedItems.addAll(duplicateItems);
}
- newActions.addAll(items);
+ newActions.addAll(appliedItems);
actionRegistry.updateQuickActions(newActions);
}
}
@@ -922,131 +1413,114 @@ public class SettingsHelper {
return "quick_actions";
}
- @NonNull
@Override
- public String getFileName() {
- return getName() + ".json";
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ try {
+ if (!json.has("items")) {
+ return;
+ }
+ Gson gson = new Gson();
+ Type type = new TypeToken>() {
+ }.getType();
+ QuickActionRegistry quickActionRegistry = app.getQuickActionRegistry();
+ JSONArray itemsJson = json.getJSONArray("items");
+ for (int i = 0; i < itemsJson.length(); i++) {
+ JSONObject object = itemsJson.getJSONObject(i);
+ String name = object.getString("name");
+ QuickAction quickAction = null;
+ if (object.has("actionType")) {
+ quickAction = quickActionRegistry.newActionByStringType(object.getString("actionType"));
+ } else if (object.has("type")) {
+ quickAction = quickActionRegistry.newActionByType(object.getInt("type"));
+ }
+ if (quickAction != null) {
+ String paramsString = object.getString("params");
+ HashMap params = gson.fromJson(paramsString, type);
+
+ if (!name.isEmpty()) {
+ quickAction.setName(name);
+ }
+ quickAction.setParams(params);
+ items.add(quickAction);
+ } else {
+ warnings.add(app.getString(R.string.settings_item_read_error, name));
+ }
+ }
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_read_error, String.valueOf(getType())));
+ throw new IllegalArgumentException("Json parse error", e);
+ }
}
- @NonNull
+ @Override
+ void writeItemsToJson(@NonNull JSONObject json) {
+ JSONArray jsonArray = new JSONArray();
+ Gson gson = new Gson();
+ Type type = new TypeToken>() {
+ }.getType();
+ if (!items.isEmpty()) {
+ try {
+ for (QuickAction action : items) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name", action.hasCustomName(app)
+ ? action.getName(app) : "");
+ jsonObject.put("actionType", action.getActionType().getStringId());
+ jsonObject.put("params", gson.toJson(action.getParams(), type));
+ jsonArray.put(jsonObject);
+ }
+ json.put("items", jsonArray);
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_write_error, String.valueOf(getType())));
+ LOG.error("Failed write to json", e);
+ }
+ }
+ }
+
+ @Nullable
@Override
SettingsItemReader getReader() {
- return new SettingsItemReader(this) {
- @Override
- public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
- StringBuilder buf = new StringBuilder();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
- String str;
- while ((str = in.readLine()) != null) {
- buf.append(str);
- }
- } catch (IOException e) {
- throw new IOException("Cannot read json body", e);
- }
- String jsonStr = buf.toString();
- if (Algorithms.isEmpty(jsonStr)) {
- throw new IllegalArgumentException("Cannot find json body");
- }
- final JSONObject json;
- try {
- Gson gson = new Gson();
- Type type = new TypeToken>() {
- }.getType();
- json = new JSONObject(jsonStr);
- QuickActionRegistry quickActionRegistry = app.getQuickActionRegistry();
- JSONArray itemsJson = json.getJSONArray("items");
- for (int i = 0; i < itemsJson.length(); i++) {
- JSONObject object = itemsJson.getJSONObject(i);
- String name = object.getString("name");
- QuickAction quickAction = null;
- if(object.has("actionType")) {
- quickAction = quickActionRegistry .newActionByStringType(object.getString("actionType"));
- } else if(object.has("type")) {
- quickAction = quickActionRegistry .newActionByType(object.getInt("type"));
- }
- if (quickAction != null) {
- String paramsString = object.getString("params");
- HashMap params = gson.fromJson(paramsString, type);
-
- if (!name.isEmpty()) {
- quickAction.setName(name);
- }
- quickAction.setParams(params);
- items.add(quickAction);
- }
- }
- } catch (JSONException e) {
- throw new IllegalArgumentException("Json parse error", e);
- }
- }
- };
+ return getJsonReader();
}
- @NonNull
+ @Nullable
@Override
SettingsItemWriter getWriter() {
- return new SettingsItemWriter(this) {
- @Override
- public boolean writeToStream(@NonNull OutputStream outputStream) throws IOException {
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- Gson gson = new Gson();
- Type type = new TypeToken>() {
- }.getType();
- if (!items.isEmpty()) {
- try {
- for (QuickAction action : items) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("name", action.hasCustomName(app)
- ? action.getName(app) : "");
- jsonObject.put("actionType", action.getActionType().getStringId());
- jsonObject.put("params", gson.toJson(action.getParams(), type));
- jsonArray.put(jsonObject);
- }
- json.put("items", jsonArray);
- } catch (JSONException e) {
- LOG.error("Failed write to json", e);
- }
- }
- if (json.length() > 0) {
- try {
- String s = json.toString(2);
- outputStream.write(s.getBytes("UTF-8"));
- } catch (JSONException e) {
- LOG.error("Failed to write json to stream", e);
- }
- return true;
- }
- return false;
- }
- };
+ return null;
}
}
public static class PoiUiFilterSettingsItem extends CollectionSettingsItem {
- private OsmandApplication app;
-
public PoiUiFilterSettingsItem(@NonNull OsmandApplication app, @NonNull List items) {
- super(SettingsItemType.POI_UI_FILTERS, items);
- this.app = app;
- existingItems = app.getPoiFilters().getUserDefinedPoiFilters(false);
+ super(app, items);
}
PoiUiFilterSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.POI_UI_FILTERS, json);
- this.app = app;
+ super(app, json);
+ }
+
+ @Override
+ protected void init() {
+ super.init();
existingItems = app.getPoiFilters().getUserDefinedPoiFilters(false);
}
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.POI_UI_FILTERS;
+ }
+
@Override
public void apply() {
- if (!items.isEmpty() || !duplicateItems.isEmpty()) {
+ List newItems = getNewItems();
+ if (!newItems.isEmpty() || !duplicateItems.isEmpty()) {
+ appliedItems = new ArrayList<>(newItems);
+
for (PoiUIFilter duplicate : duplicateItems) {
- items.add(shouldReplace ? duplicate : renameItem(duplicate));
+ appliedItems.add(shouldReplace ? duplicate : renameItem(duplicate));
}
- for (PoiUIFilter filter : items) {
+ for (PoiUIFilter filter : appliedItems) {
app.getPoiFilters().createPoiFilter(filter, false);
}
app.getSearchUICore().refreshCustomPoiFilters();
@@ -1096,145 +1570,122 @@ public class SettingsHelper {
return true;
}
- @NonNull
@Override
- public String getFileName() {
- return getName() + ".json";
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ try {
+ if (!json.has("items")) {
+ return;
+ }
+ JSONArray jsonArray = json.getJSONArray("items");
+ Gson gson = new Gson();
+ Type type = new TypeToken>>() {
+ }.getType();
+ MapPoiTypes poiTypes = app.getPoiTypes();
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject object = jsonArray.getJSONObject(i);
+ String name = object.getString("name");
+ String filterId = object.getString("filterId");
+ String acceptedTypesString = object.getString("acceptedTypes");
+ HashMap> acceptedTypes = gson.fromJson(acceptedTypesString, type);
+ Map> acceptedTypesDone = new HashMap<>();
+ for (Map.Entry> mapItem : acceptedTypes.entrySet()) {
+ final PoiCategory a = poiTypes.getPoiCategoryByName(mapItem.getKey());
+ acceptedTypesDone.put(a, mapItem.getValue());
+ }
+ PoiUIFilter filter = new PoiUIFilter(name, filterId, acceptedTypesDone, app);
+ items.add(filter);
+ }
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_read_error, String.valueOf(getType())));
+ throw new IllegalArgumentException("Json parse error", e);
+ }
}
- @NonNull
+ @Override
+ void writeItemsToJson(@NonNull JSONObject json) {
+ JSONArray jsonArray = new JSONArray();
+ Gson gson = new Gson();
+ Type type = new TypeToken>>() {
+ }.getType();
+ if (!items.isEmpty()) {
+ try {
+ for (PoiUIFilter filter : items) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name", filter.getName());
+ jsonObject.put("filterId", filter.getFilterId());
+ jsonObject.put("acceptedTypes", gson.toJson(filter.getAcceptedTypes(), type));
+ jsonArray.put(jsonObject);
+ }
+ json.put("items", jsonArray);
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_write_error, String.valueOf(getType())));
+ LOG.error("Failed write to json", e);
+ }
+ }
+ }
+
+ @Nullable
@Override
SettingsItemReader getReader() {
- return new SettingsItemReader(this) {
- @Override
- public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
- StringBuilder buf = new StringBuilder();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
- String str;
- while ((str = in.readLine()) != null) {
- buf.append(str);
- }
- } catch (IOException e) {
- throw new IOException("Cannot read json body", e);
- }
- String jsonStr = buf.toString();
- if (Algorithms.isEmpty(jsonStr)) {
- throw new IllegalArgumentException("Cannot find json body");
- }
- final JSONObject json;
- try {
- json = new JSONObject(jsonStr);
- JSONArray jsonArray = json.getJSONArray("items");
- Gson gson = new Gson();
- Type type = new TypeToken>>() {
- }.getType();
- MapPoiTypes poiTypes = app.getPoiTypes();
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject object = jsonArray.getJSONObject(i);
- String name = object.getString("name");
- String filterId = object.getString("filterId");
- String acceptedTypesString = object.getString("acceptedTypes");
- HashMap> acceptedTypes = gson.fromJson(acceptedTypesString, type);
- Map> acceptedTypesDone = new HashMap<>();
- for (Map.Entry> mapItem : acceptedTypes.entrySet()) {
- final PoiCategory a = poiTypes.getPoiCategoryByName(mapItem.getKey());
- acceptedTypesDone.put(a, mapItem.getValue());
- }
- PoiUIFilter filter = new PoiUIFilter(name, filterId, acceptedTypesDone, app);
- items.add(filter);
- }
- } catch (JSONException e) {
- throw new IllegalArgumentException("Json parse error", e);
- }
- }
- };
+ return getJsonReader();
}
- @NonNull
+ @Nullable
@Override
SettingsItemWriter getWriter() {
- return new SettingsItemWriter(this) {
- @Override
- public boolean writeToStream(@NonNull OutputStream outputStream) throws IOException {
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- Gson gson = new Gson();
- Type type = new TypeToken>>() {
- }.getType();
- if (!items.isEmpty()) {
- try {
- for (PoiUIFilter filter : items) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("name", filter.getName());
- jsonObject.put("filterId", filter.getFilterId());
- jsonObject.put("acceptedTypes", gson.toJson(filter.getAcceptedTypes(), type));
- jsonArray.put(jsonObject);
- }
- json.put("items", jsonArray);
- } catch (JSONException e) {
- LOG.error("Failed write to json", e);
- }
- }
- if (json.length() > 0) {
- try {
- String s = json.toString(2);
- outputStream.write(s.getBytes("UTF-8"));
- } catch (JSONException e) {
- LOG.error("Failed to write json to stream", e);
- }
- return true;
- }
- return false;
- }
- };
+ return null;
}
}
public static class MapSourcesSettingsItem extends CollectionSettingsItem {
- private OsmandApplication app;
private List existingItemsNames;
public MapSourcesSettingsItem(@NonNull OsmandApplication app, @NonNull List items) {
- super(SettingsItemType.MAP_SOURCES, items);
- this.app = app;
- existingItemsNames = new ArrayList<>(app.getSettings().getTileSourceEntries().values());
+ super(app, items);
}
MapSourcesSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.MAP_SOURCES, json);
- this.app = app;
+ super(app, json);
+ }
+
+ @Override
+ protected void init() {
+ super.init();
existingItemsNames = new ArrayList<>(app.getSettings().getTileSourceEntries().values());
}
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.MAP_SOURCES;
+ }
+
@Override
public void apply() {
- if (!items.isEmpty() || !duplicateItems.isEmpty()) {
+ List newItems = getNewItems();
+ if (!newItems.isEmpty() || !duplicateItems.isEmpty()) {
+ appliedItems = new ArrayList<>(newItems);
if (shouldReplace) {
for (ITileSource tileSource : duplicateItems) {
if (tileSource instanceof SQLiteTileSource) {
File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + tileSource.getName() + IndexConstants.SQLITE_EXT);
- if (f != null && f.exists()) {
- if (f.delete()) {
- items.add(tileSource);
- }
+ if (f != null && f.exists() && Algorithms.removeAllFiles(f)) {
+ appliedItems.add(tileSource);
}
} else if (tileSource instanceof TileSourceManager.TileSourceTemplate) {
File f = app.getAppPath(IndexConstants.TILES_INDEX_DIR + tileSource.getName());
- if (f != null && f.exists() && f.isDirectory()) {
- if (f.delete()) {
- items.add(tileSource);
- }
+ if (f != null && f.exists() && f.isDirectory() && Algorithms.removeAllFiles(f)) {
+ appliedItems.add(tileSource);
}
}
}
} else {
for (ITileSource tileSource : duplicateItems) {
- items.add(renameItem(tileSource));
+ appliedItems.add(renameItem(tileSource));
}
}
- for (ITileSource tileSource : items) {
+ for (ITileSource tileSource : appliedItems) {
if (tileSource instanceof TileSourceManager.TileSourceTemplate) {
app.getSettings().installTileSource((TileSourceManager.TileSourceTemplate) tileSource);
} else if (tileSource instanceof SQLiteTileSource) {
@@ -1296,144 +1747,121 @@ public class SettingsHelper {
return true;
}
- @NonNull
@Override
- public String getFileName() {
- return getName() + ".json";
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ try {
+ if (!json.has("items")) {
+ return;
+ }
+ JSONArray jsonArray = json.getJSONArray("items");
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject object = jsonArray.getJSONObject(i);
+ boolean sql = object.optBoolean("sql");
+ String name = object.optString("name");
+ int minZoom = object.optInt("minZoom");
+ int maxZoom = object.optInt("maxZoom");
+ String url = object.optString("url");
+ String randoms = object.optString("randoms");
+ boolean ellipsoid = object.optBoolean("ellipsoid", false);
+ boolean invertedY = object.optBoolean("inverted_y", false);
+ String referer = object.optString("referer");
+ boolean timesupported = object.optBoolean("timesupported", false);
+ long expire = object.optLong("expire");
+ boolean inversiveZoom = object.optBoolean("inversiveZoom", false);
+ String ext = object.optString("ext");
+ int tileSize = object.optInt("tileSize");
+ int bitDensity = object.optInt("bitDensity");
+ int avgSize = object.optInt("avgSize");
+ String rule = object.optString("rule");
+
+ ITileSource template;
+ if (!sql) {
+ template = new TileSourceManager.TileSourceTemplate(name, url, ext, maxZoom, minZoom, tileSize, bitDensity, avgSize);
+ } else {
+ template = new SQLiteTileSource(app, name, minZoom, maxZoom, url, randoms, ellipsoid, invertedY, referer, timesupported, expire, inversiveZoom);
+ }
+ items.add(template);
+ }
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_read_error, String.valueOf(getType())));
+ throw new IllegalArgumentException("Json parse error", e);
+ }
}
- @NonNull
+ @Override
+ void writeItemsToJson(@NonNull JSONObject json) {
+ JSONArray jsonArray = new JSONArray();
+ if (!items.isEmpty()) {
+ try {
+ for (ITileSource template : items) {
+ JSONObject jsonObject = new JSONObject();
+ boolean sql = template instanceof SQLiteTileSource;
+ jsonObject.put("sql", sql);
+ jsonObject.put("name", template.getName());
+ jsonObject.put("minZoom", template.getMinimumZoomSupported());
+ jsonObject.put("maxZoom", template.getMaximumZoomSupported());
+ jsonObject.put("url", template.getUrlTemplate());
+ jsonObject.put("randoms", template.getRandoms());
+ jsonObject.put("ellipsoid", template.isEllipticYTile());
+ jsonObject.put("inverted_y", template.isInvertedYTile());
+ jsonObject.put("referer", template.getReferer());
+ jsonObject.put("timesupported", template.isTimeSupported());
+ jsonObject.put("expire", template.getExpirationTimeMillis());
+ jsonObject.put("inversiveZoom", template.getInversiveZoom());
+ jsonObject.put("ext", template.getTileFormat());
+ jsonObject.put("tileSize", template.getTileSize());
+ jsonObject.put("bitDensity", template.getBitDensity());
+ jsonObject.put("avgSize", template.getAvgSize());
+ jsonObject.put("rule", template.getRule());
+ jsonArray.put(jsonObject);
+ }
+ json.put("items", jsonArray);
+
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_write_error, String.valueOf(getType())));
+ LOG.error("Failed write to json", e);
+ }
+ }
+ }
+
+ @Nullable
@Override
SettingsItemReader getReader() {
- return new SettingsItemReader(this) {
- @Override
- public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
- StringBuilder buf = new StringBuilder();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
- String str;
- while ((str = in.readLine()) != null) {
- buf.append(str);
- }
- } catch (IOException e) {
- throw new IOException("Cannot read json body", e);
- }
- String jsonStr = buf.toString();
- if (Algorithms.isEmpty(jsonStr)) {
- throw new IllegalArgumentException("Cannot find json body");
- }
- final JSONObject json;
- try {
- json = new JSONObject(jsonStr);
- JSONArray jsonArray = json.getJSONArray("items");
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject object = jsonArray.getJSONObject(i);
- boolean sql = object.optBoolean("sql");
- String name = object.optString("name");
- int minZoom = object.optInt("minZoom");
- int maxZoom = object.optInt("maxZoom");
- String url = object.optString("url");
- String randoms = object.optString("randoms");
- boolean ellipsoid = object.optBoolean("ellipsoid", false);
- boolean invertedY = object.optBoolean("inverted_y", false);
- String referer = object.optString("referer");
- boolean timesupported = object.optBoolean("timesupported", false);
- long expire = object.optLong("expire");
- boolean inversiveZoom = object.optBoolean("inversiveZoom", false);
- String ext = object.optString("ext");
- int tileSize = object.optInt("tileSize");
- int bitDensity = object.optInt("bitDensity");
- int avgSize = object.optInt("avgSize");
- String rule = object.optString("rule");
-
- ITileSource template;
- if (!sql) {
- template = new TileSourceManager.TileSourceTemplate(name, url, ext, maxZoom, minZoom, tileSize, bitDensity, avgSize);
- } else {
- template = new SQLiteTileSource(app, name, minZoom, maxZoom, url, randoms, ellipsoid, invertedY, referer, timesupported, expire, inversiveZoom);
- }
- items.add(template);
- }
- } catch (JSONException e) {
- throw new IllegalArgumentException("Json parse error", e);
- }
- }
- };
+ return getJsonReader();
}
- @NonNull
+ @Nullable
@Override
SettingsItemWriter getWriter() {
- return new SettingsItemWriter(this) {
- @Override
- public boolean writeToStream(@NonNull OutputStream outputStream) throws IOException {
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- if (!items.isEmpty()) {
- try {
- for (ITileSource template : items) {
- JSONObject jsonObject = new JSONObject();
- boolean sql = template instanceof SQLiteTileSource;
- jsonObject.put("sql", sql);
- jsonObject.put("name", template.getName());
- jsonObject.put("minZoom", template.getMinimumZoomSupported());
- jsonObject.put("maxZoom", template.getMaximumZoomSupported());
- jsonObject.put("url", template.getUrlTemplate());
- jsonObject.put("randoms", template.getRandoms());
- jsonObject.put("ellipsoid", template.isEllipticYTile());
- jsonObject.put("inverted_y", template.isInvertedYTile());
- jsonObject.put("referer", template.getReferer());
- jsonObject.put("timesupported", template.isTimeSupported());
- jsonObject.put("expire", template.getExpirationTimeMillis());
- jsonObject.put("inversiveZoom", template.getInversiveZoom());
- jsonObject.put("ext", template.getTileFormat());
- jsonObject.put("tileSize", template.getTileSize());
- jsonObject.put("bitDensity", template.getBitDensity());
- jsonObject.put("avgSize", template.getAvgSize());
- jsonObject.put("rule", template.getRule());
- jsonArray.put(jsonObject);
- }
- json.put("items", jsonArray);
-
- } catch (JSONException e) {
- LOG.error("Failed write to json", e);
- }
- }
- if (json.length() > 0) {
- try {
- String s = json.toString(2);
- outputStream.write(s.getBytes("UTF-8"));
- } catch (JSONException e) {
- LOG.error("Failed to write json to stream", e);
- }
- return true;
- }
- return false;
- }
- };
+ return null;
}
}
public static class AvoidRoadsSettingsItem extends CollectionSettingsItem {
- private OsmandApplication app;
private OsmandSettings settings;
private AvoidSpecificRoads specificRoads;
public AvoidRoadsSettingsItem(@NonNull OsmandApplication app, @NonNull List items) {
- super(SettingsItemType.AVOID_ROADS, items);
- this.app = app;
+ super(app, items);
+ }
+
+ AvoidRoadsSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
+ super(app, json);
+ }
+
+ @Override
+ protected void init() {
+ super.init();
settings = app.getSettings();
specificRoads = app.getAvoidSpecificRoads();
existingItems = new ArrayList<>(specificRoads.getImpassableRoads().values());
}
- AvoidRoadsSettingsItem(@NonNull OsmandApplication app, @NonNull JSONObject json) throws JSONException {
- super(SettingsItemType.AVOID_ROADS, json);
- this.app = app;
- settings = app.getSettings();
- specificRoads = app.getAvoidSpecificRoads();
- existingItems = new ArrayList<>(specificRoads.getImpassableRoads().values());
+ @NonNull
+ @Override
+ public SettingsItemType getType() {
+ return SettingsItemType.AVOID_ROADS;
}
@NonNull
@@ -1448,15 +1876,11 @@ public class SettingsHelper {
return "avoid_roads";
}
- @NonNull
- @Override
- public String getFileName() {
- return getName() + ".json";
- }
-
@Override
public void apply() {
- if (!items.isEmpty() || !duplicateItems.isEmpty()) {
+ List newItems = getNewItems();
+ if (!newItems.isEmpty() || !duplicateItems.isEmpty()) {
+ appliedItems = new ArrayList<>(newItems);
for (AvoidRoadInfo duplicate : duplicateItems) {
if (shouldReplace) {
LatLon latLon = new LatLon(duplicate.latitude, duplicate.longitude);
@@ -1467,7 +1891,7 @@ public class SettingsHelper {
settings.addImpassableRoad(renameItem(duplicate));
}
}
- for (AvoidRoadInfo avoidRoad : items) {
+ for (AvoidRoadInfo avoidRoad : appliedItems) {
settings.addImpassableRoad(avoidRoad);
}
specificRoads.loadImpassableRoads();
@@ -1503,90 +1927,68 @@ public class SettingsHelper {
}
}
- @NonNull
@Override
- SettingsItemReader getReader() {
- return new SettingsItemReader(this) {
- @Override
- public void readFromStream(@NonNull InputStream inputStream) throws IOException, IllegalArgumentException {
- StringBuilder buf = new StringBuilder();
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
- String str;
- while ((str = in.readLine()) != null) {
- buf.append(str);
- }
- } catch (IOException e) {
- throw new IOException("Cannot read json body", e);
- }
- String jsonStr = buf.toString();
- if (Algorithms.isEmpty(jsonStr)) {
- throw new IllegalArgumentException("Cannot find json body");
- }
- final JSONObject json;
- try {
- json = new JSONObject(jsonStr);
- JSONArray jsonArray = json.getJSONArray("items");
- for (int i = 0; i < jsonArray.length(); i++) {
- JSONObject object = jsonArray.getJSONObject(i);
- double latitude = object.optDouble("latitude");
- double longitude = object.optDouble("longitude");
- String name = object.optString("name");
- String appModeKey = object.optString("appModeKey");
- AvoidRoadInfo roadInfo = new AvoidRoadInfo();
- roadInfo.id = 0;
- roadInfo.latitude = latitude;
- roadInfo.longitude = longitude;
- roadInfo.name = name;
- if (ApplicationMode.valueOfStringKey(appModeKey, null) != null) {
- roadInfo.appModeKey = appModeKey;
- } else {
- roadInfo.appModeKey = app.getRoutingHelper().getAppMode().getStringKey();
- }
- items.add(roadInfo);
- }
- } catch (JSONException e) {
- throw new IllegalArgumentException("Json parse error", e);
- }
+ void readItemsFromJson(@NonNull JSONObject json) throws IllegalArgumentException {
+ try {
+ if (!json.has("items")) {
+ return;
}
- };
+ JSONArray jsonArray = json.getJSONArray("items");
+ for (int i = 0; i < jsonArray.length(); i++) {
+ JSONObject object = jsonArray.getJSONObject(i);
+ double latitude = object.optDouble("latitude");
+ double longitude = object.optDouble("longitude");
+ String name = object.optString("name");
+ String appModeKey = object.optString("appModeKey");
+ AvoidRoadInfo roadInfo = new AvoidRoadInfo();
+ roadInfo.id = 0;
+ roadInfo.latitude = latitude;
+ roadInfo.longitude = longitude;
+ roadInfo.name = name;
+ if (ApplicationMode.valueOfStringKey(appModeKey, null) != null) {
+ roadInfo.appModeKey = appModeKey;
+ } else {
+ roadInfo.appModeKey = app.getRoutingHelper().getAppMode().getStringKey();
+ }
+ items.add(roadInfo);
+ }
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_read_error, String.valueOf(getType())));
+ throw new IllegalArgumentException("Json parse error", e);
+ }
}
- @NonNull
+ @Override
+ void writeItemsToJson(@NonNull JSONObject json) {
+ JSONArray jsonArray = new JSONArray();
+ if (!items.isEmpty()) {
+ try {
+ for (AvoidRoadInfo avoidRoad : items) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("latitude", avoidRoad.latitude);
+ jsonObject.put("longitude", avoidRoad.longitude);
+ jsonObject.put("name", avoidRoad.name);
+ jsonObject.put("appModeKey", avoidRoad.appModeKey);
+ jsonArray.put(jsonObject);
+ }
+ json.put("items", jsonArray);
+ } catch (JSONException e) {
+ warnings.add(app.getString(R.string.settings_item_write_error, String.valueOf(getType())));
+ LOG.error("Failed write to json", e);
+ }
+ }
+ }
+
+ @Nullable
+ @Override
+ SettingsItemReader getReader() {
+ return getJsonReader();
+ }
+
+ @Nullable
@Override
SettingsItemWriter getWriter() {
- return new SettingsItemWriter(this) {
- @Override
- public boolean writeToStream(@NonNull OutputStream outputStream) throws IOException {
- JSONObject json = new JSONObject();
- JSONArray jsonArray = new JSONArray();
- if (!items.isEmpty()) {
- try {
- for (AvoidRoadInfo avoidRoad : items) {
- JSONObject jsonObject = new JSONObject();
- jsonObject.put("latitude", avoidRoad.latitude);
- jsonObject.put("longitude", avoidRoad.longitude);
- jsonObject.put("name", avoidRoad.name);
- jsonObject.put("appModeKey", avoidRoad.appModeKey);
- jsonArray.put(jsonObject);
- }
- json.put("items", jsonArray);
- } catch (JSONException e) {
- LOG.error("Failed write to json", e);
- }
- }
- if (json.length() > 0) {
- try {
- String s = json.toString(2);
- outputStream.write(s.getBytes("UTF-8"));
- } catch (JSONException e) {
- LOG.error("Failed to write json to stream", e);
- }
- return true;
- }
- return false;
- }
- };
+ return null;
}
}
@@ -1597,15 +1999,32 @@ public class SettingsHelper {
SettingsItemsFactory(OsmandApplication app, String jsonStr) throws IllegalArgumentException, JSONException {
this.app = app;
- JSONObject json = new JSONObject(jsonStr);
+ collectItems(new JSONObject(jsonStr));
+ }
+
+ private void collectItems(JSONObject json) throws IllegalArgumentException, JSONException {
JSONArray itemsJson = json.getJSONArray("items");
+ int version = json.has("version") ? json.getInt("version") : 1;
+ if (version > VERSION) {
+ throw new IllegalArgumentException("Unsupported osf version: " + version);
+ }
+ Map> pluginItems = new HashMap<>();
for (int i = 0; i < itemsJson.length(); i++) {
JSONObject itemJson = itemsJson.getJSONObject(i);
SettingsItem item;
try {
item = createItem(itemJson);
- if (item != null) {
- items.add(item);
+ items.add(item);
+ String pluginId = item.getPluginId();
+ if (pluginId != null && item.getType() != SettingsItemType.PLUGIN) {
+ List items = pluginItems.get(pluginId);
+ if (items != null) {
+ items.add(item);
+ } else {
+ items = new ArrayList<>();
+ items.add(item);
+ pluginItems.put(pluginId, items);
+ }
}
} catch (IllegalArgumentException e) {
LOG.error("Error creating item from json: " + itemJson, e);
@@ -1614,6 +2033,15 @@ public class SettingsHelper {
if (items.size() == 0) {
throw new IllegalArgumentException("No items");
}
+ for (SettingsItem item : items) {
+ if (item instanceof PluginSettingsItem) {
+ PluginSettingsItem pluginSettingsItem = ((PluginSettingsItem) item);
+ List pluginDependentItems = pluginItems.get(pluginSettingsItem.getName());
+ if (!Algorithms.isEmpty(pluginDependentItems)) {
+ pluginSettingsItem.getPluginDependentItems().addAll(pluginDependentItems);
+ }
+ }
+ }
}
@NonNull
@@ -1624,14 +2052,14 @@ public class SettingsHelper {
@Nullable
public SettingsItem getItemByFileName(@NonNull String fileName) {
for (SettingsItem item : items) {
- if (item.getFileName().equals(fileName)) {
+ if (Algorithms.stringsEqual(item.getFileName(), fileName)) {
return item;
}
}
return null;
}
- @Nullable
+ @NonNull
private SettingsItem createItem(@NonNull JSONObject json) throws IllegalArgumentException, JSONException {
SettingsItem item = null;
SettingsItemType type = SettingsItem.parseItemType(json);
@@ -1644,15 +2072,19 @@ public class SettingsHelper {
item = new ProfileSettingsItem(app, json);
break;
case PLUGIN:
+ item = new PluginSettingsItem(app, json);
break;
case DATA:
- item = new DataSettingsItem(json);
+ item = new DataSettingsItem(app, json);
break;
case FILE:
item = new FileSettingsItem(app, json);
break;
- case QUICK_ACTION:
- item = new QuickActionSettingsItem(app, json);
+ case RESOURCES:
+ item = new ResourcesSettingsItem(app, json);
+ break;
+ case QUICK_ACTIONS:
+ item = new QuickActionsSettingsItem(app, json);
break;
case POI_UI_FILTERS:
item = new PoiUiFilterSettingsItem(app, json);
@@ -1672,8 +2104,10 @@ public class SettingsHelper {
private Map items;
private Map additionalParams;
+ private boolean exportItemsFiles;
- SettingsExporter() {
+ SettingsExporter(boolean exportItemsFiles) {
+ this.exportItemsFiles = exportItemsFiles;
items = new LinkedHashMap<>();
additionalParams = new LinkedHashMap<>();
}
@@ -1690,8 +2124,44 @@ public class SettingsHelper {
}
void exportSettings(File file) throws JSONException, IOException {
+ JSONObject json = createItemsJson();
+ OutputStream os = new BufferedOutputStream(new FileOutputStream(file), BUFFER);
+ ZipOutputStream zos = new ZipOutputStream(os);
+ try {
+ ZipEntry entry = new ZipEntry("items.json");
+ zos.putNextEntry(entry);
+ zos.write(json.toString(2).getBytes("UTF-8"));
+ zos.closeEntry();
+ if (exportItemsFiles) {
+ writeItemFiles(zos);
+ }
+ zos.flush();
+ zos.finish();
+ } finally {
+ Algorithms.closeStream(zos);
+ Algorithms.closeStream(os);
+ }
+ }
+
+ private void writeItemFiles(ZipOutputStream zos) throws IOException {
+ for (SettingsItem item : items.values()) {
+ SettingsItemWriter writer = item.getWriter();
+ if (writer != null) {
+ String fileName = item.getFileName();
+ if (Algorithms.isEmpty(fileName)) {
+ fileName = item.getDefaultFileName();
+ }
+ ZipEntry entry = new ZipEntry(fileName);
+ zos.putNextEntry(entry);
+ writer.writeToStream(zos);
+ zos.closeEntry();
+ }
+ }
+ }
+
+ private JSONObject createItemsJson() throws JSONException {
JSONObject json = new JSONObject();
- json.put("osmand_settings_version", OsmandSettings.VERSION);
+ json.put("version", VERSION);
for (Map.Entry param : additionalParams.entrySet()) {
json.put(param.getKey(), param.getValue());
}
@@ -1700,25 +2170,7 @@ public class SettingsHelper {
itemsJson.put(new JSONObject(item.toJson()));
}
json.put("items", itemsJson);
- OutputStream os = new BufferedOutputStream(new FileOutputStream(file), BUFFER);
- ZipOutputStream zos = new ZipOutputStream(os);
- try {
- ZipEntry entry = new ZipEntry("items.json");
- zos.putNextEntry(entry);
- zos.write(json.toString(2).getBytes("UTF-8"));
- zos.closeEntry();
- for (SettingsItem item : items.values()) {
- entry = new ZipEntry(item.getFileName());
- zos.putNextEntry(entry);
- item.getWriter().writeToStream(zos);
- zos.closeEntry();
- }
- zos.flush();
- zos.finish();
- } finally {
- Algorithms.closeStream(zos);
- Algorithms.closeStream(os);
- }
+ return json;
}
}
@@ -1738,30 +2190,24 @@ public class SettingsHelper {
processItems(file, items);
}
- private List processItems(@NonNull File file, @Nullable List items) throws IllegalArgumentException, IOException {
- boolean collecting = items == null;
- if (collecting) {
- items = new ArrayList<>();
- } else {
- if (items.size() == 0) {
- throw new IllegalArgumentException("No items");
- }
- }
+ private List getItemsFromJson(@NonNull File file) throws IOException {
+ List items = new ArrayList<>();
ZipInputStream zis = new ZipInputStream(new FileInputStream(file));
InputStream ois = new BufferedInputStream(zis);
try {
- ZipEntry entry = zis.getNextEntry();
- if (entry != null && entry.getName().equals("items.json")) {
- String itemsJson = null;
- try {
- itemsJson = Algorithms.readFromInputStream(ois).toString();
- } catch (IOException e) {
- LOG.error("Error reading items.json: " + itemsJson, e);
- throw new IllegalArgumentException("No items");
- } finally {
- zis.closeEntry();
- }
- if (collecting) {
+ ZipEntry entry;
+ while ((entry = zis.getNextEntry()) != null) {
+ String fileName = checkEntryName(entry.getName());
+ if (fileName.equals("items.json")) {
+ String itemsJson = null;
+ try {
+ itemsJson = Algorithms.readFromInputStream(ois).toString();
+ } catch (IOException e) {
+ LOG.error("Error reading items.json: " + itemsJson, e);
+ throw new IllegalArgumentException("No items");
+ } finally {
+ zis.closeEntry();
+ }
try {
SettingsItemsFactory itemsFactory = new SettingsItemsFactory(app, itemsJson);
items.addAll(itemsFactory.getItems());
@@ -1772,31 +2218,8 @@ public class SettingsHelper {
LOG.error("Error parsing items: " + itemsJson, e);
throw new IllegalArgumentException("No items");
}
+ break;
}
- while ((entry = zis.getNextEntry()) != null) {
- String fileName = entry.getName();
- SettingsItem item = null;
- for (SettingsItem settingsItem : items) {
- if (settingsItem != null && settingsItem.getFileName().equals(fileName)) {
- item = settingsItem;
- break;
- }
- }
- if (item != null && collecting && item.shouldReadOnCollecting()
- || item != null && !collecting && !item.shouldReadOnCollecting()) {
- try {
- item.getReader().readFromStream(ois);
- } catch (IllegalArgumentException e) {
- LOG.error("Error reading item data: " + item.getName(), e);
- } catch (IOException e) {
- LOG.error("Error reading item data: " + item.getName(), e);
- } finally {
- zis.closeEntry();
- }
- }
- }
- } else {
- throw new IllegalArgumentException("No items found");
}
} catch (IOException ex) {
LOG.error("Failed to read next entry", ex);
@@ -1806,6 +2229,64 @@ public class SettingsHelper {
}
return items;
}
+
+ private List processItems(@NonNull File file, @Nullable List items) throws IllegalArgumentException, IOException {
+ boolean collecting = items == null;
+ if (collecting) {
+ items = getItemsFromJson(file);
+ } else {
+ if (items.size() == 0) {
+ throw new IllegalArgumentException("No items");
+ }
+ }
+ ZipInputStream zis = new ZipInputStream(new FileInputStream(file));
+ InputStream ois = new BufferedInputStream(zis);
+ try {
+ ZipEntry entry;
+ while ((entry = zis.getNextEntry()) != null) {
+ String fileName = checkEntryName(entry.getName());
+ SettingsItem item = null;
+ for (SettingsItem settingsItem : items) {
+ if (settingsItem != null && settingsItem.applyFileName(fileName)) {
+ item = settingsItem;
+ break;
+ }
+ }
+ if (item != null && collecting && item.shouldReadOnCollecting()
+ || item != null && !collecting && !item.shouldReadOnCollecting()) {
+ try {
+ SettingsItemReader reader = item.getReader();
+ if (reader != null) {
+ reader.readFromStream(ois);
+ }
+ } catch (IllegalArgumentException e) {
+ item.warnings.add(app.getString(R.string.settings_item_read_error, item.getName()));
+ LOG.error("Error reading item data: " + item.getName(), e);
+ } catch (IOException e) {
+ item.warnings.add(app.getString(R.string.settings_item_read_error, item.getName()));
+ LOG.error("Error reading item data: " + item.getName(), e);
+ } finally {
+ zis.closeEntry();
+ }
+ }
+ }
+ } catch (IOException ex) {
+ LOG.error("Failed to read next entry", ex);
+ } finally {
+ Algorithms.closeStream(ois);
+ Algorithms.closeStream(zis);
+ }
+ return items;
+ }
+
+ private String checkEntryName(String entryName) {
+ String fileExt = OSMAND_SETTINGS_FILE_EXT + "/";
+ int index = entryName.indexOf(fileExt);
+ if (index != -1) {
+ entryName = entryName.substring(index + fileExt.length());
+ }
+ return entryName;
+ }
}
@SuppressLint("StaticFieldLeak")
@@ -1954,7 +2435,7 @@ public class SettingsHelper {
duplicateItems.add(((ProfileSettingsItem) item).getModeBean());
}
} else if (item instanceof CollectionSettingsItem) {
- List duplicates = ((CollectionSettingsItem) item).excludeDuplicateItems();
+ List duplicates = ((CollectionSettingsItem) item).processDuplicateItems();
if (!duplicates.isEmpty()) {
duplicateItems.addAll(duplicates);
}
@@ -2033,6 +2514,13 @@ public class SettingsHelper {
private void finishImport(@Nullable SettingsImportListener listener, boolean success, @NonNull List items) {
importTask = null;
+ List warnings = new ArrayList<>();
+ for (SettingsItem item : items) {
+ warnings.addAll(item.getWarnings());
+ }
+ if (!warnings.isEmpty()) {
+ app.showToastMessage(AndroidUtils.formatWarnings(warnings).toString());
+ }
if (listener != null) {
listener.onSettingsImportFinished(success, items);
}
@@ -2047,10 +2535,10 @@ public class SettingsHelper {
ExportAsyncTask(@NonNull File settingsFile,
@Nullable SettingsExportListener listener,
- @NonNull List items) {
+ @NonNull List items, boolean exportItemsFiles) {
this.file = settingsFile;
this.listener = listener;
- this.exporter = new SettingsExporter();
+ this.exporter = new SettingsExporter(exportItemsFiles);
for (SettingsItem item : items) {
exporter.addSettingsItem(item);
}
@@ -2091,16 +2579,16 @@ public class SettingsHelper {
new ImportAsyncTask(settingsFile, items, latestChanges, version, listener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
- public void exportSettings(@NonNull File fileDir, @NonNull String fileName, @Nullable SettingsExportListener listener, @NonNull List items) {
+ public void exportSettings(@NonNull File fileDir, @NonNull String fileName, @Nullable SettingsExportListener listener, @NonNull List items, boolean exportItemsFiles) {
File file = new File(fileDir, fileName + OSMAND_SETTINGS_FILE_EXT);
- ExportAsyncTask exportAsyncTask = new ExportAsyncTask(file, listener, items);
+ ExportAsyncTask exportAsyncTask = new ExportAsyncTask(file, listener, items, exportItemsFiles);
exportAsyncTasks.put(file, exportAsyncTask);
exportAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
public void exportSettings(@NonNull File fileDir, @NonNull String fileName, @Nullable SettingsExportListener listener,
- @NonNull SettingsItem... items) {
- exportSettings(fileDir, fileName, listener, new ArrayList<>(Arrays.asList(items)));
+ boolean exportItemsFiles, @NonNull SettingsItem... items) {
+ exportSettings(fileDir, fileName, listener, new ArrayList<>(Arrays.asList(items)), exportItemsFiles);
}
public enum ImportType {
diff --git a/OsmAnd/src/net/osmand/plus/UiUtilities.java b/OsmAnd/src/net/osmand/plus/UiUtilities.java
index 90afa4f2eb..e624a07cd9 100644
--- a/OsmAnd/src/net/osmand/plus/UiUtilities.java
+++ b/OsmAnd/src/net/osmand/plus/UiUtilities.java
@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.PorterDuff;
-import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
@@ -15,12 +14,15 @@ import android.os.Build;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.StyleSpan;
+import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewParent;
import android.view.WindowManager;
import android.widget.CompoundButton;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;
@@ -36,7 +38,9 @@ import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.ViewCompat;
import androidx.core.widget.TintableCompoundButton;
+import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.snackbar.SnackbarContentLayout;
import net.osmand.AndroidUtils;
import net.osmand.Location;
@@ -47,8 +51,6 @@ import net.osmand.plus.widgets.TextViewEx;
import org.apache.commons.logging.Log;
-import java.util.Locale;
-
import gnu.trove.map.hash.TLongObjectHashMap;
public class UiUtilities {
@@ -390,6 +392,31 @@ public class UiUtilities {
view.setBackgroundColor(ContextCompat.getColor(ctx, backgroundColor));
}
+ public static void setupSnackbarVerticalLayout(Snackbar snackbar) {
+ View view = snackbar.getView();
+ Context ctx = view.getContext();
+ TextView messageView = (TextView) view.findViewById(com.google.android.material.R.id.snackbar_text);
+ TextView actionView = (TextView) view.findViewById(com.google.android.material.R.id.snackbar_action);
+ ViewParent parent = actionView.getParent();
+ if (parent instanceof SnackbarContentLayout) {
+ ((SnackbarContentLayout) parent).removeView(actionView);
+ ((SnackbarContentLayout) parent).removeView(messageView);
+ LinearLayout container = new LinearLayout(ctx);
+ container.setOrientation(LinearLayout.VERTICAL);
+ container.addView(messageView);
+ container.addView(actionView);
+ ((SnackbarContentLayout) parent).addView(container);
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT);
+ actionView.setGravity(Gravity.CENTER_VERTICAL | Gravity.END);
+ container.setLayoutParams(params);
+ }
+ try {
+ snackbar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE);
+ } catch (Throwable e) { }
+ }
+
public static void rotateImageByLayoutDirection(ImageView image, int layoutDirection) {
if (image == null) {
return;
diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java
index ae48f7cca7..3347241e65 100644
--- a/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesListFragment.java
@@ -5,7 +5,6 @@ package net.osmand.plus.activities;
import android.app.Activity;
import android.content.Intent;
-import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
@@ -29,6 +28,7 @@ import net.osmand.plus.OsmAndLocationProvider.OsmAndCompassListener;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
+import net.osmand.plus.UiUtilities;
import net.osmand.plus.UiUtilities.UpdateLocationViewCache;
import net.osmand.plus.activities.search.SearchActivity;
import net.osmand.plus.activities.search.SearchActivity.SearchActivityChild;
@@ -200,8 +200,8 @@ public class FavoritesListFragment extends OsmAndListFragment implements SearchA
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
- LayoutInflater inflater = activity.getLayoutInflater();
- row = inflater.inflate(R.layout.favorites_list_item, parent, false);
+ boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ row = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorites_list_item, parent, false);
}
TextView name = (TextView) row.findViewById(R.id.favourite_label);
diff --git a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java
index 405e6e4ed8..826a2383ac 100644
--- a/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java
+++ b/OsmAnd/src/net/osmand/plus/activities/FavoritesTreeFragment.java
@@ -840,7 +840,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
int color = model.getColor() == 0 || model.getColor() == Color.BLACK ? getResources().getColor(R.color.color_favorite) : model.getColor();
if (!model.isPersonal()) {
setCategoryIcon(app, app.getUIUtilities().getPaintedIcon(
- R.drawable.ic_action_fav_dark, visible ? (color | 0xff000000) : getResources().getColor(disabledColor)),
+ R.drawable.ic_action_folder, visible ? color : getResources().getColor(disabledColor)),
groupPosition, isExpanded, row, light);
}
adjustIndicator(app, groupPosition, isExpanded, row, light);
@@ -955,7 +955,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
name.setTextColor(getResources().getColor(visible ? enabledColor : disabledColor));
distanceText.setText(distance);
if (model.isAddressSpecified()) {
- distanceText.setText(String.format(getString(R.string.ltr_or_rtl_combine_via_bold_point), distance.trim(), model.getAddress()));
+ distanceText.setText(String.format(getString(R.string.ltr_or_rtl_combine_via_comma), distance.trim(), model.getAddress()));
}
icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(),
visible ? model.getColor() : getResources().getColor(disabledIconColor), false, model));
diff --git a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java
index f16f9bc9f0..3a4cb98f91 100644
--- a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java
@@ -42,7 +42,7 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_help_screen);
- ContextMenuAdapter contextMenuAdapter = new ContextMenuAdapter();
+ ContextMenuAdapter contextMenuAdapter = new ContextMenuAdapter(getMyApplication());
contextMenuAdapter.setDefaultLayoutId(R.layout.two_line_with_images_list_item);
createBeginWithOsmandItems(contextMenuAdapter);
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
index 76e2f25588..77a0af2fca 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivity.java
@@ -112,6 +112,9 @@ import net.osmand.plus.mapcontextmenu.AdditionalActionsBottomSheetDialogFragment
import net.osmand.plus.mapcontextmenu.MapContextMenu;
import net.osmand.plus.mapcontextmenu.MenuController.MenuState;
import net.osmand.plus.mapcontextmenu.builders.cards.dialogs.ContextMenuCardDialogFragment;
+import net.osmand.plus.mapcontextmenu.editors.FavoritePointEditor;
+import net.osmand.plus.mapcontextmenu.editors.PointEditorFragmentNew;
+import net.osmand.plus.mapcontextmenu.editors.WptPtEditor;
import net.osmand.plus.mapcontextmenu.other.DestinationReachedMenu;
import net.osmand.plus.mapcontextmenu.other.TrackDetailsMenu;
import net.osmand.plus.mapmarkers.MapMarkersDialogFragment;
@@ -134,6 +137,7 @@ import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchTab;
import net.osmand.plus.search.QuickSearchDialogFragment.QuickSearchType;
import net.osmand.plus.settings.BaseSettingsFragment;
import net.osmand.plus.settings.BaseSettingsFragment.SettingsScreenType;
+import net.osmand.plus.settings.ConfigureMenuItemsFragment;
import net.osmand.plus.settings.ConfigureProfileFragment;
import net.osmand.plus.settings.DataStorageFragment;
import net.osmand.plus.settings.ImportCompleteFragment;
@@ -700,6 +704,13 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
return;
}
}
+
+ PointEditorFragmentNew pointEditorFragmentNew = getPointEditorFragmentNew();
+ if (pointEditorFragmentNew != null) {
+ pointEditorFragmentNew.showExitDialog();
+ return;
+ }
+
if (mapContextMenu.isVisible() && mapContextMenu.isClosable()) {
if (mapContextMenu.getCurrentMenuState() != MenuState.HEADER_ONLY && !isLandscapeLayout()) {
mapContextMenu.openMenuHeaderOnly();
@@ -740,6 +751,11 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
importCompleteFragment.dismissFragment();
return;
}
+ ConfigureMenuItemsFragment configureMenuItemsFragment = getConfigureMenuItemsFragment();
+ if (configureMenuItemsFragment != null) {
+ configureMenuItemsFragment.exitFragment();
+ return;
+ }
super.onBackPressed();
}
@@ -2459,6 +2475,19 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
return getFragment(ImportCompleteFragment.TAG);
}
+ public ConfigureMenuItemsFragment getConfigureMenuItemsFragment(){
+ return getFragment(ConfigureMenuItemsFragment.TAG);
+ }
+
+ public PointEditorFragmentNew getPointEditorFragmentNew() {
+ PointEditorFragmentNew pointEditorFragmentNew;
+ pointEditorFragmentNew = getFragment(FavoritePointEditor.TAG);
+ if (pointEditorFragmentNew == null) {
+ pointEditorFragmentNew = getFragment(WptPtEditor.TAG);
+ }
+ return pointEditorFragmentNew;
+ }
+
public void backToConfigureProfileFragment() {
FragmentManager fragmentManager = getSupportFragmentManager();
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
index 10463946b8..3fb019b46e 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
@@ -50,7 +50,6 @@ import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.Version;
import net.osmand.plus.activities.actions.OsmAndDialogs;
-import net.osmand.plus.activities.actions.OsmandRestoreOrExitDialog;
import net.osmand.plus.dashboard.DashboardOnMap.DashboardType;
import net.osmand.plus.dialogs.FavoriteDialogs;
import net.osmand.plus.download.IndexItem;
@@ -65,6 +64,7 @@ import net.osmand.plus.routepreparationmenu.WaypointsFragment;
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.settings.BaseSettingsFragment;
+import net.osmand.plus.mapcontextmenu.AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener;
import net.osmand.plus.views.BaseMapLayer;
import net.osmand.plus.views.MapControlsLayer;
import net.osmand.plus.views.MapTileLayer;
@@ -99,11 +99,15 @@ import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_SEARCH_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_SETTINGS_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_TRAVEL_GUIDES_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_ADD_GPX_WAYPOINT;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_ADD_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_AVOID_ROAD;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_DIRECTIONS_FROM_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_EDIT_GPX_WP;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MARKER_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MEASURE_DISTANCE;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_MORE_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_SEARCH_NEARBY;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.MAP_CONTEXT_MENU_SHARE_ID;
import static net.osmand.plus.ContextMenuAdapter.PROFILES_CHOSEN_PROFILE_TAG;
import static net.osmand.plus.ContextMenuAdapter.PROFILES_CONTROL_BUTTON_TAG;
import static net.osmand.plus.ContextMenuAdapter.PROFILES_NORMAL_PROFILE_TAG;
@@ -144,22 +148,18 @@ public class MapActivityActions implements DialogProvider {
private final MapActivity mapActivity;
private OsmandSettings settings;
- private RoutingHelper routingHelper;
@NonNull
private ImageView drawerLogoHeader;
- private View drawerOsmAndFooter;
-
+
private int drawerMode = DRAWER_MODE_NORMAL;
public MapActivityActions(MapActivity mapActivity) {
this.mapActivity = mapActivity;
settings = mapActivity.getMyApplication().getSettings();
- routingHelper = mapActivity.getMyApplication().getRoutingHelper();
drawerLogoHeader = new ImageView(mapActivity);
- drawerLogoHeader.setPadding(-AndroidUtils.dpToPx(mapActivity, 8f), AndroidUtils.dpToPx(mapActivity, 16f), 0,
- 0);
- drawerOsmAndFooter = mapActivity.getLayoutInflater().inflate(R.layout.powered_by_osmand_item, null);
+ drawerLogoHeader.setPadding(-AndroidUtils.dpToPx(mapActivity, 8f),
+ AndroidUtils.dpToPx(mapActivity, 16f), 0, 0);
}
public void addAsTarget(double latitude, double longitude, PointDescription pd) {
@@ -336,10 +336,38 @@ public class MapActivityActions implements DialogProvider {
}
- public void contextMenuPoint(final double latitude, final double longitude, final ContextMenuAdapter iadapter, Object selectedObj) {
- final ContextMenuAdapter adapter = iadapter == null ? new ContextMenuAdapter() : iadapter;
+ public void addActionsToAdapter(final double latitude,
+ final double longitude,
+ final ContextMenuAdapter adapter,
+ Object selectedObj,
+ boolean all) {
ItemBuilder itemBuilder = new ItemBuilder();
+ adapter.addItem(itemBuilder
+ .setTitleId(R.string.shared_string_add, mapActivity)
+ .setId(MAP_CONTEXT_MENU_ADD_ID)
+ .setIcon(R.drawable.map_action_fav_dark)
+ .setOrder(0)
+ .createItem());
+ adapter.addItem(itemBuilder
+ .setTitleId(R.string.shared_string_marker, mapActivity)
+ .setId(MAP_CONTEXT_MENU_MARKER_ID)
+ .setIcon(R.drawable.map_action_flag_dark)
+ .setOrder(1)
+ .createItem());
+ adapter.addItem(itemBuilder
+ .setTitleId(R.string.shared_string_share, mapActivity)
+ .setId(MAP_CONTEXT_MENU_SHARE_ID)
+ .setIcon(R.drawable.map_action_gshare_dark)
+ .setOrder(2)
+ .createItem());
+ adapter.addItem(itemBuilder
+ .setTitleId(R.string.shared_string_actions, mapActivity)
+ .setId(MAP_CONTEXT_MENU_MORE_ID)
+ .setIcon(R.drawable.map_overflow_menu_white)
+ .setOrder(3)
+ .createItem());
+
adapter.addItem(itemBuilder
.setTitleId(R.string.context_menu_item_directions_from, mapActivity)
.setId(MAP_CONTEXT_MENU_DIRECTIONS_FROM_ID)
@@ -367,22 +395,28 @@ public class MapActivityActions implements DialogProvider {
}
};
- if (selectedObj instanceof WptPt
+ ContextMenuItem editGpxItem = new ItemBuilder()
+ .setTitleId(R.string.context_menu_item_edit_waypoint, mapActivity)
+ .setId(MAP_CONTEXT_MENU_EDIT_GPX_WP)
+ .setIcon(R.drawable.ic_action_edit_dark)
+ .setOrder(EDIT_GPX_WAYPOINT_ITEM_ORDER)
+ .setListener(listener).createItem();
+ ContextMenuItem addGpxItem = new ItemBuilder()
+ .setTitleId(R.string.context_menu_item_add_waypoint, mapActivity)
+ .setId(MAP_CONTEXT_MENU_ADD_GPX_WAYPOINT)
+ .setIcon(R.drawable.ic_action_gnew_label_dark)
+ .setOrder(ADD_GPX_WAYPOINT_ITEM_ORDER)
+ .setListener(listener).createItem();
+
+ if (all) {
+ adapter.addItem(editGpxItem);
+ adapter.addItem(addGpxItem);
+ } else if (selectedObj instanceof WptPt
&& getMyApplication().getSelectedGpxHelper().getSelectedGPXFile((WptPt) selectedObj) != null) {
- adapter.addItem(new ItemBuilder()
- .setTitleId(R.string.context_menu_item_edit_waypoint, mapActivity)
- .setId(MAP_CONTEXT_MENU_EDIT_GPX_WP)
- .setIcon(R.drawable.ic_action_edit_dark)
- .setOrder(EDIT_GPX_WAYPOINT_ITEM_ORDER)
- .setListener(listener).createItem());
+ adapter.addItem(editGpxItem);
} else if (!getMyApplication().getSelectedGpxHelper().getSelectedGPXFiles().isEmpty()
|| (OsmandPlugin.getEnabledPlugin(OsmandMonitoringPlugin.class) != null)) {
- adapter.addItem(new ItemBuilder()
- .setTitleId(R.string.context_menu_item_add_waypoint, mapActivity)
- .setId(MAP_CONTEXT_MENU_ADD_GPX_WAYPOINT)
- .setIcon(R.drawable.ic_action_gnew_label_dark)
- .setOrder(ADD_GPX_WAYPOINT_ITEM_ORDER)
- .setListener(listener).createItem());
+ adapter.addItem(addGpxItem);
}
adapter.addItem(itemBuilder
@@ -400,12 +434,25 @@ public class MapActivityActions implements DialogProvider {
.createItem());
adapter.sortItemsByOrder();
+ }
+ public void contextMenuPoint(final double latitude, final double longitude, final ContextMenuAdapter iadapter, Object selectedObj) {
+ final ContextMenuAdapter adapter = iadapter == null ? new ContextMenuAdapter(getMyApplication()) : iadapter;
+ addActionsToAdapter(latitude, longitude, adapter, selectedObj, false);
+ showAdditionalActionsFragment(adapter, getContextMenuItemClickListener(latitude, longitude, adapter));
+ }
+
+ public void showAdditionalActionsFragment(final ContextMenuAdapter adapter, AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener listener) {
+ AdditionalActionsBottomSheetDialogFragment actionsBottomSheetDialogFragment = new AdditionalActionsBottomSheetDialogFragment();
+ actionsBottomSheetDialogFragment.setAdapter(adapter, listener);
+ actionsBottomSheetDialogFragment.show(mapActivity.getSupportFragmentManager(), AdditionalActionsBottomSheetDialogFragment.TAG);
+ }
+
+ public ContextMenuItemClickListener getContextMenuItemClickListener(final double latitude, final double longitude, final ContextMenuAdapter adapter) {
final ArrayAdapter listAdapter =
adapter.createListAdapter(mapActivity, getMyApplication().getSettings().isLightContent());
- AdditionalActionsBottomSheetDialogFragment actionsBottomSheetDialogFragment = new AdditionalActionsBottomSheetDialogFragment();
- actionsBottomSheetDialogFragment.setAdapter(adapter, new AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener() {
+ return new AdditionalActionsBottomSheetDialogFragment.ContextMenuItemClickListener() {
@Override
public void onItemClick(int position) {
ContextMenuItem item = adapter.getItem(position);
@@ -428,10 +475,15 @@ public class MapActivityActions implements DialogProvider {
MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), new LatLon(latitude, longitude));
} else if (standardId == R.string.avoid_road) {
getMyApplication().getAvoidSpecificRoads().addImpassableRoad(mapActivity, new LatLon(latitude, longitude), true, false, null);
+ } else if (standardId == R.string.shared_string_add) {
+ mapActivity.getContextMenu().buttonFavoritePressed();
+ } else if (standardId == R.string.shared_string_marker) {
+ mapActivity.getContextMenu().buttonWaypointPressed();
+ } else if (standardId == R.string.shared_string_share) {
+ mapActivity.getContextMenu().buttonSharePressed();
}
}
- });
- actionsBottomSheetDialogFragment.show(mapActivity.getSupportFragmentManager(), AdditionalActionsBottomSheetDialogFragment.TAG);
+ };
}
public void enterDirectionsFromPoint(final double latitude, final double longitude) {
@@ -653,7 +705,7 @@ public class MapActivityActions implements DialogProvider {
public ContextMenuAdapter createMainOptionsMenu() {
final OsmandMapTileView mapView = mapActivity.getMapView();
final OsmandApplication app = mapActivity.getMyApplication();
- ContextMenuAdapter optionsMenuHelper = new ContextMenuAdapter();
+ ContextMenuAdapter optionsMenuHelper = new ContextMenuAdapter(app);
boolean nightMode = getMyApplication().getDaynightHelper().isNightModeForMapControls();
if (drawerMode == DRAWER_MODE_SWITCH_PROFILE) {
@@ -1121,13 +1173,10 @@ public class MapActivityActions implements DialogProvider {
menuItemsListView.setBackgroundColor(ContextCompat.getColor(mapActivity, R.color.list_background_color_light));
}
menuItemsListView.removeHeaderView(drawerLogoHeader);
- menuItemsListView.removeFooterView(drawerOsmAndFooter);
Bitmap navDrawerLogo = getMyApplication().getAppCustomization().getNavDrawerLogo();
final ArrayList navDrawerLogoParams = getMyApplication().getAppCustomization().getNavDrawerLogoParams();
- boolean customHeader = false;
if (navDrawerLogo != null) {
- customHeader = true;
drawerLogoHeader.setImageBitmap(navDrawerLogo);
menuItemsListView.addHeaderView(drawerLogoHeader);
}
@@ -1143,59 +1192,22 @@ public class MapActivityActions implements DialogProvider {
mapActivity.dismissCardDialog();
boolean hasHeader = menuItemsListView.getHeaderViewsCount() > 0;
boolean hasFooter = menuItemsListView.getFooterViewsCount() > 0;
- if (hasHeader && position ==0 || (hasFooter && position== menuItemsListView.getCount() - 1)) {
- if(navDrawerLogoParams!=null) executeHeadersIntent(navDrawerLogoParams.get(0));
- else restoreOsmand();
- } else {
- position -= menuItemsListView.getHeaderViewsCount();
- ContextMenuItem item = contextMenuAdapter.getItem(position);
- ItemClickListener click = item.getItemClickListener();
- if (click != null && click.onContextMenuClick(simpleListAdapter, item.getTitleId(),
- position, false, AndroidUtils.getCenterViewCoordinates(view))) {
- mapActivity.closeDrawer();
- }
- }
+ if (hasHeader && position == 0 || (hasFooter && position == menuItemsListView.getCount() - 1)) {
+ if (navDrawerLogoParams != null) {
+ executeHeadersIntent(navDrawerLogoParams.get(0));
+ }
+ } else {
+ position -= menuItemsListView.getHeaderViewsCount();
+ ContextMenuItem item = contextMenuAdapter.getItem(position);
+ ItemClickListener click = item.getItemClickListener();
+ if (click != null && click.onContextMenuClick(simpleListAdapter, item.getTitleId(),
+ position, false, AndroidUtils.getCenterViewCoordinates(view))) {
+ mapActivity.closeDrawer();
+ }
+ }
}
});
- if (customHeader) {
- menuItemsListView.post(new Runnable() {
- public void run() {
- View footerLayout = mapActivity.findViewById(R.id.drawer_footer_layout);
- boolean showFooterLayout = false;
- if (menuItemsListView.getChildCount() > 0) {
- int numItemsVisible = menuItemsListView.getLastVisiblePosition() -
- menuItemsListView.getFirstVisiblePosition();
- View lastView = menuItemsListView.getChildAt(menuItemsListView.getLastVisiblePosition());
- boolean overlapped = lastView != null && lastView.getY() + lastView.getHeight() * 2 > menuItemsListView.getHeight();
- if (simpleListAdapter.getCount() - 1 > numItemsVisible || overlapped) {
- menuItemsListView.addFooterView(drawerOsmAndFooter);
- } else {
- showFooterLayout = true;
- }
- } else {
- showFooterLayout = true;
- }
- if (showFooterLayout) {
- footerLayout.setVisibility(View.VISIBLE);
- footerLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (navDrawerLogoParams != null) {
- mapActivity.closeDrawer();
- }
- new OsmandRestoreOrExitDialog()
- .show(mapActivity.getSupportFragmentManager(), "dialog");
- //showReturnConfirmationDialog(navDrawerLogoParams.get(0));
-
- }
- });
- } else {
- footerLayout.setVisibility(View.GONE);
- }
- }
- });
- }
}
private void executeHeadersIntent(String packageName) {
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java
index 84e1afd445..eef820706b 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityLayers.java
@@ -65,6 +65,8 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
+import static net.osmand.plus.poi.PoiFiltersHelper.PoiTemplateList;
+
/**
* Object is responsible to maintain layers using by map activity
*/
@@ -268,7 +270,7 @@ public class MapActivityLayers {
public void showMultichoicePoiFilterDialog(final OsmandMapTileView mapView, final DismissListener listener) {
final OsmandApplication app = getApplication();
final PoiFiltersHelper poiFilters = app.getPoiFilters();
- final ContextMenuAdapter adapter = new ContextMenuAdapter();
+ final ContextMenuAdapter adapter = new ContextMenuAdapter(app);
final List list = new ArrayList<>();
for (PoiUIFilter f : poiFilters.getSortedPoiFilters(true)) {
addFilterToList(adapter, list, f, true);
@@ -304,9 +306,9 @@ public class MapActivityLayers {
if (filter.isStandardFilter()) {
filter.removeUnsavedFilterByName();
}
- getApplication().getPoiFilters().addSelectedPoiFilter(filter);
+ poiFilters.addSelectedPoiFilter(PoiTemplateList.POI, filter);
} else {
- getApplication().getPoiFilters().removeSelectedPoiFilter(filter);
+ poiFilters.removeSelectedPoiFilter(PoiTemplateList.POI, filter);
}
}
mapView.refreshMap();
@@ -342,7 +344,7 @@ public class MapActivityLayers {
public void showSingleChoicePoiFilterDialog(final OsmandMapTileView mapView, final DismissListener listener) {
final OsmandApplication app = getApplication();
final PoiFiltersHelper poiFilters = app.getPoiFilters();
- final ContextMenuAdapter adapter = new ContextMenuAdapter();
+ final ContextMenuAdapter adapter = new ContextMenuAdapter(app);
adapter.addItem(new ContextMenuItem.ItemBuilder()
.setTitleId(R.string.shared_string_search, app)
.setIcon(R.drawable.ic_action_search_dark).createItem());
@@ -368,8 +370,8 @@ public class MapActivityLayers {
if (pf.isStandardFilter()) {
pf.removeUnsavedFilterByName();
}
- getApplication().getPoiFilters().clearSelectedPoiFilters();
- getApplication().getPoiFilters().addSelectedPoiFilter(pf);
+ poiFilters.clearSelectedPoiFilters(PoiTemplateList.POI);
+ poiFilters.addSelectedPoiFilter(PoiTemplateList.POI, pf);
mapView.refreshMap();
}
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/PluginActivity.java b/OsmAnd/src/net/osmand/plus/activities/PluginActivity.java
index 8a0213f601..ae996f1133 100644
--- a/OsmAnd/src/net/osmand/plus/activities/PluginActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/PluginActivity.java
@@ -65,12 +65,13 @@ public class PluginActivity extends OsmandActionBarActivity implements Download
setContentView(R.layout.plugin);
//noinspection ConstantConditions
getSupportActionBar().setTitle(plugin.getName());
- if(plugin.getAssetResourceName() != 0 && Build.VERSION.SDK_INT >= 14) {
+ Drawable pluginImage = plugin.getAssetResourceImage();
+ if (pluginImage != null) {
ImageView img = (ImageView) findViewById(R.id.plugin_image);
- img.setImageResource(plugin.getAssetResourceName());
+ img.setImageDrawable(pluginImage);
}
- TextView descriptionView = (TextView)findViewById(R.id.plugin_description);
+ TextView descriptionView = (TextView) findViewById(R.id.plugin_description);
descriptionView.setText(plugin.getDescription());
Button settingsButton = (Button)findViewById(R.id.plugin_settings);
diff --git a/OsmAnd/src/net/osmand/plus/activities/PluginsActivity.java b/OsmAnd/src/net/osmand/plus/activities/PluginsActivity.java
index 8fea70c2fa..3ff10f3395 100644
--- a/OsmAnd/src/net/osmand/plus/activities/PluginsActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/PluginsActivity.java
@@ -1,6 +1,7 @@
package net.osmand.plus.activities;
import android.app.Activity;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.TypedArray;
import android.os.Bundle;
@@ -14,14 +15,17 @@ import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.PopupMenu;
import androidx.fragment.app.Fragment;
import net.osmand.AndroidUtils;
import net.osmand.aidl.ConnectedApp;
+import net.osmand.plus.CustomOsmandPlugin;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
+import net.osmand.plus.UiUtilities;
import net.osmand.plus.dialogs.PluginInstalledBottomSheetDialog;
import net.osmand.plus.download.DownloadIndexesThread;
@@ -180,7 +184,7 @@ public class PluginsActivity extends OsmandListActivity implements DownloadIndex
OsmandApplication app = getMyApplication();
int color = AndroidUtils.getColorFromAttr(app, R.attr.list_background_color);
- pluginLogo.setImageDrawable(app.getUIUtilities().getPaintedIcon(plugin.getLogoResourceId(), color));
+ pluginLogo.setImageDrawable(UiUtilities.tintDrawable(plugin.getLogoResource(), color));
pluginLogo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -250,6 +254,34 @@ public class PluginsActivity extends OsmandListActivity implements DownloadIndex
});
}
+ if (plugin instanceof CustomOsmandPlugin) {
+ MenuItem settingsItem = optionsMenu.getMenu().add(R.string.shared_string_delete);
+ settingsItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ showDeletePluginDialog((CustomOsmandPlugin) plugin);
+ optionsMenu.dismiss();
+ return true;
+ }
+ });
+ }
+
optionsMenu.show();
}
+
+ private void showDeletePluginDialog(final CustomOsmandPlugin plugin) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(PluginsActivity.this);
+ builder.setTitle(getString(R.string.delete_confirmation_msg, plugin.getName()));
+ builder.setMessage(R.string.are_you_sure);
+ builder.setNegativeButton(R.string.shared_string_cancel, null);
+ builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ OsmandApplication app = getMyApplication();
+ OsmandPlugin.removeCustomPlugin(app, plugin);
+ getListAdapter().remove(plugin);
+ }
+ });
+ builder.show();
+ }
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
index 5b6074a2ef..aca57769f9 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SettingsBaseActivity.java
@@ -21,6 +21,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AlertDialog.Builder;
+import net.osmand.AndroidUtils;
import net.osmand.PlatformUtil;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
@@ -599,16 +600,7 @@ public abstract class SettingsBaseActivity extends ActionBarPreferenceActivity
public static void showWarnings(final OsmandApplication app, List warnings) {
if (!warnings.isEmpty()) {
- final StringBuilder b = new StringBuilder();
- boolean f = true;
- for (String w : warnings) {
- if (f) {
- f = false;
- } else {
- b.append('\n');
- }
- b.append(w);
- }
+ final StringBuilder b = AndroidUtils.formatWarnings(warnings);
app.runInUIThread(new Runnable() {
@Override
public void run() {
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
index 233f9fe725..70e70efb15 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SettingsGeneralActivity.java
@@ -34,6 +34,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatCheckedTextView;
import androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback;
+import net.osmand.AndroidUtils;
import net.osmand.IProgress;
import net.osmand.IndexConstants;
import net.osmand.data.PointDescription;
@@ -682,21 +683,11 @@ public class SettingsGeneralActivity extends SettingsBaseActivity implements OnR
protected void showWarnings(List warnings) {
if (!warnings.isEmpty()) {
- final StringBuilder b = new StringBuilder();
- boolean f = true;
- for (String w : warnings) {
- if (f) {
- f = false;
- } else {
- b.append('\n');
- }
- b.append(w);
- }
+ final StringBuilder b = AndroidUtils.formatWarnings(warnings);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(SettingsGeneralActivity.this, b.toString(), Toast.LENGTH_LONG).show();
-
}
});
}
diff --git a/OsmAnd/src/net/osmand/plus/activities/SettingsNavigationActivity.java b/OsmAnd/src/net/osmand/plus/activities/SettingsNavigationActivity.java
index c7854100ba..f6a55a77a0 100644
--- a/OsmAnd/src/net/osmand/plus/activities/SettingsNavigationActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/SettingsNavigationActivity.java
@@ -475,7 +475,7 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
return true;
} else if (preference == autoZoom) {
final ApplicationMode am = settings.getApplicationMode();
- final ContextMenuAdapter adapter = new ContextMenuAdapter();
+ final ContextMenuAdapter adapter = new ContextMenuAdapter(getMyApplication());
int i = 0;
int selectedIndex = -1;
adapter.addItem(ContextMenuItem.createBuilder(getString(R.string.auto_zoom_none))
@@ -546,7 +546,7 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
return true;
} else if (preference == reliefFactorRouting) {
final ApplicationMode am = settings.getApplicationMode();
- final ContextMenuAdapter adapter = new ContextMenuAdapter();
+ final ContextMenuAdapter adapter = new ContextMenuAdapter(getMyApplication());
int i = 0;
int selectedIndex = -1;
for (RoutingParameter p : reliefFactorParameters) {
diff --git a/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java b/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java
index b08b6348eb..819600f085 100644
--- a/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/search/SearchPOIActivity.java
@@ -78,6 +78,8 @@ import java.util.TreeMap;
import gnu.trove.set.hash.TLongHashSet;
+import static net.osmand.plus.poi.PoiFiltersHelper.PoiTemplateList;
+
/**
* Search poi activity
*/
@@ -164,7 +166,7 @@ public class SearchPOIActivity extends OsmandListActivity implements OsmAndCompa
public boolean onMenuItemClick(MenuItem item) {
OsmandSettings settings = app.getSettings();
filter.setFilterByName(searchFilter.getText().toString().trim());
- app.getPoiFilters().addSelectedPoiFilter(filter);
+ app.getPoiFilters().addSelectedPoiFilter(PoiTemplateList.POI, filter);
if (location != null) {
settings.setMapLocationToShow(location.getLatitude(), location.getLongitude(), 15);
}
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
index 3d8937893a..39c625b988 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java
@@ -10,6 +10,7 @@ import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.AssetFileDescriptor;
+import android.graphics.drawable.Drawable;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PictureCallback;
@@ -105,11 +106,12 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
public static final String THREEGP_EXTENSION = "3gp";
public static final String MPEG4_EXTENSION = "mp4";
public static final String IMG_EXTENSION = "jpg";
- private static final Log log = PlatformUtil.getLog(AudioVideoNotesPlugin.class);
public static final int CAMERA_FOR_VIDEO_REQUEST_CODE = 101;
public static final int CAMERA_FOR_PHOTO_REQUEST_CODE = 102;
public static final int AUDIO_REQUEST_CODE = 103;
+ private static final Log log = PlatformUtil.getLog(AudioVideoNotesPlugin.class);
+
// Constants for determining the order of items in the additional actions context menu
private static final int TAKE_AUDIO_NOTE_ITEM_ORDER = 4100;
private static final int TAKE_VIDEO_NOTE_ITEM_ORDER = 4300;
@@ -117,7 +119,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
// private static Method mRegisterMediaButtonEventReceiver;
// private static Method mUnregisterMediaButtonEventReceiver;
- private OsmandApplication app;
+
private TextInfoWidget recordControl;
public final CommonPreference AV_EXTERNAL_RECORDER;
@@ -539,7 +541,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
}
public AudioVideoNotesPlugin(OsmandApplication app) {
- this.app = app;
+ super(app);
ApplicationMode.regWidgetVisibility("audionotes", (ApplicationMode[]) null);
AV_EXTERNAL_RECORDER = registerBooleanPreference(app, "av_external_recorder", false);
AV_EXTERNAL_PHOTO_CAM = registerBooleanPreference(app, "av_external_cam", true);
@@ -870,10 +872,12 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
}
@Override
- protected void registerQuickActionTypes(List quickActionTypes) {
+ protected List getQuickActionTypes() {
+ ArrayList quickActionTypes = new ArrayList<>();
quickActionTypes.add(TakeAudioNoteAction.TYPE);
quickActionTypes.add(TakePhotoNoteAction.TYPE);
quickActionTypes.add(TakeVideoNoteAction.TYPE);
+ return quickActionTypes;
}
@Override
@@ -2108,8 +2112,8 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
}
@Override
- public int getAssetResourceName() {
- return R.drawable.audio_video_notes;
+ public Drawable getAssetResourceImage() {
+ return app.getUIUtilities().getIcon(R.drawable.audio_video_notes);
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java
index 6031fdacd6..267fc8d177 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/MultimediaNotesFragment.java
@@ -136,6 +136,10 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
// Photo picture size
// get supported sizes
List psps = parameters.getSupportedPictureSizes();
+ if (psps == null) {
+ cameraPictureSize.setVisible(false);
+ return;
+ }
// list of megapixels of each resolution
List mpix = new ArrayList();
// list of index each resolution in list, returned by getSupportedPictureSizes()
@@ -209,6 +213,10 @@ public class MultimediaNotesFragment extends BaseSettingsFragment implements Cop
// focus mode settings
// show in menu only suppoted modes
List sfm = parameters.getSupportedFocusModes();
+ if (sfm == null) {
+ cameraFocusType.setVisible(false);
+ return;
+ }
List items = new ArrayList();
List itemsValues = new ArrayList();
// filtering known types for translate and set index
diff --git a/OsmAnd/src/net/osmand/plus/audionotes/SettingsAudioVideoActivity.java b/OsmAnd/src/net/osmand/plus/audionotes/SettingsAudioVideoActivity.java
index a19e9d09cb..815b77108c 100644
--- a/OsmAnd/src/net/osmand/plus/audionotes/SettingsAudioVideoActivity.java
+++ b/OsmAnd/src/net/osmand/plus/audionotes/SettingsAudioVideoActivity.java
@@ -21,10 +21,8 @@ import net.osmand.plus.activities.SettingsBaseActivity;
import org.apache.commons.logging.Log;
import java.io.File;
-import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AUDIO_BITRATE_DEFAULT;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_CAMERA_FOCUS_AUTO;
@@ -78,105 +76,8 @@ public class SettingsAudioVideoActivity extends SettingsBaseActivity {
R.string.av_use_external_camera_descr));
Parameters parameters = cam.getParameters();
-
- // Photo picture size
- // get supported sizes
- List psps = parameters.getSupportedPictureSizes();
- // list of megapixels of each resolution
- List mpix = new ArrayList();
- // list of index each resolution in list, returned by getSupportedPictureSizes()
- List picSizesValues = new ArrayList();
- // fill lists for sort
- for (int index = 0; index < psps.size(); index++) {
- mpix.add((psps.get(index)).width * (psps.get(index)).height);
- picSizesValues.add(index);
- }
- // sort list for max resolution in begining of list
- for (int i = 0; i < mpix.size(); i++) {
- for (int j = 0; j < mpix.size() - i - 1; j++) {
- if (mpix.get(j) < mpix.get(j + 1)) {
- // change elements
- int tmp = mpix.get(j + 1);
- mpix.set(j + 1, mpix.get(j));
- mpix.set(j, tmp);
-
- tmp = picSizesValues.get(j + 1);
- picSizesValues.set(j + 1, picSizesValues.get(j));
- picSizesValues.set(j, tmp);
- }
- }
- }
- // set default photo size to max resolution (set index of element with max resolution in List, returned by getSupportedPictureSizes() )
- cameraPictureSizeDefault = picSizesValues.get(0);
- log.debug("onCreate() set cameraPictureSizeDefault=" + cameraPictureSizeDefault);
-
- List itemsPicSizes = new ArrayList();
- String prefix;
- for (int index = 0; index < psps.size(); index++) {
- float px = (float) ((psps.get(picSizesValues.get(index))).width * (psps.get(picSizesValues.get(index))).height);
- if (px > 102400) // 100 K
- {
- px = px / 1048576;
- prefix = "Mpx";
- } else {
- px = px / 1024;
- prefix = "Kpx";
- }
-
- itemsPicSizes.add((psps.get(picSizesValues.get(index))).width +
- "x" +
- (psps.get(picSizesValues.get(index))).height +
- " ( " +
- String.format("%.2f", px) +
- " " +
- prefix +
- " )");
- }
- log.debug("onCreate() set default size: width=" + psps.get(cameraPictureSizeDefault).width + " height="
- + psps.get(cameraPictureSizeDefault).height + " index in ps=" + cameraPictureSizeDefault);
-
- entries = itemsPicSizes.toArray(new String[itemsPicSizes.size()]);
- intValues = picSizesValues.toArray(new Integer[picSizesValues.size()]);
- if (entries.length > 0) {
- ListPreference camSizes = createListPreference(p.AV_CAMERA_PICTURE_SIZE, entries, intValues, R.string.av_camera_pic_size,
- R.string.av_camera_pic_size_descr);
- photo.addPreference(camSizes);
- }
-
- // focus mode settings
- // show in menu only suppoted modes
- List sfm = parameters.getSupportedFocusModes();
- List items = new ArrayList();
- List itemsValues = new ArrayList();
- // filtering known types for translate and set index
- for (int index = 0; index < sfm.size(); index++) {
- if (sfm.get(index).equals("auto")) {
- items.add(getString(R.string.av_camera_focus_auto));
- itemsValues.add(AV_CAMERA_FOCUS_AUTO);
- } else if (sfm.get(index).equals("fixed")) {
- items.add(getString(R.string.av_camera_focus_hiperfocal));
- itemsValues.add(AV_CAMERA_FOCUS_HIPERFOCAL);
- } else if (sfm.get(index).equals("edof")) {
- items.add(getString(R.string.av_camera_focus_edof));
- itemsValues.add(AV_CAMERA_FOCUS_EDOF);
- } else if (sfm.get(index).equals("infinity")) {
- items.add(getString(R.string.av_camera_focus_infinity));
- itemsValues.add(AV_CAMERA_FOCUS_INFINITY);
- } else if (sfm.get(index).equals("macro")) {
- items.add(getString(R.string.av_camera_focus_macro));
- itemsValues.add(AV_CAMERA_FOCUS_MACRO);
- } else if (sfm.get(index).equals("continuous-picture")) {
- items.add(getString(R.string.av_camera_focus_continuous));
- itemsValues.add(AV_CAMERA_FOCUS_CONTINUOUS);
- }
- }
- entries = items.toArray(new String[items.size()]);
- intValues = itemsValues.toArray(new Integer[itemsValues.size()]);
- if (entries.length > 0) {
- ListPreference camFocus = createListPreference(p.AV_CAMERA_FOCUS_TYPE, entries, intValues, R.string.av_camera_focus,
- R.string.av_camera_focus_descr);
- photo.addPreference(camFocus);
- }
+ createCameraPictureSizesPref(p, photo, parameters);
+ createCameraFocusModesPref(p, photo, parameters);
// play sound on success photo
photo.addPreference(createCheckBoxPreference(p.AV_PHOTO_PLAY_SOUND, R.string.av_photo_play_sound,
@@ -309,6 +210,119 @@ public class SettingsAudioVideoActivity extends SettingsBaseActivity {
}
}
+ private void createCameraPictureSizesPref(AudioVideoNotesPlugin p, PreferenceCategory photo, Parameters parameters) {
+ String[] entries;
+ Integer[] intValues;
+ // Photo picture size
+ // get supported sizes
+ List psps = parameters.getSupportedPictureSizes();
+ if (psps == null) {
+ return;
+ }
+ // list of megapixels of each resolution
+ List mpix = new ArrayList();
+ // list of index each resolution in list, returned by getSupportedPictureSizes()
+ List picSizesValues = new ArrayList();
+ // fill lists for sort
+ for (int index = 0; index < psps.size(); index++) {
+ mpix.add((psps.get(index)).width * (psps.get(index)).height);
+ picSizesValues.add(index);
+ }
+ // sort list for max resolution in begining of list
+ for (int i = 0; i < mpix.size(); i++) {
+ for (int j = 0; j < mpix.size() - i - 1; j++) {
+ if (mpix.get(j) < mpix.get(j + 1)) {
+ // change elements
+ int tmp = mpix.get(j + 1);
+ mpix.set(j + 1, mpix.get(j));
+ mpix.set(j, tmp);
+
+ tmp = picSizesValues.get(j + 1);
+ picSizesValues.set(j + 1, picSizesValues.get(j));
+ picSizesValues.set(j, tmp);
+ }
+ }
+ }
+ // set default photo size to max resolution (set index of element with max resolution in List, returned by getSupportedPictureSizes() )
+ cameraPictureSizeDefault = picSizesValues.get(0);
+ log.debug("onCreate() set cameraPictureSizeDefault=" + cameraPictureSizeDefault);
+
+ List itemsPicSizes = new ArrayList();
+ String prefix;
+ for (int index = 0; index < psps.size(); index++) {
+ float px = (float) ((psps.get(picSizesValues.get(index))).width * (psps.get(picSizesValues.get(index))).height);
+ if (px > 102400) // 100 K
+ {
+ px = px / 1048576;
+ prefix = "Mpx";
+ } else {
+ px = px / 1024;
+ prefix = "Kpx";
+ }
+
+ itemsPicSizes.add((psps.get(picSizesValues.get(index))).width +
+ "x" +
+ (psps.get(picSizesValues.get(index))).height +
+ " ( " +
+ String.format("%.2f", px) +
+ " " +
+ prefix +
+ " )");
+ }
+ log.debug("onCreate() set default size: width=" + psps.get(cameraPictureSizeDefault).width + " height="
+ + psps.get(cameraPictureSizeDefault).height + " index in ps=" + cameraPictureSizeDefault);
+
+ entries = itemsPicSizes.toArray(new String[itemsPicSizes.size()]);
+ intValues = picSizesValues.toArray(new Integer[picSizesValues.size()]);
+ if (entries.length > 0) {
+ ListPreference camSizes = createListPreference(p.AV_CAMERA_PICTURE_SIZE, entries, intValues, R.string.av_camera_pic_size,
+ R.string.av_camera_pic_size_descr);
+ photo.addPreference(camSizes);
+ }
+ }
+
+ private void createCameraFocusModesPref(AudioVideoNotesPlugin p, PreferenceCategory photo, Parameters parameters) {
+ String[] entries;
+ Integer[] intValues;
+ // focus mode settings
+ // show in menu only suppoted modes
+ List sfm = parameters.getSupportedFocusModes();
+ if (sfm == null) {
+ return;
+ }
+ List items = new ArrayList();
+ List itemsValues = new ArrayList();
+ // filtering known types for translate and set index
+ for (int index = 0; index < sfm.size(); index++) {
+ if (sfm.get(index).equals("auto")) {
+ items.add(getString(R.string.av_camera_focus_auto));
+ itemsValues.add(AV_CAMERA_FOCUS_AUTO);
+ } else if (sfm.get(index).equals("fixed")) {
+ items.add(getString(R.string.av_camera_focus_hiperfocal));
+ itemsValues.add(AV_CAMERA_FOCUS_HIPERFOCAL);
+ } else if (sfm.get(index).equals("edof")) {
+ items.add(getString(R.string.av_camera_focus_edof));
+ itemsValues.add(AV_CAMERA_FOCUS_EDOF);
+ } else if (sfm.get(index).equals("infinity")) {
+ items.add(getString(R.string.av_camera_focus_infinity));
+ itemsValues.add(AV_CAMERA_FOCUS_INFINITY);
+ } else if (sfm.get(index).equals("macro")) {
+ items.add(getString(R.string.av_camera_focus_macro));
+ itemsValues.add(AV_CAMERA_FOCUS_MACRO);
+ } else if (sfm.get(index).equals("continuous-picture")) {
+ items.add(getString(R.string.av_camera_focus_continuous));
+ itemsValues.add(AV_CAMERA_FOCUS_CONTINUOUS);
+ }
+ }
+ entries = items.toArray(new String[items.size()]);
+ intValues = itemsValues.toArray(new Integer[itemsValues.size()]);
+ if (entries.length > 0) {
+ ListPreference camFocus = createListPreference(p.AV_CAMERA_FOCUS_TYPE, entries, intValues, R.string.av_camera_focus,
+ R.string.av_camera_focus_descr);
+ photo.addPreference(camFocus);
+ }
+ }
+
protected Camera openCamera() {
try {
return Camera.open();
diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
index d4e908a195..490e7c538f 100644
--- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
+++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java
@@ -8,7 +8,6 @@ import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
-import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
@@ -98,9 +97,11 @@ public class FavoriteImageDrawable extends Drawable {
super.onBoundsChange(bounds);
Rect bs = new Rect(bounds);
if (!withShadow && !synced) {
- uiBackgroundIcon.setBounds(bounds);
- bs.inset(bs.width() / 5, bs.height() / 5);
- uiListIcon.setBounds(bs);
+ uiBackgroundIcon.setBounds(0, 0, uiBackgroundIcon.getIntrinsicWidth(), uiBackgroundIcon.getIntrinsicHeight());
+ int offsetX = bounds.centerX() - uiListIcon.getIntrinsicWidth() / 2;
+ int offsetY = bounds.centerY() - uiListIcon.getIntrinsicHeight() / 2;
+ uiListIcon.setBounds(offsetX, offsetY, uiListIcon.getIntrinsicWidth() + offsetX,
+ uiListIcon.getIntrinsicHeight() + offsetY);
} else if (withShadow) {
bs.inset(bs.width() / 3, bs.height() / 3);
favIcon.setBounds(bs);
@@ -109,12 +110,22 @@ public class FavoriteImageDrawable extends Drawable {
@Override
public int getIntrinsicHeight() {
- return synced ? syncedShadow.getHeight() : favBackgroundCenter.getHeight();
+ if (synced) {
+ return syncedShadow.getHeight();
+ } else if (withShadow) {
+ return favBackgroundCenter.getHeight();
+ }
+ return uiBackgroundIcon.getIntrinsicHeight();
}
@Override
public int getIntrinsicWidth() {
- return synced ? syncedShadow.getWidth() : favBackgroundCenter.getWidth();
+ if (synced) {
+ return syncedShadow.getWidth();
+ } else if (withShadow) {
+ return favBackgroundCenter.getWidth();
+ }
+ return uiBackgroundIcon.getIntrinsicWidth();
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/BottomSheetItemWithCompoundButton.java b/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/BottomSheetItemWithCompoundButton.java
index 267ff16519..b106b8a2db 100644
--- a/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/BottomSheetItemWithCompoundButton.java
+++ b/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/BottomSheetItemWithCompoundButton.java
@@ -78,6 +78,10 @@ public class BottomSheetItemWithCompoundButton extends BottomSheetItemWithDescri
this.compoundButtonColorId = compoundButtonColorId;
}
+ public CompoundButton getCompoundButton() {
+ return compoundButton;
+ }
+
@Override
public void inflate(Context context, ViewGroup container, boolean nightMode) {
super.inflate(context, container, nightMode);
diff --git a/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/simpleitems/DividerItem.java b/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/simpleitems/DividerItem.java
index 5f8fc47638..03f401f79c 100644
--- a/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/simpleitems/DividerItem.java
+++ b/OsmAnd/src/net/osmand/plus/base/bottomsheetmenu/simpleitems/DividerItem.java
@@ -17,6 +17,11 @@ public class DividerItem extends BaseBottomSheetItem {
@ColorRes
private int colorId;
+ private int topMargin = INVALID_VALUE;
+ private int bottomMargin = INVALID_VALUE;
+ private int startMargin = INVALID_VALUE;
+ private int endMargin = INVALID_VALUE;
+
public DividerItem(Context context) {
setupView(context, INVALID_ID, INVALID_POSITION);
}
@@ -42,7 +47,8 @@ public class DividerItem extends BaseBottomSheetItem {
int height = getHeight(context);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) view.getLayoutParams();
- AndroidUtils.setMargins(params, getStartMargin(context), getTopMargin(context), 0, getBottomMargin(context));
+ AndroidUtils.setMargins(params, getStartMargin(context),
+ getTopMargin(context), getEndMargin(context), getBottomMargin(context));
params.height = height;
view.setMinimumHeight(height);
@@ -50,15 +56,28 @@ public class DividerItem extends BaseBottomSheetItem {
}
protected int getTopMargin(Context context) {
- return context.getResources().getDimensionPixelSize(R.dimen.bottom_sheet_content_padding_small);
+ return topMargin != INVALID_VALUE ? topMargin :
+ context.getResources().getDimensionPixelSize(R.dimen.bottom_sheet_content_padding_small);
}
protected int getStartMargin(Context context) {
- return 0;
+ return startMargin != INVALID_VALUE ? startMargin : 0;
}
protected int getBottomMargin(Context context) {
- return context.getResources().getDimensionPixelSize(R.dimen.bottom_sheet_content_padding_small);
+ return bottomMargin != INVALID_VALUE ? bottomMargin :
+ context.getResources().getDimensionPixelSize(R.dimen.bottom_sheet_content_padding_small);
+ }
+
+ protected int getEndMargin(Context context) {
+ return endMargin != INVALID_VALUE ? endMargin : 0;
+ }
+
+ public void setMargins(int start, int top, int end, int bottom) {
+ this.startMargin = start;
+ this.topMargin = top;
+ this.endMargin = end;
+ this.bottomMargin = bottom;
}
protected int getHeight(Context ctx) {
diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
index 8815bd0e22..243750ecd8 100644
--- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
+++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java
@@ -84,6 +84,7 @@ import net.osmand.plus.views.DownloadedRegionsLayer;
import net.osmand.plus.views.MapInfoLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.mapwidgets.MapWidgetRegistry;
+import net.osmand.plus.wikipedia.WikipediaPoiMenu;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -174,6 +175,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
MAPILLARY,
CONTOUR_LINES,
OSM_NOTES,
+ WIKIPEDIA,
TERRAIN
}
@@ -321,6 +323,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
tv.setText(R.string.osm_notes);
} else if (visibleType == DashboardType.TERRAIN) {
tv.setText(R.string.shared_string_terrain);
+ } else if (visibleType == DashboardType.WIKIPEDIA) {
+ tv.setText(R.string.shared_string_wikipedia);
}
ImageView edit = (ImageView) dashboardView.findViewById(R.id.toolbar_edit);
edit.setVisibility(View.GONE);
@@ -676,7 +680,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
&& visibleType != DashboardType.CONFIGURE_MAP
&& visibleType != DashboardType.CONTOUR_LINES
&& visibleType != DashboardType.TERRAIN
- && visibleType != DashboardType.OSM_NOTES) {
+ && visibleType != DashboardType.OSM_NOTES
+ && visibleType != DashboardType.WIKIPEDIA) {
listView.setDivider(dividerDrawable);
listView.setDividerHeight(AndroidUtils.dpToPx(mapActivity, 1f));
} else {
@@ -712,6 +717,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
cm = ContourLinesMenu.createListAdapter(mapActivity);
} else if (visibleType == DashboardType.OSM_NOTES) {
cm = OsmNotesMenu.createListAdapter(mapActivity);
+ } else if (visibleType == DashboardType.WIKIPEDIA) {
+ cm = WikipediaPoiMenu.createListAdapter(mapActivity);
}
if (cm != null) {
updateListAdapter(cm);
@@ -730,14 +737,17 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
}
public void onNewDownloadIndexes() {
- if (visibleType == DashboardType.CONTOUR_LINES || visibleType == DashboardType.TERRAIN) {
+ if (visibleType == DashboardType.CONTOUR_LINES
+ || visibleType == DashboardType.TERRAIN
+ || visibleType == DashboardType.WIKIPEDIA) {
refreshContent(true);
}
}
@SuppressWarnings("unchecked")
public void onDownloadInProgress() {
- if (visibleType == DashboardType.CONTOUR_LINES || visibleType == DashboardType.TERRAIN) {
+ if (visibleType == DashboardType.CONTOUR_LINES || visibleType == DashboardType.TERRAIN
+ || visibleType == DashboardType.WIKIPEDIA) {
DownloadIndexesThread downloadThread = getMyApplication().getDownloadThread();
IndexItem downloadIndexItem = downloadThread.getCurrentDownloadingItem();
if (downloadIndexItem != null) {
@@ -764,6 +774,8 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, IRouteInfo
}
}
SRTMPlugin.refreshMapComplete(mapActivity);
+ } else if (visibleType == DashboardType.WIKIPEDIA) {
+ refreshContent(true);
}
}
diff --git a/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java b/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java
index 976e09ecf1..170cf9409e 100644
--- a/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java
+++ b/OsmAnd/src/net/osmand/plus/development/OsmandDevelopmentPlugin.java
@@ -2,6 +2,7 @@ package net.osmand.plus.development;
import android.app.Activity;
import android.content.Intent;
+import android.graphics.drawable.Drawable;
import android.widget.ArrayAdapter;
import net.osmand.plus.ContextMenuAdapter;
@@ -22,11 +23,11 @@ import net.osmand.plus.views.mapwidgets.TextInfoWidget;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.DRAWER_BUILDS_ID;
public class OsmandDevelopmentPlugin extends OsmandPlugin {
+
private static final String ID = "osmand.development";
- private OsmandApplication app;
public OsmandDevelopmentPlugin(OsmandApplication app) {
- this.app = app;
+ super(app);
//ApplicationMode.regWidgetVisibility("fps", new ApplicationMode[0]);
}
@@ -136,8 +137,8 @@ public class OsmandDevelopmentPlugin extends OsmandPlugin {
}
@Override
- public int getAssetResourceName() {
- return R.drawable.osmand_development;
+ public Drawable getAssetResourceImage() {
+ return app.getUIUtilities().getIcon(R.drawable.osmand_development);
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/development/TestVoiceActivity.java b/OsmAnd/src/net/osmand/plus/development/TestVoiceActivity.java
index 90acf2e9fa..b5dd85813f 100644
--- a/OsmAnd/src/net/osmand/plus/development/TestVoiceActivity.java
+++ b/OsmAnd/src/net/osmand/plus/development/TestVoiceActivity.java
@@ -19,6 +19,7 @@ import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import net.osmand.plus.OsmandApplication;
+import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.activities.OsmandActionBarActivity;
import net.osmand.plus.routing.data.StreetName;
@@ -125,14 +126,15 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
String v ="";
v += " \u25CF App profile: " + ((OsmandApplication) getApplication()).getSettings().APPLICATION_MODE.get().getStringKey();
- if (((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get() == 3) {
+ int stream = ((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get();
+ if (stream == 3) {
v += "\n \u25CF Voice guidance output: Media/music audio";
- } else if (((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get() == 5) {
+ } else if (stream == 5) {
v += "\n \u25CF Voice guidance output: Notification audio";
- } else if (((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get() == 0) {
+ } else if (stream == 0) {
v += "\n \u25CF Voice guidance output: Phone call audio";
} else {
- v += "\n \u25CF Voice guidance output: " + ((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get();
+ v += "\n \u25CF Voice guidance output: " + stream;
}
v += "\n \u25CF OsmAnd voice: " + osmandVoice;
@@ -141,13 +143,16 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
v += "\n \u25CF TTS voice language availability: " + TTSCommandPlayerImpl.getTtsVoiceStatus();
v += "\n \u25CF TTS voice actually used: " + TTSCommandPlayerImpl.getTtsVoiceUsed();
- if (((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get() == 0) {
+ if (stream == 0) {
v += "\n \u25CF BT SCO: " + AbstractPrologCommandPlayer.btScoInit;
} else {
v += "\n \u25CF BT SCO: The current app profile is not set to use 'Phone call audio'.";
}
- v += "\n \u25CF Phone call audio delay: " + ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() + "\u00A0ms";
+ OsmandSettings.OsmandPreference pref = ((OsmandApplication) getApplication()).getSettings().VOICE_PROMPT_DELAY[stream];
+ if(pref != null) {
+ v += "\n \u25CF Voice prompt delay for selected output: " + pref.get() + "\u00A0ms";
+ }
return v;
}
@@ -230,7 +235,7 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
addButton(ll, "Voice system info:", builder(p));
addButton(ll, "\u25BA (11.1) (Tap to refresh)\n" + getVoiceSystemInfo(), builder(p).attention(""));
- addButton(ll, "\u25BA (11.2) Tap to change Phone call audio delay (if car stereo cuts off prompts). Default is 1500\u00A0ms.", builder(p).attention(""));
+ addButton(ll, "\u25BA (11.2) Tap to change voice prompt delay (if car stereo cuts off prompts). Default is 1500\u00A0ms for Phone call audio, or else 0\u00A0ms.", builder(p).attention(""));
ll.forceLayout();
}
@@ -282,23 +287,18 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
Toast.makeText(TestVoiceActivity.this, "Info refreshed.", Toast.LENGTH_LONG).show();
}
if (description.startsWith("\u25BA (11.2)")) {
- if (((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get() == 0) {
- if (((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() == 1000) {
- ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.set(1500);
- } else if (((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() == 1500) {
- ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.set(2000);
- } else if (((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() == 2000) {
- ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.set(2500);
- } else if (((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() == 2500) {
- ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.set(3000);
+ int ams = ((OsmandApplication) getApplication()).getSettings().AUDIO_MANAGER_STREAM.get();
+ OsmandSettings.OsmandPreference pref = ((OsmandApplication) getApplication()).getSettings().VOICE_PROMPT_DELAY[ams];
+ if (pref != null) {
+ if (pref.get() >= 3000) {
+ pref.set(0);
} else {
- ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.set(1000);
+ pref.set(pref.get() + 500);
}
- infoButton.setText("\u25BA (11.1) (Tap to refresh)\n" + getVoiceSystemInfo());
- Toast.makeText(TestVoiceActivity.this, "BT SCO init delay changed to " + ((OsmandApplication) getApplication()).getSettings().BT_SCO_DELAY.get() + "\u00A0ms.", Toast.LENGTH_LONG).show();
- } else {
- Toast.makeText(TestVoiceActivity.this, "Setting only available when using 'Phone call audio'.", Toast.LENGTH_LONG).show();
+ Toast.makeText(TestVoiceActivity.this, "Voice prompt delay changed to " + pref.get() + "\u00A0ms.", Toast.LENGTH_LONG).show();
}
+ infoButton.setText("\u25BA (11.1) (Tap to refresh)\n" + getVoiceSystemInfo());
+
}
}
});
diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java
index 4b991c2b8e..224226f818 100644
--- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java
+++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java
@@ -27,6 +27,7 @@ import androidx.appcompat.widget.SwitchCompat;
import androidx.core.content.ContextCompat;
import net.osmand.AndroidUtils;
+import net.osmand.CallbackWithObject;
import net.osmand.GPXUtilities;
import net.osmand.PlatformUtil;
import net.osmand.core.android.MapRendererContext;
@@ -47,13 +48,16 @@ import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.MapActivityLayers;
import net.osmand.plus.activities.PluginActivity;
import net.osmand.plus.activities.SettingsActivity;
+import net.osmand.plus.dashboard.DashboardOnMap;
import net.osmand.plus.inapp.InAppPurchaseHelper;
import net.osmand.plus.poi.PoiFiltersHelper;
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.render.RendererRegistry;
+import net.osmand.plus.settings.ConfigureMenuRootFragment.ScreenType;
import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.corenative.NativeCoreContext;
+import net.osmand.plus.wikipedia.WikipediaPoiMenu;
import net.osmand.render.RenderingRule;
import net.osmand.render.RenderingRuleProperty;
import net.osmand.render.RenderingRuleStorageProperties;
@@ -98,6 +102,8 @@ import static net.osmand.aidlapi.OsmAndCustomizationConstants.SHOW_CATEGORY_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.TEXT_SIZE_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.TRANSPORT_ID;
import static net.osmand.aidlapi.OsmAndCustomizationConstants.TRANSPORT_RENDERING_ID;
+import static net.osmand.aidlapi.OsmAndCustomizationConstants.WIKIPEDIA_ID;
+import static net.osmand.plus.poi.PoiFiltersHelper.PoiTemplateList;
import static net.osmand.plus.srtmplugin.SRTMPlugin.CONTOUR_DENSITY_ATTR;
import static net.osmand.plus.srtmplugin.SRTMPlugin.CONTOUR_LINES_ATTR;
import static net.osmand.plus.srtmplugin.SRTMPlugin.CONTOUR_LINES_SCHEME_ATTR;
@@ -123,7 +129,7 @@ public class ConfigureMapMenu {
OsmandApplication app = ma.getMyApplication();
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
- ContextMenuAdapter adapter = new ContextMenuAdapter();
+ ContextMenuAdapter adapter = new ContextMenuAdapter(app);
adapter.setDefaultLayoutId(R.layout.list_item_icon_and_menu);
adapter.addItem(new ContextMenuItem.ItemBuilder()
.setId(APP_PROFILES_ID)
@@ -151,7 +157,6 @@ public class ConfigureMapMenu {
adapter.setNightMode(nightMode);
createLayersItems(customRules, adapter, ma, themeRes, nightMode);
createRenderingAttributeItems(customRules, adapter, ma, themeRes, nightMode);
-
return adapter;
}
@@ -195,6 +200,10 @@ public class ConfigureMapMenu {
} else if (itemId == R.string.layer_gpx_layer && cm.getItem(pos).getSelected()) {
showGpxSelectionDialog(adapter, adapter.getItem(pos));
return false;
+ } else if (itemId == R.string.shared_string_wikipedia) {
+ ma.getDashboard().setDashboardVisibility(true, DashboardOnMap.DashboardType.WIKIPEDIA,
+ AndroidUtils.getCenterViewCoordinates(view));
+ return false;
} else {
CompoundButton btn = (CompoundButton) view.findViewById(R.id.toggle_item);
if (btn != null && btn.getVisibility() == View.VISIBLE) {
@@ -217,11 +226,12 @@ public class ConfigureMapMenu {
item.setColorRes(isChecked ? R.color.osmand_orange : ContextMenuItem.INVALID_ID);
}
if (itemId == R.string.layer_poi) {
- poiFiltersHelper.clearSelectedPoiFilters();
+ poiFiltersHelper.clearSelectedPoiFilters(PoiTemplateList.POI);
if (isChecked) {
showPoiFilterDialog(adapter, adapter.getItem(pos));
} else {
- adapter.getItem(pos).setDescription(poiFiltersHelper.getSelectedPoiFiltersName());
+ adapter.getItem(pos).setDescription(
+ poiFiltersHelper.getSelectedPoiFiltersName(PoiTemplateList.POI));
}
} else if (itemId == R.string.layer_amenity_label) {
settings.SHOW_POI_LABEL.set(isChecked);
@@ -235,6 +245,18 @@ public class ConfigureMapMenu {
} else {
showGpxSelectionDialog(adapter, adapter.getItem(pos));
}
+ } else if (itemId == R.string.shared_string_wikipedia) {
+ WikipediaPoiMenu.toggleWikipediaPoi(ma, isChecked, true,
+ new CallbackWithObject() {
+ @Override
+ public boolean processResult(Boolean selected) {
+ item.setSelected(selected);
+ item.setColorRes(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID);
+ item.setDescription(selected ? WikipediaPoiMenu.getLanguagesSummary(ma.getMyApplication()) : null);
+ adapter.notifyDataSetChanged();
+ return true;
+ }
+ });
} else if (itemId == R.string.map_markers) {
settings.SHOW_MAP_MARKERS.set(isChecked);
} else if (itemId == R.string.layer_map) {
@@ -278,14 +300,14 @@ public class ConfigureMapMenu {
@Override
public void dismiss() {
PoiFiltersHelper pf = ma.getMyApplication().getPoiFilters();
- boolean selected = pf.isShowingAnyPoi();
+ boolean selected = pf.isShowingAnyPoi(PoiTemplateList.POI);
item.setSelected(selected);
- item.setDescription(pf.getSelectedPoiFiltersName());
+ item.setDescription(pf.getSelectedPoiFiltersName(PoiTemplateList.POI));
item.setColorRes(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID);
adapter.notifyDataSetChanged();
}
};
- if (poiFiltersHelper.getSelectedPoiFilters().size() > 1) {
+ if (poiFiltersHelper.isShowingAnyPoi(PoiTemplateList.POI)) {
ma.getMapLayers().showMultichoicePoiFilterDialog(ma.getMapView(),
dismissListener);
} else {
@@ -295,7 +317,7 @@ public class ConfigureMapMenu {
}
}
- private void createLayersItems(List customRules, ContextMenuAdapter adapter,
+ private void createLayersItems(List customRules, ContextMenuAdapter adapter,
final MapActivity activity, final int themeRes, final boolean nightMode) {
final OsmandApplication app = activity.getMyApplication();
final OsmandSettings settings = app.getSettings();
@@ -315,12 +337,12 @@ public class ConfigureMapMenu {
.setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID)
.setIcon(R.drawable.ic_action_fav_dark)
.setListener(l).createItem());
- selected = app.getPoiFilters().isShowingAnyPoi();
+ selected = app.getPoiFilters().isShowingAnyPoi(PoiTemplateList.POI);
adapter.addItem(new ContextMenuItem.ItemBuilder()
.setId(POI_OVERLAY_ID)
.setTitleId(R.string.layer_poi, activity)
.setSelected(selected)
- .setDescription(app.getPoiFilters().getSelectedPoiFiltersName())
+ .setDescription(app.getPoiFilters().getSelectedPoiFiltersName(PoiTemplateList.POI))
.setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID)
.setIcon(R.drawable.ic_action_info_dark)
.setSecondaryIcon(R.drawable.ic_action_additional_option)
@@ -526,6 +548,17 @@ public class ConfigureMapMenu {
.setSecondaryIcon(R.drawable.ic_action_additional_option)
.setListener(l).createItem());
+ selected = app.getPoiFilters().isShowingAnyPoi(PoiTemplateList.WIKI);
+ adapter.addItem(new ContextMenuItem.ItemBuilder()
+ .setId(WIKIPEDIA_ID)
+ .setTitleId(R.string.shared_string_wikipedia, activity)
+ .setDescription(selected ? WikipediaPoiMenu.getLanguagesSummary(app) : null)
+ .setSelected(selected)
+ .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID)
+ .setIcon(R.drawable.ic_plugin_wikipedia)
+ .setSecondaryIcon(R.drawable.ic_action_additional_option)
+ .setListener(l).createItem());
+
selected = settings.SHOW_MAP_MARKERS.get();
adapter.addItem(new ContextMenuItem.ItemBuilder()
.setId(MAP_MARKERS_ID)
@@ -567,7 +600,7 @@ public class ConfigureMapMenu {
final OsmandSettings settings = app.getSettings();
final int selectedProfileColorRes = settings.APPLICATION_MODE.get().getIconColorInfo().getColor(nightMode);
final int selectedProfileColor = ContextCompat.getColor(app, selectedProfileColorRes);
-
+
adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.map_widget_map_rendering, activity)
.setId(MAP_RENDERING_CATEGORY_ID)
.setCategory(true).setLayout(R.layout.list_group_title_with_switch).createItem());
@@ -1151,7 +1184,7 @@ public class ConfigureMapMenu {
final AlertDialog dialog = bld.create();
dialogAdapter.setDialog(dialog);
-
+
if (customRulesIncluded != null) {
for (RenderingRuleProperty p : customRulesIncluded) {
if (!p.isBoolean()) {
diff --git a/OsmAnd/src/net/osmand/plus/dialogs/FavoriteDialogs.java b/OsmAnd/src/net/osmand/plus/dialogs/FavoriteDialogs.java
index d52e5dccf9..3924bcdcb8 100644
--- a/OsmAnd/src/net/osmand/plus/dialogs/FavoriteDialogs.java
+++ b/OsmAnd/src/net/osmand/plus/dialogs/FavoriteDialogs.java
@@ -29,6 +29,7 @@ import net.osmand.plus.FavouritesDbHelper;
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
+import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.FavoritesListFragment.FavouritesAdapter;
import net.osmand.plus.activities.MapActivity;
@@ -41,6 +42,8 @@ public class FavoriteDialogs {
public static Dialog createReplaceFavouriteDialog(final Activity activity, final Bundle args) {
OsmandApplication app = (OsmandApplication) activity.getApplication();
+ boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
final FavouritesDbHelper helper = app.getFavorites();
final List points = new ArrayList(helper.getFavouritePoints());
final FavouritesAdapter favouritesAdapter = new FavouritesAdapter(activity, points,false);
@@ -56,15 +59,18 @@ public class FavoriteDialogs {
favouritesAdapter.sortByDefault(true);
if(points.size() == 0){
- Toast.makeText(activity, activity.getString(R.string.fav_points_not_exist), Toast.LENGTH_SHORT).show();
+ Toast.makeText(themedContext, activity.getString(R.string.fav_points_not_exist), Toast.LENGTH_SHORT).show();
return null;
}
- return showFavoritesDialog(activity, favouritesAdapter, click, null, dlgHolder, true);
+ return showFavoritesDialog(themedContext, favouritesAdapter, click, null, dlgHolder, true);
}
private static void confirmReplace(final Activity activity, final Bundle args, final FavouritesDbHelper helper,
final FavouritesAdapter favouritesAdapter, final Dialog[] dlgHolder, int position) {
- AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+ OsmandApplication app = (OsmandApplication) activity.getApplication();
+ boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
+ AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
builder.setTitle(R.string.update_existing);
final FavouritePoint fp = favouritesAdapter.getItem(position);
builder.setMessage(activity.getString(R.string.replace_favorite_confirmation, fp.getName()));
@@ -78,6 +84,7 @@ public class FavoriteDialogs {
}
FavouritePoint point = (FavouritePoint) args.getSerializable(KEY_FAVORITE);
if (helper.editFavourite(fp, point.getLatitude(), point.getLongitude())) {
+ helper.deleteFavourite(point);
if (activity instanceof MapActivity) {
((MapActivity) activity).getContextMenu()
.show(new LatLon(point.getLatitude(), point.getLongitude()), fp.getPointDescription(activity), fp);
@@ -110,10 +117,13 @@ public class FavoriteDialogs {
}
public static Dialog createAddFavouriteDialog(final Activity activity, final Bundle args) {
- AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+ final OsmandApplication app = (OsmandApplication) activity.getApplication();
+ boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
+ final Context themedContext = UiUtilities.getThemedContext(activity, nightMode);
+ AlertDialog.Builder builder = new AlertDialog.Builder(themedContext);
builder.setTitle(R.string.favourites_context_menu_edit);
- final View v = activity.getLayoutInflater().inflate(R.layout.favorite_edit_dialog, null, false);
- final FavouritesDbHelper helper = ((OsmandApplication) activity.getApplication()).getFavorites();
+ final View v = UiUtilities.getInflater(activity, nightMode).inflate(R.layout.favorite_edit_dialog, null, false);
+ final FavouritesDbHelper helper = app.getFavorites();
builder.setView(v);
final EditText editText = (EditText) v.findViewById(R.id.Name);
final EditText description = (EditText) v.findViewById(R.id.description);
@@ -124,15 +134,14 @@ public class FavoriteDialogs {
list[i] = gs.get(i).getName();
}
cat.setAdapter(new ArrayAdapter(activity, R.layout.list_textview, list));
-
- if (((OsmandApplication)activity.getApplication()).accessibilityEnabled()) {
+ if (app.accessibilityEnabled()) {
final TextView textButton = (TextView)v.findViewById(R.id.TextButton);
textButton.setClickable(true);
textButton.setFocusable(true);
textButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- AlertDialog.Builder b = new AlertDialog.Builder(activity);
+ AlertDialog.Builder b = new AlertDialog.Builder(themedContext);
b.setTitle(R.string.access_category_choice);
b.setItems(list, new DialogInterface.OnClickListener() {
@Override
@@ -164,7 +173,6 @@ public class FavoriteDialogs {
@Override
public void onClick(DialogInterface dialog, int which) {
final FavouritePoint point = (FavouritePoint) args.getSerializable(KEY_FAVORITE);
- OsmandApplication app = (OsmandApplication) activity.getApplication();
String categoryStr = cat.getText().toString().trim();
final FavouritesDbHelper helper = app.getFavorites();
app.getSettings().LAST_FAV_CATEGORY_ENTERED.set(categoryStr);
diff --git a/OsmAnd/src/net/osmand/plus/dialogs/PluginInstalledBottomSheetDialog.java b/OsmAnd/src/net/osmand/plus/dialogs/PluginInstalledBottomSheetDialog.java
index 2e884f8022..d9f37eaf11 100644
--- a/OsmAnd/src/net/osmand/plus/dialogs/PluginInstalledBottomSheetDialog.java
+++ b/OsmAnd/src/net/osmand/plus/dialogs/PluginInstalledBottomSheetDialog.java
@@ -91,7 +91,7 @@ public class PluginInstalledBottomSheetDialog extends MenuBottomSheetDialogFragm
BaseBottomSheetItem pluginTitle = new SimpleBottomSheetItem.Builder()
.setTitle(pluginTitleSpan)
.setTitleColorId(nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light)
- .setIcon(getContentIcon(R.drawable.ic_extension_dark))
+ .setIcon(plugin.getLogoResource())
.setLayoutId(R.layout.bottom_sheet_item_simple_56dp)
.create();
items.add(pluginTitle);
diff --git a/OsmAnd/src/net/osmand/plus/dialogs/RasterMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/RasterMapMenu.java
index 0f837c7565..70392ce7b3 100644
--- a/OsmAnd/src/net/osmand/plus/dialogs/RasterMapMenu.java
+++ b/OsmAnd/src/net/osmand/plus/dialogs/RasterMapMenu.java
@@ -24,7 +24,7 @@ public class RasterMapMenu {
public static ContextMenuAdapter createListAdapter(final MapActivity mapActivity,
final RasterMapType type) {
boolean nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls();
- ContextMenuAdapter adapter = new ContextMenuAdapter();
+ ContextMenuAdapter adapter = new ContextMenuAdapter(mapActivity.getMyApplication());
adapter.setDefaultLayoutId(R.layout.list_item_icon_and_menu);
adapter.setProfileDependent(true);
adapter.setNightMode(nightMode);
diff --git a/OsmAnd/src/net/osmand/plus/dialogs/SelectMapStyleBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/dialogs/SelectMapStyleBottomSheetDialogFragment.java
index d09a2d6c20..93d05d86d7 100644
--- a/OsmAnd/src/net/osmand/plus/dialogs/SelectMapStyleBottomSheetDialogFragment.java
+++ b/OsmAnd/src/net/osmand/plus/dialogs/SelectMapStyleBottomSheetDialogFragment.java
@@ -29,13 +29,14 @@ import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemTitleWithDescrAndButton;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.SubtitleDividerItem;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem;
-import net.osmand.plus.openseamapsplugin.NauticalMapsPlugin;
import net.osmand.plus.render.RendererRegistry;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.render.RenderingRulesStorage;
+import net.osmand.util.Algorithms;
import java.util.ArrayList;
import java.util.Comparator;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -176,11 +177,21 @@ public class SelectMapStyleBottomSheetDialogFragment extends MenuBottomSheetDial
return collator.compare(string1, string2);
}
});
+ Map renderers = getMyApplication().getRendererRegistry().getRenderers();
+ List disabledRendererNames = OsmandPlugin.getDisabledRendererNames();
- List names = new ArrayList<>(getMyApplication().getRendererRegistry().getRendererNames());
- if (OsmandPlugin.getEnabledPlugin(NauticalMapsPlugin.class) == null) {
- names.remove(RendererRegistry.NAUTICAL_RENDER);
+ if (!Algorithms.isEmpty(disabledRendererNames)) {
+ Iterator> iterator = renderers.entrySet().iterator();
+ while (iterator.hasNext()) {
+ String rendererVal = iterator.next().getValue();
+ String rendererFileName = Algorithms.getFileWithoutDirs(rendererVal);
+ if (disabledRendererNames.contains(rendererFileName)) {
+ iterator.remove();
+ }
+ }
}
+
+ List names = new ArrayList<>(renderers.keySet());
for (String name : names) {
String translation = RendererRegistry.getTranslatedRendererName(context, name);
if (translation == null) {
diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java
index b96d3c268b..5e726d7530 100644
--- a/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java
+++ b/OsmAnd/src/net/osmand/plus/download/DownloadActivity.java
@@ -584,17 +584,7 @@ public class DownloadActivity extends AbstractDownloadActivity implements Downlo
protected void onPostExecute(List warnings) {
setSupportProgressBarIndeterminateVisibility(false);
if (!warnings.isEmpty()) {
- final StringBuilder b = new StringBuilder();
- boolean f = true;
- for (String w : warnings) {
- if (f) {
- f = false;
- } else {
- b.append('\n');
- }
- b.append(w);
- }
- Toast.makeText(DownloadActivity.this, b.toString(), Toast.LENGTH_LONG).show();
+ Toast.makeText(DownloadActivity.this, AndroidUtils.formatWarnings(warnings).toString(), Toast.LENGTH_LONG).show();
}
newDownloadIndexes();
}
diff --git a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java
index ddf99ce9ab..cffef21b6e 100644
--- a/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java
+++ b/OsmAnd/src/net/osmand/plus/download/ui/LocalIndexesFragment.java
@@ -164,7 +164,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement
private void showContextMenu(final LocalIndexInfo info) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- final ContextMenuAdapter adapter = new ContextMenuAdapter();
+ final ContextMenuAdapter adapter = new ContextMenuAdapter(getMyApplication());
basicFileOperation(info, adapter);
OsmandPlugin.onContextMenuActivity(getActivity(), null, info, adapter);
@@ -704,7 +704,7 @@ public class LocalIndexesFragment extends OsmandExpandableListFragment implement
//hide action bar from downloadindexfragment
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
int iconColorResId = getMyApplication().getSettings().isLightContent() ? R.color.active_buttons_and_links_text_light : R.color.active_buttons_and_links_text_dark;
- optionsMenuAdapter = new ContextMenuAdapter();
+ optionsMenuAdapter = new ContextMenuAdapter(requireMyApplication());
ItemClickListener listener = new ContextMenuAdapter.ItemClickListener() {
@Override
public boolean onContextMenuClick(ArrayAdapter adapter,
diff --git a/OsmAnd/src/net/osmand/plus/helpers/ColorDialogs.java b/OsmAnd/src/net/osmand/plus/helpers/ColorDialogs.java
index c9c2b03434..85771650e3 100644
--- a/OsmAnd/src/net/osmand/plus/helpers/ColorDialogs.java
+++ b/OsmAnd/src/net/osmand/plus/helpers/ColorDialogs.java
@@ -1,12 +1,9 @@
package net.osmand.plus.helpers;
-import android.app.Activity;
import android.content.Context;
-import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
-import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
@@ -15,7 +12,7 @@ import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
-import androidx.annotation.ColorRes;
+import androidx.annotation.ColorInt;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
@@ -26,7 +23,7 @@ import java.util.Random;
import gnu.trove.list.array.TIntArrayList;
-import static android.util.TypedValue.COMPLEX_UNIT_DIP;
+import static net.osmand.AndroidUtils.dpToPx;
public class ColorDialogs {
public static int[] paletteColors = new int[] {
@@ -45,17 +42,17 @@ public class ColorDialogs {
};
public static int[] pallette = new int[] {
- 0xb4eecc22,
- 0xb4d00d0d,
- 0xb4ff5020,
- 0xb4eeee10,
- 0xb488e030,
- 0xb400842b,
- 0xb410c0f0,
- 0xb41010a0,
- 0xb4a71de1,
- 0xb4e044bb,
- 0xb48e2512,
+ 0xffeecc22,
+ 0xffd00d0d,
+ 0xffff5020,
+ 0xffeeee10,
+ 0xff88e030,
+ 0xff00842b,
+ 0xff10c0f0,
+ 0xff1010a0,
+ 0xffa71de1,
+ 0xffe044bb,
+ 0xff8e2512,
0xff000001
};
@@ -171,8 +168,8 @@ public class ColorDialogs {
colorSpinner.setSelection(selection);
}
- public static void setupColorSpinnerEx(final Activity ctx, int selectedColor, final Spinner colorSpinner,
- final TIntArrayList colors, OnItemSelectedListener listener) {
+ public static void setupColorSpinnerEx(final Context ctx, int selectedColor, final Spinner colorSpinner,
+ final TIntArrayList colors, OnItemSelectedListener listener) {
colors.add(pallette);
List colorNames = new ArrayList();
int selection = -1;
@@ -237,16 +234,15 @@ public class ColorDialogs {
return "#" + c; //$NON-NLS-1$
}
- private static Drawable getIcon(final Activity activity, int resId, int color) {
- OsmandApplication app = (OsmandApplication)activity.getApplication();
- Drawable d = app.getResources().getDrawable(resId).mutate();
+ private static Drawable getIcon(final Context ctx, int resId, int color) {
+ Drawable d = ctx.getResources().getDrawable(resId).mutate();
d.clearColorFilter();
d.setColorFilter(color, PorterDuff.Mode.SRC_IN);
return d;
}
- public static int getColorName(@ColorRes int color) {
- int colorName = R.string.rendering_value_darkyellow_name;
+ public static int getColorName(@ColorInt int color) {
+ int colorName = R.string.custom_color;
for (int i = 0; i < ColorDialogs.pallette.length; i++) {
if (ColorDialogs.pallette[i] == color) {
colorName = ColorDialogs.paletteColors[i];
@@ -256,12 +252,14 @@ public class ColorDialogs {
return colorName;
}
- private static int dpToPx(final Activity activity, float dp) {
- Resources r = activity.getResources();
- return (int) TypedValue.applyDimension(
- COMPLEX_UNIT_DIP,
- dp,
- r.getDisplayMetrics()
- );
+ public static boolean isPaletteColor(@ColorInt int color) {
+ boolean isPaletteColor = false;
+ for (int i = 0; i < ColorDialogs.pallette.length; i++) {
+ if (ColorDialogs.pallette[i] == color) {
+ isPaletteColor = true;
+ break;
+ }
+ }
+ return isPaletteColor;
}
}
diff --git a/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java b/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java
new file mode 100644
index 0000000000..ab52559b28
--- /dev/null
+++ b/OsmAnd/src/net/osmand/plus/helpers/GpxTrackAdapter.java
@@ -0,0 +1,175 @@
+package net.osmand.plus.helpers;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import net.osmand.AndroidUtils;
+import net.osmand.GPXUtilities;
+import net.osmand.IndexConstants;
+import net.osmand.plus.GPXDatabase;
+import net.osmand.plus.GpxDbHelper;
+import net.osmand.plus.OsmAndFormatter;
+import net.osmand.plus.OsmandApplication;
+import net.osmand.plus.R;
+import net.osmand.plus.UiUtilities;
+import net.osmand.util.Algorithms;
+
+import java.io.File;
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.List;
+
+public class GpxTrackAdapter extends RecyclerView.Adapter