diff --git a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java index 7d3efda165..b4d3f1118e 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/MapObject.java @@ -211,6 +211,10 @@ public abstract class MapObject implements Comparable { location = new LatLon(latitude, longitude); } + public void setLocation(LatLon loc) { + location = loc; + } + @Override public int compareTo(MapObject o) { return OsmAndCollator.primaryCollator().compare(getName(), o.getName()); diff --git a/OsmAnd-java/src/main/java/net/osmand/data/TransportRoute.java b/OsmAnd-java/src/main/java/net/osmand/data/TransportRoute.java index 02dbf811c3..64839b8649 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/TransportRoute.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/TransportRoute.java @@ -65,8 +65,12 @@ public class TransportRoute extends MapObject { return forwardWays; } - public void mergeForwardWays() { + mergeRouteWays(forwardWays); + resortWaysToStopsOrder(forwardWays, forwardStops); + } + + public static void mergeRouteWays(List forwardWays) { boolean changed = true; // combine as many ways as possible while (changed && forwardWays != null) { @@ -129,10 +133,13 @@ public class TransportRoute extends MapObject { } } } - if (forwardStops.size() > 0) { + } + + public static Map resortWaysToStopsOrder(List forwardWays, List forwardStops) { + final Map orderWays = new HashMap(); + if (forwardWays != null && forwardStops.size() > 0) { // resort ways to stops order - final Map orderWays = new HashMap(); - for (Way w : getForwardWays()) { + for (Way w : forwardWays) { int[] pair = new int[] { 0, 0 }; Node firstNode = w.getFirstNode(); TransportStop st = forwardStops.get(0); @@ -175,6 +182,7 @@ public class TransportRoute extends MapObject { } } + return orderWays; } diff --git a/OsmAnd-java/src/main/java/net/osmand/map/TileSourceManager.java b/OsmAnd-java/src/main/java/net/osmand/map/TileSourceManager.java index 7632bea59f..e093fc6d0c 100644 --- a/OsmAnd-java/src/main/java/net/osmand/map/TileSourceManager.java +++ b/OsmAnd-java/src/main/java/net/osmand/map/TileSourceManager.java @@ -67,6 +67,7 @@ public class TileSourceManager { private String randoms; private String[] randomsArray; private String rule; + private String referer; private boolean hidden; // if hidden in configure map settings, for example mapillary sources private boolean isRuleAcceptable = true; @@ -253,7 +254,11 @@ public class TileSourceManager { } public String getReferer() { - return null; + return referer; + } + + public void setReferer(String referer) { + this.referer = referer; } @Override @@ -469,12 +474,16 @@ public class TileSourceManager { public static void createMetaInfoFile(File dir, TileSourceTemplate tm, boolean override) throws IOException { File metainfo = new File(dir, ".metainfo"); //$NON-NLS-1$ Map properties = new LinkedHashMap(); - if (tm.getRule() != null && tm.getRule().length() > 0) { + + if (!Algorithms.isEmpty(tm.getRule())) { properties.put("rule", tm.getRule()); } if(tm.getUrlTemplate() != null) { properties.put("url_template", tm.getUrlTemplate()); } + if (!Algorithms.isEmpty(tm.getReferer())) { + properties.put("referer", tm.getReferer()); + } properties.put("ext", tm.getTileFormat()); properties.put("min_zoom", tm.getMinimumZoomSupported() + ""); diff --git a/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java index d55a7e8087..7b0b5b9f67 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java @@ -965,13 +965,12 @@ public class TransportRoutePlanner { } } - - //cache for converted TransportRoutes: - private static TLongObjectHashMap convertedRoutesCache; - private static TLongObjectHashMap convertedStopsCache; - public static List convertToTransportRoutingResult(NativeTransportRoutingResult[] res, - TransportRoutingConfiguration cfg) { + TransportRoutingConfiguration cfg) { + //cache for converted TransportRoutes: + TLongObjectHashMap convertedRoutesCache = new TLongObjectHashMap<>(); + TLongObjectHashMap convertedStopsCache = new TLongObjectHashMap<>(); + if (res.length == 0) { return new ArrayList(); } @@ -983,7 +982,7 @@ public class TransportRoutePlanner { for (NativeTransportRouteResultSegment ntrs : ntrr.segments) { TransportRouteResultSegment trs = new TransportRouteResultSegment(); - trs.route = convertTransportRoute(ntrs.route); + trs.route = convertTransportRoute(ntrs.route, convertedRoutesCache, convertedStopsCache); trs.walkTime = ntrs.walkTime; trs.travelDistApproximate = ntrs.travelDistApproximate; trs.travelTime = ntrs.travelTime; @@ -1001,7 +1000,9 @@ public class TransportRoutePlanner { return convertedRes; } - private static TransportRoute convertTransportRoute(NativeTransportRoute nr) { + private static TransportRoute convertTransportRoute(NativeTransportRoute nr, + TLongObjectHashMap convertedRoutesCache, + TLongObjectHashMap convertedStopsCache) { TransportRoute r = new TransportRoute(); r.setId(nr.id); r.setLocation(nr.routeLat, nr.routeLon); @@ -1013,15 +1014,17 @@ public class TransportRoutePlanner { } } r.setFileOffset(nr.fileOffset); - r.setForwardStops(convertTransportStops(nr.forwardStops)); + r.setForwardStops(convertTransportStops(nr.forwardStops, convertedStopsCache)); r.setRef(nr.ref); r.setOperator(nr.routeOperator); r.setType(nr.type); r.setDist(nr.dist); r.setColor(nr.color); - if (nr.intervals != null && nr.intervals.length > 0 && nr.avgStopIntervals !=null && nr.avgStopIntervals.length > 0 && nr.avgWaitIntervals != null && nr.avgWaitIntervals.length > 0) { - r.setSchedule(new TransportSchedule(new TIntArrayList(nr.intervals), new TIntArrayList(nr.avgStopIntervals), new TIntArrayList(nr.avgWaitIntervals))); + if (nr.intervals != null && nr.intervals.length > 0 && nr.avgStopIntervals !=null + && nr.avgStopIntervals.length > 0 && nr.avgWaitIntervals != null && nr.avgWaitIntervals.length > 0) { + r.setSchedule(new TransportSchedule(new TIntArrayList(nr.intervals), + new TIntArrayList(nr.avgStopIntervals), new TIntArrayList(nr.avgWaitIntervals))); } for (int i = 0; i < nr.waysIds.length; i++) { @@ -1032,16 +1035,14 @@ public class TransportRoutePlanner { r.addWay(new Way(nr.waysIds[i], wnodes)); } - if (convertedRoutesCache == null) { - convertedRoutesCache = new TLongObjectHashMap<>(); - } if (convertedRoutesCache.get(r.getId()) == null) { convertedRoutesCache.put(r.getId(), r); } return r; } - private static List convertTransportStops(NativeTransportStop[] nstops) { + private static List convertTransportStops(NativeTransportStop[] nstops, + TLongObjectHashMap convertedStopsCache) { List stops = new ArrayList<>(); for (NativeTransportStop ns : nstops) { if (convertedStopsCache != null && convertedStopsCache.get(ns.id) != null) { @@ -1065,16 +1066,6 @@ public class TransportRoutePlanner { s.distance = ns.distance; s.x31 = ns.x31; s.y31 = ns.y31; -// List routes1 = new ArrayList<>(); - //cache routes to avoid circular conversion and just search them by id -// for (int i = 0; i < ns.routes.length; i++) { -// if (s.getRoutesIds().length == ns.routes.length && convertedRoutesCache != null -// && convertedRoutesCache.get(ns.routesIds[i]) != null) { -// s.addRoute(convertedRoutesCache.get(ns.routesIds[i])); -// } else { -// s.addRoute(convertTransportRoute(ns.routes[i])); -// } -// } if (ns.pTStopExit_refs != null && ns.pTStopExit_refs.length > 0) { for (int i = 0; i < ns.pTStopExit_refs.length; i++) { diff --git a/OsmAnd-java/src/main/java/net/osmand/util/MapAlgorithms.java b/OsmAnd-java/src/main/java/net/osmand/util/MapAlgorithms.java index 23307babc9..e423e30860 100644 --- a/OsmAnd-java/src/main/java/net/osmand/util/MapAlgorithms.java +++ b/OsmAnd-java/src/main/java/net/osmand/util/MapAlgorithms.java @@ -182,11 +182,20 @@ public class MapAlgorithms { } } + if (outx == rightX || outx == leftX) { + if (outy >= topY && outy <= bottomY) { + bx = outx; + by = outy; + return combine2Points(bx, by); + } + } - if (outx == rightX || outx == leftX || outy == topY || outy == bottomY) { - bx = outx; - by = outy; - //return (((long) bx) << 32) | ((long) by); + if (outy == topY || outy == bottomY) { + if (leftX <= outx && outx <= rightX) { + bx = outx; + by = outy; + return combine2Points(bx, by); + } } return -1L; } diff --git a/OsmAnd-telegram/res/values-nl/strings.xml b/OsmAnd-telegram/res/values-nl/strings.xml index 1a5f07b576..b77535908e 100644 --- a/OsmAnd-telegram/res/values-nl/strings.xml +++ b/OsmAnd-telegram/res/values-nl/strings.xml @@ -156,7 +156,7 @@ Zoek door al uw groepen en contacten. Type contact- of groepnaam Zoek - Toon als + Weergave Tijd in beweging Achtergond uitvoeringen sinds diff --git a/OsmAnd-telegram/res/values-ru/strings.xml b/OsmAnd-telegram/res/values-ru/strings.xml index 69fad6f48e..ed5aaddd97 100644 --- a/OsmAnd-telegram/res/values-ru/strings.xml +++ b/OsmAnd-telegram/res/values-ru/strings.xml @@ -139,7 +139,7 @@ Последнее местоположение Статус отправки Трансляция: %1$s - Включен + Включён Статус Отсутствует GPS Отсутствует интернет diff --git a/OsmAnd/res/drawable-hdpi/map_my_location.png b/OsmAnd/res/drawable-hdpi/map_my_location.png deleted file mode 100644 index 7845932c5f..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_my_location.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_quick_action.png b/OsmAnd/res/drawable-hdpi/map_quick_action.png deleted file mode 100644 index 1f09c38137..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_quick_action.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_zoom_in.png b/OsmAnd/res/drawable-hdpi/map_zoom_in.png deleted file mode 100644 index d37a733a9b..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_zoom_in.png and /dev/null differ diff --git a/OsmAnd/res/drawable-hdpi/map_zoom_out.png b/OsmAnd/res/drawable-hdpi/map_zoom_out.png deleted file mode 100644 index 36a88d3536..0000000000 Binary files a/OsmAnd/res/drawable-hdpi/map_zoom_out.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_my_location.png b/OsmAnd/res/drawable-mdpi/map_my_location.png deleted file mode 100644 index 570e408c2e..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_my_location.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_quick_action.png b/OsmAnd/res/drawable-mdpi/map_quick_action.png deleted file mode 100644 index 5efdf2f658..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_quick_action.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_in.png b/OsmAnd/res/drawable-mdpi/map_zoom_in.png deleted file mode 100644 index 938a4d4805..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_zoom_in.png and /dev/null differ diff --git a/OsmAnd/res/drawable-mdpi/map_zoom_out.png b/OsmAnd/res/drawable-mdpi/map_zoom_out.png deleted file mode 100644 index 2051dbd1a6..0000000000 Binary files a/OsmAnd/res/drawable-mdpi/map_zoom_out.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_my_location.png b/OsmAnd/res/drawable-xhdpi/map_my_location.png deleted file mode 100644 index 5c47a7eb30..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_my_location.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_quick_action.png b/OsmAnd/res/drawable-xhdpi/map_quick_action.png deleted file mode 100644 index 3cf9fa7512..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_quick_action.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_in.png b/OsmAnd/res/drawable-xhdpi/map_zoom_in.png deleted file mode 100644 index eeb0b1a9cc..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_zoom_in.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xhdpi/map_zoom_out.png b/OsmAnd/res/drawable-xhdpi/map_zoom_out.png deleted file mode 100644 index 8e62ba2a84..0000000000 Binary files a/OsmAnd/res/drawable-xhdpi/map_zoom_out.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_my_location.png b/OsmAnd/res/drawable-xxhdpi/map_my_location.png deleted file mode 100644 index 8b82220ab9..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_my_location.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_quick_action.png b/OsmAnd/res/drawable-xxhdpi/map_quick_action.png deleted file mode 100644 index 5998ea6111..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_quick_action.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_zoom_in.png b/OsmAnd/res/drawable-xxhdpi/map_zoom_in.png deleted file mode 100644 index 363037676d..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_zoom_in.png and /dev/null differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_zoom_out.png b/OsmAnd/res/drawable-xxhdpi/map_zoom_out.png deleted file mode 100644 index 10f88a6623..0000000000 Binary files a/OsmAnd/res/drawable-xxhdpi/map_zoom_out.png and /dev/null differ diff --git a/OsmAnd/res/drawable/map_my_location.xml b/OsmAnd/res/drawable/map_my_location.xml new file mode 100644 index 0000000000..293ab5708e --- /dev/null +++ b/OsmAnd/res/drawable/map_my_location.xml @@ -0,0 +1,13 @@ + + + + diff --git a/OsmAnd/res/drawable/map_quick_action.xml b/OsmAnd/res/drawable/map_quick_action.xml new file mode 100644 index 0000000000..13dfdeacb9 --- /dev/null +++ b/OsmAnd/res/drawable/map_quick_action.xml @@ -0,0 +1,12 @@ + + + + diff --git a/OsmAnd/res/drawable/map_zoom_in.xml b/OsmAnd/res/drawable/map_zoom_in.xml new file mode 100644 index 0000000000..6b6cbf883d --- /dev/null +++ b/OsmAnd/res/drawable/map_zoom_in.xml @@ -0,0 +1,9 @@ + + + diff --git a/OsmAnd/res/drawable/map_zoom_out.xml b/OsmAnd/res/drawable/map_zoom_out.xml new file mode 100644 index 0000000000..89851264ff --- /dev/null +++ b/OsmAnd/res/drawable/map_zoom_out.xml @@ -0,0 +1,9 @@ + + + diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 6d5fcd961e..96035f7ad2 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3640,4 +3640,18 @@ \nيتم تجديد الاشتراك تلقائيًا ما لم يتم إلغاؤه قبل تاريخ التجديد. سيتم تحميل حسابك لفترة التجديد (شهر / ثلاثة أشهر / سنة) فقط في تاريخ التجديد. \n \nيمكنك إدارة وإلغاء الاشتراكات الخاصة بك عن طريق الذهاب إلى إعدادات Google Play الخاصة بك. + البحث عن أنواع poi + اجمع أنواع النقاط المهمة من فئات مختلفة. اضغط على مفتاح التبديل لتحديد الكل ، ثم انقر على الجانب الأيسر لاختيار الفئة. + متتبع أوسماند + أوسماند+ مابيلاري + إجراء سريع + مسطرة البوصلة + قياس المسافة + السفر (Wikivoyage و Wikipedia) + علامات الخريطة + المفضلة + اشتراك أوسماند لايف + مشتريات أوسماند + دليل رموز الخريطة + الملفات الشخصية للملاحة \ 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 684d9cf3c1..9dfc48b742 100644 --- a/OsmAnd/res/values-b+kab/strings.xml +++ b/OsmAnd/res/values-b+kab/strings.xml @@ -1298,4 +1298,12 @@ Tisdatin deg ukilumitr nmi ft + Ttekki deg OpenStreetMap (OSM) srid seg usnas OSMAnd. Amedya: rnu neɣ beddel agazen yelhan n OSM, rnu neɣ beddel tizmilin OSM sakin azen iberdan-ik GPX (aya ilaq umiḍan OSM). OpenStreetMap d tarbaɛt yeldin, tamaḍalant n tkarḍa tazayazt. + Taẓrigt OpenStreetMap + Rmed, deg OsmAnd, iɣewwaren n tuffart n yibenk-ik (ṣeggem arured n taɣect-ik n uɛqal n taɣect, seqdec tignit trackball i usemɣer neɣ i urmad n yilɣa s taɣect n wadig-ik). + Asikel (Wikivoyage d Wikipedia) + Inurifen + Ajerred - OsmAnd Srid + Tiɣin deg OsmAnd + Imuɣna n tunigin \ No newline at end of file diff --git a/OsmAnd/res/values-bn/phrases.xml b/OsmAnd/res/values-bn/phrases.xml index d233579606..37ac51e682 100644 --- a/OsmAnd/res/values-bn/phrases.xml +++ b/OsmAnd/res/values-bn/phrases.xml @@ -85,4 +85,42 @@ ধরণ ভেন্ডিং টাইপ জ্বালানির ধরণ (এভিয়া) + ওয়াশিং মেশিন + তাঁবু + ম্যাসাজ টাইপ + স্বাস্থ্য বিশেষত্ব + ডায়েট + নগ্নতাবাদ + পৃষ্ঠতল + জলের বৈশিষ্ট্য + মৌসুমী + অগ্নিকুণ্ড + ধরণ + গৃহীত বর্জ্য + ধরণ + সেবা + মাইক্রোব্রিয়ারি + ককটেল + টেক আওয়ায় + ড্রাইভ থ্রু + ড্রাইভ ইন + ডেলিভারি + ধূমপান + ফি + বাইরে বসার ব্যবস্থা + জেনরে + স্কি স্থান এর গ্রুমিং + স্কি স্থান এর কাঠিন্য + ধরণ + গ্রাম্য এলাকা + স্কাউট ক্যাম্প + অতিরিক্ত + বিষয়বস্তু + ধরণ + আখ্যা + ধর্ম + ষ্টার রেটিং + ধরণ + বিশিষ্ট + বিশিষ্টতা \ No newline at end of file diff --git a/OsmAnd/res/values-bn/strings.xml b/OsmAnd/res/values-bn/strings.xml index 529499c46b..1dd3435fca 100644 --- a/OsmAnd/res/values-bn/strings.xml +++ b/OsmAnd/res/values-bn/strings.xml @@ -21,4 +21,7 @@ আমার অবস্থান ও গন্তব্য এর মধ্যকার সর্বনিম্ন কোন তৈরী করা হচ্ছে কিছু নির্বাচন করা হয়নি + ওএসএমও কেনাকাটা + একটি মানচিত্রের প্রতীকের জন্য গাইড + ন্যাভিগেশন প্রোফাইল \ No newline at end of file diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index ecf95a1ad3..fbc830f42b 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3647,4 +3647,16 @@ Repræsenterer område: %1$s x %2$s Nogle Wikipedia-artikler er muligvis ikke tilgængelige på dit sprog. Ekstra kort Ikke understøttet handling %1$s + %1$s / %2$s + Søg efter IP-typer + Kombiner IP-typer fra forskellige kategorier. Tryk på knappen for at vælge alt, tryk på venstre side for valg af kategori. + OsmAnd + Mapillary + Genveje + Radiusmåler + Mål afstand + Rejser (Wikivoyage og Wikipedia) + Kortmarkører + Favoritter + Abonnement - OsmAnd Live + Navigationsprofiler \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index bce4054b17..4951fb01fe 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -3669,4 +3669,19 @@ Lon %2$s Sie können auf diese Aktionen zugreifen, indem Sie auf die Schaltfläche „Aktionen“ tippen. Wählen Sie die Sprachen aus, in denen Wikipedia-Artikel auf der Karte erscheinen sollen. Sie können zwischen allen verfügbaren Sprachen wechseln, während Sie den Artikel lesen. Diese Elemente werden aus dem Menü ausgeblendet, aber die dargestellten Optionen oder Plugins funktionieren weiterhin. + Ordnen Sie Elemente aus %1$s neu an oder blenden Sie sie aus. + %1$s / %2$s + Die Bezahlung wird nach der Bestätigung des Kaufs von ihrem Google Play Account abgebucht. +\n +\nDas Abonnement verlängert sich automatisch, sofern es nicht vor dem Verlängerungsdatum gekündigt wird. Erst nach dem Verlängerungsdatum wird die Bezahlung für die Verlängerungsperiode (1 Monat/ 3 Monate/ 1 Jahr) von ihrem Account abgebucht. +\n +\nSie können ihre Abonnements in ihrem Google Play Einstellungen verwalten oder kündigen. + Suche nach POI-Typen + Kombinieren Sie POI-Typen aus verschiedenen Kategorien. Tippen Sie auf den Schalter, um alle auszuwählen, tippen Sie auf die linke Seite, um die Kategorie auszuwählen. + + Schnellaktion + Zirkel + Entfernungsmesser + Kartenmarkierungen + Favoriten \ No newline at end of file diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index a2f618821d..dd4e293ce1 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -1923,9 +1923,9 @@ Lon: %2$s Unua uzo Kiel elŝuti mapojn, bazaj agordoj. Navigadaj agordoj. - Planado de vojaĝo - Map-foliumado - Serĉado en mapo + Plani vojaĝon + Foliumi mapon + Serĉi en la mapo Instalado kaj problemoj Teĥnikaj artikoloj Versioj @@ -3596,18 +3596,18 @@ Indikas lokon: %1$s x %2$s" 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. + Aplikis ŝanĝojn al la profilo “%1$s”. + Ne povas legi el “%1$s”. + Ne povas skribi al “%1%s”. + Ne povas enporti el “%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. + La “ĉefaj agoj” povas enhavi nur 4 butonojn. Ĉefaj agoj - Vi povas aliri tiujn ĉi agojn per la butono “agoj”. + Vi povas aliri tiujn ĉi agojn per la butono “pliaj agoj”. Vi povas movi elementojn nur ene tiu ĉi kategorio. Programista kromprogramo Elementoj @@ -3623,7 +3623,7 @@ Indikas lokon: %1$s x %2$s" 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. + Per kaŝi agordojn, ili revenos al la implicitaj valoroj. Elektu lingvojn, en kiuj artikoloj de Vikipedio montriĝos sur la mapo. Vi povos baskuli inter ĉiuj disponeblaj lingvoj dum legi artikolon. Iuj artikoloj de Vikipedio povas ne esti disponeblaj en via lingvo. Kantona @@ -3657,11 +3657,19 @@ Indikas lokon: %1$s x %2$s" Kromaj mapoj Nesubtenata ago %1$s %1$s / %2$s - Pago estos prenita per via konto Google Play post konfirmi aĉeton. -\n -\nLa abono aŭtomate renoviĝos escepte se ĝi estos nuligita antaŭ la dato de renoviĝo. La abonpago estos prenita por la specifa periodo (monato/tri monatoj/jaro) nur je la dato de renoviĝo. -\n -\nVi povas administri kaj rezigni la abonon en agordoj de Google Play. + La pago estos prenita el via konto Google Play kiam aĉeti abonon kaj kiam ĝi malvalidiĝos (por monato/tri monatoj/jaro), kaj ne renoviĝos aŭtomate post esti rezignita per agordoj de Google Play. Miksi specojn de interesejoj el diversaj kategorioj. Frapetu “ŝaltilon” por elekti ĉiujn, frapetu ĉe maldekstre por elekti el la kategorio. Serĉi specojn de interesejoj + Ŝatataj ejoj + Aboni OsmAnd Live + Aĉeti OsmAnd + Enreta spurilo + Butono de rapida ago + OsmAnd + Mapillary + Radius‑mezurilo + Distanc-mezurilo + Vojaĝo (Vikivojaĝoj kaj Vikipedio) + Map‑markoj + Priskribo al simboloj sur la mapo + Profiloj de navigo \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 4c835955e1..a8f7fb2916 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3612,9 +3612,9 @@ Lon %2$s 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». + No se pudo leer desde «%1$s». + No se pudo escribir en «%1$s». + No se pudo importar desde «%1$s». Cambios aplicados al perfil «%1$s». Personaliza la cantidad de elementos en el menú lateral, la configuración del mapa y el menú contextual. \n @@ -3628,10 +3628,10 @@ Lon %2$s Los elementos debajo de este punto están separados por un divisor. Oculto Estos elementos no se muestran en el menú, pero las opciones o complementos que representan seguirán funcionando. - Los ajustes se restablecerán al estado original después de ocultarse. - Las acciones principales contienen sólo 4 botones. + Ocultar los ajustes, los restablece a su estado original. + Las «Acciones principales» sólo contienen 4 botones. Acciones principales - Puedes acceder a estas acciones, pulsando el botón «Acciones». + Puedes acceder a estas acciones, pulsando el botón «Acciones adicionales». Sólo puedes mover objetos dentro de esta categoría. Complemento de desarrollador Elementos @@ -3675,9 +3675,21 @@ Lon %2$s Mapas adicionales Acción «%1$s» no admitida %1$s / %2$s - El pago será cargado a la cuenta de Google Play al confirmar la compra. -\n -\nLa suscripción se renueva automáticamente a menos que se cancele antes de la fecha de renovación. La cuenta será cargada por el período de renovación (mes/trimestre/año) sólo en la fecha de renovación. -\n -\nPuedes administrar y cancelar las suscripciones accediendo a los ajustes de Google Play. + La cuenta de Google Play se carga al comprar una suscripción +\ny al expirar (mes/trimestre/año), +\nno se renovará si se cancela antes de esa fecha en los ajustes de Google Play. + Buscar por tipos de PDI + Combina tipos de PDI de diferentes categorías. Pulsa «Alternar» para marcar todo, pulsa el lado izquierdo para elegir una categoría. + OsmAnd Tracker + OsmAnd + Mapillary + Acción rápida + Regla radial + Medir distancia + Viajes (Wikiviajes y Wikipedia) + Marcadores del mapa + Favoritos + Suscripción - OsmAnd Live + Compras de OsmAnd + La guía para la simbología de un mapa + Perfiles de navegación \ No newline at end of file diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 336f032e6d..10a3aaabf8 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -3612,33 +3612,83 @@ Lon %2$s 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». + No se pudo leer desde «%1$s». + No se pudo escribir en «%1$s». + No se pudo importar desde «%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 + Elementos del menú lateral y menú contextual + Personaliza la cantidad de elementos en el menú lateral, la configuración del mapa y el menú contextual. +\n +\nPuedes desactivar los complementos no utilizados, para ocultar todos sus controles desde «%1$s». + Personalizar interfaz de usuario Idiomas Idioma Elementos Oculto - Cajón + Menú lateral 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». + Ocultar los ajustes, los restablece a su estado original. + Reordena u oculta elementos en «%1$s». Sólo puedes mover objetos dentro de esta categoría. - Las acciones principales contienen sólo 4 botones. + Las «Acciones principales» sólo contienen 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. + Estos elementos no se muestran en el menú, pero las opciones o complementos que representan seguirán funcionando. + Los elementos debajo de este punto están separados por un divisor. Complemento de desarrollador Acciones del menú contextual - Puedes acceder a estas acciones, pulsando el botón «Acciones». + Puedes acceder a estas acciones, pulsando el botón «Acciones adicionales». + OsmAnd + Mapillary + %1$s / %2$s + Viajes (Wikiviajes y Wikipedia) + OsmAnd Tracker + Suscripción - OsmAnd Live + Es posible que algunos artículos de Wikipedia no estén disponibles en tu idioma. + Marca los idiomas en los que los artículos de Wikipedia aparecerán en el mapa. Puedes cambiar entre todos los idiomas disponibles mientras lees el artículo. + Combina tipos de PDI de diferentes categorías. Pulsa «Alternar» para marcar todo, pulsa el lado izquierdo para elegir una categoría. + Buscar por tipos de PDI + Regla radial + Acción rápida + Compras de OsmAnd + La cuenta de Google Play se carga al comprar una suscripción +\ny al expirar (mes/trimestre/año), +\nno se renovará si se cancela antes de esa fecha en los ajustes de Google Play. + Perfiles de navegación + Medir distancia + Marcadores del mapa + La guía para la simbología de un mapa + Cantonés + Min del Sur + Yoruba + Waray + Uzbeko + Urdu + Tártaro + Tayiko + Escocés + Siciliano + Punjabi + Nepalí + Napolitano + Birmano + Mongol + Minangkabau + Malgache + Lombardo + Kirguís + Kazajo + Javanés + Gujarati + Chuvash + Checheno + Bávaro + Bashkir + Aragonés + Favoritos + Mapas adicionales + Acción «%1$s» no admitida + Color personalizado \ No newline at end of file diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 4aa1203181..914d9d73e3 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -2139,7 +2139,7 @@ افزونه‌ها اولین استفاده نحوهٔ دانلود نقشه‌ها و انجام تنظیمات پایه. - جست‌وجوی نقشه + جست‌وجو در نقشه نصب و اشکال‌زدایی مقاله‌های فنی حروف بزرگ زیادی در نام وجود دارد. ادامه می‌دهید؟ @@ -3640,10 +3640,10 @@ برف‌رو افزونهٔ سفارشی OsmAnd نقطهٔ دیگری را جانشین این کنید - تغییرات روی پروفایل %1$s به کار رفت. - خواندن %1$s ناموفق بود. - نوشتن %1$s ناموفق بود. - درون‌برد %1$s ناموفق بود. + تغییرات بر پروفایل %1$s به کار گرفته شد. + خواندن از %1$s ناموفق بود. + نوشتن در %1$s ناموفق بود. + درون‌برد از %1$s ناموفق بود. برای مشاهدهٔ نقاط ویکی‌پدیا روی نقشه باید نقشهٔ دیگری را نیز دانلود کنید. تقسیمگر ضبط‌کننده انتخاب فایل رد @@ -3653,8 +3653,8 @@ تعداد اقلام کشو را به‌دلخواه تنظیم کنید، نقشه و منوی زمینه را پیکربندی نمایید. \n \nمی‌توانید افزونهٔ بی‌استفاده را غیرفعال کنید تا همهٔ کنترل‌های آن از برنامه پنهان شود. - تنظیمات پس از پنهان‌سازی به حالت اولیه بازنشانی می‌شود. - این اقلام در منو پنهان می‌شوند، اما گزینه‌ها یا افزونه‌های متناظر همچنان کار می‌کنند. + پنهان‌سازی تنظیمات آن‌ها را به حالت اولیه بازنشانی می‌کند. + این اقلام از منو پنهان می‌شوند، اما گزینه‌ها یا افزونه‌های متناظر همچنان کار می‌کنند. پنهان جداکننده مرتب‌سازی یا پنهان‌سازی اقلام %1$s. @@ -3662,9 +3662,9 @@ اقلام کشو، منوی زمینه سفارشی‌سازی واسط کاربری کنش‌های منوی زمینه - کنش‌های اصلی فقط ۴ دکمه دارند. + کنش‌های اصلی فقط ۴ دکمه است. کنش‌های اصلی - با زدن روی دکمهٔ «کنش‌ها» می‌توانید به این کنش‌ها دسترسی پیدا کنید. + با زدن روی دکمهٔ «کنش‌های بیشتر» می‌توانید به این کنش‌ها دسترسی پیدا کنید. افزونهٔ توسعه‌دهنده چیزهایی که از این نقطه به پایین قرار می‌گیرند، با جداکننده جدا می‌شوند. اقلام را فقط درون این دسته می‌توانید جابه‌جا کنید. @@ -3677,4 +3677,41 @@ تاجیکی نقشه‌های بیشتر کنش پشتیبانی‌نشده %1$s + %1$s / %2$s + هنگام خرید اشتراک، بها از حساب گوگل‌پلی شما پرداخت می‌شود +\nو هنگامی که مدت اشتراک پایان می‌یابد (ماهانه/سه‌ماهه/سالانه)، +\nاگر پیش از پایان زمان اشتراک، اشتراک خود را از تنظیمات گوگل‌پلی لغو کرده باشید، به‌طور خودکار تمدید نخواهد شد. + OsmAnd tracker + راهنمای نمادهای نقشه + پروفایل‌های ناوبری + کانتونی + مین‌نانی + یوروبایی + وینارایی + ازبکی + تاتاری + اسکاتلندی + نپالی + ناپلی + برمه‌ای + مغولی + مینانگ‌کابائو + مالاگاسی + قرقیزی + جاوه‌ای + گوجراتی + چوواشی + چچنی + باواریایی + باشقیری + آراگونی + OsmAnd + Mapillary + کنش فوری + خط‌کش شعاعی + اندازه‌گیری مسافت + مسافرت (ویکی‌سفر و ویکی‌پدیا) + نشانه‌های نقشه + برگزیده‌ها + اشتراک - OsmAnd Live + خریدهای OsmAnd \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index d6c7ce83a4..7832d50b88 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3412,7 +3412,7 @@ représentant la zone : %1$s x %2$s Importer un profil Navigation, fiabilité d\'enregistrement Taille de l\'image, qualité audio et vidéo - Login, mot de passe, édition hors-ligne + Connexion, mot de passe, édition hors-ligne Choisissez l\'icône, la couleur et le nom Permet le partage de votre position grâce à l\'enregistrement du trajet. Suivi en ligne @@ -3551,8 +3551,8 @@ représentant la zone : %1$s x %2$s Import en cours Éléments ajoutés Import terminé - OsmAnd vérifie que l\'élément %1$s n\'existe pas déjà dans l\'application. -\n + OsmAnd vérifie que l\'élément %1$s n\'existe pas déjà dans l\'application. +\n \nCela peut prendre un certain temps. Les données de %1$s ont été importées, vous pouvez utiliser les boutons ci-dessous pour ouvrir la partie adéquate de l\'application pour les gérer. L\'itinéraire sera recalculé lorsque la distance entre l\'itinéraire et votre position est supérieure à la valeur indiquée. @@ -3589,10 +3589,10 @@ représentant la zone : %1$s x %2$s 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. + Modifications appliquées au profil \'%1$s\'. + Impossible de lire depuis \'%1$s\'. + Impossible d\'écrire dans \'%1$s\'. + Impossible d\'importer depuis \'%1$s\'. Sélectionnez le fichier de trace Langues Langue @@ -3601,10 +3601,10 @@ représentant la zone : %1$s x %2$s É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 ». +\nVous pouvez désactiver les greffons inutilisés, pour masquer 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 continueront à fonctionner. + Masquer les paramètres les réinitialise à leurs valeurs par défaut. + Vous pouvez accéder à ces actions en appuyant sur le bouton « Actions supplémentaires ». Éléments du panneau déroulant, menu contextuel Panneau déroulant Réorganisez ou masquez les éléments à partir de %1$s. @@ -3649,12 +3649,22 @@ représentant la zone : %1$s x %2$s Action %1$s non prise en charge Kirghize Gujarati - Le paiement sera débité de votre compte Google Play dès confirmation de l\'achat. -\n -\nL\'abonnement sera reconduit automatiquement à moins qu\'il ne soit annulé avant sa date de renouvellement. Votre compte ne sera débité pour une nouvelle durée (mensuelle / trimestrielle / annuelle) qu\'à la date de renouvellement. -\n -\nVous pouvez gérer et annuler vos abonnements depuis vos paramètres Google Play. + Le paiement sera débité de votre compte Google Play dès confirmation de l\'abonnement +\npuis automatiquement à la fin de chaque échéance (mensuelle / trimestrielle / annuelle). +\nVous pouvez gérer et annuler ces abonnements depuis vos paramètres Google Play. %1$s / %2$s - Combiner des types de PI de différentes catégories. Appuyez pour tout sélectionner, appuyez sur le côté gauche pour sélectionner la catégorie. - Rechercher des types de points d\'intérêt + Combinez des PI de différentes catégories. Appuyez pour tout sélectionner, appuyez sur le côté gauche pour sélectionner les catégories. + Rechercher des types de PI + Règle de mesure par rayon + Marques + Le guide des symboles cartographiques + OsmAnd Tracker + OsmAnd + Mapillary + Action rapide + Mesurer une distance + Voyage (Wikivoyage et Wikipédia) + Favoris + Abonnement - OsmAnd Live + Achats OsmAnd + Profils de navigation \ No newline at end of file diff --git a/OsmAnd/res/values-he/phrases.xml b/OsmAnd/res/values-he/phrases.xml index 9bda517f15..c625ca9fdd 100644 --- a/OsmAnd/res/values-he/phrases.xml +++ b/OsmAnd/res/values-he/phrases.xml @@ -5,7 +5,7 @@ שרותי חירום תחבורה חסימות דרכים - תחנת דלק + תחנת מילוי תחבורה אישית תחבורה ציבורית תחבורה אווירית @@ -116,7 +116,7 @@ חנות כלי נגינה סוכנות חדשות אופטומטריסט - חנות מזון אורגני + מוצרים אורגניים חנות ציוד טבע חנות ציור חנות בעלי חיים @@ -157,7 +157,7 @@ סוג התשלום קול סוג - ריצוף מובלט + ריצוף מישושי בראשלס שירות עצמי אוטומטי @@ -1310,8 +1310,8 @@ גישה לאינטרנט: שירות גישה לאינטרנט: יש גישה לאינטרנט: אין - גישה לאינטרנט - בתשלום עמלה - גישה לאינטרנט - ללא תשלום + גישה לאינטרנט: בתשלום עמלה + גישה לאינטרנט: ללא תשלום מנזר אזור דת צלב בצד הדרך @@ -2120,4 +2120,43 @@ גפ״מ דלק מטוסים A-1 תוסף AdBlue + כספומט + מקום בנסיעה שיתופית + וסליאן + הכנסייה המאוחדת של ישו + כנסיית ישו + ספיריטיזם + נזרין + מתקן שעשועים + טנק היסטורי + כלי טיס היסטורי + מיכל אחסון + מד גז + אספקת מים + משאבת מים + נתיב מילוט + דלק: פחם טבעי + דלק: פחם + דלק: עץ + סרטון + מסרון + מצב + סוג + האוויר הפתוח + סוג + משיכת מזומנים + גישה לנכים + גישה למשאית קלה + גישה למשאית משא + גישה לטוסטוסון (Mofa) + גישה לטוסטוס + גישה לאופנועים + גישה לנגררים + גישה לבית ממונע + גישה לקרוואן + גישה לאוטובוס + גישה לאופנוע שלג + כן + מצוק טיפוס + קטגוריית קושי \ No newline at end of file diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index c4ccb4508c..c757acb3d3 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3595,10 +3595,10 @@ מרווח מעקב מסנן זה מונע תיעוד כפילות של נקודות כשלא הייתה מספיק תנועה, יוצר תצוגה מרחבית נאה יותר של מסלולים שלא עוברים עיבוד לאחר מכן. החלפת נקודה אחרת בזו - השינויים על הפרופיל %1$s חלו. - לא ניתן לקרוא את %1$s. - לא ניתן לכתוב את %1$s. - לא ניתן לייבא את %1$s. + השינויים לפרופיל ‚%1$s’ חלו. + לא ניתן לקרוא מתוך ‚%1$s’. + לא ניתן לכתוב אל ‚%1$s’. + לא ניתן לייבא מתוך ‚%1$s’. זה מסנן שחותך מהירויות נמוכות כדי לא להקליט נקודות מתחת למהירות מסוימת. הפעלת המסנן תגרום לכך שהמסלולים ייראו חלקים יותר כשמסתכלים על המפה. טיולי סקי %1$s — %2$s — %3$s @@ -3617,9 +3617,9 @@ \nניתן יהיה להחליף בין כל השפות הזמינות בזמן קריאת הערך. פריטים תוסף מפתח - התאמת כמות הפריטים במגירה, הגדרת מפה ותפריט הקשר. -\n -\nניתן להשבית את התוספים שאינם בשימוש כדי להסתיר את כל הפקדים שלהם מהיישומון %1$s. + התאמת כמות הפריטים במגירה, הגדרת המפה ותפריט ההקשר. +\n +\nניתן לכבות את התוספים שאינם בשימוש כדי להסתיר את כל הפקדים שלהם מהיישומון %1$s. פריטי מגירה, תפריט הקשר התאמות מנשק משתמש מגירה @@ -3628,11 +3628,11 @@ קו הפרדה הפריטים מתחת לנקודה זו מופרדים בקו הפרדה. מוסתר - הפריטים האלו מוסתרים מהתפריט אבל האפשרויות המיוצגות או התוספים יישארו זמינים. - ההגדרות יאופסו למצב המקורי לאחר ההסתרה. - פעולות ראשיות מכילות 4 כפתורים בלבד. + הפריטים האלו מוסתרים מהתפריט אבל האפשרויות המיוצגות או התוספים ימשיכו לעבוד. + הסתרת הגדרות מאפסת אותן למצבן ההתחלתי. + ‚פעולות ראשיות’ מכילות 4 כפתורים בלבד. פעולות ראשית - ניתן לגשת לפעולות האלה על ידי לחיצה על הכפתור „פעולות”. + ניתן לגשת לפעולות האלה על ידי לחיצה על הכפתור „פעולות נוספות”. ניתן להעביר פריטים בתוך קטגוריה זו בלבד. נא לבחור את השפות בהן יופיעו ערכים של ויקיפדיה במפה. ניתן להחליף בין כל השפות הזמינות בזמן קריאת הערך. יתכן שחלק מהערכים בוויקיפדיה לא יהיו זמינים בשפה שלך. @@ -3666,4 +3666,22 @@ מפות נוספות וראי הפעולה %1$s אינה נתמכת + %1$s / %2$s + חשבון ה־Google Play שלך יחויב בעת רכישת מנוי +\nועם תפוגתו (חודש/שלושה חודשים/שנה), +\nהוא לא יחדש את עצמו או יבוטל טרם החידוש מההגדרות שלך ב־Google Play. + חיפוש סוגי נקודות עניין + שילוב סוגי נקודות עניין מקטגוריות שונות. יש לגעת ב„החלפה” כדי לבחור את כולן, נגיעה בצד השמאלי לבחירת קטגוריה. + עוקב OsmAnd + OsmAnd ו־Mapillary + פעולה מהירה + סרגל רדיוס + מדידת מרחק + טיול (ויקימסע וויקיפדיה) + סמני מפה + מועדפים + מינוי - OsmAnd Live + רכישות OsmAnd + המדריך לסמלי מפה + פרופילי ניווט \ No newline at end of file diff --git a/OsmAnd/res/values-is/strings.xml b/OsmAnd/res/values-is/strings.xml index 80b0850a41..d93f5af303 100644 --- a/OsmAnd/res/values-is/strings.xml +++ b/OsmAnd/res/values-is/strings.xml @@ -939,7 +939,7 @@ Ferill %2$s Samfelld myndgerð Nota staðsetningu … Veldu útlit myndgerðar - skrifaðu að sía + skrifaðu til að sía Skjár með háupplausn Leita að almenningssamgöngum Talskilaboð @@ -3655,7 +3655,7 @@ Stendur fyrir svæði: %1$s x %2$s Veldu þau tungumál sem Wikipedia-greinarnar ættu að birtast á á kortinu. Þú munt geta skipt á milli allra tiltækra tungumála á meðan þú lest greinar. Sumar Wikipedia-greinar gætu verið ekki tiltækar á þínu tungumáli. Kantónska - Suður-mín + Suður-Mín Yórúba Waray Úsbekíska @@ -3682,4 +3682,13 @@ Stendur fyrir svæði: %1$s x %2$s Aragónska Lombardíska Sérsniðinn litur + Greiðsla verður gjaldfærð á Google Play reikninginn þinn við staðfestingu á kaupunum. +\n +\nÁskrift endurnýjast sjálfkrafa nema hún sé felld niður fyrir endurnýjunardag. Reikningur þinn verður einungis gjaldfærður fyrir endurnýjunartímabil (mánuður / þrír mánuðir / ár) á endurnýjunardegi. +\n +\nÞú getur stýrt og aflýst áskriftunum þínum með því að fara í Google Play stillingarnar þínar. + %1$s / %2$s + Leita í tegundum merkisstaða + Sameina gerðir merkisstaða úr mismunandi flokkum. Ýttu á hnappinn til að velja allt, ýttu vinstra megin til að fara í val á flokkum. + Óstudd aðgerð %1$s \ No newline at end of file diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 13d0fbde8f..822889407a 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -3531,4 +3531,8 @@ Alle profilinnstillinger gjenopprettet til forvalg. Gjennomsiktighet Tegnforklaring + %1$s / %2$s + Tilbakestill programtilleggsinnstillinger til forvalg + Ustøttet handling %1$s + Ekstra kart \ No newline at end of file diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 7374f8bca9..1899ba99af 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -117,7 +117,7 @@ Er is al een bestand met geëxporteerde favorieten. Wil je dat bestand overschrijven? Instellingen voor profiel Standaardprofiel - Kaart en navigatie instellingen worden per profiel onthouden. Kies hier het standaardprofiel. + Kaart- en navigatie instellingen worden per profiel onthouden. Kies hier het standaardprofiel. Navigatie Opties voor navigatie. Algemene instellingen @@ -326,7 +326,7 @@ Kies een stem-begeleidingspakket Dag Nacht - Zonsopgang/-ondergang + Zonsopgang/Zonsondergang Lichtsensor Regel omschakeling tussen dag- en nachtmodus. Dag/nacht modus @@ -372,7 +372,7 @@ In beweegrichting Niet roteren (noorden boven) Kaart-uitlijning: - Kaartrotatie + Kaart oriëntatie Route-details Favorieten succesvol geïmporteerd GPX-bestand met favorieten niet gevonden op {0} @@ -484,7 +484,7 @@ Totale afstand %1$s, reistijd %2$d u %3$d min. Online of offline routeberekening-dienst. Routeberekening - Opslagmap op SD kaart is niet toegankelijk! + De opslagmap op de geheugenkaart is niet toegankelijk! Download {0} - {1} ? Offline gegevens voor {0} bestaan al ({1}). Wil je deze bijwerken ({2})? Adres @@ -500,8 +500,8 @@ Kies eerst een bestemming Routebeschrijving Openingstijden - Changeset wordt geopend… - Changeset wordt gesloten… + Wijzigingsset openen… + Wijzigingsset sluiten… Punt wordt vastgelegd… Interessepunt wordt geladen… Authorisatie mislukt @@ -645,8 +645,8 @@ \n \nTegelkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden. Instellingen om tracking en navigatie te kunnen gebruiken met het scherm uit (schakelt de GPS periodiek in). - Deze plugin maakt de toegankelijkheids-opties van uw toestel beschikbaar in OsmAnd. Het vergemakkelijkt o.a. het aanpassen van de spreeksnelheid van tekst-naar-spraak stemmen, het configureren van D-pad scherm navigatie door gebruik van een trackbal voor zoomregeling of het gebruiken van tekst-naar-spraak opties voor het automatisch aankondigen van uw positie. - Deze plugin toont de instellingen voor ontwikkel- en debug-opties, zoals routetest en -simulatie, schermweergave-prestaties, en spraaksturing. Deze instellingen zijn bedoeld voor programmeurs die OsmAnd willen verbeteren en zijn niet nodig voor normaal gebruik. + Deze plug-in maakt de toegankelijkheids-opties van uw toestel beschikbaar in OsmAnd. Het vergemakkelijkt o.a. het aanpassen van de spreeksnelheid van tekst-naar-spraak stemmen, het configureren van D-pad scherm navigatie door gebruik van een trackbal voor zoomregeling of het gebruiken van tekst-naar-spraak opties voor het automatisch aankondigen van uw positie. + Deze plug-in toont de instellingen voor ontwikkel- en debug-opties, zoals routetest en -simulatie, schermweergave-prestaties, en spraaksturing. Deze instellingen zijn bedoeld voor programmeurs die OsmAnd willen verbeteren en zijn niet nodig voor normaal gebruik. Plugins beheren Schakel plugins in voor speciale functies en extra instellingen. Plugin-manager @@ -718,7 +718,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Route wordt herberekend als positie gevonden is Vorige navigatie was nog niet klaar. Nu daarmee doorgaan? (%1$s seconden) Snelheidscamera\'s - Verkeers waarschuwingen + Verkeerswaarschuwingen Geen tolwegen Straatnaam Configuratie @@ -950,7 +950,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Punt GPX-bestandsnaam GPX-bestand succesvol opgeslagen als {0} - Deze plugin voorziet een kaart-widget waarmee u een route kan ontwerpen door op de kaart te tikken, of gebruik te maken (of wijzigen) van bestaande GPX-bestanden. Plan zo een reis en bereken de afstand tussen punten. Het resultaat kan worden bewaard als GPX-bestand, om later te gebruiken als navigatieroute. + Deze plug-in voorziet een kaart-widget waarmee u een route kan ontwerpen door op de kaart te tikken, of gebruik te maken (of wijzigen) van bestaande GPX-bestanden. Plan zo een reis en bereken de afstand tussen punten. Het resultaat kan worden bewaard als GPX-bestand, om later te gebruiken als navigatieroute. Afstand meten en Route plannen * Tik om een punt te markeren. \n* Druk lang op de kaart om het vorige punt te verwijderen. @@ -981,8 +981,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Voortdurend blijven scherpstellen Kies of er al dan niet een sluitergeluid wordt afgespeeld bij foto opname. Snelheidslimiet - Snelheidscamera\'s - Verkeers Waarschuwingen + Flitspalen + Verkeerswaarschuwingen Van: Specificeer OSM-gebruikersnaam en -wachtwoord in Instellingen Wis Tussenpunten @@ -1028,7 +1028,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Zoom naar close-up Zoom naar gemiddelde afstand Zoom naar grote afstand - U moet eerst een route berekenen + Gelieve eerst de route te berekenen "Routesimulatie met de berekende route " Routesimulatie met een GPX-track Bent u zeker om %1$d OSM-wijzigingen te verwijderen\? @@ -1309,7 +1309,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Alle bestanden zijn bijgewerkt Gebruik OpenGL Gebruik snelle hardware-gebaseerde OpenGL weergave (gebruikt mogelijk meer stroom en werkt mogelijk niet op oudere apparaten). - Er is geen alternatieve weg gevonden + Geen omweg gevonden Downloaden mislukt. Controleer de internetverbinding. Alle downloads Updates @@ -1334,8 +1334,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Spoorwegovergang Voetgangers oversteekplaats Spoorwegovergangen - Voetgangers oversteekplaatsen - Voetgangers oversteekplaatsen + Zebrapaden + Zebrapaden Parkeerplek Verwijder de parkeerlocatie GPS-status @@ -1842,7 +1842,7 @@ Lengtegraad:\t\t%2$s Verwijder Je kan gedownloade updates verwijderen en terugkeren naar de originele kaart Periode toevoegen - Weg geblokkeerd + Weg afgesloten Kies Verslag over Gegevens niet beschikbaar @@ -1860,7 +1860,7 @@ Lengtegraad:\t\t%2$s %1$s bewerkingen, rang %2$s, wereldwijd: %3$s bewerkingen OSM-Bijdragersplaats OsmAnd Live abonnement - Abonneren + Abonneer Nodig om u updates te bezorgen over uw bijdragen. Openbare naam Mijn naam niet tonen in verslagen @@ -1957,7 +1957,7 @@ Lengtegraad:\t\t%2$s Geef de richting van de bestemming aan met trillingen. Verplaats de kaart om de positie van de markering te wijzigen - Accuniveau + Batterij niveau Hongaars (formeel) Huidig pad Verschuif markering @@ -1968,10 +1968,10 @@ Lengtegraad:\t\t%2$s Asturisch Lijnbus Trein - Coördinatensysteem + Coördinaten formaat 24/7 geopend Geheugenkaart - Formaat voor de geografische coördinaten. + Formaat voor geografische coördinaten. Zoek Categorie Postcode @@ -2010,7 +2010,7 @@ Lengtegraad:\t\t%2$s Geen updates tonen Alle opgeslagen kaarttegels wissen Het abonnementsgeld is maandelijks. Het abonnement kan elk moment via Google Play worden gestopt. - Gift aan de OSM-gemeenschap + Gift aan de OpenStreetMap community Een deel van de gift gaat naar OSM-medewerkers. Het abonnementsgeld verandert niet. Het abonnement geeft toegang tot Live Updates (elk uur, elke dag of elke week) en onbeperkte downloads van kaarten van de gehele wereld. Abonnement nemen @@ -2039,7 +2039,7 @@ Lengtegraad:\t\t%2$s Plaatsnaam, adres of naam invoeren Lichtbruin Donkerbruin - Kleurschema hoogtelijnen + Hoogtelijnen kleurenschema Kwaliteit van het wegdek Kerstmis-POI Voor Kerst en Oud en Nieuw: u kan kiezen om de POI voor kerstbomen en kerstmarkten enz. tonen. @@ -2060,7 +2060,7 @@ Lengtegraad:\t\t%2$s Je hebt nog geen GPX-tracks Je kunt ook GPX-tracks toevoegen aan de map Meer toevoegen… - GPX-stijl + Weergave Snelle opname activeren Toon systeemmelding waarmee ritopname toegestaan wordt. Meldingen @@ -2078,7 +2078,7 @@ Lengtegraad:\t\t%2$s Servisch (Latijns schrift) Chinees (Hong Kong) Hoogtelijnen: dichtheid - Hoogtelijnen dichtheid + Dichtheid hoogtelijnen Hoog Gemiddeld Laag @@ -2242,12 +2242,12 @@ voor Gebied: %1$s x %2$s Vlak Kortere routes Uitgebalanceerd - Bij voorkeur secundaire wegen + Verkies binnenwegen Terrein-voorkeur: vlakke- of heuvelachtige wegen. Groepsnaam Kleur wijzigen Naam wijzigen - Verlevendig eigen positie + Animeer eigen positie Schakel levendige kaartverschuiving in van \'Mijn positie\' tijdens navigatie. Helling Nieuwe map toevoegen @@ -2563,15 +2563,15 @@ voor Gebied: %1$s x %2$s Voert je binnen OsmAnd naar de meest interessante plaatsen op aarde, zonder internetverbinding. Maandelijkse kaartupdates Kaartupdates: Elk uur - "In-app aankopen " + In-app aankoop Eenmalige betaling - Na aankoop is het permanent voor je beschikbaar. + "Eens aangekocht, kun je het permanent blijven gebruiken." %1$s Kopen Wikivoyage offline Onbeperkte downloads Wikipedia offline - Kaarten met hoogtelijnen en reliëfschaduw - Alle mogelijkheden van OsmAnd ontsluiten + Hoogtelijnen & Reliëfschaduwkaarten + Ontgrendel alle OsmAnd mogelijkheden Kies je aankoop Kies een van onderstaande aankopen om de offline reisgids te kunnen gebruiken: Kies een passend product @@ -2599,7 +2599,7 @@ voor Gebied: %1$s x %2$s "Twee cijfers gebruiken voor lengtegraad (i.p.v. drie) " "Reisgids " Niets gevonden: - Alle tussenpunten wissen + Wis alle tussenpunten "Groep verwijderd " Wildwatersporten Het verste eerst @@ -2641,8 +2641,8 @@ voor Gebied: %1$s x %2$s POI-namen Zonder naam Wat is dit hier: - Geopend vanaf - Geopend tot + Open van + Open tot Sluit om Gaat open om Totaal @@ -2917,7 +2917,7 @@ voor Gebied: %1$s x %2$s Kopiëren van %1$d bestanden mislukt (%2$s). %1$d bestanden (%2$s) aanwezig op de vorige locatie \'%3$s\'. Niet verplaatsen - Helaas kan OsmAnd geen route vinden die bij jouw instellingen past. + Helaas, OsmAnd kan geen route vinden die geschikt is voor jouw instellingen. Nee, dankje Toestaan Taxi @@ -2931,7 +2931,7 @@ voor Gebied: %1$s x %2$s Nieuw profiel UFO Weg - GPS locatie zoeken + Aan het zoeken naar GPS Rechte lijn Profielinstellingen: OsmAnd gebruikt het UTM Standard formaat. Dit lijkt sterk op het UTM Nato formaat, maar is niet identiek. @@ -2971,7 +2971,7 @@ voor Gebied: %1$s x %2$s Basisprofielen van OsmAnd kun je niet verwijderen Wijzigingen opslaan Sla wijzigingen aan het profiel eerst op - Verwijder profiel + Profiel verwijderen Weet je zeker dat je profiel \"%s\" wilt verwijderen Selecteer een profiel om mee te starten Selecteer navigatietype @@ -2986,10 +2986,10 @@ voor Gebied: %1$s x %2$s Magenta Icoon Tik nogmaals om de kaartoriëntatie te wijzigen - Standaardsnelheid - Standaard snelheden instellingen aanpassen - Stel min/max snelheid in - Vastgelopen + Standaard snelheid + Standaard snelheidsinstellingen aanpassen + Min/max snelheid instellen + Crash Monowheel, Hoverboard Profiel instellen Het profiel behoudt haar eigen instellingen @@ -3083,7 +3083,7 @@ voor Gebied: %1$s x %2$s Vertrekpunt Begin- en eindpunt omwisselen Transporttype - Coördinatenwidget + Coördinaten widget Je kunt je eigen, aangepaste versie van routing.xml in ..osmand/routing toevoegen Profielen Scooter @@ -3142,7 +3142,7 @@ voor Gebied: %1$s x %2$s Toon knooppunt van de fietsroutes Hoogtelijnen en reliëflaag Verzend log - Verplaats kaarten + Kaarten verplaatsen Deel alstublieft uw terugkoppeling en waardeer ons werk op Google Play. Privacybeleid Sta OsmAnd toe om app gebruik anoniem te verzamelen en bewerken. Er wordt geen enkele data over uw positie of locatie verzameld.. @@ -3191,7 +3191,7 @@ voor Gebied: %1$s x %2$s Freeride en off-piste zijn officieuze routes en passages. Officieel meestal niet geprepareerd en onderhouden, en niet \'s avonds gecheckt. Op eigen risico betreden. Verzamelde data Laatste OsmAnd uitvoering gecrasht. Help ons alstublieft OsmAnd te verbeteren door de foutmelding te delen. - Persoonlijke transporter + Persoonlijk vervoer Offroad WunderLINQ Wegtype @@ -3201,7 +3201,7 @@ voor Gebied: %1$s x %2$s \nBerekening: %.1f sec, %d wegen, %d tegels) Occitaans Stationwagon - Pickup truck + Pick-up truck Verkrijg %1$d %2$s met %3$s korting. %1$s voor de eerste %2$s %1$s voor de eerste %2$s @@ -3316,7 +3316,7 @@ voor Gebied: %1$s x %2$s Online volgen Opnamenauwkeurigheid U kan al uw opgenomen tracks terugvinden bij %1$s of in OsmAnd-map met een bestand verkenner. - U kan al uw notities terugvinden in %1$s + U kan al uw notities terugvinden in %1$s. Videonotities Fotonotities Route herberekening diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index 81e1a638f2..e4c11b6107 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -3408,7 +3408,7 @@ Reprezentuje obszar: %1$s x %2$s Osobiste Pobieranie %s Dla pustyń i innych słabo zaludnionych obszarów. Bardziej szczegółowa. - Pokaż punkty sieci tras rowerowych + Pokaż trasy rowerowe z sieci węzłów Gruby Ikona położenia podczas ruchu Ikona położenia podczas spoczynku @@ -3576,7 +3576,7 @@ Reprezentuje obszar: %1$s x %2$s Importowanie Dodano elementy Zakończono importowanie - Zaimportowano wszystkie dane z %1$s. Można użyć poniższych przycisków, aby otworzyć wymaganą cześć aplikacji w celu zarządzania nią. + Zaimportowano wszystkie dane z %1$s. Możesz użyć poniższych przycisków, aby otworzyć część aplikacji zarządzającą nimi. Trasa zostanie ponownie obliczona, jeśli odległość od trasy do bieżącej lokalizacji jest większa niż wybrana wartość. Wybierz odległość, po której trasa zostanie ponownie obliczona. Przelicz trasę w przypadku odchylenia @@ -3605,8 +3605,8 @@ Reprezentuje obszar: %1$s x %2$s Wybierz kształt Cieniowanie wzniesień wymaga dodatkowych map. Cieniowanie wzniesień - OsmAnd wyszukuje duplikatów %1$s w istniejących rzeczach w aplikacji. -\n + OsmAnd wyszukuje duplikaty %1$s wśród istniejących elementów. +\n \nTo może zająć chwilę. Min Ośmiokąt @@ -3614,10 +3614,10 @@ Reprezentuje obszar: %1$s x %2$s Skuter śnieżny Zastąp tym inny punkt Niestandardowa wtyczka OsmAnd - Zmiany zastosowano do profilu %1$s. - Nie udało się odczytać %1$s. - Nie udało się napisać %1$s. - Nie udało się zaimportować %1$s. + Zmiany zastosowano do profilu \"%1$s\". + Nie udało się odczytać z \"%1$s\". + Nie udało się zapisać do \"%1$s\". + Nie udało się zaimportować z \"%1$s\". Elementy menu bocznego, menu podręczne Ustawienia interfejsu użytkownika Menu boczne @@ -3628,9 +3628,9 @@ Reprezentuje obszar: %1$s x %2$s 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 czynności\" zawierają tylko 4 przyciski. Główne działania - Możesz uzyskać dostęp do tych akcji, naciskając przycisk „Działania”. + Możesz uzyskać dostęp do tych czynności, naciskając przycisk „Dodatkowe czynności”. Możesz przemieszczać elementy tylko wewnątrz tej kategorii. Wtyczka deweloperska Elementy @@ -3643,7 +3643,7 @@ Reprezentuje obszar: %1$s x %2$s Potrzebne są dodatkowe mapy, żeby przeglądać UM Wikipedii na mapie. Pewne artykuły Wikipedii mogą być nie dostępne w wybranym języku. Dostosowany kolor - Wybierz języki, w których będą pojawiać się artykuły z Wikipedii na mapie. Możesz przełączać się pomiędzy wszystkimi dostępnymi językami podczas czytania artykułu. + Wybierz języki, w których będą pojawiać się artykuły z Wikipedii na mapie. Możesz przełączać się pomiędzy dostępnymi językami podczas czytania artykułu. Kantoński Uzbecki Urdu @@ -3662,21 +3662,32 @@ Reprezentuje obszar: %1$s x %2$s Sycylijski Czuwaski Birmański - - - + Południowy min + Minangkabau + Malgaski Pendżabski - + Nieobsługiwana czynność %1$s Baszkirski - - + Waray + Scots Aragoński - - - Dostosuj liczbę elementów w menu bocznym, wyglądzie mapy i menu kontekstowym. -\n -\nMożesz wyłączyć nieużywane wtyczki, aby ukryć ich elementy z aplikacji %1$s. + Gudźarati + Joruba + Dostosuj liczbę elementów w menu bocznym, wyglądzie mapy i menu kontekstowym. +\n +\nMożesz wyłączyć nieużywane wtyczki, aby ukryć ich elementy w aplikacji %1$s. %1$s / %2$s - Szukaj typów poi - Łącz typy POI z różnych kategorii. Stuknij przełącznik, aby zaznaczyć wszystko, stuknij lewą stronę, aby wybrać kategorię. + Szukaj typów użytecznych miejsc + Łącz typy użytecznych zmian z różnych kategorii. Stuknij przełącznik, aby zaznaczyć wszystko, stuknij lewą stronę, aby wybrać kategorię. + Przewodnik po symbolach mapy + Profile nawigacji + OsmAnd + Mapillary + Szybka czynność + Pomiar kąta + Mierzenie odległości + Podróże (Wikipodróże i Wikipedia) + Znaczniki + Ulubione + Subskrypcja - OsmAnd Live + Zakupy w OsmAnd \ 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 03dac63f60..22dfe120c6 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -1784,7 +1784,7 @@ Pôr do Sol: %2$s Perguntas frequentes Respostas às perguntas frequentes Visualização de mapa - Pesquisa no mapa + Pesquisando no mapa Instalação e solução de problemas Artigos técnicos Versões @@ -3598,18 +3598,18 @@ Pôr do Sol: %2$s 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. + Alterações aplicadas ao perfil \'%1$s\'. + "Não foi possível ler a partir de \'%1$s\'." + Não foi possível escrever para \'%1$s\'. + Não foi possível importar de \'%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. + Personalize a quantidade de itens na gaveta, configure o mapa e o menu de contexto. \n -\nVocê pode desativar plugins não utilizados para ocultar todos os seus controles do aplicativo %1$s. +\nVocê pode desativar os plugins não utilizados para ocultar todos os controles do aplicativo %1$s. Itens da gaveta, menu de contexto Personalização da interface do usuário Gaveta @@ -3619,10 +3619,10 @@ Pôr do Sol: %2$s Elementos abaixo deste ponto separados por um divisor. Escondido Esses itens estão ocultos no menu, mas as opções ou plug-ins representados continuarã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. + Ocultar configurações redefine-as para o estado original. + \'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 acessar essas ações tocando no botão \"Ações adicionais\". Você pode mover itens somente dentro desta categoria. Plugin do desenvolvedor Itens @@ -3659,9 +3659,21 @@ Pôr do Sol: %2$s Mapas extras Ação não suportada %1$s %1$s / %2$s - O pagamento será cobrado na sua conta do Google Play na confirmação da compra. -\n -\nA assinatura é renovada automaticamente, a menos que seja cancelada antes da data de renovação. Sua conta será cobrada pelo período de renovação (mês/três meses/ano) somente na data de renovação. -\n -\nVocê pode gerenciar e cancelar suas assinaturas acessando as configurações do Google Play. + Sua conta do Google Play é cobrada mediante a compra de uma assinatura +\ne quando expirar (mês/três meses/ano), +\nele não será renovado se for cancelado antes pelas configurações do Google Play. + Pesquisar tipos de POI + Combine tipos de PIs de diferentes categorias. Toque em \"Alternar\" para selecionar todos, toque no lado esquerdo para selecionar a categoria. + Rastreador do OsmAnd + OsmAnd + Mapillary + Ação rápida + Régua de raio + Medir distância + Viagem (Wikivoyage e Wikipédia) + Marcadores de mapa + Favoritos + Assinatura - OsmAnd Live + Compras de OsmAnd + O guia para a simbologia de um mapa + Perfis de navegação \ No newline at end of file diff --git a/OsmAnd/res/values-pt/strings.xml b/OsmAnd/res/values-pt/strings.xml index 7b52230870..fd346fe37b 100644 --- a/OsmAnd/res/values-pt/strings.xml +++ b/OsmAnd/res/values-pt/strings.xml @@ -1747,7 +1747,7 @@ Enviar anonimamente Não há espaço suficiente! O espaço de armazenamento necessário é {3} MB temporariamente, {1} MB permanentemente. O espaço disponível é apenas {2} MB. Descarregar mesmo {0} ficheiro(s)\? Isso precisa de {3} MB temporariamente e {1} MB permanentemente. ({2} MB disponíveis.) - Pode enviar a sua anotação OSM anonimamente ou utilizando o seu perfil do OpenStreetMap.org. + Envie a sua anotação OSM anonimamente ou utilizando o seu perfil do OpenStreetMap.org. Enviar a anotação OSM Primeiro marcador de mapa Segundo marcador de mapa @@ -1945,26 +1945,26 @@ Mudar cor Editar nome Animar a própria posição - Ativar animação panorâmica do mapa da \'Minha Posição\' durante navegação. + Ativar animação panorâmica do mapa da \'Minha posição\' durante navegação. Visão Geral Selecionar rua em %1$s Escreva morada - Escreva cidade ou município + Digite cidade/vila/localidade Escreva código postal Cidades próximas Selecionar cidade - Selecionar código postal + Pesquisa por código postal Auto zoom do mapa ativado/desativado - Selecionar o botão de ação irá ativar/desativar o auto zoom do mapa de acordo com a sua velocidade. - Ativar auto zoom do mapa - Desativar auto zoom do mapa - Adicionar destino + Botão para ativar ou desativar o zoom automático controlado por velocidade. + Ativar o zoom automático + Desativar o zoom automático + Definir destino Substituir destino Adicionar primeiro intermediário - Tocando no botão de ação irá adicionar um destino ao localização do centro do ecrã. Destinos definidos anteriormente tornam-se o último ponto intermediário. - Tocando neste botão de ação torna o centro do ecrã o novo destino de rota, substituindo o destino selecionado anteriormente (se houver). - Tocando neste botão de ação torna o centro do ecrã o primeiro destino intermediário. + Um botão para fazer com que o ecrã centralize o destino da rota, um destino selecionado anteriormente se tornaria o último destino intermediário. + Um botão para fazer com que o ecrã centralize o novo destino da rota, substituindo o destino selecionado anteriormente (se houver). + Um botão para fazer com que o ecrã centralize o primeiro destino intermediário. Sem sobreposição Sem subposição Erro @@ -1980,7 +1980,7 @@ Visível Restaurar compras Fontes do mapa - Condução destra + Circulação pela direita Automático Não envie estatísticas anónimas de utilização da aplicação OsmAnd recolhe informação sobre as secções da aplicação que abriu. Não são enviadas: a sua localização; a informação que introduz na aplicação; detalhes de áreas que veja, procure ou descarregue. @@ -1998,7 +1998,7 @@ Encosta Adicionar nova pasta Ponto(s) eliminado(s). - Vai eliminar %1$d ponto(s). Tem a certeza\? + Tem certeza de que deseja apagar %1$d ponto(s)\? Mudanças de direção a passar neste percurso Pontos de passagem, pontos de interesse, elementos com nome Percurso @@ -2011,7 +2011,7 @@ Hora de fim Cor Selecionar diretório do ficheiro GPX - Ficheiro não pode ser movido. + Não foi possível mover o ficheiro. Mover Percursos Estilo de condução @@ -2044,10 +2044,10 @@ Pesquisa antiga Mostrar pesquisa antiga Adicionar pesquisa antiga à lista da gaveta - Permitir vias de motociclos - Permitir vias de motociclos. + Utilizar autoestradas + Permite autoestradas. Artigos da Wikipédia próximos - Procurar cidade ou região + Cidade ou região Use a saída %1$d e continue Enviar Pontos de Interesse (POI) Cálculo da rota @@ -2055,8 +2055,8 @@ Também pode adicionar ficheiros GPX ao diretório Adicionar mais… Aparência - Ativar a gravação de início rápido - Mostrar uma notificação de sistema que permite iniciar a gravação da viagem. + Ativar gravação rápida + Mostrar uma notificação de sistema que permite a gravação da viagem. Notificações Continuar Pausa @@ -2073,7 +2073,7 @@ Acuidade mínima para registo Filtro: Definir acuidade mínima para um ponto poder ser registado. Pontos de interesse (POI) de Natal - Antes do Natal e Ano Novo, pode escolher mostrar pontos de interesse (POI) relacionados com o Natal: Árvores de Natal, mercados, etc. + Antes do Natal e Ano Novo, pode escolher mostrar os pontos de interesse (POI) relacionados com o Natal como árvores de Natal, mercados, etc. Mostrar pontos de interesse (POI) de Natal? Castanho claro Castanho escuro @@ -2094,12 +2094,12 @@ Novo filtro Por favor introduza o nome do novo filtro, este vai ser adicionado ao seu separador \'Categorias\'. A assinatura é cobrada mensalmente. Cancele a assinatura no Google Play a qualquer altura. - Doação para a comunidade OpenStreetMap - Parte da sua doação é enviada aos utilizadores OSM que submetem alterações ao OpenStreetMap. O custo da assinatura continua a ser o mesmo. + Doação para a comunidade OSM + Parte da sua doação é enviada aos colaboradores do OSM. O custo da assinatura permanece o mesmo. Subscrição permite atualizações a cada hora, diárias, semanais, e descarregamentos ilimitados de todos os mapas globalmente. Comprá-lo Comprar por %1$s - Obter descarregamentos ilimitados de mapas e atualizações de mapas mais do que uma vez por mês: semanal, diário, ou a cada hora. + Obter descarregamentos ilimitados de mapas, adicionando atualizações semanais, diárias e a cada hora. Descarregamentos ilimitados de mapas, atualizações e complemento Wikipédia. Milhas/metros À procura de mapas… @@ -3401,7 +3401,7 @@ Caminho gravado O nome do ficheiro está vazio Reverter - Um botão para centrar o ecrã no ponto de partida e calcular a rota até ao destino ou abrir um diálogo para selecionar o destino se o marcador de destino não estiver no mapa. + Um botão para centrar o ecrã no ponto de partida. Em seguida, solicitará para definir o destino ou acionar o cálculo da rota. Mostrar nós da rede de ciclovias Limpar %1$s\? Diálogo de descarregar mapas @@ -3623,7 +3623,7 @@ 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. + Esses itens estão ocultos no menu, mas as opções ou plug-ins representados continuarã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 @@ -3638,4 +3638,55 @@ 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. + Selecione os idiomas em que os artigos da Wikipédia aparecerão no mapa. Pode alternar entre todos os idiomas disponíveis enquanto lê o artigo. + OsmAnd + Mapillary + Rastreador do OsmAnd + Ação rápida + Régua de raio + Medir distância + Viagem (Wikivoyage e Wikipédia) + Marcadores de mapa + Favoritos + Assinatura - OsmAnd Live + Compras de OsmAnd + O guia para a simbologia de um mapa + Perfis de navegação + Pesquisar tipos de poi + %1$s / %2$s + O pagamento será cobrado na sua conta do Google Play na confirmação da compra. +\n +\nA assinatura é renovada automaticamente, a menos que seja cancelada antes da data de renovação. Sua conta será cobrada pelo período de renovação (mensal/trimestrial/anual) somente na data de renovação. +\n +\nPode gerir e cancelar suas assinaturas acessando as configurações do Google Play. + Ação %1$s não suportada + Mapas adicionais + Alguns artigos da Wikipédia podem não estar disponíveis no seu idioma. + Cantonês + Min do Sul + Iorubá + Samarenho + Uzbeque + Urdu + Tártaro + Tajique + Ânglico Escocês + Siciliano + Panjábi + Nepali + Napolitano + Birmanês + Mongol + Minangkabau + Malgaxe + Quirguiz + Cazaque + Javanês + Guzerate + Tchuvache + Checheno + Bávaro + Basquires + Aragonês + Lombardo + Cor customizada \ No newline at end of file diff --git a/OsmAnd/res/values-ru/phrases.xml b/OsmAnd/res/values-ru/phrases.xml index f1f7f5d3f4..ab074fb484 100644 --- a/OsmAnd/res/values-ru/phrases.xml +++ b/OsmAnd/res/values-ru/phrases.xml @@ -1,7 +1,7 @@ Булочная - Вино-водочный магазин;Алкоголь + Винно-водочный магазин;Алкоголь Продукты Торговый центр Напитки @@ -105,7 +105,7 @@ Магазин игр;Игры Садовая мебель, аксессуары Системы отопления - Магазин кожи, галантарея + Магазин кожи, галантерея Пиротехника;Фейерверки Оружие Масштабные модели @@ -239,7 +239,7 @@ Батарейки Пластиковые бутылки Растительный мусор - Мусор (черные мешки) + Мусор (чёрные мешки) Пластиковая тара Газеты Картон для пищевых упаковок @@ -318,7 +318,7 @@ Государственное учреждение;Госучреждение Служба судебных приставов;Судебные приставы Прокуратура - Пенсионый фонд + Пенсионный фонд Миграционная служба Налоговая инспекция Административное учреждение @@ -353,7 +353,7 @@ Юридические услуги;Юрист Телекоммуникационная компания Общественная организация - Администрация населенного пункта + Администрация населённого пункта Биржа труда Исследовательский центр Информационные технологии @@ -427,7 +427,7 @@ Пинг-понг Теннис Санный спорт - Воллейбол + Волейбол Музей Достопримечательность Памятник, мемориал @@ -469,7 +469,7 @@ Придорожная святыня Информация Часы - Турагентство;Туристическое агенство + Турагентство;Туристическое агентство Место с хорошим видом;Обзорная площадка Место для лагеря Ночлег @@ -503,7 +503,7 @@ Клуб охотников Оружейный клуб Туристический клуб - Благотворительский клуб + Благотворительный клуб Библиотека Центр искусств Кинотеатр @@ -658,7 +658,7 @@ Сигнальная станция Сигнал опасности Лодочная станция - Скала + Скала (навигационный ориентир) Кораблекрушение (навигационный ориентир) Большой маяк (навигационный ориентир) Небольшой маяк (навигационный ориентир) @@ -739,12 +739,12 @@ Сооружения Административные объекты Морские объекты - Доступ в Интернет: беспроводной - Доступ в Интернет: терминал - Доступ в Интернет: проводное подключение - Доступ в Интернет: общедоступный - Доступ в Интернет: есть - Доступ в Интернет: отсутствует + Доступ в интернет: беспроводной + Доступ в интернет: терминал + Доступ в интернет: проводное подключение + Доступ в интернет: общедоступный + Доступ в интернет: есть + Доступ в интернет: отсутствует Фермерский магазин Личный транспорт Общественный транспорт @@ -752,7 +752,7 @@ Водный транспорт Велосипедный транспорт Достопримечательности - Доступ в Интернет + Доступ в интернет Клуб Кафе и ресторан Продуктовый магазин и супермаркет @@ -820,7 +820,7 @@ Жилой район Религиозное землепользование - Атракцион + Аттракцион Лесной домик Охотничий домик Стол для пикника @@ -830,13 +830,13 @@ Художественная галерея Горнолыжный курорт Площадка для игр - Платежный терминал + Платёжный терминал Часы работы Время выемки Описание Телефон Веб-сайт - Email + Эл. почта Факс Сотовый телефон Время обслуживания @@ -886,7 +886,7 @@ Частный доступ Нет доступа Доступ: пункт назначения - Доступ разрешен владельцем + Доступ разрешён владельцем Доступ для клиентов Доступ только для доставки Доступ только для с/х техники @@ -957,7 +957,7 @@ Манго Каучук Финики - Кофe + Кофе Гранат Высота Высота над уровнем моря @@ -991,7 +991,7 @@ Без насоса Есть Характеристика воды - Минеральная + Характеристика воды: минеральная Характеристика воды: грязь Серная Пункт водоснабжения @@ -1191,7 +1191,7 @@ Тип оплаты Топливные карты Вид топлива - Вид топлива (для самолетов) + Вид топлива (для самолётов) Монеты Монеты не принимаются Монеты по $0.5 @@ -1281,21 +1281,21 @@ AvantCard AvantCard не принимаются MEP - MEP не принимется + MEP не принимаются Minipay - Minipay не принимается + Minipay не принимаются miniCash - miniCash не принимается + miniCash не принимаются Moneo - Moneo не принимается + Moneo не принимаются Monedero 4B - Monedero 4B не принимается + Monedero 4B не принимаются Monedero - Monedero не принимается + Monedero не принимаются BankAxess - BankAxess не принимается + BankAxess не принимаются Coinkite - Оплата через Coinkite не принимается + Оплата через Coinkite не принимаются Roadrunner Roadrunner карты не принимаются SVG @@ -1309,7 +1309,7 @@ SUBE Карты SUBE не принимаются Via Verde - Via Verde не принимается + Via Verde не принимаются Талоны на питание Талоны на питание не принимаются PayPal @@ -1341,9 +1341,9 @@ Вегетарианское питание Вегетарианское питание не предлагается Для веганов - Только веганское питание - Веганское питание - Веганское питание не предлагается + Только вегетарианское питание + Вегетарианское питание + Вегетарианское питание не предлагается Безглютеновое питание Только безглютеновое питание Безглютеновое питание @@ -1575,7 +1575,7 @@ Беспроводной Кабельный Публичный доступ в интернет - Без доступа в Интернет + Без доступа в интернет C доступом в интернет Максимальная ширина Код IATA @@ -1589,7 +1589,7 @@ Тип: камень Тип: бюст Тип: инсталляция - Тип: мозайка + Тип: мозаика Тип: барельеф Тип: граффити Тип: стела @@ -1771,9 +1771,9 @@ Многоконфессиональность Джайнизм Саентология - Объединенная реформированная церковь + Объединённая реформированная церковь Назаряне - Объединенная методистская церковь + Объединённая методистская церковь Конгрегационная церковь Нидерландская реформатская церковь Апостольская церковь @@ -1880,7 +1880,7 @@ Содержимое: соль Содержимое: зерно Нудизм - Разрешен + Разрешён Запрещён Обязательно Приветствуется @@ -2004,7 +2004,7 @@ Источник питания Есть Источник питания: отсутствует - Источник питания (разъём): CEE 17 blue + Источник питания (разъём): CEE 17 синий Источник питания (разъём): CEE 7/4 Источник питания (разъём): CEE 7/5 Источник питания (разъём): NEMA 5-15 @@ -2052,7 +2052,7 @@ Отдельностоящая сцена Печь для обжига Производимый продукт: кирпич - Производимый продукт: негашеная известь + Производимый продукт: негашёная известь Производимый продукт: кожа Производимый продукт: известь Производимый продукт: пиво @@ -2430,7 +2430,7 @@ Место для разведения огня Распределительный шкаф Справедливая торговля (Fairtrade): есть - Справедливая торговля (Fairtrade): no + Справедливая торговля (Fairtrade): нет Только товары с маркировкой Справедливой торговли (Fairtrade) Хоккей с шайбой Хоккей с мячом @@ -2440,7 +2440,7 @@ Объект охраны: природа Объект охраны: среда обитания Объект охраны: вода - Страна, произведшая взрыв + Страна, произвёдшая взрыв Название места взрыва Тип взрыва: подземный, шахта Тип взрыва: подземный, туннель @@ -2504,8 +2504,8 @@ Парапланеризм: нет Дельтапланеризм Дельтапланеризм: нет - Дельтаплан с жестким крылом - Дельтаплан с жестким крылом: нет + Дельтаплан с жёстким крылом + Дельтаплан с жёстким крылом: нет Ориентация площадки для свободного полёта: С Ориентация площадки для свободного полёта: СВ Ориентация площадки для свободного полёта: В @@ -2514,7 +2514,7 @@ Ориентация площадки для свободного полёта: ЮЗ Ориентация площадки для свободного полёта: З Ориентация площадки для свободного полёта: СЗ - Запрещенное для свободного полёта время + Запрещённое для свободного полёта время Инструктаж для посетителей: есть Инструктаж для посетителей: нет Солярий @@ -2540,8 +2540,8 @@ Медицинские услуги: профилактика: нет Медицинские услуги: вакцинация: есть Медицинские услуги: вакцинация: нет - Медицинские услуги: support: есть - Медицинские услуги: support: нет + Медицинские услуги: поддержание: есть + Медицинские услуги: поддержание: нет Медицинские услуги: тестирование: есть Медицинские услуги: тестирование: нет Медицинский офис @@ -2569,7 +2569,7 @@ Роль медработника: медсестра Роль медработника: фельдшер Роль медработника: врач - Роль медработника: подолог + Роль медработника: ортопед Роль медработника: психолог Роль медработника: терапевт Роль медработника: ассистент врача @@ -2648,7 +2648,7 @@ СПИД: нет Офис врача Офис терапевта - Офис подолога + Офис ортопеда Офис целителя Офис психолога Офис службы ухода за больными @@ -2681,7 +2681,7 @@ Велопарковка в форме дерева Открытый отсек Глубина - Соль + Соль: есть Соль: нет Только для инвалидных кресел Отвал породы @@ -2690,25 +2690,25 @@ Управление переездом: автоматическое Управление переездом: местное Управление переездом: дистанционное - Барьер на перезде: нет - Барьер на переезде + Барьер на переезде: нет + Барьер на переезде: есть Барьер на переезде: полный Барьер на переезде: половинный Барьер на переезде: двойной половинный - Звуковой сигнал у переезда + Звуковой сигнал у переезда: есть Звуковой сигнал у переезда: нет - Светофор у переезда + Светофор у переезда: есть Светофор у переезда: нет - Пересечение переезда по требованию + Пересечение переезда по требованию: есть Пересечение переезда по требованию: нет - Знак у переезда + Знак у переезда: есть Знак у переезда: нет - Наблюдение за переездом - Наблюдение за переездом: отсутствует + Наблюдение за переездом: есть + Наблюдение за переездом: нет Наблюдение за переездом: смотрящий Наблюдение за переездом: камера Продажа лекарств по рецептам - Есть + Продажа лекарств по рецептам: есть Продажа лекарств по рецептам: нет Международный Региональный @@ -2758,18 +2758,18 @@ Производит: биогаз Насосная станция Дисплей: есть - Дисплей: отсутствует + Дисплей: нет Аналоговый дисплей Цифровой дисплей Солнечные часы Дополнительно - Барометр - Барометр: отсутствует - Термометр - Термометр: отсутствует - Гигрометр - Гигрометр: отсутствует - Дата + Барометр: есть + Барометр: нет + Термометр: есть + Термометр: нет + Гигрометр: есть + Гигрометр: нет + Дата: есть Дата: нет Опора: столб Опора: стена @@ -2782,7 +2782,7 @@ Опора: крыша Опора: башня Информационный дисплей пассажира: есть - Информационный дисплей пассажира: отсутствует + Информационный дисплей пассажира: нет Аквакультура Разведение креветок Разведение рыбы @@ -2796,7 +2796,7 @@ Вид Консульство Генеральное консульство - Почетное консульство + Почётное консульство Постоянное представительство Делегация Резиденция посла @@ -3041,7 +3041,7 @@ Контактный зоопарк Парк дикой природы Клетки - Сафари парк + Сафари-парк Птицы Вольер для птиц Соколиная охота @@ -3049,19 +3049,19 @@ Тип Спортивная трибуна Услуги - Продажа + Продажа: есть Продажа: нет Продажа: есть, б/у Продажа: б/у - Аренда + Аренда: есть Аренда: нет - Ремонт + Ремонт: есть Ремонт: нет - Запчасти + Запчасти: есть Запчасти: нет - Шины + Шины: есть Шины: нет - Мотоциклетная одежда + Мотоциклетная одежда: есть Мотоциклетная одежда: нет Тип мотоциклов Мотороллеры @@ -3108,27 +3108,27 @@ Зимняя комната: нет Бронирование: требуется Бронирование: рекомендуется - Бронирование: возможно - Бронирование: не предусмотрено + Бронирование: есть + Бронирование: нет Бронирование: для узкого круга лиц Кровати Арендуемые лодки Прокат лодок - Моторные лодки: да + Моторные лодки: есть Моторные лодки: нет - Плавучие дома: да + Плавучие дома: есть Плавучие дома: нет - Педальные лодки: да + Педальные лодки: есть Педальные лодки: нет - Гидроциклы: да + Гидроциклы: есть Гидроциклы: нет - Парусники: да + Парусники: есть Парусники: нет - Шлюпки: да + Шлюпки: есть Шлюпки: нет - Каяки: да + Каяки: есть Каяки: нет - Каноэ: да + Каноэ: есть Каноэ: нет Архив Министерство @@ -3180,35 +3180,35 @@ Семья Несколько семей Разъём: CEE blue - Разъём: CEE blue: ток - Разъём: CEE blue: мощность - Разъём: CEE red 16A - Разъём: CEE red 16A: ток - Разъём: CEE red 16A: мощность - Разъём: CEE red 32A - Разъём: CEE red 32A: ток - Разъём: CEE red 32A: мощность - Разъём: CEE red 64A - Разъём: CEE red 64A: ток - Разъём: CEE red 64A: мощность - Разъём: CEE red 125A - Разъём: CEE red 125A: ток - Разъём: CEE red 125A: мощность - Разъём: Type 1 - Разъём: Type 1: ток - Разъём: Type 1: мощность - Разъём: Type 1 combo - Разъём: Type 1 combo: ток - Разъём: Type 1 combo: мощность - Разъём: Type 2 - Разъём: Type 2: ток - Разъём: Type 2: мощность - Разъём: Type 2 combo - Разъём: Type 2 combo: ток - Разъём: Type 2 combo: мощность - Разъём: Type 3 - Разъём: Type 3: ток - Разъём: Type 3: мощность + Разъём: CEE синий: ток + Разъём: CEE синий: мощность + Разъём: CEE красный 16A + Разъём: CEE красный 16A: ток + Разъём: CEE красный 16A: мощность + Разъём: CEE красный 32A + Разъём: CEE красный 32A: ток + Разъём: CEE красный 32A: мощность + Разъём: CEE красный 64A + Разъём: CEE красный 64A: ток + Разъём: CEE красный 64A: мощность + Разъём: CEE красный 125A + Разъём: CEE красный 125A: ток + Разъём: CEE красный 125A: мощность + Разъём: Тип 1 + Разъём: Тип 1: ток + Разъём: Тип 1: мощность + Разъём: Тип 1 combo + Разъём: Тип 1 combo: ток + Разъём: Тип 1 combo: мощность + Разъём: Тип 2 + Разъём: Тип 2: ток + Разъём: Тип 2: мощность + Разъём: Тип 2 combo + Разъём: Тип 2 combo: ток + Разъём: Тип 2 combo: мощность + Разъём: Тип 3 + Разъём: Тип 3: ток + Разъём: Тип 3: мощность Разъём: CHAdeMO Разъём: CHAdeMO: ток Разъём: CHAdeMO: мощность @@ -3250,7 +3250,7 @@ Скутер: нет Грузовик: да Грузовик: нет - Оплата за парковку: да + Оплата за парковку: есть Оплата за парковку: нет Ток Мощность зарядной станции @@ -3276,7 +3276,7 @@ Google+ Содержимое: стоки Требование: контроль - Платежные карты не принимаются + Платёжные карты не принимаются Предоплаченные билеты Депо Абонентский почтовый ящик @@ -3503,7 +3503,7 @@ Трава Полоса движения Дизайн гидранта: wsh - Платежные карты + Платёжные карты Косинто Автогаз Дельфинариум @@ -3519,15 +3519,15 @@ NEMA 5-20 NEMA 14-30 NEMA 14-50 - Schuko/Шуко + Schuko BS 1363 AS/NZS 3112 - CHAdeMO вывод - Type 2 вывод - Type 2 combo вывод - Type 3 вывод - CEE blue вывод - Schuko вывод + Выход: CHAdeMO + Выход: Тип 2 + Выход: Тип 2 combo + Выход: Тип 3 + Выход: CEE синий + Выход: Schuko Точка сбора карпулинга Полоса HOV; Карпул; Полоса для проезда загруженного пассажирского транспорта Опасность @@ -3561,8 +3561,8 @@ Доступ для мотоциклов Доступ для мопедов Доступ для мопедов Mofa - Доступ для тяжелых грузовых автомобилей (HGV) - Доступ для легких грузовых автомобилей (LGV) + Доступ для тяжёлых грузовых автомобилей (HGV) + Доступ для лёгких грузовых автомобилей (LGV) Доступ для транспортных средств: да Доступ для транспортных средств: частный Доступ для транспортных средств: нет @@ -3589,12 +3589,12 @@ Доступ для механического транспортного средства: курьеры/доставка Доступ для механического транспортного средства: лесное хозяйство Доступ для механического транспортного средства: сельскохозяйственные - Доступ для тяжелых грузовых автомобилей (HGV): частный - Доступ для тяжелых грузовых автомобилей (HGV): нет - Доступ для тяжелых грузовых автомобилей (HGV): сельскохозяйственные - Доступ для тяжелых грузовых автомобилей (HGV): затруднен - Доступ для тяжелых грузовых автомобилей (HGV): непригоден - Доступ для легких грузовых автомобилей (LGV): нет + Доступ для тяжёлых грузовых автомобилей (HGV): частный + Доступ для тяжёлых грузовых автомобилей (HGV): нет + Доступ для тяжёлых грузовых автомобилей (HGV): сельскохозяйственные + Доступ для тяжёлых грузовых автомобилей (HGV): затруднён + Доступ для тяжёлых грузовых автомобилей (HGV): непригоден + Доступ для лёгких грузовых автомобилей (LGV): нет Доступ для мотоциклов: частный Доступ для мотоциклов: нет Доступ для мопедов: нет @@ -3749,4 +3749,8 @@ Металлическая сетка DecoTurf Тартан + С разрешения + С разрешения + С разрешения + Препятствие \ No newline at end of file diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index b60fbeb2f5..a59af7ffd6 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -28,7 +28,7 @@ Смешанное Почти мягкое Мягкое - Твердость поверхности дороги + Твёрдость поверхности дороги Промежуточная точка Промежуточные точки Прибытие в %1$s @@ -66,7 +66,7 @@ Выберите улицу в %1$s Введите адрес - Введите город/населенный пункт/место + Введите город/населённый пункт/место Введите почтовый индекс Ближайшие города Выберите город @@ -79,7 +79,7 @@ Благодарим вас за покупку платной версии OsmAnd. Не показывать сообщения при запуске Не показывать скидки на приложение и специальные сообщения о местных событиях. - OsmAnd собирает информацию о том, какие вы используете части приложения. Ваше местоположение никогда не отправляется, как и все, что вы вводите, какие области читаете, что ищете или скачиваете. + OsmAnd собирает информацию о том, какие вы используете части приложения. Ваше местоположение никогда не отправляется, как и всё, что вы вводите, какие области читаете, что ищете или скачиваете. Не отсылать анонимную статистику использования Авто Правостороннее движение @@ -103,7 +103,7 @@ Заменить пункт назначения Добавить первую промежуточную точку Кнопка для установки центра экрана пунктом назначения маршрута, любой ранее выбранный пункт назначения станет последним промежуточным пунктом. - Кнопка для установки центра экрана пунктом отправления. Затем будет предложено установить пункт назначения или запустить расчет маршрута. + Кнопка для установки центра экрана пунктом отправления. Затем будет предложено установить пункт назначения или запустить расчёт маршрута. Кнопка для установки центра экрана пунктом назначения, заменив ранее выбранный пункт назначения (если такой был задан). Кнопка для установки центра экрана первой промежуточной точкой маршрута. Нет покрытия @@ -117,8 +117,8 @@ Предпочтительный рельеф: равнинный или холмистый. Уклон Добавить новую папку - Точка(-и) удалены. - Вы уверены, что желаете удалить %1$d точку(и)\? + Точки удалены. + Вы уверены, что хотите удалить %1$d точки\? Повороты на маршруте Путевые точки, точки интереса, именованные элементы Трек @@ -134,13 +134,13 @@ Переместить Треки Спуск - Подъем + Подъём Диапазон высот Средняя высота Время Длина маршрута Стиль вождения - Выберите пересеченность местности + Выберите пересечённость местности Использовать данные о высотах Фактор рельефа местности (по данным SRTM, ASTER и EU-DEM). Название быстрого действия было изменено на %1$s, чтобы избежать дублирования. @@ -169,7 +169,7 @@ Сменить источник карты Источники карты Добавить источник карты - Источник карты изменен на «%s». + Источник карты изменён на «%s». Долгое нажатие и перетаскивание позволит переместить кнопку. Показывать контуры и точки глубины. Контуры морских глубин @@ -194,7 +194,7 @@ Построение маршрута У вас пока нет файлов GPX Вы также можете добавить файлы GPX в папку - Добавь еще… + Добавь ещё… Вид Включить быструю запись Отображение системного уведомления, позволяющего производить запись поездки. @@ -212,15 +212,15 @@ Минимальная точность для записи Фильтр: не записывать, если эта точность не достигнута. Рождественские POI - В преддверии рождественских и новогодних праздников вы можете выбрать отображение связанных с ними POI, таких как рождественские елки, ярмарки и т.д. + В преддверии рождественских и новогодних праздников вы можете выбрать отображение связанных с ними POI, таких как рождественские ёлки, ярмарки и т.д. Отображать праздничные POI\? Цветовая схема горизонталей Светло-коричневый - Темно-коричневый + Тёмно-коричневый Цветовая гамма горизонталей Качество дорожного покрытия Введите название города, адрес, POI - Введите имя для нового фильтра. Вы сможете его найти в списке \"Категории\". + Введите имя для нового фильтра. Вы сможете его найти в списке «Категории». Транслитерация если имя на %1$s отсутствует Транслитерация названий Редактировать категории @@ -268,7 +268,7 @@ Битрейт аудио Выберите битрейт аудио. Скрыть - Адрес не определен + Адрес не определён Около Местоположение Редактировать POI @@ -285,7 +285,7 @@ Не удалось создать заметку. Заметка закрыта Не удалось закрыть заметку. - Удаленная OSM POI + Удалённая OSM POI Отредактированная OSM POI Сохранить локально Добавить заметку OSM @@ -314,26 +314,26 @@ Установка настроек аудио и видео. Ошибка записи Камера недоступна - Аудио/видео записывается. Для остановки нажмите AV виждет. + Аудио/видео записывается. Для остановки нажмите виждет AV. Проигрывается аудио.\n%1$s Открыть внешний проигрыватель Удалить эту запись? недоступно - Создать аудио заметку - Создать видео заметку + Создать аудиозаметку + Создать видеозаметку Слой аудиозаписей Запись не может быть воспроизведена. Удалить запись Проиграть Запись %1$s %3$s %2$s Запись - Аудио заметки + Аудиозаметки OsmAnd плагин для линий высот Измерение расстояний Нажмите «Использовать местоположение…» чтобы добавить заметку к данному местоположению. - Аудио заметки - Делайте аудио-/фото-/видеозаметки во время поездки, используя либо кнопку на карте, либо контекстное меню местоположения. - Аудио-видео заметки + Аудиозаметки + Делайте аудио/фото/видеозаметки во время поездки, используя либо кнопку на карте, либо контекстное меню местоположения. + Аудио/видеозаметки частей Линии высот Контурные линии @@ -349,33 +349,33 @@ Карта дорог Запустить приложение в безопасном режиме (замедляет работу приложения, используя только Android функции). Безопасный режим - Приложение работает в безопасном режиме (отключите его в разделе \"Настройки\"). - Фоновая служба OsmAnd все еще работает. Остановите ее тоже? + Приложение работает в безопасном режиме (отключите его в разделе «Настройки»). + Фоновая служба OsmAnd всё ещё работает. Остановите её тоже\? Закрыть changeset Приложение ZXing Barcode Scanner не найдено. Искать в Google Play? Быстрое построение маршрута (возможно неоптимально) ч. - Точка отправления еще не определена. - Местоположение еще не определено. + Точка отправления ещё не определена. + Местоположение ещё не определено. Установить прозрачность (0 – прозрачный, 255 – непрозрачный) Прервать загрузку\? - Для работы большинства основных возможностей приложения требуются детальные карты регионов, которые можно загрузить из Интернета с помощью пункта меню \"Настройки\" → \"Управление файлами карт\". После загрузки Вы сможете просматривать карты, осуществлять поиск адресов, POI и общественного транспорта. + Для работы большинства основных возможностей приложения требуются детальные карты регионов, которые можно загрузить из интернета с помощью пункта меню «Настройки» → «Управление файлами карт». После загрузки вы сможете просматривать карты, осуществлять поиск адресов, POI и общественного транспорта. Карта мира, необходимая для обеспечения базовой функциональности, находится в очереди загрузки. Ничего не было найдено. Вы можете создать карту самостоятельно (смотрите на osmand.net). - Онлайн и кэшированные карты (растровые) + Онлайн и кешированные карты (растровые) Стандартные карты (векторные) Загрузка и управление локальными файлами карт на вашем устройстве. Активируйте плагин онлайн карт, чтобы выбирать различные источники карт Онлайн карты - Использовать онлайн карты (загрузка и кэширование на SD-карте). + Использовать онлайн карты (загрузка и кеширование на SD-карте). Онлайн карты Выберите источник онлайн или кешированных растровых карт. - Получение доступа ко множеству видов онлайн-карт (тайловых или растровых): от предопределенных тайловых OSM (как Mapnik), до спутниковых снимков и слоев специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д. -\n -\n Любая из этих карт может быть использована в качестве основной (базовой) карты для отображения или в виде наложения или подложки к другой базовой карте (например стандартной автономной карте OsmAnd). Некоторые элементы векторной карты OsmAnd могут быть по желанию скрыты через меню \"Настройки карты\". -\n + Получение доступа ко множеству видов онлайн-карт (тайловых или растровых): от предопределённых тайловых OSM (как Mapnik), до спутниковых снимков и слоёв специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д. +\n +\n Любая из этих карт может быть использована в качестве основной (базовой) карты для отображения или в виде наложения или подложки к другой базовой карте (например стандартной автономной карте OsmAnd). Некоторые элементы векторной карты OsmAnd могут быть по желанию скрыты через меню «Настройки карты». +\n \n Карты можно загрузить непосредственно из интернета или подготовить для использования в автономном режиме (и вручную скопировать в папку данных OsmAnd) в виде базы данных sqlite, которая может быть создана с помощью различных инструментов подготовки карт сторонних производителей. - Показывает настройки для включения фонового отслеживания и навигации путем периодического пробуждения устройства GPS (с выключенным экраном). + Показывает настройки для включения фонового отслеживания и навигации путём периодического пробуждения устройства GPS (с выключенным экраном). Добавляет поддержку специальных возможностей устройства непосредственно в OsmAnd. Это облегчает, например, регулировку скорости речи для синтезированного голоса, настройку направленности экрана навигации, управление масштабом при помощи трекбола или использование голосовых команд обратной связи для автоматической аннотации вашего местоположения. Настройки для функций разработки и отладки, таких как проверка или имитация маршрутизации, производительность отрисовки, проверка голосовых подсказок. Эти настройки предназначены для разработчиков и не нужны обычному пользователю. Плагины @@ -387,7 +387,7 @@ Отладка и разработка Быстрая отрисовка Тест голосовых подсказок - Скачайте офлайновую векторную карту для этой локации в меню «Настройки» («Управление файлами карт»), или переключитесь на плагин «Онлайн карты». + Скачайте автономную векторную карту для этой локации в меню «Настройки» («Управление файлами карт»), или переключитесь на плагин «Онлайн карты». Отправить файлы GPX в OSM\? Видимость Теги @@ -401,30 +401,30 @@ Использовать флуоресцентные цвета для отображения треков и маршрутов. Локальное редактирование Всегда использовать локальное редактирование. - Изменение POI в приложении не меняет POI загруженные из Интернета, однако все изменения сохраняются в локальный файл. + Изменение POI в приложении не меняет POI загруженные из интернета, однако все изменения сохраняются в локальный файл. Выгрузка… {0} POI/заметок выгружено Выгрузить все Отправить изменения в OSM Удалить правку - Offline дополнение: - Локально сохраненные OSM POI/заметки + Автономное дополнение: + Локально сохранённые OSM POI/заметки Просмотр и управление OSM POI/заметками в локальной базе данных. Укажите интервал онлайн слежения. Интервал онлайн слежения Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. Web адрес онлайн слежения - Записать трек можно с помощью виджета GPX или выбрав \"Запись поездки\" в Настройках. + Записать трек можно с помощью виджета GPX или выбрав «Запись поездки» в Настройках. Показывать текущий путь Вы можете скачать или обновить карты %1$s. Бесплатная версия Показать описание POI. - Северная Америка - США + Северная Америка — США Северная Америка Центральная Америка Южная Америка - Европа - Франция - Европа - Германия + Европа — Франция + Европа — Германия Европа Россия Африка @@ -442,58 +442,58 @@ Вид карты и настройки навигации сохраняются для каждого отдельного профиля. Установите ваш профиль по умолчанию. Общие настройки Общие настройки приложения - Недостаточно места на диске для загрузки %1$s MB (свободно: %2$s). + Недостаточно места на диске для загрузки %1$s МБ (свободно: %2$s). Скачать {0} файл(ов)\? \nБудет использовано {1} МБ (из {2} МБ). Прозрачная тема Нативная библиотека не поддерживается на этом устройстве. Инициализация нативной библиотеки… Вид карты автоцентра - Выберите время, через которое карта вернется к текущей позиции. + Выберите время, через которое карта вернётся к текущей позиции. Автовозврат карты только при следовании по маршруту Возвращать карту в текущее положение только при следовании по маршруту. Автоцентр просмотра карты во время использования. - "Маршрут GPX" + Маршрут GPX Найдено несколько связанных категорий POI. - Загрузите офлайновые данные для поиска POI. + Загрузите данные для автономного поиска POI. Поиск по имени - Данные POI \"%1$s\" устарели и могут быть удалены. + Данные POI «%1$s» устарели и могут быть удалены. Файл с обновляемыми POI не найден и не может быть создан. Обновить до OsmAnd+ На сервере данных были найдены файлы, не совместимые с данной версией программы. Для их использования, пожалуйста, обновите приложение. Nominatim (Интернет) Определение положения… - Мое местоположение (найдено) + Моё местоположение (найдено) Адрес… Избранные… - Неопределенно + Неопределённо Текущий центр карты Начало: Искать рядом - Маршрут успешно сохранен в \"%1$s\". + Маршрут успешно сохранён в «%1$s». Имя файла: Файл с таким именем уже существует. Выгрузить файлы GPX в сообщество OSM. Они будут использованы для улучшения карты. - %1$d из %2$d объект(ов) успешно загружены. + %1$d из %2$d объектов успешно загружены. Отправить в OSM Детализированная карта Показывать детали (дороги и др.), начиная с мелких масштабов. Избранные точки удалены. - Вы уверены, что хотите удалить %1$d Избранных и %2$d Избранных групп\? + Вы уверены, что хотите удалить %1$d избранных и %2$d избранных групп\? Дом Друзья Места Другое Не нужно Отсутствует базовая карта, покрывающая весь мир на мелком масштабе. Пожалуйста загрузите World_basemap_x.obf для полноценный работы приложения. - Локальные данные отсутствуют на SD-карте. Пожалуйста, загрузите их для того, чтобы использовать приложение без Интернета. + Локальные данные отсутствуют на SD-карте. Пожалуйста, загрузите их для того, чтобы использовать приложение без интернета. " \n \nУдерживайте для вызова настроек" Загружено - %1$d из %2$d объект(ов) успешно архивированы. - %1$d из %2$d объект(ов) успешно удалены. - %1$d из %2$d объект(ов) успешно активированы. + %1$d из %2$d объектов успешно архивированы. + %1$d из %2$d объектов успешно удалены. + %1$d из %2$d объектов успешно активированы. Нет объектов, чтобы %1$s Вы собираетесь %1$s %2$s объектов. Вы уверены? Управление картами. @@ -513,7 +513,7 @@ Размер текста для названий на карте: Размер текста Распаковываются новые данные… - Онлайновая навигация не работает без наличия Интернета. + Онлайновая навигация не работает без наличия интернета. Язык не поддерживается Выбранный язык не поддерживается установленным движком Android TTS (text-to-speech или текст-в-речь), вместо него будет использоваться предустановленный язык TTS. Посмотреть в Google Play другой TTS\? Данные отсутствуют @@ -523,12 +523,12 @@ Пройти весь путь Для этого региона доступны локальные векторные карты. \n\t -\n\tДля их использования выберите в \"Меню\" → \"Настройки карты\" → \"Источник карты…\" → \"Векторные карты\". +\n\tДля их использования выберите в «Меню» → «Настройки карты» → «Источник карты…» → «Векторные карты». Голосовые инструкции Выберите канал вывода голосовых подсказок. Канал голосовых звонков (прерывает автомобильную Bluetooth стереосистему) - Канал аудио уведомлений - Канал аудио медиа/навигации + Канал уведомлений + Канал медиа/навигации Приложение не может загрузить слой карты %1$s, переустановка может решить проблему. Отрегулируйте прозрачность наложения. Прозрачность наложения @@ -543,9 +543,9 @@ Карта уже установлена, настройки будут обновлены. Выберите (тайловые) карты для установки или обновления. Для данной операции требуется подключение к интернету, но оно недоступно. - Загрузить еще… + Загрузить ещё… Минимальный масштаб для использования векторных карт. - Минимальный уровень векторных карт + Минимальный масштаб векторных карт Не удалось выполнить автономный поиск. Поиск по географическому положению Системная @@ -564,7 +564,7 @@ миля Поделиться, используя Координаты: %1$s\n%2$s - Чтобы увидеть местоположение следуйте ссылке %1$s или android ссылке %2$s + Чтобы увидеть местоположение, перейдите по ссылке %1$s или Android-ссылке %2$s Отправить местоположение Поделиться местоположением Путевая точка GPX «{0}» добавлена @@ -576,7 +576,7 @@ Экстренные службы Развлечения Финансы - Геокэшинг (игра) + Геокешинг (игра) Здоровье Историческое Землепользование @@ -606,18 +606,18 @@ Для туристов Заправки NameFinder (Интернет) - Чтение кэшированных растровых карт… + Чтение кешированных растровых карт… Недостаточно памяти для локальной карты «{0}» Версия локальной карты «{0}» не поддерживается - Офлайновая навигация OsmAnd является экспериментальной функцией и не работает на длинные расстояния более 20 километров. -\n + Автономная навигация OsmAnd является экспериментальной функцией и не работает на длинные расстояния более 20 километров. +\n \nНавигация временно переключена на онлайн-сервис CloudMade. Невозможно найти указанную папку. Папка хранилища данных У вас имеется предыдущая версия OsmAnd. Все локальные данные поддерживаются новой версией. Однако избранные точки нужно выгрузить из предыдущей версии приложения и загрузить в новую. Сборка {0} успешно установлена ({1}). Загружается сборка… - Установить OsmAnd - {0} из {1} {2} Мбайт\? + Установить OsmAnd — {0} из {1} {2} МБ\? Не удалось получить список сборок OsmAnd Загружаются сборки OsmAnd… Выберите сборку OsmAnd для установки @@ -628,10 +628,10 @@ День Ночь Восход/закат - Датчик освещенности + Датчик освещённости Настройте переключение между ночным и дневным режимами. Дневной/ночной режим - Загрузить {0} файл(ов) ({1} Мбайт)\? + Загрузить {0} файл(ов) ({1} МБ)\? Было выбрано {0} Загруженные Настройки экрана, локализации, единиц измерения и другие. @@ -640,8 +640,8 @@ Фоновый режим OsmAnd работает в фоновом режиме с выключенным экраном. Самый быстрый маршрут - Расчет скоростного маршрута вместо кратчайшего. - На масштабе {0} загрузить {1} тайлов ({2} Мбайт) + Расчёт скоростного маршрута вместо кратчайшего. + На масштабе {0} загрузить {1} тайлов ({2} МБ) Загрузить карту Наибольший масштаб для предварительной загрузки Выбранная карта не может быть загружена @@ -685,7 +685,7 @@ Избранные точки сохранены в {0} Нет избранных точек для сохранения Не удалось загрузить GPX. - Отправить отчет + Отправить отчёт Не удалось найти загруженные карты на карте памяти. Введите запрос для поиска POI Все @@ -726,7 +726,7 @@ Голосовые данные не поддерживаются текущей версией приложения Выбранные голосовые данные не правильного формата Выбранный пакет голосовых подсказок не доступен - SD-накопитель недоступен. + SD-карта недоступна. \nВы не сможете работать с картой. Карта памяти доступна только для чтения. \nТеперь можно только просматривать предварительно загруженную карту, а не загружать новые области. @@ -773,7 +773,7 @@ В данной области нет локальных POI Увеличение масштаба позволяет обновить POI Обновить POI - Вы хотите обновить локальные данные из Интернета? + Вы хотите обновить локальные данные из интернета\? Город:\n {0} Улица:\n {0}, {1} Пересечение улиц: {0} x {1} в {2} @@ -786,16 +786,16 @@ Поиск адреса… Поиск адреса в OSM Nominatim Онлайн поиск: Номер дома, улица, Город - Офлайн поиск + Автономный поиск Онлайн поиск Уровень детализации Выберите максимальный масштаб для загрузки тайлов карт из интернета. - Общая протяженность = %1$s, время в пути = %2$d ч %3$d мин. - Онлайн или оффлайн сервис для прокладки маршрута. + Общая протяжённость = %1$s, время в пути = %2$d ч. %3$d м. + Онлайн или автономный сервис для прокладки маршрута. Прокладка маршрута Папка для хранения данных на SD-карте недоступна! - Загрузить {0} - {1} ? - Локальная карта для {0} уже существует ({1}). Хотите ее обновить ({2}) ? + Загрузить {0} — {1}\? + Локальная карта для {0} уже существует ({1}). Хотите её обновить ({2})\? Адрес Загружено Загружается список доступных регионов… @@ -816,7 +816,7 @@ Загрузка POI… Авторизация не произошла , ошибка - Конвертация местных/английских имен… + Конвертация местных/английских имён… Загружаются улицы и дома… Загружаются почтовые индексы… Загружаются улицы… @@ -832,10 +832,10 @@ Вернуться к карте Загрузка данных… Чтение локальных данных… - Приложение завершилось некорректно. Лог-файл в {0}. Сообщите разработчику об ошибке и приложите лог-файл. + Приложение завершилось некорректно. Файл журнала в {0}. Сообщите разработчику об ошибке и приложите файл журнала. Сохранение файла GPX… Окончен - Использовать Интернет-сервис для прокладки маршрута. + Использовать интернет-сервис для прокладки маршрута. Онлайн маршрутизация Пароль Укажите настройки для загрузки данных в Openstreetmap.org (OSM). @@ -865,14 +865,14 @@ Выберите город или почтовый индекс Выберите регион Угол обзора - Включить 3D вид для карты. + Включить 3D-вид для карты. 3D вид Показать последние использованные POI на карте. Отображать POI Выберите источник онлайн или кешированных тайлов карты. Растровые карты Источник карты - Использовать Интернет + Использовать интернет Показать ваше местоположение Показать координаты GPS на карте Использовать интернет для загрузки недостающих участков карты @@ -880,7 +880,7 @@ Поиск Поиск Выберите POI - Найти еще + Найти ещё Выберите улицу Выберите дом Выберите регион из списка @@ -892,7 +892,7 @@ Пешеход По центру Внизу - Введите широту и долготу в формате (Г - градусы, М - минуты, С - секунды) + Введите широту и долготу в формате (Г — градусы, М — минуты, С — секунды) Широта Долгота ГГГ.ГГГГГ @@ -912,10 +912,10 @@ Нет Введите имя избранной точки Избранная - Точка \"\"{0}\"\" была успешно добавлена к Избранным. + Точка «{0}» была успешно добавлена к избранным. Редактировать точку Удалить точку - Удалить точку \"%s\" из избранных\? + Удалить точку «%s» из избранных\? Точка {0} была успешно удалена из избранных. Комментарий добавлен Не удалось добавить комментарий. @@ -941,8 +941,8 @@ Фильтровать Сохранить как Удалить этот фильтр\? - \'%1$s\' фильтр удален - \'%1$s\' фильтр создан + «%1$s» фильтр удалён + «%1$s» фильтр создан Режим специальных возможностей Включает дополнительные возможности для невизуального доступа. Вкл. @@ -969,14 +969,14 @@ западо-северо-запад северо-запад северо-северо-запад - вперед - направо вперед + вперёд + направо вперёд направо направо назад назад налево назад налево - налево вперед + налево вперёд на Точность Высота @@ -1013,7 +1013,7 @@ Локальная навигация OsmAnd временно недоступна. Левостороннее движение Для стран с левосторонним движением. - Данные роутинга + Данные маршрутизации Формат Поиск POI Поиск по адресу @@ -1047,7 +1047,7 @@ Без ограничения времени Добавить напоминание в календарь Время стоянки ограничено - Время стоянки неограничено + Время стоянки неограниченно Расположение припаркованного автомобиля. %1$s Забрать автомобиль в: PM @@ -1061,7 +1061,7 @@ Точка отправления слишком далеко от ближайшей дороги. Общие места Скорость моделирования маршрута: - Выделено памяти %1$s MB (Ограничение Android %2$s MB, Dalvik %3$s MB). + Выделено памяти %1$s МБ (ограничение Android %2$s МБ, Dalvik %3$s МБ). Выделено памяти Всего приложению выделено %1$s МБ физической памяти (Dalvik %2$s МБ, другое %3$s МБ). \nПропорциональная память %4$s МБ (ограничение Android %5$s МБ, Dalvik %6$s МБ). @@ -1072,7 +1072,7 @@ Использовать компас, если невозможно иначе определить направление. Использовать компас Маршрут будет пересчитан после определения местоположения - Предыдущий маршрут не был закончен. Продолжить следование по нему? (%1$s секунд) + Предыдущий маршрут не был закончен. Продолжить следование по нему\? (%1$s сек.) Камеры контроля скорости Ограничения скорости Без платных дорог @@ -1114,57 +1114,56 @@ Постоянно Создать фильтр POI Вид транспорта: - Восход : %1$s -\nЗакат : %2$s + Восход: %1$s +\nЗакат: %2$s Атрибуты визуализации Стиль карты - email + Эл. почта Восход/закат - Мобильный просмотр и навигация по онлайн и офлайн картам OSM всего мира - OsmAnd (Open Street Maps Automated Navigation Directions) + Мобильный просмотр и навигация по онлайн и автономным картам OSM всего мира + OsmAnd (Open Street Maps Automated Navigation Directions) \n -\n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет автономные и онлайн средства построения маршрута, включая голосовые инструкции по маршруту. -\n -\n Некоторые из основных возможностей приложения: -\n - работа с векторными и растровыми картами без доступа в интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); -\n - доступность компактных векторных карт для всех стран мира; -\n - загрузка векторных и растровых карт для страны или области из самого приложения; -\n - отображение дополнительной информации (слоев) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; -\n - поиск адресов и объектов (POI) без доступа в интернет; -\n - построение маршрутов на небольшие расстояния без доступа в интернет (экспериментальная функция); -\n - режимы автомобиля, велосипеда и пешехода с возможностями: -\n - автоматического переключения на дневной/ночной режим отрисовки карты; -\n - изменения масштабы карты в зависимости от скорости; -\n - вращения карты по компасу или направлению движения; -\n - использования голосовых команд (воспроизводимых записанными или синтезированными голосами) при движении по маршруту; -\n - предупреждения о превышении допустимой скорости движения. +\n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет автономные и онлайн средства построения маршрута, включая голосовые инструкции по маршруту. +\n +\n Некоторые из основных возможностей приложения: +\n — работа с векторными и растровыми картами без доступа в интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); +\n — доступность компактных векторных карт для всех стран мира; +\n — загрузка векторных и растровых карт для страны или области из самого приложения; +\n — отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; +\n — поиск адресов и объектов (POI) без доступа в интернет; +\n — построение маршрутов на небольшие расстояния без доступа в интернет (экспериментальная функция); +\n — режимы автомобиля, велосипеда и пешехода с возможностями: +\n — автоматического переключения на дневной/ночной режим отрисовки карты; +\n — изменения масштабы карты в зависимости от скорости; +\n — вращения карты по компасу или направлению движения; +\n — использования голосовых команд (воспроизводимых записанными или синтезированными голосами) при движении по маршруту. +\n +\n Ограничения бесплатной версии OsmAnd: +\n — ограниченное число загрузок карт; +\n — нет возможности просматривать описание достопримечательностей из Википедии без использования интернета. \n -\n Ограничения бесплатной версии OsmAnd: -\n - ограниченное число загрузок карт; -\n - нет возможности просматривать описание достопримечательностей из Wikipedia без использования интернета. -\n \n OsmAnd продолжает активно развиваться. Но так как проект финансируется только взносами пользователей, то дальнейшее развитие проекта и появление новых функциональных возможностей зависит от наличия этого финансирования. Поэтому если вам нравится приложение, подумайте о покупке OsmAnd+. Также на сайте osmand.net вы можете профинансировать конкретную функциональную возможность или внести общий финансовый вклад в развитие проекта. - OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом - OsmAnd+ (OSM Automated Navigation Directions) -\n -\n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет автономные и онлайн средства построения маршрута, включая пошаговые голосовые подсказки. + OsmAnd — это навигационное приложение для путешествий с открытым исходным кодом + OsmAnd+ (OSM Automated Navigation Directions) \n -\n OsmAnd+ — это платная версия приложения, покупая которую вы поддерживаете проект, финансируете разработку новых функций и получаете последние обновления. +\n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет автономные и онлайн средства построения маршрута, включая пошаговые голосовые подсказки. \n -\n Некоторые из основных возможностей приложения: -\n - Полностью автономная работа без доступа в сеть интернет (для этого нужно предварительно сохранить карты в память устройства); -\n - Компактные автономные векторные карты для всех стран мира; -\n - Неограниченная загрузка карт для страны или региона из самого приложения; -\n - Автономная Википедия (необходимо предварительно загрузить Wikipedia POI), отличный вариант для достопримечательностей; -\n - Наложение на карту дополнительных слоев, например, GPX-треки или навигационные пути, точки интереса POI, избранные местоположения, контурные линии высот, остановки общественного транспорта, дополнительные карты с настраиваемой прозрачностью; -\n -\n - Автономный поиск адресов и точек интереса POI без доступа в интернет; -\n - Автономное построение маршрутов на средние расстояния без доступа в интернет; -\n - Режимы работы приложения для автомобиля, велосипеда или пешехода с возможностями: -\n - автоматического переключения на дневной/ночной режим отрисовки карты; -\n - изменения масштабы карты в зависимости от скорости; -\n - вращения карты по компасу или направлению движения; -\n - подсказки полосы движения, отображение ограничения скорости, предварительно записанные и синтезированные голосовые подсказки +\n OsmAnd+ — это платная версия приложения, покупая которую вы поддерживаете проект, финансируете разработку новых функций и получаете последние обновления. +\n +\n Некоторые из основных возможностей приложения: +\n — Полностью автономная работа без доступа в сеть интернет (для этого нужно предварительно сохранить карты в память устройства); +\n — Компактные автономные векторные карты для всех стран мира; +\n — Неограниченная загрузка карт для страны или региона из самого приложения; +\n — Автономная Википедия (необходимо предварительно загрузить Wikipedia POI), отличный вариант для достопримечательностей; +\n — Наложение на карту дополнительных слоёв, например, GPX-треки или навигационные пути, точки интереса POI, избранные местоположения, контурные линии высот, остановки общественного транспорта, дополнительные карты с настраиваемой прозрачностью; +\n +\n — Автономный поиск адресов и точек интереса POI без доступа в интернет; +\n — Автономное построение маршрутов на средние расстояния без доступа в интернет; +\n — Режимы работы приложения для автомобиля, велосипеда или пешехода с возможностями: +\n — автоматического переключения на дневной/ночной режим отрисовки карты; +\n — изменения масштабы карты в зависимости от скорости; +\n — вращения карты по компасу или направлению движения; +\n — подсказки полосы движения, отображение ограничения скорости, предварительно записанные и синтезированные голосовые подсказки \n Без автомагистралей Привязываться к дорогам во время навигации. @@ -1180,7 +1179,7 @@ Чрезвычайные обстоятельства Общественный транспорт Развлечения - Жилье + Жильё Рестораны Достопримечательности Добавить как последний промежуточный пункт назначения @@ -1197,11 +1196,11 @@ Нет маршрута Включите GPS в настройках Отображать направление к пункту назначения - "Включите плагин \"Запись поездки\" для использования сервисов мониторинга (запись GPX, сопровождение в реальном времени)" + Включите плагин «Запись поездки» для использования сервисов мониторинга (запись GPX, сопровождение в реальном времени) Выберите цветовую схему дорог: Цветовая схема дорог Ш %1$.3f Д %2$.3f - незавершенное + незавершённое Ограничение скорости GPX Прочие карты @@ -1211,22 +1210,22 @@ Просмотр Сделать фото Сделать фото - Синхронизация треков и видео/аудио заметок с вашим аккаунтом Dropbox. + Синхронизация треков и видео/аудиозаметок с вашим аккаунтом Dropbox. Плагин Dropbox Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта. \n \nГлобальные данные (между 70° на севере и 70° на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). Фото %1$s %2$s - Аудио/Видео данные + Аудио/видеоданные Вы уверены, что хотите остановить навигацию? Вы уверены, что хотите удалить пункт назначения (и промежуточные пункты)? - Точный маршрут (alpha) + Точный маршрут (альфа) Пожертвуйте, чтобы увидеть новые функции реализованными в приложении. Рассчитывайте точные маршруты без затруднений. Имеются ограничения на расстояние и быстродействие. Затенение рельефа Использовать системное приложение для фото. Использовать приложение Камера - OpenMaps - Европа + OpenMaps — Европа Предпочитать автомагистрали Предпочитать… Предпочитать автомагистрали. @@ -1238,7 +1237,7 @@ Слой рельефа местности Название улицы Номер дома - Нет соединения по Wi-Fi. Использовать текущее Интернет-соединение для загрузки? + Нет соединения по Wi-Fi. Использовать текущее интернет-соединение для загрузки\? Запись поездок Настройте, как записывать ваши поездки. Настройка внешнего вида приложения. @@ -1250,7 +1249,7 @@ По запросу\? OsmAnd карты и навигация OsmAnd+ карты и навигация - Уменьшает \"шум\" компаса, но добавляет инерцию. + Уменьшает «шум» компаса, но добавляет инерцию. Использовать фильтр Калмана Остановить навигацию Использовать датчик магнитного поля @@ -1265,7 +1264,7 @@ Полная версия Отменить маршрут Очистить пункт назначения - Искать улицу в ближайших населенных пунктах + Искать улицу в ближайших населённых пунктах Сортировать от двери до двери Доступно %1$d файлов для скачивания осталось %1$d файлов @@ -1273,16 +1272,16 @@ Открыть существующий файл GPX Начать новый подтрек Имя файла GPX - Файл GPX сохранен в {0} - Инструмент расчета дистанции и планирования + Файл GPX сохранён в {0} + Инструмент расчёта дистанции и планирования Промежуточные пункты выстроены в оптимальный маршрут от текущего местоположения до пункта назначения. Не удалось выполнить резервное копирование изменений OSM. Резервное копирование как правка OSM высота OsmChange-файл создан за %1$s * Нажмите, чтобы отметить точку. -\n* Долго удерживайте на карте, чтобы удалить предыдущую точку. -\n* Долго удерживайте на точке, чтобы просмотреть и добавить описание. +\n* Удерживайте нажатие на карте, чтобы удалить предыдущую точку. +\n* Удерживайте нажатие на точке, чтобы просмотреть и добавить описание. \n* Нажмите на виджет измерения, чтобы увидеть больше действий. Использовать магнитный датчик вместо датчика ориентации. Другие @@ -1296,7 +1295,7 @@ Режим фокусировки камеры: Автофокус Гиперфокальная фокусировка - Увеличенная глубина резкозти (EDOF) + Увеличенная глубина резкости (EDOF) Фокус на бесконечность Макро-режим Постоянная фокусировка @@ -1332,7 +1331,7 @@ Время действия (в минутах): %1$s Загружаемые: %1$s Максимальное увеличение: %1$s - Источник тайлов %1$s успешно сохранен + Источник тайлов %1$s успешно сохранён Максимальное увеличение Минимальное увеличение URL @@ -1344,7 +1343,7 @@ Данные о тайлах: %1$s Обзорная карта мира Время действия (в минутах) - Самолет + Самолёт Лодка Пеший туризм Мотоцикл @@ -1367,23 +1366,23 @@ Без паромов Избегать паромные переправы Максимальная масса - Укажите допустимый предел массы автомобиля для учета при построении маршрута. + Укажите допустимый предел массы автомобиля для учёта при построении маршрута. Отображение карты - Навигационные знаки (водоемы) + Навигационные знаки (водоёмы) Выключить сложную маршрутизацию Укажите скорость произношения для text-to-speech. Настройки навигации Настройки маршрутизации Грузовик - Рассчитать оффлайновый маршрут OsmAnd + Автономно рассчитать маршрут OsmAnd Копирование файлов данных OsmAnd… Скорость произношения Выберите отображаемые профили. Профили приложения Выберите существующий… Задать/отредактировать … - В Android 4.4 (KitKat) и выше, прежнее хранилище (%s) объявлено устаревшим. Скопировать все файлы OsmAnd в новое хранилище\? -\n Примечание 1: ваши старые файлы останутся нетронутыми (но могут быть удалены вручную). + В Android 4.4 (KitKat) и выше прежнее хранилище (%s) объявлено устаревшим. Скопировать все файлы OsmAnd в новое хранилище\? +\n Примечание 1: ваши старые файлы останутся нетронутыми (но могут быть удалены вручную). \n Примечание 2: в новом хранилище совместное использование файлов OsmAnd и OsmAnd+ невозможно. Копирование файла (%s) на новое место… Копирование файлов данных OsmAnd на новое место (%s)… @@ -1396,7 +1395,7 @@ Информация про маршрут Добавить следующим пунктом назначения Использовать показанный путь для навигации? - Рассчитать сегмент маршрута OsmAnd без Интернета + Рассчитать сегмент маршрута OsmAnd без интернета Рассчитать маршрут OsmAnd для первого и последнего сегмента маршрута Эллиптическая проекция Меркатора Английский @@ -1437,8 +1436,8 @@ Украинский Вьетнамский Валлийский - Европа - Италия - Европа - Великобритания + Европа — Италия + Европа — Великобритания Африкаанс Португальский (Бразилия) Китайский @@ -1448,7 +1447,7 @@ Мировая обзорная карта Мировые морские объекты Мировая коррекция высоты - Северная Америка - Канада + Северная Америка — Канада Отображать положение в центре экрана Голос Разное @@ -1458,12 +1457,12 @@ Поделиться маршрутом используя файл GPX Неправильный формат: %s Маршрут предоставленный через OsmAnd - Только вручную (нажатием \"стрелочки\") + Только вручную (нажатием «стрелочки») Повторять навигационные инструкции с регулярными интервалами. Повторять навигационные инструкции Объявление прибытия Как скоро следует сообщать о прибытии? - Избранные точки расшаренные через OsmAnd + Избранные точки, опубликованные через OsmAnd Рассчитать маршрут между точками Мировые пункты обмена bitcoin дней @@ -1480,7 +1479,7 @@ Максимальная скорость: %1$s Средняя высота: %1$s Диапазон высот: %1$s - Снижение/подъем: %1$s + Спуск/подъём: %1$s Общее время: %1$s Время в движении: %1$s %1$s \nТочек @@ -1523,7 +1522,7 @@ Предпочтительный язык на карте Суахили Иврит - Вперед + Вперёд Панель управления Местные названия Начать запись GPX @@ -1538,13 +1537,13 @@ Онлайн слежение (требуется GPX) Начать онлайн слежение Остановить онлайн слежение - Загрузок не найдено, проверьте подключение к Интернету. + Загрузок не найдено, проверьте подключение к интернету. Албанский Арабский Персидский Сардинский Сербский (кириллица) - Китайский (упрощенный) + Китайский (упрощённый) Китайский (традиционный) Маршруты метро Продолжить навигацию @@ -1558,12 +1557,12 @@ Пеший горный туризм по шкале (SAC) Наложение туристических меток Цветовая маркировка зданий по типу - Маршруты автобусов, троллейбусов и маршруток + Маршруты автобусов, троллейбусов и маршрутных такси Обзор карты Автомобиль Велосипед Пешком - Скачать недостающие карты %1$s (%2$d MB)? + Скачать недостающие карты %1$s (%2$d МБ)\? Путевые точки Дорожные предупреждения Избранные поблизости @@ -1624,7 +1623,7 @@ Скрыть Избегать дороги… %1$s необходимо это разрешение, чтобы выключить экран для экономии энергии. - Авто-включение экрана перед поворотом + Автовключение экрана перед поворотом Включать экран устройства (если он выключен) при приближении к повороту. Карты доступные для обновления: %1$s Координаты @@ -1633,14 +1632,14 @@ Все файлы обновлены Использовать OpenGL для отрисовки Использовать аппаратное ускорение OpenGL для отрисовки (может не работать на некоторых устройствах). - Загрузка невозможна. Проверьте подключение к Интернету. + Загрузка невозможна. Проверьте подключение к интернету. Загрузки Обновления Локальные Зона Остановки транспорта Отклонить - Загрузить оффлайн карты? + Загрузить автономные карты\? Загружено карт: %1$s Загрузить новую карту Менеджер загрузок @@ -1662,13 +1661,13 @@ Пешеходный переход Пешеходные переходы Начать навигацию по треку? - Запуск альтернативного маршрута, путем выбора дорог, которых стоит избегать + Запуск альтернативного маршрута путём выбора дорог, которых стоит избегать Запись трека по требованию Прокси-сервер Укажите прокси-сервер. Приватность - Включить HTTP прокси-сервер - Настройка HTTP прокси-сервера для всех сетевых запросов. + Включить прокси-сервер HTTP + Настройка прокси-сервера HTTP для всех сетевых запросов. Адрес прокси-сервера Укажите имя хоста вашего прокси-сервера (например, 127.0.0.1). Порт прокси-сервера @@ -1676,7 +1675,7 @@ Уличное освещение Скачать ночные сборки. Сборки - Мое местоположение + Моё местоположение Статус GPS Точки Место для парковки @@ -1698,7 +1697,7 @@ Вернуться на карту Координаты:\n Широта %1$s\n Долгота %2$s - Включен + Включён Выключен Никогда и @@ -1770,8 +1769,8 @@ Изменить действие Создать действие OSM правки - ч - мин + ч. + м. осталось Парковка ограничена временем Ваши правки @@ -1786,12 +1785,12 @@ \n \nСпециальная дополнительная карта для OsmAnd добавляет морские навигационные и условные знаки как для внутренней, так и для прибрежной навигации. Описание навигационных отметок содержит информацию, необходимую для их идентификации, а также их характеристики (категория, форма, цвет, последовательность мерцания огней и т.д.). \n -\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый \"Стиль карты\" в разделе \"Настройки карты\". +\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый «Стиль карты» в разделе «Настройки карты». Вы уверены, что хотите отправить %1$d изменений в OSM\? Очистить историю? - Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулерах и горнолыжных подъемниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального \"зимнего\" стиля карты, который заключается в том, что используются \"снежные\" цвета зимнего пейзажа. + Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулёрах и горнолыжных подъёмниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального «зимнего» стиля карты, который заключается в том, что используются «снежные» цвета зимнего пейзажа. \n -\nВ случае активации этого вида, стиль карты меняется на \"Зимний/лыжный\", показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменен либо путем деактивации здесь, либо если вы поменяете \"Стиль карты\" в меню \"Настройки карты\" на желаемый вид. +\nВ случае активации этого вида, стиль карты меняется на «Зимний/лыжный», показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменён либо путём деактивации здесь, либо если вы поменяете «Стиль карты» в меню «Настройки карты» на желаемый вид. Текущий маршрут Скачать карты Для правильного отображения дорожных знаков и правил, пожалуйста, выберите свой регион вождения: @@ -1799,7 +1798,7 @@ Отметить для удаления OsmAnd обеспечивает глобальный автономный просмотр карт и автономную навигацию. OSM изменения добавлены в локальную базу данных - Во многих странах (Германия, Франция, Италия и другие) использование предупреждения о камерах контроля скорости не допускается законом. OsmAnd не несет никакой ответственности, если Вы нарушите закон. Пожалуйста, нажмите \" Да \" только если вы имеете право использовать эту функцию. + Во многих странах (Германия, Франция, Италия и другие) использование предупреждения о камерах контроля скорости не допускается законом. OsmAnd не несёт никакой ответственности, если вы нарушите закон. Пожалуйста, нажмите «Да» только если вы имеете право использовать эту функцию. Информация A-GPS Данные A-GPS загружены: %1$s Сообщение @@ -1830,15 +1829,15 @@ Номера домов Избегать пересечение национальных границ Максимальная высота - Укажите высоту транспортного средства для учета при построении маршрута. - Умный перерасчет маршрута - Перерасчет только начальной части маршрута для длительных поездок. + Укажите высоту транспортного средства для учёта при построении маршрута. + Умный перерасчёт маршрута + Перерасчёт только начальной части маршрута для длительных поездок. Удалить правки OSM Выключен Раскраска по сетевой принадлежности Раскраска туристических меток по OSMC Выход - Европа - Нидерланды + Европа — Нидерланды Википедия Википедия Показать детали @@ -1881,19 +1880,19 @@ Осетинский Эсперанто Светлая - Темная + Тёмная Бенгальский По умолчанию (13) По умолчанию (полупрозрачный голубой) Красный Полупрозрачный красный Полупрозрачный оранжевый - Желтый - Полупрозрачный желтый - Светло-зеленый - Полупрозрачный светло-зеленый - Зеленый - Полупрозрачный зеленый + Жёлтый + Полупрозрачный жёлтый + Светло-зелёный + Полупрозрачный светло-зелёный + Зелёный + Полупрозрачный зелёный Голубой Полупрозрачный голубой Синий @@ -1919,7 +1918,8 @@ Пропустить OsmAnd Плагины - Офлайн карты\nи Навигация + Автономные карты +\nи Навигация Номер дома Тип лыжной трассы Автообновления @@ -1939,7 +1939,7 @@ Жирный контур Рабочие дни Избранные - Успешно сохранен в: %1$s + Успешно сохранён в: %1$s POI будут удалены после того как вы загрузите ваши изменения Показать данные GPX удалить @@ -1947,7 +1947,7 @@ Количество строк Показывать при запуске Вы уверены? - Все несохраненные изменения будут потеряны. Продолжить? + Все несохранённые изменения будут потеряны. Продолжить\? Моделировать ваше местоположение, используя рассчитанный маршрут или записанный трек GPX. Остановить моделирование своего местоположения. Добавить новую @@ -1967,29 +1967,29 @@ Запись поездки Навигация Информация об избранной точке - Без челночных (шаттловых) поездов - Избегать использования челночных (или шаттловых) поездов + Без челночных поездов (шаттлов) + Избегать использования челночных поездов (шаттлов) Опасность Регионы Карты мира Добавить в избранные Региональные карты - Пожалуйста, используйте название категории, которое еще не существует. + Пожалуйста, используйте название категории, которое ещё не существует. Название категории Добавить новую категорию Слой рельефа местности выключен Контурные линии выключены Дороги Купить - Активируйте плагин \"Морские карты\" - Активируйте плагин \"Линии высот\" + Активируйте плагин «Морские карты» + Активируйте плагин «Линии высот» Позже Полная версия Загрузки Показывать баннер бесплатной версии Показывать баннер бесплатной версии даже в платной версии. В карте дорог не необходимости, так как у вас уже есть стандартная (полная) карта. Загрузить в любом случае? - %1$.1f из %2$.1f Мб + %1$.1f из %2$.1f МБ %.1f МБ Обновить все (%1$s МБ) Использовано бесплатных загрузок @@ -2002,7 +2002,7 @@ Карта загружена QR код Показать карту - Мировая обзорная карта (охватывающая весь мир при низком уровне масштабирования) отсутствует или устарела. Пожалуйста, загрузите ее для глобального обзора. + Мировая обзорная карта (охватывающая весь мир при низком уровне масштабирования) отсутствует или устарела. Пожалуйста, загрузите её для глобального обзора. Карта %1$s готова к использованию. Имитировать первый запуск Устанавливает признак первого запуска приложения, не изменяет других настроек. @@ -2011,7 +2011,7 @@ Версии Технические статьи Установка и решение проблем - Поиск карты + Поиск на карте Обзор карты Часто задаваемые вопросы Вопросы и ответы @@ -2032,7 +2032,7 @@ Создана OSM POI Запустить в фоновом режиме Места - Загрузка файла - %1$d + Загрузка файла — %1$d Подробнее Что нового в Вы действительно хотите сохранить POI без указания типа? @@ -2073,12 +2073,12 @@ Количество правок Ночь Утро - Объем памяти, который может быть занят всеми видеоклипами. + Объём памяти, который может быть занят всеми видеоклипами. Длина ролика Верхний предел продолжительности записанного клипа. Разбиение на клипы Использовать разбиение на клипы - Циклическая перезапись клипов при превышении заданного объема хранилища. + Циклическая перезапись клипов при превышении заданного объёма хранилища. Обратить пункты старта и назначения Удалить Подземные объекты @@ -2091,9 +2091,9 @@ Осталось %1$s загрузок Пожертвования Подписаться - Не показывать мое имя в отчетах + Не показывать моё имя в отчётах Стоимость в месяц - Ежемесячный платеж + Ежемесячный платёж Пожалуйста, введите действительный адрес электронной почты Спасибо за поддержку OsmAnd! \nЧтобы активировать все новые возможности вам нужно перезапустить приложение. @@ -2125,13 +2125,13 @@ элементы удалены Автообновления Выберите или скачайте голосовые оповещения для вашего языка. - Полный отчет + Полный отчёт Пересчитать маршрут Имя пользователя и пароль OSM Количество получателей Активные Неактивные - Часть вашего пожертвования будет направляться пользователям OSM внесшим изменения в карту этого региона. + Часть вашего пожертвования будет направляться пользователям OSM, внёсшим изменения в карту этого региона. Недостаточно места! \nНеобходимо {3} МБ временного хранилища и {1} МБ постоянного. \n(Доступно только {2} МБ) @@ -2142,9 +2142,9 @@ Панель управления или меню Автообновление Размер обновления - Отчет для + Отчёт для Приложение получило разрешение на запись во внешнее хранилище. Требуется перезагрузка приложения. - Отчет + Отчёт Переместить ↑ Переместить ↓ Завершить навигацию @@ -2152,7 +2152,7 @@ Публичное имя Поддерживаемый регион Пожалуйста, введите публичное имя - Предлагается выбрать, прежде всего, управление приложением через гибкую панель управления или статическое меню. Ваш выбор всегда может быть изменен в настройках панели управления. + Предлагается выбрать, прежде всего, управление приложением через гибкую панель управления или статическое меню. Ваш выбор всегда может быть изменён в настройках панели управления. Просмотр Пожалуйста, добавьте маркеры на карте Путевых точек не найдено @@ -2166,8 +2166,8 @@ Развернуть Не установлен Иерархический список - Свернутый список - Развернутый список + Свёрнутый список + Развёрнутый список Пустой список Карта привязана к местоположению Введите имя @@ -2180,18 +2180,18 @@ Период автооповещений Минимальное время между оповещениями. Не пересчитывать маршрут при сходе с него - Предотвращает пересчет маршрута после того, как вы из него вышли. + Предотвращает пересчёт маршрута после того, как вы из него вышли. Не пересчитывать маршрут при обратном направлении движения - Предотвращает автоматический пересчет маршрута при обратном направлении движения. + Предотвращает автоматический пересчёт маршрута при обратном направлении движения. Пункт назначения не задан Звуковая индикация направления Индицировать звуком направление на целевую точку. Тактильная индикация направления Индицировать вибрацией направление на целевую точку. Подписка OsmAnd Live - Включить навигацию с учетом автообновлений OsmAnd Live. + Включить навигацию с учётом автообновлений OsmAnd Live. Испанский (американский) - Английский (Соединенное Королевство) + Английский (Соединённое Королевство) Венгерский (официальный) Каннада Имя файла содержит недопустимый символ @@ -2199,7 +2199,7 @@ Поиск по координатам Расширенный поиск по координатам Вернуться в поиск - Удалить выбранные элементы из \"Истории\"? + Удалить выбранные элементы из «Истории»\? Показать %1$s на карте Искать за %1$s от местоположения поделились через OsmAnd @@ -2229,8 +2229,8 @@ Необходимо, чтобы информировать вас о ваших вкладах. Скачать {0} файл(ов)\? \nИспользуется {3} МБ временного хранилища и {1} МБ постоянного. (Из {2} МБ) - Найти мое местоположение - Прокладывайте маршруты и открывайте новые для себя места без подключения к Интернету + Найти моё местоположение + Прокладывайте маршруты и открывайте новые для себя места без подключения к интернету Разрешить доступ к местоположению Дать разрешение Хранилище данных OsmAnd (для карт, файлов GPX и пр.): %1$s. @@ -2243,7 +2243,7 @@ Поиск карт… Выберите другой регион Пропустить загрузку карт - У вас нет загруженных карт. Вы можете выбрать карту из списка или загрузить ее позже с помощью «Меню - %1$s». + У вас нет загруженных карт. Вы можете выбрать карту из списка или загрузить её позже с помощью «Меню — %1$s». Мили/метры Получить за %1$s Получить @@ -2252,7 +2252,7 @@ Выберите голосовое сопровождение Абонентская плата взимается ежемесячно. Отменить подписку можно в Google Play в любой момент. Пожертвование для сообщества OSM - Часть вашего пожертвования будет отправлена участникам OSM. Стоимость подписки при этом остается прежней. + Часть вашего пожертвования будет отправлена участникам OSM. Стоимость подписки при этом остаётся прежней. Подписка позволяет получать ежечасные, ежедневные, еженедельные обновления и неограниченные загрузки для всех карт по всему миру. GPX-файл с координатами. Астурийский @@ -2267,14 +2267,14 @@ Корректный полный OLC Описывает область: %1$s x %2$s Начать новый сегмент после 6 минутного перерыва, новый трек после 2 часового перерыва, или новый файл после длительного перерыва (если изменилась дата). - Авто-разрыв записи после перерыва + Авторазрыв записи после перерыва Китайский (Гонконг) Быстрое действие Действие %d Добавить маркер Добавить POI Изменить стиль карты - Стиль карты изменен на \"%s\". + Стиль карты изменён на «%s». Добавить путевую точку GPX Добавить место парковки Добавить действие @@ -2282,7 +2282,7 @@ Добавить в избранные Добавить действие Удалить действие - Вы уверены, что хотите удалить действие \"%s\"? + Вы уверены, что хотите удалить действие «%s»\? Показать избранные Скрыть избранные Показать/скрыть POI @@ -2318,7 +2318,7 @@ Переключатель, чтобы начать или остановить навигацию. Сохранять записанные треки в папках помесячно Сохранять записанные треки в подпапках с записью месяца (например, 2018-01). - Кэш тайлов + Кеш тайлов Неверное имя пользователя Показывать только добавленные изображения Дата @@ -2330,7 +2330,7 @@ Приостановлено Правильно Средняя - Подъем/Спуск + Подъём/спуск Время в движении Макс/Мин Мин/Макс @@ -2355,7 +2355,7 @@ Улучшить фотопокрытие через Mapillary Скрыть, начиная с уровня масштабирования Прозрачно-розовый - Берберский язык + Берберский Переместить все в историю Сортировать по Без анимации @@ -2394,7 +2394,7 @@ Быстрый ввод координат Без ледовых дорог или бродов Избегать ледовые дороги и броды. - Мое местоположение + Моё местоположение Финиш Сортировать Экспорт маркеров в следующий файл GPX: @@ -2408,44 +2408,44 @@ Критерий сортировки: Выберите способ указания расстояния и направления до маркеров на карте: Смена ориентации карты - Выберите скорость, при которой переключается ориентация карты с \"По направлению движения\" на \"По направлению компаса\". + Выберите скорость, при которой переключается ориентация карты с «По направлению движения» на «По направлению компаса». Все маркеры перемещены в историю - Маркер перемещен в историю - Маркер перемещен в действующие + Маркер перемещён в историю + Маркер перемещён в действующие Указатель расстояния Показать карту Вы должны добавить по крайней мере один маркер, чтобы использовать эту функцию. Не удалось изменить заметку. Дорога Показывать направляющие линии - Темно-желтый - OsmAnd это активно развивающийся проект с открытым исходным кодом. Благодаря открытости каждый может внести свой вклад в приложение сообщая об ошибках, улучшая перевод или кодируя новые функции. Проект находится в оживленном состоянии непрерывного совершенствования всеми этими формами взаимодействия разработчиков и пользователей. Прогресс проекта также зависит от денежных взносов для финансирования написания и тестирования новых функций. + Тёмно-жёлтый + OsmAnd — это активно развивающийся проект с открытым исходным кодом. Благодаря открытости каждый может внести свой вклад в приложение сообщая об ошибках, улучшая перевод или кодируя новые функции. Проект находится в оживлённом состоянии непрерывного совершенствования всеми этими формами взаимодействия разработчиков и пользователей. Прогресс проекта также зависит от денежных взносов для финансирования написания и тестирования новых функций. \n Примерная карта покрытия и качество: -\n • Западная Европа: **** -\n • Восточная Европа: *** -\n • Россия: *** -\n • Северная Америка: *** -\n • Южная Америка: ** -\n • Азия ** -\n • Япония & Корея: *** -\n • Ближний Восток: ** -\n • Африка: ** +\n • Западная Европа: **** +\n • Восточная Европа: *** +\n • Россия: *** +\n • Северная Америка: *** +\n • Южная Америка: ** +\n • Азия ** +\n • Япония и Корея: *** +\n • Ближний Восток: ** +\n • Африка: ** \n • Антарктида: -\n Большинство стран по всему миру доступны для скачивания! -\n Получите надежный навигатор в вашей стране - будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любая другая. - Примерная карта покрытия и качество: -\n • Западная Европа: **** -\n • Восточная Европа: *** -\n • Россия: *** -\n • Северная Америка: *** -\n • Южная Америка: ** -\n • Азия ** -\n • Япония & Корея: *** -\n • Ближний Восток: ** -\n • Африка: ** -\n • Антарктида: * -\n Большинство стран по всему миру доступны в виде загрузок -\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … +\n Большинство стран по всему миру доступны для скачивания! +\n Получите надёжный навигатор в вашей стране — будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любая другая. + Примерная карта покрытия и качество: +\n • Западная Европа: **** +\n • Восточная Европа: *** +\n • Россия: *** +\n • Северная Америка: *** +\n • Южная Америка: ** +\n • Азия ** +\n • Япония и Корея: *** +\n • Ближний Восток: ** +\n • Африка: ** +\n • Антарктида: * +\n Большинство стран по всему миру доступны в виде загрузок +\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … \n Временной буфер для онлайн слежения Укажите временной буфер для хранения местоположений при отсутствии подключения к сети @@ -2509,32 +2509,33 @@ Продолжать показывать на карте Линия Поиск треков с путевыми точками - Активация этого вида меняет стиль карты OsmAnd на «Туристическую карту\", это особый высоко детализированный вид для путешественников и профессиональных водителей. -\n -\nЭтот стиль на любом масштабе карты показывает максимальное количество подробностей для поездки, имеющихся в картографических данных (в частности, дороги, дорожки, тропинки, и ориентиры). -\n -\n Он также ясно показывает все виды дорог через цветовое кодирование, что полезно, для, например, управления большими транспортными средствами. -\n -\n И он добавляет специальные туристические настройки, такие как велосипедные маршруты или альпийские горные маршруты. -\n -\nДополнительное скачивание не требуется, вид создается из наших стандартных карт. -\n -\nЭтот вид может быть отменен путем деактивации его здесь или путем изменения «Стиля карты» в разделе «Настройки карты» по желанию. + Активация этого вида меняет стиль карты OsmAnd на «Туристическую карту», это особый высоко детализированный вид для путешественников и профессиональных водителей. +\n +\nЭтот стиль на любом масштабе карты показывает максимальное количество подробностей для поездки, имеющихся в картографических данных (в частности, дороги, дорожки, тропинки, и ориентиры). +\n +\nОн также ясно показывает все виды дорог через цветовое кодирование, что полезно, для, например, управления большими транспортными средствами. +\n +\nИ он добавляет специальные туристические настройки, такие как велосипедные маршруты или альпийские горные маршруты. +\n +\nДополнительное скачивание не требуется, вид создаётся из наших стандартных карт. +\n +\nЭтот вид может быть отменён путём деактивации его здесь или путём изменения «Стиля карты» в разделе «Настройки карты» по желанию. Открытый код местоположения (OLC) OsmAnd (OSM Automated Navigation Directions) — картографическая и навигационная программа с доступом к свободным, мировым и высококачественным данным OSM. \n \nПолучайте наслаждение от голосовой и визуальной навигации, просматривайте точки интереса (англ. POI, points of interest), создавайте и управляйте треками GPX, используйте визуализацию контурных линий и данных высот (через плагин), переключайтесь между режимами автомобиль, велосипед и пешеход, редактируйте OSM данные и многое другое. GPS-навигация -\n• Выбор между автономным режимом (без платы за роуминг) и через Интернет (быстрее) +\n• Выбор между автономным режимом (без платы за роуминг) и через интернет (быстрее) \n• Пошаговые голосовые подсказки (записанные или синтезированные голоса) доставят вас к месту назначения -\n• Повторный расчет маршрута после значительного отклонения от существующего +\n• Повторный расчёт маршрута после значительного отклонения от существующего \n• Полосы движения, названия улиц и приблизительное время прибытия помогут в дороге \n• Для того, чтобы сделать ваше путешествие более безопасным, режим дня/ночи переключается автоматически \n• Отображение ограничений скорости и получение предупреждений при их превышении \n• Карта масштабируется соответственно вашей скорости \n• Поиск места по адресу, типу (паркинг, ресторан, отель, заправка, музей и т.д.) или географическим координатам \n• Поддержка промежуточных точек маршрута -\n• Запись собственного или загрузка GPX трека и следование ему +\n• Запись собственного или загрузка GPX трека и следование ему +\n Карта \n• Отображает POI (точки интереса) около вас \n• Адаптирует карту в направлении вашего движения (или компаса) @@ -2543,8 +2544,8 @@ \n• Сохраняет ваши самые важные места в избранных \n• Позволяет вам выбрать как отображать названия на карте: на английском, местным или с фонетическим написанием \n• Отображает специальные онлайн тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные треки GPX и дополнительные слои с настраиваемой прозрачностью - Катание на лыжах -\n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъемников и других объектов. + Катание на лыжах +\n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъёмников и других объектов. Езда на велосипеде \n• Поиск велосипедных дорожек на карте \n• GPS навигация в велосипедном режиме строит маршрут используя велосипедные дорожки @@ -2561,20 +2562,22 @@ Внесение вклада в OSM \n• Сообщения об ошибках \n• Загрузка треков GPX в OSM напрямую из программы -\n• Добавление точек интереса (POI) и загрузка их в OSM (или позже, если оффлайн) +\n• Добавление точек интереса (POI) и загрузка их в OSM (или позже, если интернет недоступен) +\n OsmAnd+ (OSM Automated Navigation Directions) — картографическая и навигационная программа с доступом к свободным, мировым и высококачественным данным OSM. \n Получайте наслаждение от голосовой и визуальной навигации, просматривайте точки интереса (англ. POI, points of interest), создавайте и управляйте треками GPX, используйте визуализацию контурных линий и данных высот, переключайтесь между режимами автомобиль, велосипед и пешеход, редактируйте данные OSM и многое другое. \n \n OsmAnd + — платная версия программы. Приобретая её, вы поддержите проект, финансируете разработку новых возможностей и получите последние обновления. \n \n Некоторые из главных возможностей: - Навигация -\n• Работает через Интернет (быстрее) или автономно (без платы за роуминг за границей) -\n• Пошаговые голосовые подсказки (записанные или синтезированные голоса) -\n• Полосы движения, отображение названия улицы и приблизительное время прибытия -\n• Поддержка промежуточных точек на вашем маршруте -\n• Автоматическое перестройка маршрута при отклонении от существующего -\n• Поиск мест по адресу, типу (например, ресторан, гостиница, заправка, музей) или географическим координатам + Навигация +\n• Работает через интернет (быстрее) или автономно (без платы за роуминг за границей) +\n• Пошаговые голосовые подсказки (записанные или синтезированные голоса) +\n• Полосы движения, отображение названия улицы и приблизительное время прибытия +\n• Поддержка промежуточных точек на вашем маршруте +\n• Автоматическое перестройка маршрута при отклонении от существующего +\n• Поиск мест по адресу, типу (например, ресторан, гостиница, заправка, музей) или географическим координатам +\n Просмотр карты \n• Отображение вашего местоположения и ориентации \n• Возможность ориентирования карты по компасу или по направлению вашего движения @@ -2608,7 +2611,8 @@ \n• Интересные места (POI) из Википедии прекрасно подходят для осмотра достопримечательностей \n• Неограниченное количество бесплатных скачиваний непосредственно из приложения \n• Компактные автономные векторные карты, обновляемые как минимум раз в месяц -\n• Выбор между полными данными региона и только дорожной сетью (например, вся Япония занимает 700 Мбайт, а только дорожная сеть — 200 Мбайт) +\n +\n• Выбор между полными данными региона и только дорожной сетью (например, вся Япония занимает 700 МБ, а только дорожная сеть — 200 МБ) Функции безопасности \n• Возможность автоматического переключения режима день/ночь \n• Возможность отображения ограничения скорости с напоминанием при превышении @@ -2618,7 +2622,7 @@ \n• Просмотр пешеходных, туристических и велосипедных дорожек, прекрасно подходит для активного отдыха \n• Специальный режимы маршрутизации и отображения для велосипедистов и пешеходов \n• Опционально остановки общественного транспорта (автобус, трамвай, поезд), включая названия маршрутов -\n• Возможность записи путешествие в локальный файл GPX или Интернет-сервис +\n• Возможность записи путешествие в локальный файл GPX или интернет-сервис \n• Возможность отображения скорости и высоты \n• Отображение контурных линий и затенения высот (через дополнительный плагин) Непосредственный вклад в OSM @@ -2637,7 +2641,7 @@ Нажатие на маркер на карте переместит его на первое место в списке активных маркеров, не открывая контекстное меню. Активация одним нажатием Делайте заметки! - Добавьте аудио, видео или фото заметку в любую точку на карте, используя виджет или контекстное меню. + Добавьте аудио-, видео- или фотозаметку в любую точку на карте, используя виджет или контекстное меню. Заметки OSM по дате По дате По типу @@ -2683,11 +2687,11 @@ Текущий Добавляет промежуточную остановку Добавляет первую остановку - Перемещает пункт назначения и создает промежуточную остановку + Перемещает пункт назначения и создаёт промежуточную остановку Показать закрытые заметки Показать/скрыть заметки OSM на карте. - GPX - подходит для экспорта в JOSM и другие OSM редакторы. - OSC - подходит для экспорта в OSM. + GPX — подходит для экспорта в JOSM и другие OSM редакторы. + OSC — подходит для экспорта в OSM. Файл GPX OSC файл Выберите тип файла @@ -2729,36 +2733,36 @@ Результат Поиск страны, города или провинции Читать - Сохраненные статьи + Сохранённые статьи Главы Путеводитель Викигид Статья удалена Исследовать Статьи путеводителя Викигида - "Кэш изображений " + Кеш изображений "Удалить историю поиска " Показать изображения - Только по WiFi + Только по Wi-Fi Загружать изображения - Изображения из статей можно загрузить для использования в автономном режиме. -\nВы всегда можете изменить настройку в \"Исследовать\" → \"Параметры\". - Только WiFi + Изображения из статей можно загрузить для использования в автономном режиме. +\nВы всегда можете изменить настройку в «Исследовать» → «Параметры». + Только Wi-Fi Выберите дневник путешествий Дневник путешествий - Страница доступна только онлайн. Открыть ее в браузере? + Страница доступна только онлайн. Открыть её в браузере\? Загружать изображения Нет Выполнить Выберите план - Приобретите один из перечисленных ниже, чтоб получить функциональность оффлайнового туристического гида: + Приобретите один из перечисленных ниже, чтоб получить функциональность автономного туристического гида: Выберите подходящий пункт Покупка в приложении - Разовый платеж - Купить - %1$s - Викигид офлайн + Разовый платёж + Купить — %1$s + Автономный Викигид Неограниченные загрузки - Википедия офлайн + Автономная Википедия Разблокировать все функции OsmAnd Обновления карт: ежемесячные @@ -2768,7 +2772,7 @@ Путеводитель Просматривайте путеводители Викигида по самым интересным местам на планете внутри OsmAnd без подключения к интернету. Доступны новые данные Викигида, обновите файл, чтобы увидеть их. - Скачайте путеводители Викигида для просмотра статей о местах по всему миру без подключения к Интернету. + Скачайте путеводители Викигида для просмотра статей о местах по всему миру без подключения к интернету. Доступно обновление Скачать файл Свободный всемирный путеводитель, который может редактировать каждый. @@ -2780,7 +2784,7 @@ Карты горизонталей и карты с отмывкой рельефа Скачать статьи Википедии для %1$s, чтобы читать их в автономном режиме. Загрузка данных Википедии - Открыть статью в Интернете + Открыть статью в интернете Просмотреть статью в браузере. этот регион Поиск соответствующей статьи в вики @@ -2790,7 +2794,7 @@ Платное приложение Платный плагин Команда OsmAnd - На основе сохраненных вами статей мы рекомендуем вам скачать следующие карты: + На основе сохранённых вами статей мы рекомендуем вам скачать следующие карты: Нужные вам карты Перезапуск Вы отменили подписку OsmAnd Live @@ -2798,20 +2802,20 @@ Скрыть полное описание Показать полное описание Для морской навигации. Выделяет буи, маяки, речные пути, морские пути и знаки, гавани, услуги для морских судов, контуры глубин. - Для катания на лыжах. Выделяет горнолыжные трассы, подъемники, трассы для беговых лыж и прочее. Меньше отвлекающих второстепенных объектов на карте. + Для катания на лыжах. Выделяет горнолыжные трассы, подъёмники, трассы для беговых лыж и прочее. Меньше отвлекающих второстепенных объектов на карте. Скачать все Простой стиль для вождения. Мягкий ночной режим, контурные линии, контрастные дороги в оранжевом стиле, тусклые второстепенные объекты карты. Для пеших походов, трекинга и велосипедных прогулок на природе. Читабельный на открытом воздухе и при сложном освещении. Контрастные дороги и природные объекты, различные типы маршрутов, контурные линии с расширенными настройками, дополнительные детали. Функция «Качество дорожного покрытия» позволяет различать дороги с различным качеством поверхности. Нет ночного режима. Старый стиль по умолчанию «Mapnik». Похожие цвета на «Mapnik». - Стиль общего назначения. Густонаселенные города показаны упрощенно. Выделяет контурные линии, маршруты, качество поверхности, ограничения доступа, дорожные щиты, визуализация пешеходных маршрутов по шкале SAC, объекты спортивных сплавов. + Стиль общего назначения. Густонаселённые города показаны упрощённо. Выделяет контурные линии, маршруты, качество поверхности, ограничения доступа, дорожные щиты, визуализация пешеходных маршрутов по шкале SAC, объекты спортивных сплавов. Открыть ссылку Википедии в онлайн Ссылка будет открыта в веб-браузере. Получите подписку на OsmAnd Live, чтобы читать статьи в Википедии и Викигиде в автономном режиме. Как открыть ссылку? Читать Википедию в автономном режиме - Туристический стиль с высоким контрастом и максимальной детализацией. Включает все функции стиля OsmAnd по умолчанию, также отображая как можно больше деталей, в частности дороги, тропы и другие пути для передвижения. Четкое различие между типами дорог, как во многих туристических атласах. Подходит для дневного, ночного и уличного использования. + Туристический стиль с высоким контрастом и максимальной детализацией. Включает все функции стиля OsmAnd по умолчанию, также отображая как можно больше деталей, в частности дороги, тропы и другие пути для передвижения. Чёткое различие между типами дорог, как во многих туристических атласах. Подходит для дневного, ночного и уличного использования. Сохранить - Для езды по бездорожью, основано на топографическом стиле (англ. «Topo»), можно использовать с зелеными спутниковыми снимками в качестве подложки. Уменьшенная толщина основных дорог, увеличенная толщина путей, дорожек, велосипедных и других маршрутов. + Для езды по бездорожью, основано на топографическом стиле (англ. «Topo»), можно использовать с зелёными спутниковыми снимками в качестве подложки. Уменьшенная толщина основных дорог, увеличенная толщина путей, дорожек, велосипедных и других маршрутов. Модификация стиля по умолчанию для увеличения контраста пешеходных и велосипедных дорог. Использует старые цвета Mapnik. Файлы GPX Получите OsmAnd Live, чтобы разблокировать все функции: ежедневные обновления карт с неограниченной загрузкой, все платные и бесплатные плагины, Википедия, Викигид и многое другое. @@ -2822,7 +2826,7 @@ Редактировать точку Добавить точку Сохранить как трек - Добавлено вами точек - %1$s. Введите имя файла и нажмите «Сохранить». + Добавлено вами точек — %1$s. Введите имя файла и нажмите «Сохранить». Точка %1$s удалена Мир Ваш поисковый запрос будет отправлен: «%1$s», вместе с вашим местоположением. @@ -2832,7 +2836,7 @@ \nРасскажите нам об этом. Отправить поисковый запрос? Нажмите кнопку и прослушайте соответствующую голосовую подсказку, чтобы узнать, отсутствует она или ошибочна - Спасибо за Ваш отзыв + Спасибо за ваш отзыв Не удалось найти узел или путь. Нет результатов поиска\? \nОставьте отзыв @@ -2869,12 +2873,12 @@ Для продолжения дайте OsmAnd разрешение на определение местоположения. Чёрный Поиск улицы - Сначала выберите город/населенный пункт/местность + Сначала выберите город/населённый пункт/местность Восстановить Маркеры, добавленные как группа избранных или путевых точек GPX и отмеченные как пройденные, останутся на карте. Если группа не активна, маркеры исчезнут с карты. Оставить пройденные маркеры на карте Больше транспорта доступно от этой остановки. - Удалить маркер \'%s\'\? + Удалить маркер «%s»\? Редактировать маркер Стороннее приложение План и цены @@ -2903,7 +2907,7 @@ Установить отправную точку Путь Точки интереса (POI) - Расчет маршрута… + Расчёт маршрута… Общественный транспорт Выберите дорогу на карте или из списка ниже, которую вы хотите избежать во время навигации: Моделировать навигацию @@ -2915,7 +2919,7 @@ Переключить дневной/ночной режим м³ т - Объем + Объём Ширина Высота пересадки @@ -2958,7 +2962,7 @@ \n• Исправлены падения при открытии некоторых остановок общественного транспорта. \n \n• Удалена аналитика Facebook и Firebase из бесплатной версии (OsmAnd+ ее не включает). - Включить общественный транспорт с учетом автообновлений OsmAnd Live. + Включить общественный транспорт с учётом автообновлений OsmAnd Live. Общественный транспорт OsmAnd Live %1$d пересадки Грунтовая @@ -2967,11 +2971,11 @@ Земля Грязь Ил - Лед + Лёд Соль Снег Асфальт - Твердая + Твёрдая Бетон Брусчатка Булыжник @@ -3001,14 +3005,14 @@ Ступеньки Тропа Велодорожка - Неопределенная + Неопределённая Узнайте больше о маршрутизации OsmAnd в нашем блоге. Навигация на общественном транспорте в настоящее время проходит бета-тестирование, возможны ошибки и неточности. Добавить промежуточную точку Добавить точку отправления и назначения Добавить точку отправления Выберите точку отправления - Газонная решетка + Газонная решётка Государственная дорога Пешком Сократите длину тега «%s» до менее чем 255 символов. @@ -3020,7 +3024,7 @@ Избегать булыжники и брусчатку Миллирадианы Угловые единицы - Изменить, в чем измеряется азимут. + Изменить, в чём измеряется азимут. Градусы Без трамваев Избегать трамваи @@ -3031,7 +3035,7 @@ Без поездов Избегать поезда Без метро - Избегать метро и легкий железнодорожный транспорт + Избегать метро и лёгкий железнодорожный транспорт Без паромов Избегать паромы • Отображение времени между пересадками в общественном транспорте @@ -3054,7 +3058,7 @@ Перемещено %1$d файлов (%2$s). Скопировано %1$d файлов (%2$s). Не удалось скопировать %1$d файлов (%2$s). - %1$d файлов (%2$s) присутствуют в предыдущем местоположении \'%3$s\'. + %1$d файлов (%2$s) присутствуют в предыдущем местоположении «%3$s». Переместить карты Не перемещать Маршрут пешком составляет около %1$s, и может быть быстрее общественного транспорта @@ -3079,7 +3083,7 @@ Такси Метро Лошадь - Вертолет + Вертолёт Вы можете добавить собственную модифицированную версию routing.xml в ..osmand/routing Выберите значок Лыжи @@ -3098,7 +3102,7 @@ Сохранить изменения Сначала необходимо сохранить изменения в профиле Удалить профиль - Вы действительно хотите удалить профиль \"%s\" + Вы действительно хотите удалить профиль «%s» Выберите профиль для начала Основывайте свой пользовательский профиль на одном из профилей приложения по умолчанию, это определяет базовые настройки, такие как видимость виджетов по умолчанию и выбор единиц измерения скорости и расстояния. Ниже перечислены профили приложений по умолчанию, а также примеры пользовательских профилей, на которые они могут быть расширены: Выберите тип навигации @@ -3107,7 +3111,7 @@ Прогулки, пеший туризм, бег Виды общественного транспорта Корабль, гребля, парусный спорт - Самолет, планеризм + Самолёт, планеризм Геокодирование Прямая линия Выберите профили, которые будут отображаться в приложении. @@ -3115,14 +3119,14 @@ Использовать WunderLINQ для контроля Значок Собранные данные - Нажмите еще раз, чтобы изменить ориентацию карты - Последний запуск OsmAnd завершился ошибкой. Пожалуйста, помогите нам улучшить OsmAnd, отправив нам отчет об ошибке. + Нажмите ещё раз, чтобы изменить ориентацию карты + Последний запуск OsmAnd завершился ошибкой. Пожалуйста, помогите нам улучшить OsmAnd, отправив нам отчёт об ошибке. Режим: %s Режим пользователя, полученный из: %s Повторяющееся имя - BRouter (оффлайн) + BRouter (автономно) Альпийские/горные лыжи - Склоны для катания на альпийских или горных лыжах и доступ к подъемникам. + Склоны для катания на альпийских или горных лыжах и доступ к подъёмникам. Лыжные туры Сани Склоны для катания на санях. @@ -3184,9 +3188,9 @@ Сторонняя навигация Лыжные гонки / северные дисциплины Трассы для северных дисциплин или лыжных гонок. - Персональный транспортер + Персональный транспортёр Количество изменений - Настройте, как долго экран должен быть включен. + Настройте, как долго экран должен быть включён. При навигации включать экран движением руки над верхней частью. Внешние устройства ввода Выберите внешнее устройство управления, например, клавиатуру или WunderLINQ. @@ -3194,15 +3198,15 @@ Клавиатура WunderLINQ Parrot - Трек %s сохранен + Трек %s сохранён Зоны с низким уровнем выбросов Учитывать временные ограничения Маршрут: расстояние %s, время навигации %s -\nРасчет: %.1f с, %d дорог, %d тайлов) - Добавьте хотя бы один элемент в список \"Быстрые действия\" в настройках +\nРасчёт: %.1f с, %d дорог, %d тайлов) + Добавьте хотя бы один элемент в список «Быстрые действия» в настройках Маршруты для горнолыжного туризма. Офпист - Фрирайды и офписты являются неофициальными неадаптированными трассами. Обычно неухоженные, неразмеченные и неосвещенные вечером. Вход на свой страх и риск. + Фрирайды и офписты являются неофициальными неадаптированными трассами. Обычно неухоженные, неразмеченные и неосвещённые вечером. Вход на свой страх и риск. Открыть трек Соединить разрывы (исключить пробелы) Кемпер @@ -3214,14 +3218,14 @@ Пример Изменить настройки Отменить изменение - Применить только к \"%1$s\" + Применить только к «%1$s» Применить ко всем профилям Сообщение при запуске Аналитика Показывать карту на экране блокировки во время навигации. Настройки профиля Переключить профиль - Профиль приложения изменен на\"%s\" + Профиль приложения изменён на «%s» Настройки профиля: Единицы измерения и форматы Внешний вид карты @@ -3232,7 +3236,7 @@ OsmAnd использует формат UTM Standard, который похож, но не идентичен формату UTM NATO. UTM Стандарт Open Location Code - Выбранный формат будет применен во всем приложении. + Выбранный формат будет применён во всём приложении. Параметр выбран по умолчанию для профилей: %s Настройки для маршрутизации в выбранном профиле «%1$s». Время пробуждения @@ -3268,8 +3272,8 @@ Переместить в новое место назначения Внутреннее хранилище, скрытое от пользователя и других приложений. Изменение папки хранилища - Избегать определенные маршруты и типы дорог - Использовано %1$sТБ + Избегать определённые маршруты и типы дорог + Использовано %1$s ТБ Использовано %1$s ГБ Использовано %1$s МБ Использовано %1$s кБ @@ -3281,7 +3285,7 @@ Самоходные и несамоходные сани (упряжки) Сложность горнолыжной трассы Ограничение по ширине - Укажите ширину транспортного средства для учета при построении маршрута. + Укажите ширину транспортного средства для учёта при построении маршрута. Мотовездеход Рассчитать Использование OsmAnd @@ -3292,27 +3296,27 @@ %1$s МБ %1$s кБ Папка для хранения треков - Треки могут храниться в папке \'rec\', или в ежемесячных, или ежедневных папках. - Записывать треки в папку \'rec\' + Треки могут храниться в папке «rec», или в ежемесячных, или ежедневных папках. + Записывать треки в папку «rec» Записывать треки в ежедневные папки Записывать треки каждый день в новую вложенную папку (например, 2018-01-01). Обновить все карты - • Обновлены настройки приложения и профиля. Теперь настройки расположены по типу. Каждый профиль можно настроить отдельно. -\n -\n • Новый диалог загрузки карты, предлагающий загрузить карту во время просмотра -\n -\n • Исправление темной темы -\n -\n • Исправлено несколько проблем с маршрутизацией по всему миру -\n -\n • Обновленная базовая карта с более подробной дорожной сетью -\n -\n • Исправлены затопленные районы по всему миру -\n -\n • Горнолыжная трасса: добавлен профиль высот и сложность маршрута -\n -\n • Другие исправления ошибок -\n + • Обновлены настройки приложения и профиля. Теперь настройки расположены по типу. Каждый профиль можно настроить отдельно. +\n +\n • Новый диалог загрузки карты, предлагающий загрузить карту во время просмотра +\n +\n • Исправление тёмной темы +\n +\n • Исправлено несколько проблем с маршрутизацией по всему миру +\n +\n • Обновлённая базовая карта с более подробной дорожной сетью +\n +\n • Исправлены затопленные районы по всему миру +\n +\n • Горнолыжная трасса: добавлен профиль высот и сложность маршрута +\n +\n • Другие исправления ошибок +\n \n Контурные линии и затенение рельефа Предпочитать грунтовые дороги @@ -3330,7 +3334,7 @@ Показать/скрыть затенение рельефа Экспорт профиля Профиль OsmAnd: %1$s - \'%1$s\' уже существует. Перезаписать\? + «%1$s» уже существует. Перезаписать\? Не удалось экспортировать профиль. Импорт профиля Чтобы добавить профиль, откройте его с помощью OsmAnd. @@ -3341,13 +3345,13 @@ Диалог загрузки карты Диалоги и уведомления Управление всплывающими окнами, диалогами и уведомлениями. - Добавить новый профиль \'%1$s\'\? + Добавить новый профиль «%1$s»\? Узловые сети велосипедных маршрутов Сохранять путевой угол Сохранять во время записи путевой угол для каждой точки трека. Правки OSM Поменять местами %1$s и %2$s - Трек сохранен + Трек сохранён Не указано имя файла Очистить %1$s\? Узловые сети @@ -3355,15 +3359,15 @@ Объединить сегменты %1$s • %2$s %1$s, %2$s - Для пустынь и других малонаселенных районов. Более детально. + Для пустынь и других малонаселённых районов. Более детально. Положение значка при движении Положение значка в состоянии покоя - После нажатия кнопки «Применить» удаленные профили будут полностью потеряны. + После нажатия кнопки «Применить» удалённые профили будут полностью потеряны. Базовый профиль Выберите цвет Вы не можете удалить стандартные профили OsmAnd, но вы можете отключить их на предыдущем экране или переместить вниз. Редактировать профили - Тип навигации влияет на правила расчета маршрута. + Тип навигации влияет на правила расчёта маршрута. Внешний вид профиля Значок, цвет и имя Редактировать список профилей @@ -3379,8 +3383,8 @@ Разрешить только маршруты для катания на коньках Маршруты, подготовленные для фристайла или катания только на коньках без классических треков. Разрешить только классические маршруты - Маршруты, подготовленные только для классического стиля без конькобежных трасс. Сюда входят маршруты, подготовленные небольшим снегоходом с более свободной лыжней и трассами, подготовленные вручную лыжниками. - Предпочитать маршруты заданной сложности, хотя прокладка маршрута по более сложным или легким трассам все же возможна, если они короче. + Маршруты, подготовленные только для классического стиля без конькобежных трасс. Сюда входят маршруты, подготовленные небольшим снегоходом с более свободной лыжнёй и трассами, подготовленные вручную лыжниками. + Предпочитать маршруты заданной сложности, хотя прокладка маршрута по более сложным или лёгким трассам всё же возможна, если они короче. Пробуждаться на повороте Класс 1 Класс 2 @@ -3404,7 +3408,7 @@ Эксперт Фрирайд Экстрим - Неопределенно + Неопределённо Канатная дорога Соединение Симулировать свою позицию используя записанный GPX трек. @@ -3419,13 +3423,13 @@ Все настройки профиля будут сброшены в значения по умолчанию после установки. Сбросить все настройки профиля\? %1$s: %2$s - Нет правил маршрутизации в \'%1$s\'. Пожалуйста, выберите другой файл. + Нет правил маршрутизации в «%1$s». Пожалуйста, выберите другой файл. Для использования этой функции требуется разрешение. - Это низкоскоростной фильтр отсечки, чтобы не записывать точки ниже определенной скорости. Это может сделать записанные треки более гладкими при просмотре на карте. + Это низкоскоростной фильтр отсечки, чтобы не записывать точки ниже определённой скорости. Это может сделать записанные треки более гладкими при просмотре на карте. Упорядочить категории Изменяйте порядок сортировки списка, скрывайте ненужные категории. Вы можете импортировать или экспортировать все изменения с профилями. Вы можете добавить новую пользовательскую категорию, выбрав одну или несколько необходимых категорий. - Сброс к настройкам по умолчанию приведет к сбросу порядка сортировки к настройкам по умолчанию после установки. + Сброс к настройкам по умолчанию приведёт к сбросу порядка сортировки к настройкам по умолчанию после установки. Добавить пользовательскую категорию Показывать только ночью Все настройки плагина восстановлены до состояния по умолчанию. @@ -3433,41 +3437,41 @@ %1$s/%2$s Закат в %1$s Восход в %1$s - Режим специальных возможностей отключен в системе. + Режим специальных возможностей отключён в системе. Использовать системную блокировку экрана По умолчанию отключено, если OsmAnd работает на переднем плане, экран не отключается. \n \nЕсли включено, OsmAnd будет использовать системные настройки блокировки экрана. Очистить записанные данные - • Профили: теперь вы можете изменить порядок, установить значок для карты, изменить все настройки для базовых профилей и вернуть их к настройкам по умолчанию -\n -\n• Добавлен номер съезда в навигации -\n -\n• Переработаны настройки плагина -\n -\n• Переработан экран настроек для быстрого доступа ко всем профилям -\n -\n• Добавлена возможность копирования настроек из другого профиля -\n -\n• Добавлена возможность изменить порядок или скрыть категории POI в поиске -\n -\n• Правильно выровненные значки POI на карте -\n -\n• Добавлены данные захода/восхода солнца для настройки карты -\n -\n• Добавлены значки \"Дом/работа\" на карте -\n -\n• Добавлена поддержка многострочного описания в настройках -\n -\n• Добавлена корректная транслитерация на карте Японии -\n -\n• Добавлена карта Антарктиды -\n + • Профили: теперь вы можете изменить порядок, установить значок для карты, изменить все настройки для базовых профилей и вернуть их к настройкам по умолчанию +\n +\n• Добавлен номер съезда в навигации +\n +\n• Переработаны настройки плагина +\n +\n• Переработан экран настроек для быстрого доступа ко всем профилям +\n +\n• Добавлена возможность копирования настроек из другого профиля +\n +\n• Добавлена возможность изменить порядок или скрыть категории POI в поиске +\n +\n• Правильно выровненные значки POI на карте +\n +\n• Добавлены данные захода/восхода солнца для настройки карты +\n +\n• Добавлены значки «Дом/работа» на карте +\n +\n• Добавлена поддержка многострочного описания в настройках +\n +\n• Добавлена корректная транслитерация на карте Японии +\n +\n• Добавлена карта Антарктиды +\n \n Копировать координаты Укажите имя профиля Открыть настройки - Плагин отключен + Плагин отключён Этот плагин представляет собой отдельное приложение, вам нужно будет удалить его отдельно, если вы больше не планируете его использовать. \n \nПлагин останется на устройстве после удаления OsmAnd. @@ -3478,8 +3482,8 @@ Импортированный профиль содержит дополнительные данные. Нажмите «Импорт», чтобы импортировать только данные профиля, или выберите дополнительные данные для импорта. Вы можете выбрать дополнительные данные для экспорта вместе с профилем. Приложение по умолчанию (%s) - Отключить перерасчет - Минимальное расстояние для перерасчета маршрута + Отключить перерасчёт + Минимальное расстояние для перерасчёта маршрута Маршрут будет пересчитан, если расстояние до него больше заданного параметра Пользовательский профиль Угол: %s° @@ -3515,11 +3519,11 @@ Ваши заметки OSM находятся в %1$s. Видеозаметки Фотозаметки - Перерасчет маршрута + Перерасчёт маршрута Имя пользователя и пароль Эти настройки применяются ко всем профилям. Редактирование OSM - Просмотр ваших исправлений или ошибок OSM, еще не загруженных в %1$s. Загруженные точки больше не будут отображаться. + Просмотр ваших исправлений или ошибок OSM, ещё не загруженных в %1$s. Загруженные точки больше не будут отображаться. OSM Значок, отображаемый во время навигации или движения. Значок, отображаемый в состоянии покоя. @@ -3548,11 +3552,11 @@ Сохранение нового профиля Не удалось создать резервную копию профиля. Очистить записанные данные\? - Побочный эффект: в записи трека будут отсутствовать все участки, где критерий минимальной скорости не был соблюден (например, когда вы толкаете велосипед вверх по крутому склону). Также не будет информации о периодах покоя, например, во время отдыха. Это влияет на любой анализ или последующую обработку, например, при попытке определить общую продолжительность поездки, время в движении или среднюю скорость. - Побочный эффект: в результате фильтрации по точности, точки могут быть полностью пропущены, например, под мостами, под деревьями, между высокими зданиями или при определенных погодных условиях. - Примечание: если GPS был отключен непосредственно перед записью, первая измеренная точка может иметь пониженную точность, поэтому в приложении будет ожидание около секунды перед записью точки (или запись лучшей из 3 последовательных точек и т. д.), но это еще не реализовано. - Этот фильтр позволяет избежать записи повторяющихся точек, между которыми могло произойти очень малое фактическое перемещение, и создает более приятный визуальный вид треков без последующей обработки. - Побочные эффекты: периоды в состоянии покоя не записываются вообще или только по одной точке каждый. Небольшие (в реальности) перемещения (например, в сторону, указывающие возможное изменение направления движения) могут быть отфильтрованы. Файл содержит меньше информации для последующей обработки и имеет худшую статистику, отфильтровывая явно избыточные точки во время записи, при этом потенциально сохраняя артефакты, вызванные плохим приемом или эффектами модуля GPS. + Побочный эффект: в записи трека будут отсутствовать все участки, где критерий минимальной скорости не был соблюдён (например, когда вы толкаете велосипед вверх по крутому склону). Также не будет информации о периодах покоя, например, во время отдыха. Это влияет на любой анализ или последующую обработку, например, при попытке определить общую продолжительность поездки, время в движении или среднюю скорость. + Побочный эффект: в результате фильтрации по точности, точки могут быть полностью пропущены, например, под мостами, под деревьями, между высокими зданиями или при определённых погодных условиях. + Примечание: если GPS был отключён непосредственно перед записью, первая измеренная точка может иметь пониженную точность, поэтому в приложении будет ожидание около секунды перед записью точки (или запись лучшей из 3 последовательных точек и т. д.), но это ещё не реализовано. + Этот фильтр позволяет избежать записи повторяющихся точек, между которыми могло произойти очень малое фактическое перемещение, и создаёт более приятный визуальный вид треков без последующей обработки. + Побочные эффекты: периоды в состоянии покоя не записываются вообще или только по одной точке каждый. Небольшие (в реальности) перемещения (например, в сторону, указывающие возможное изменение направления движения) могут быть отфильтрованы. Файл содержит меньше информации для последующей обработки и имеет худшую статистику, отфильтровывая явно избыточные точки во время записи, при этом потенциально сохраняя артефакты, вызванные плохим приёмом или эффектами модуля GPS. Рекомендация: настройка 5 метров может должна вас устроить, если нет необходимости учитывать более короткие перемещения, и вы точное не хотите записывать данные в состоянии покоя. Указанные %1$s уже существуют в OsmAnd. Импорт данных из %1$s @@ -3561,12 +3565,12 @@ \n \nЭто может занять некоторое время. Объекты добавлены - Импорт завершен + Импорт завершён Все данные из %1$s импортированы, вы можете использовать кнопки ниже, чтобы открыть соответствующий раздел приложения для управления ими. Маршрут будет пересчитан, если расстояние от маршрута до текущего местоположения больше выбранного значения. Выберите расстояние, после которого маршрут будет пересчитан. Легенда - Невозможно разобрать геоссылку \"%s\". + Невозможно разобрать геоссылку «%s». Для отображения затенения рельефа на карте необходимы дополнительные карты. Мин. Отображение затенения рельефа или склонов. Подробнее об этих типах карт вы можете прочитать на нашем сайте. @@ -3591,7 +3595,7 @@ Круг Восьмиугольник Сообщение о доступности - Примечание: проверка скорости > 0: большинство модулей GPS сообщают значение скорости только в том случае, если алгоритм определяет, что вы движетесь, и ничего, если вы не перемещаетесь. Следовательно, использование параметра > 0 в этом фильтре в некотором смысле приводит к обнаружению факта перемещения модуля GPS. Но даже если мы не производим данную фильтрацию во время записи, то все равно эта функция используется при анализе GPX для определения скорректированного расстояния, то есть значение, отображаемое в этом поле, является расстоянием, записанным во время движения. + Примечание: проверка скорости > 0: большинство модулей GPS сообщают значение скорости только в том случае, если алгоритм определяет, что вы движетесь, и ничего, если вы не перемещаетесь. Следовательно, использование параметра > 0 в этом фильтре в некотором смысле приводит к обнаружению факта перемещения модуля GPS. Но даже если мы не производим данную фильтрацию во время записи, то всё равно эта функция используется при анализе GPX для определения скорректированного расстояния, то есть значение, отображаемое в этом поле, является расстоянием, записанным во время движения. Разделение записи Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. В этом случае будут записываться только точки, измеренные с минимальной точностью (в метрах/футах согласно настройкам устройства). Точность относится к разбросу повторяющихся измерений и не связана непосредственно с точностью, которая определяет, насколько ваши измерения близки к вашему истинному положению. @@ -3599,25 +3603,25 @@ Склон выделяется цветовой визуализацией на рельефе местности. Подробнее о склонах можно прочитать в %1$s. Затенение рельефа - Затенение рельефа использует темные оттенки для отображения склонов, вершин и низменностей. + Затенение рельефа использует тёмные оттенки для отображения склонов, вершин и низменностей. Для отображения склонов на карте необходимы дополнительные карты. Склоны Заменить другую точку на эту - Изменения применены к профилю %1$s. - Невозможно прочитать %1$s. - Невозможно записать %1$s. - Невозможно импортировать %1$s. + Изменения применены к профилю «%1$s». + Невозможно прочитать из «%1$s». + Невозможно записать в «%1$s». + Невозможно импортировать из «%1$s». Выберите файл трека Языки Язык Все языки Для просмотра POI Википедии на карте необходимы дополнительные карты. - Настройка количества элементов в разделах \"Панель\", \"Настройка карты\" и контекстном меню. -\n + Настройка количества элементов в разделах «Панель», «Настройка карты» и контекстном меню. +\n \nМожно отключить неиспользуемые плагины, чтобы скрыть их элементы управления из приложения %1$s. Элементы панели, контекстное меню Панель - Элементы ниже разделенные делителем. + Элементы ниже разделённые делителем. Элементы Настройка интерфейса Действия контекстного меню @@ -3625,10 +3629,10 @@ Разделитель Скрыто Эти элементы скрыты из меню, но представляемые ими функции или плагины продолжают работать. - Настройки будут сброшены в исходное состояние после скрытия. - Основные действия содержат только 4 кнопки. + Скрытие настроек сбрасывает их в исходное состояние. + «Основные действия» содержат только 4 кнопки. Основные действия - Доступ к этим действиям происходит нажатием кнопки \"Действия\". + Доступ к этим действиям происходит нажатием кнопки «Дополнительные действия». Перемещать элементы можно только внутри данной категории. Плагин для разработчиков Выберите языки, на которых статьи Википедии будут отображаться на карте. Вы сможете переключаться между всеми доступными языками при чтении статьи. @@ -3664,9 +3668,21 @@ Дополнительные карты Неподдерживаемое действие %1$s %1$s / %2$s - Оплата будет списана со счета, привязанного к вашему аккаунту Google Play при подтверждении покупки. -\n -\nПодписка продлевается автоматически, если вы не отмените ее до даты продления. С вашего счета будет взиматься плата за период продления (месяц/три месяца/год) разово в день продления. -\n + Оплата будет списана со счёта, привязанного к вашему аккаунту Google Play, при подтверждении покупки. +\nПодписка продлевается автоматически, если вы не отмените её до даты продления. С вашего счёта будет взиматься плата за период продления (месяц/три месяца/год) разово в день продления. \nВы можете управлять подписками и отменять их в настройках Google Play. + Можно объединить типы POI из разных категорий. Нажмите «Переключить», чтобы выбрать все; нажмите слева, чтобы выбрать категорию. + Поиск типов POI + OsmAnd и Mapillary + Путешествие (Викигид и Википедия) + Трекер OsmAnd + Радиус-линейка + Измерение расстояния + Быстрое действие + Маркеры + Подписка — OsmAnd Live + Покупки OsmAnd + Справка по символике карты + Избранное + Профили навигации \ No newline at end of file diff --git a/OsmAnd/res/values-sk/phrases.xml b/OsmAnd/res/values-sk/phrases.xml index 894c0d0c43..85066863e3 100644 --- a/OsmAnd/res/values-sk/phrases.xml +++ b/OsmAnd/res/values-sk/phrases.xml @@ -3554,4 +3554,5 @@ Potápačské centrum Video SMS + Lezecká stena \ No newline at end of file diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index a5a7e7d481..a66c6147ab 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3600,10 +3600,10 @@ Zodpovedá oblasti: %1$s x %2$s 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. + Zmeny boli použité na profil \"%1$s\". + Nepodarilo sa prečítať z \"%1$s\". + Nepodarilo sa zapísať do \"%1$s\". + Nepodarilo sa importovať z \"%1$s\". Zvoľte súbor stopy Jazyky Jazyk @@ -3623,10 +3623,10 @@ Zodpovedá oblasti: %1$s x %2$s 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 zostanú funkčné. - Po skrytí sa nastavenia resetujú do pôvodného stavu. - Hlavné akcie sú obmedzené na 4 tlačidlá. + Skrytie nastavení ich resetuje do pôvodného stavu. + \"Hlavné akcie\" obsahujú len 4 tlačidlá. Hlavné akcie - K akciám môžete pristúpiť stlačením tlačidla \"Akcie\". + K týmto akciám môžete pristúpiť stlačením tlačidla \"Ďalšie akcie\". Môžete presúvať položky len v rámci tejto kategórie. Doplnok pre vývojárov Položky @@ -3662,4 +3662,22 @@ Zodpovedá oblasti: %1$s x %2$s Baškirsky Aragonsky Lombardsky + %1$s / %2$s + Platba bude stiahnutá z vášho účtu Google Play po zakúpení predplatného +\n a keď dôjde k uplynutiu jeho platnosti (mesiac/štvrťrok/rok), +\navšak nepredĺži sa automaticky ak ho zrušíte v nastaveniach Google Play. + Hľadať typy bodov záujmu + Skombinovať typy bodov záujmov z rôznych kategórií. Stlačte \"Prepnúť\" pre zvolenie všetkých, stlačte ľavú stranu pre výber kategórií. + Stopovanie OsmAnd + OsmAnd + Mapillary + Rýchla akcia + Polomerové pravítko + Merať vzdialenosť + Cestovanie (Wikivoyage a Wikipédia) + Mapové značky + Obľúbené + Predplatné - OsmAnd Live + Nákupy v OsmAnd + Sprievodca symbolmi na mape + Navigačné profily \ No newline at end of file diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 14327635fc..ae0427a04c 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -2229,7 +2229,7 @@ Posta-kodu -dan Ara - OsmAnd Canlı navigasyon + OsmAnd Live navigasyon Daraltılmış liste Genişletilmiş liste Lütfen harita üzerinden harita işaretleyicileri ekleyin @@ -3406,7 +3406,7 @@ OSM Navigasyon sırasında veya harekete halindeyken gösterilen simge. Dinlenme anında gösterilen simge. - Uygulamanın detaylı log kayıtlarını kontrol edin ve paylaşın + Uygulamanın detaylı log kayıtlarına göz atın ve paylaşın Geo intent \'%s\' ayrıştırılamadı. Kayıtlı yollarınız %1$s veya OsmAnd klasöründe. OSM notlarınız %1$s içindedir. @@ -3535,8 +3535,8 @@ %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 + OsmAnd, uygulamadaki mevcut ögelerle yinelenme durumu için %1$s\'i denetliyor. +\n \nBu biraz zaman alabilir. İçe aktarılıyor Veriler %1$s\'den içe aktarılıyor @@ -3566,10 +3566,10 @@ 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ı. + \'%1$s\' profiline değişiklikler uygulandı. + \'%1$s\'den okunamadı. + \'%1$s\'e yazılamadı. + \'%1$s\'den içe aktarılamadı. İzlenen yol dosyasını seç Diller Dil @@ -3577,11 +3577,11 @@ 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. + Ayarları gizlemek onları orijinal durumlarına sıfırlar. Ö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. + Ç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 kapatabilirsiniz. Kullanıcı Arayüzü Özelleştirme İçerik menüsü eylemleri %1$s\'den ögeleri yeniden sırala veya gizle. @@ -3589,9 +3589,9 @@ 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 çalışmaya devam eder. - Ana eylemler sadece 4 düğme içerir. + \'Ana eylemler\' sadece 4 düğme içerir. Ana eylemler - Bu eylemlere “Eylemler” düğmesine dokunarak erişebilirsiniz. + Bu eylemlere “Ek eylemler” düğmesine dokunarak erişebilirsiniz. Ögeleri yalnızca bu kategorinin içine taşıyabilirsiniz. Geliştirici Eklentisi Wikipedia makalelerinin haritada görüneceği dilleri seçin. Makaleyi okurken kullanılabilir bütün diller arasında geçiş yapabilirsiniz. @@ -3627,9 +3627,21 @@ Ekstra haritalar Desteklenmeyen eylem %1$s %1$s / %2$s - Ödeme, satın almayı onayladıktan sonra Google Play hesabınıza yansıtılacaktır. -\n -\nYenileme tarihinden önce iptal edilmediği sürece abonelik otomatik olarak yenilenir. Hesabınızdan yenileme süresi (ay/üç ay/yıl) için sadece yenileme tarihinde ücret alınacaktır. -\n -\nGoogle Play ayarlarınıza giderek aboneliklerinizi yönetebilir ve iptal edebilirsiniz. + Google Play hesabınız bir abonelik satın aldıktan sonra ve süresi +\ndolduğunda (ay/üç ay/yıl) ücretlendirilir, +\nGoogle Play ayarlarınızdan daha önce iptal edilirse yenilenmeyecektir. + POI türleri ara + Farklı kategorilerdeki POI türlerini birleştirin. Tümünü seçmek için düğmeye dokunun, kategori seçimi için sol tarafa dokunun. + Yarıçap cetveli + OsmAnd izleyici + OsmAnd + Mapillary + Hızlı eylem + Mesafe ölç + Seyahat (Wikivoyage ve Wikipedia) + Harita işaretleyicileri + Sık kullanılanlar + Abonelik - OsmAnd Live + OsmAnd satın almaları + Bir haritadaki sembollerin rehberi + Navigasyon profilleri \ 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 84ff8be48f..4986b34831 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -1734,7 +1734,7 @@ 常見問題 常見的問題 地圖檢視 - 查詢地圖 + 正在地圖上搜尋 規劃一次旅程 安裝和疑難排除 技術文章 @@ -3602,18 +3602,18 @@ 雪地摩托車 自訂 OsmAnd 外掛程式 以此取代另一點 - 變更已套用至 %1$s 設定檔。 - 無法讀取 %1$s。 - 無法寫入 %1$s。 - 無法匯入 %1$s。 + 變更已套用至「%1$s」設定檔。 + 無法從「%1$s」讀取。 + 無法寫入至「%1$s」。 + 無法從「%1$s」匯入。 選取軌跡檔案 語言 語言 所有語言 需要額外的地圖才能在地圖上檢視維基百科的 POI。 - 在「抽屜」、「設定地圖」與情境選單中自訂項目數量。 -\n -\n您可以停用未使用的外掛程式,以從應用程式 %1$s 中隱藏其控制元件。 + 在「抽屜」、「設定地圖」與情境選單中自訂項目數量。 +\n +\n您可以關閉未使用的外掛程式,以從應用程式 %1$s 中隱藏它們的控制元件。 抽屜項目,情境選單 自訂使用者介面 抽屜 @@ -3623,10 +3623,10 @@ 低於此點的元素將由分隔符分離。 已隱藏 這些項目已從選單隱藏,但對應的選項或外掛程式將會繼續運作。 - 隱藏後,設定將會重設回原始狀態。 + 隱藏設定將會把它們重設回原始狀態。 主要動作僅包含 4 個按鈕。 主要動作 - 您可以透過輕點「動作」按鈕來存取這些動作。 + 您可以透過輕點「額外動作」按鈕來存取這些動作。 您只能在此分類中移動項目。 開發者外掛程式 項目 @@ -3663,9 +3663,21 @@ 額外地圖 不支援的動作 %1$s %1$s / %2$s - 確認購賣時,款項將會從您的 Google Play 帳號中扣除。 -\n -\n除非您在續訂日期前取消,否則將會自動續訂。您的帳號將僅會在續訂日期前收取續訂週期的費用。 -\n -\n您可以到您的 Google Play 設定管理與取消您的訂閱。 + 購買訂閱時會從您的 Google Play 帳號扣款, +\n而過期時(一個月/三個月/一年), +\n若您在這之前於 Google Play 設定中取消的話就不會續訂。 + 搜尋 POI 類型 + 組合來自不同分類的 POI 類型。點擊開關以全選,點擊左側選取分類。 + OsmAnd tracker + OsmAnd + Mapillary + 快速動作 + 半徑尺規 + 測量距離 + 旅行(維基導遊與維基百科) + 地圖標記 + 收藏 + 訂閱 - OsmAnd Live + OsmAnd 購買 + 地圖符號系統指南 + 導航設定檔 \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 91a8f162b2..ede6469bd6 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -12,6 +12,7 @@ --> Navigation profiles + The guide to a map\'s symbology OsmAnd purchases Subscription - OsmAnd Live Favorites @@ -24,9 +25,9 @@ OsmAnd tracker Unsupported action %1$s Extra maps - Combine POI types from different categories. Tap switch to select all, tap left side to category selection. - Search poi types - Payment will be charged to your Google Play account at the confirmation of purchase.\n\nSubscription automatically renews unless it is canceled before the renewal date. Your account will be charged for renewal period(month/three month/year) only on the renewal date.\n\nYou can manage and cancel your subscriptions by going to your Google Play settings. + Combine POI types from different categories. Tap \"Switch\" to select all, tap the left side for category selection. + Search for POI types + Your Google Play account is charged upon purchase of a subscription\nand when it expires (month/three month/year),\nit will not renew itself if canceled before then from your Google Play settings. %1$s / %2$s Custom color Lombard @@ -57,16 +58,16 @@ 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. + 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. + Could not import from \'%1$s\'. + Could not write to \'%1$s\'. + Could not read from \'%1$s\'. + Changes applied to the \'%1$s\' profile. Items Custom OsmAnd plugin Snowmobile @@ -74,11 +75,11 @@ 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. + You can access these actions by tapping the \"Additional 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. + \'Main actions\' only contains 4 buttons. + Hiding settings resets them to their original state. + These items are hidden from the menu, but the represented options or plugins will continue to work. Hidden Elements below this point separated by a divider. Divider @@ -87,7 +88,7 @@ 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. + Customize the quantity of items in Drawer, configure the map and context menu.\n\nYou can turn off unused plugins, to hide all their controls from the app %1$s. Min Square Octagon @@ -112,10 +113,10 @@ Could not back up profile. Importing data from %1$s Importing - OsmAnd check %1$s for duplicates with existing items in the application.\n\nIt may take some time. + OsmAnd check %1$s for duplicates with existing items in the app.\n\nIt may take some time. Items added Import complete - All data from the %1$s is imported, you can use buttons below to open needed part of the application to manage it. + All data from the %1$s is imported, you can use buttons below to open needed part of the app to manage it. Hillshade Enable to view hillshade or slope map. You can read more about this map types on our site Legend @@ -152,7 +153,7 @@ Disable recalculation Open settings Plugin disabled - This plugin is a separate application, you will need to remove it separately if you no longer plan to use it.\n\nThe plugin will remain on the device after removing OsmAnd. + This plugin is a separate app, you will need to remove it separately if you no longer plan to use it.\n\nThe plugin will remain on the device after removing OsmAnd. Menu %1$s — %2$s — %3$s Minimal distance to recalculate route @@ -195,7 +196,7 @@ The imported profile contains additional data. Click Import to import only profile data or select additional data to import. You can select additional data to export along with the profile. Permission is required to use this option. - Check and share detailed logs of the application + Check and share detailed logs of the app No routing rules in \'%1$s\'. Please choose another file. Select a supported %1$s extension file instead. This is a low-speed cut-off filter to not record points below a certain speed. This may make recorded tracks look "smoother" when viewed on the map. diff --git a/OsmAnd/src/net/osmand/plus/AppInitializer.java b/OsmAnd/src/net/osmand/plus/AppInitializer.java index 6159afb6f5..4a63e3efdf 100644 --- a/OsmAnd/src/net/osmand/plus/AppInitializer.java +++ b/OsmAnd/src/net/osmand/plus/AppInitializer.java @@ -14,6 +14,8 @@ import android.content.res.Resources; import android.os.AsyncTask; import android.os.Build; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import net.osmand.AndroidUtils; @@ -617,7 +619,7 @@ public class AppInitializer implements IProgress { }); } - public static void loadRoutingFiles(final OsmandApplication app, final LoadRoutingFilesCallback callback) { + public static void loadRoutingFiles(@NonNull final OsmandApplication app, @Nullable final LoadRoutingFilesCallback callback) { new AsyncTask>() { @Override @@ -653,7 +655,9 @@ public class AppInitializer implements IProgress { app.getCustomRoutingConfigs().putAll(customConfigs); } app.avoidSpecificRoads.initRouteObjects(false); - callback.onRoutingFilesLoaded(); + if (callback != null) { + callback.onRoutingFilesLoaded(); + } } private Map getDefaultAttributes() { diff --git a/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java b/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java index 238d80c952..71ec956959 100644 --- a/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java +++ b/OsmAnd/src/net/osmand/plus/CustomOsmandPlugin.java @@ -14,7 +14,6 @@ import net.osmand.JsonUtils; import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.map.ITileSource; -import net.osmand.map.TileSourceManager; import net.osmand.map.WorldRegion; import net.osmand.plus.SettingsHelper.AvoidRoadsSettingsItem; import net.osmand.plus.SettingsHelper.MapSourcesSettingsItem; @@ -45,6 +44,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -265,17 +265,20 @@ public class CustomOsmandPlugin extends OsmandPlugin { 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(); + String tileSourceName = tileSource.getName(); + if (tileSource instanceof SQLiteTileSource) { + tileSourceName += SQLITE_EXT; + } + + ITileSource savedTileSource = app.getSettings().getTileSourceByName(tileSourceName, false); + if (savedTileSource != null) { + if (savedTileSource instanceof SQLiteTileSource) { + SQLiteTileSource sqLiteTileSource = ((SQLiteTileSource) savedTileSource); + sqLiteTileSource.closeDB(); + } File tPath = app.getAppPath(IndexConstants.TILES_INDEX_DIR); - File dir = new File(tPath, sqLiteTileSource.getName() + SQLITE_EXT); + File dir = new File(tPath, tileSourceName); Algorithms.removeAllFiles(dir); } } @@ -368,7 +371,7 @@ public class CustomOsmandPlugin extends OsmandPlugin { public static List collectRegionsFromJson(@NonNull Context ctx, JSONArray jsonArray) throws JSONException { List customRegions = new ArrayList<>(); - Map flatRegions = new HashMap<>(); + Map flatRegions = new LinkedHashMap<>(); for (int i = 0; i < jsonArray.length(); i++) { JSONObject regionJson = jsonArray.getJSONObject(i); CustomRegion region = CustomRegion.fromJson(ctx, regionJson); diff --git a/OsmAnd/src/net/osmand/plus/CustomRegion.java b/OsmAnd/src/net/osmand/plus/CustomRegion.java index c2357f1c82..7cf4a3c9f9 100644 --- a/OsmAnd/src/net/osmand/plus/CustomRegion.java +++ b/OsmAnd/src/net/osmand/plus/CustomRegion.java @@ -32,6 +32,8 @@ import java.util.Map; public class CustomRegion extends WorldRegion { + public static final int INVALID_ID = -1; + private static final Log LOG = PlatformUtil.getLog(CustomRegion.class); private String scopeId; @@ -51,7 +53,7 @@ public class CustomRegion extends WorldRegion { private Map icons = new HashMap<>(); private Map headers = new HashMap<>(); - private int headerColor = -1; + private int headerColor = INVALID_ID; private CustomRegion(String scopeId, String path, String type) { @@ -75,6 +77,11 @@ public class CustomRegion extends WorldRegion { @ColorInt public int getHeaderColor() { + if (headerColor != INVALID_ID) { + return headerColor; + } else if (superregion instanceof CustomRegion) { + return ((CustomRegion) superregion).getHeaderColor(); + } return headerColor; } @@ -83,6 +90,10 @@ public class CustomRegion extends WorldRegion { return descriptionInfo; } + public String getIconName(Context ctx) { + return JsonUtils.getLocalizedResFromMap(ctx, icons, null); + } + public static CustomRegion fromJson(@NonNull Context ctx, JSONObject object) throws JSONException { String scopeId = object.optString("scope-id", null); String path = object.optString("path", null); @@ -117,9 +128,9 @@ public class CustomRegion extends WorldRegion { String headerColor = object.optString("header-color", null); try { - region.headerColor = Algorithms.isEmpty(headerColor) ? 0 : Algorithms.parseColor(headerColor); + region.headerColor = Algorithms.isEmpty(headerColor) ? INVALID_ID : Algorithms.parseColor(headerColor); } catch (IllegalArgumentException e) { - region.headerColor = 0; + region.headerColor = INVALID_ID; } region.descriptionInfo = DownloadDescriptionInfo.fromJson(object.optJSONObject("description")); @@ -138,6 +149,9 @@ public class CustomRegion extends WorldRegion { JsonUtils.writeLocalizedMapToJson("icon", jsonObject, icons); JsonUtils.writeLocalizedMapToJson("header", jsonObject, headers); + if (headerColor != INVALID_ID) { + jsonObject.putOpt("header-color", Algorithms.colorToString(headerColor)); + } if (descriptionInfo != null) { jsonObject.putOpt("description", descriptionInfo.toJson()); } @@ -216,6 +230,7 @@ public class CustomRegion extends WorldRegion { if ("json".equalsIgnoreCase(dynamicDownloadItems.format)) { dynamicItemsJson = mapJsonItems(result); } + app.getDownloadThread().runReloadIndexFilesSilent(); } } }; @@ -259,7 +274,7 @@ public class CustomRegion extends WorldRegion { if (value instanceof String) { String key = (String) value; int index = key.indexOf("@"); - if (index != -1) { + if (index != INVALID_ID) { key = key.substring(index + 1); } return json.opt(key); diff --git a/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java b/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java index 82e4df2762..c63609df37 100644 --- a/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java +++ b/OsmAnd/src/net/osmand/plus/SQLiteTileSource.java @@ -92,7 +92,7 @@ public class SQLiteTileSource implements ITileSource { public SQLiteTileSource(OsmandApplication ctx, String name, int minZoom, int maxZoom, String urlTemplate, String randoms, boolean isEllipsoid, boolean invertedY, String referer, - boolean timeSupported, long expirationTimeMillis, boolean inversiveZoom) { + boolean timeSupported, long expirationTimeMillis, boolean inversiveZoom, String rule) { this.ctx = ctx; this.name = name; this.urlTemplate = urlTemplate; @@ -102,6 +102,7 @@ public class SQLiteTileSource implements ITileSource { this.expirationTimeMillis = expirationTimeMillis; this.randoms = randoms; this.referer = referer; + this.rule = rule; this.invertedY = invertedY; this.timeSupported = timeSupported; this.inversiveZoom = inversiveZoom; diff --git a/OsmAnd/src/net/osmand/plus/SettingsHelper.java b/OsmAnd/src/net/osmand/plus/SettingsHelper.java index 532a9abd8d..6a0fa5d8ba 100644 --- a/OsmAnd/src/net/osmand/plus/SettingsHelper.java +++ b/OsmAnd/src/net/osmand/plus/SettingsHelper.java @@ -16,6 +16,7 @@ import net.osmand.PlatformUtil; import net.osmand.data.LatLon; import net.osmand.map.ITileSource; import net.osmand.map.TileSourceManager; +import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.map.WorldRegion; import net.osmand.osm.MapPoiTypes; import net.osmand.osm.PoiCategory; @@ -2005,8 +2006,8 @@ public class SettingsHelper { 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 timeSupported = object.optBoolean("timesupported", false); + long expire = object.optLong("expire", -1); boolean inversiveZoom = object.optBoolean("inversiveZoom", false); String ext = object.optString("ext"); int tileSize = object.optInt("tileSize"); @@ -2014,11 +2015,23 @@ public class SettingsHelper { int avgSize = object.optInt("avgSize"); String rule = object.optString("rule"); + if (expire > 0 && expire < 3600000) { + expire = expire * 60 * 1000L; + } + ITileSource template; if (!sql) { - template = new TileSourceManager.TileSourceTemplate(name, url, ext, maxZoom, minZoom, tileSize, bitDensity, avgSize); + TileSourceTemplate tileSourceTemplate = new TileSourceTemplate(name, url, ext, maxZoom, minZoom, tileSize, bitDensity, avgSize); + tileSourceTemplate.setRule(rule); + tileSourceTemplate.setRandoms(randoms); + tileSourceTemplate.setReferer(referer); + tileSourceTemplate.setEllipticYTile(ellipsoid); + tileSourceTemplate.setInvertedYTile(invertedY); + tileSourceTemplate.setExpirationTimeMillis(timeSupported ? expire : -1); + + template = tileSourceTemplate; } else { - template = new SQLiteTileSource(app, name, minZoom, maxZoom, url, randoms, ellipsoid, invertedY, referer, timesupported, expire, inversiveZoom); + template = new SQLiteTileSource(app, name, minZoom, maxZoom, url, randoms, ellipsoid, invertedY, referer, timeSupported, expire, inversiveZoom, rule); } items.add(template); } @@ -2046,7 +2059,7 @@ public class SettingsHelper { jsonObject.put("inverted_y", template.isInvertedYTile()); jsonObject.put("referer", template.getReferer()); jsonObject.put("timesupported", template.isTimeSupported()); - jsonObject.put("expire", template.getExpirationTimeMillis()); + jsonObject.put("expire", template.getExpirationTimeMinutes()); jsonObject.put("inversiveZoom", template.getInversiveZoom()); jsonObject.put("ext", template.getTileFormat()); jsonObject.put("tileSize", template.getTileSize()); diff --git a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java index 9fbb7ea535..da95de3931 100644 --- a/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/HelpActivity.java @@ -100,7 +100,7 @@ public class HelpActivity extends OsmandActionBarActivity implements AdapterView contextMenuAdapter.addItem(createItem(R.string.faq_item, R.string.faq_item_description, "feature_articles/faq.html")); contextMenuAdapter.addItem(createItem(R.string.map_legend, - R.string.faq_item_description, "feature_articles/map-legend.html")); + R.string.legend_item_description, "feature_articles/map-legend.html")); } private void createSocialNetworksItems(ContextMenuAdapter contextMenuAdapter) { diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadGroupViewHolder.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadGroupViewHolder.java index 2c5547fc83..0e59743148 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/DownloadGroupViewHolder.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadGroupViewHolder.java @@ -4,18 +4,25 @@ import android.graphics.drawable.Drawable; import android.view.View; import android.widget.TextView; +import androidx.annotation.DrawableRes; + import net.osmand.AndroidUtils; -import net.osmand.plus.UiUtilities; +import net.osmand.plus.CustomRegion; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; +import net.osmand.plus.UiUtilities; import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.download.DownloadActivityType; import net.osmand.plus.download.DownloadResourceGroup; +import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType; import net.osmand.plus.download.IndexItem; public class DownloadGroupViewHolder { - TextView textView; + private DownloadActivity ctx; + private TextView textView; + public DownloadGroupViewHolder(DownloadActivity ctx, View v) { this.ctx = ctx; textView = (TextView) v.findViewById(R.id.title); @@ -23,52 +30,64 @@ public class DownloadGroupViewHolder { private boolean isParentWorld(DownloadResourceGroup group) { return group.getParentGroup() == null - || group.getParentGroup().getType() == DownloadResourceGroup.DownloadResourceGroupType.WORLD; + || group.getParentGroup().getType() == DownloadResourceGroupType.WORLD; } private Drawable getIconForGroup(DownloadResourceGroup group) { Drawable iconStart; - if (group.getType() == DownloadResourceGroup.DownloadResourceGroupType.VOICE_REC - || group.getType() == DownloadResourceGroup.DownloadResourceGroupType.VOICE_TTS) { - iconStart = ctx.getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_volume_up); - } else if (group.getType() == DownloadResourceGroup.DownloadResourceGroupType.FONTS) { - iconStart = ctx.getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_map_language); + OsmandApplication app = ctx.getMyApplication(); + UiUtilities cache = app.getUIUtilities(); + if (group.getType() == DownloadResourceGroupType.VOICE_REC + || group.getType() == DownloadResourceGroupType.VOICE_TTS) { + iconStart = cache.getThemedIcon(R.drawable.ic_action_volume_up); + } else if (group.getType() == DownloadResourceGroupType.FONTS) { + iconStart = cache.getThemedIcon(R.drawable.ic_action_map_language); } else { - UiUtilities cache = ctx.getMyApplication().getUIUtilities(); + if (group.getRegion() instanceof CustomRegion) { + String iconName = ((CustomRegion) group.getRegion()).getIconName(ctx); + int iconId = AndroidUtils.getDrawableId(app, iconName); + if (iconId != 0) { + iconStart = getIconForDownloadedItems(group, iconId); + return iconStart != null ? iconStart : cache.getThemedIcon(iconId); + } + } if (isParentWorld(group) || isParentWorld(group.getParentGroup())) { iconStart = cache.getThemedIcon(R.drawable.ic_world_globe_dark); } else { - DownloadResourceGroup ggr = group - .getSubGroupById(DownloadResourceGroup.DownloadResourceGroupType.REGION_MAPS.getDefaultId()); - iconStart = cache.getThemedIcon(R.drawable.ic_map); - if (ggr != null && ggr.getIndividualResources() != null) { - IndexItem item = null; - for (IndexItem ii : ggr.getIndividualResources()) { - if (ii.getType() == DownloadActivityType.NORMAL_FILE - || ii.getType() == DownloadActivityType.ROADS_FILE) { - if (ii.isDownloaded() || ii.isOutdated()) { - item = ii; - break; - } - } - } - if (item != null) { - if (item.isOutdated()) { - iconStart = cache.getIcon(R.drawable.ic_map, R.color.color_distance); - } else { - iconStart = cache.getIcon(R.drawable.ic_map, R.color.color_ok); - } - } + iconStart = getIconForDownloadedItems(group, R.drawable.ic_map); + if (iconStart == null) { + iconStart = cache.getThemedIcon(R.drawable.ic_map); } } } return iconStart; } + private Drawable getIconForDownloadedItems(DownloadResourceGroup group, @DrawableRes int iconId) { + DownloadResourceGroup ggr = group.getSubGroupById(DownloadResourceGroupType.REGION_MAPS.getDefaultId()); + if (ggr != null && ggr.getIndividualResources() != null) { + IndexItem item = null; + for (IndexItem ii : ggr.getIndividualResources()) { + if (ii.getType() == DownloadActivityType.NORMAL_FILE + || ii.getType() == DownloadActivityType.ROADS_FILE) { + if (ii.isDownloaded() || ii.isOutdated()) { + item = ii; + break; + } + } + } + if (item != null) { + int color = item.isOutdated() ? R.color.color_distance : R.color.color_ok; + return ctx.getMyApplication().getUIUtilities().getIcon(iconId, color); + } + } + return null; + } + public void bindItem(DownloadResourceGroup group) { String name = group.getName(ctx); textView.setText(name); Drawable iconStart = getIconForGroup(group); AndroidUtils.setCompoundDrawablesWithIntrinsicBounds(textView, iconStart, null, null, null); } -} +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadItemFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadItemFragment.java index 7d38a92f73..80260f1215 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/DownloadItemFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadItemFragment.java @@ -19,6 +19,8 @@ import androidx.fragment.app.DialogFragment; import androidx.viewpager.widget.ViewPager; import net.osmand.AndroidUtils; +import net.osmand.map.WorldRegion; +import net.osmand.plus.CustomRegion; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; import net.osmand.plus.UiUtilities; @@ -161,6 +163,13 @@ public class DownloadItemFragment extends DialogFragment implements DownloadEven updateActionButtons(activity, descriptionInfo, indexItem, buttonsContainer, R.layout.bottom_buttons, nightMode); } } + WorldRegion region = group.getParentGroup().getRegion(); + if (region instanceof CustomRegion) { + int headerColor = ((CustomRegion) region).getHeaderColor(); + if (headerColor != CustomRegion.INVALID_ID) { + toolbar.setBackgroundColor(headerColor); + } + } } static void updateActionButtons(final DownloadActivity ctx, DownloadDescriptionInfo descriptionInfo, diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupAdapter.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupAdapter.java new file mode 100644 index 0000000000..a212dd5e31 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupAdapter.java @@ -0,0 +1,157 @@ +package net.osmand.plus.download.ui; + +import android.content.res.Resources; +import android.util.TypedValue; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import net.osmand.plus.R; +import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; +import net.osmand.plus.download.CustomIndexItem; +import net.osmand.plus.download.DownloadActivity; +import net.osmand.plus.download.DownloadResourceGroup; +import net.osmand.plus.download.IndexItem; + +import java.util.ArrayList; +import java.util.List; + +public class DownloadResourceGroupAdapter extends OsmandBaseExpandableListAdapter { + + private List data = new ArrayList(); + private DownloadActivity ctx; + private DownloadResourceGroup mainGroup; + + + public DownloadResourceGroupAdapter(DownloadActivity ctx) { + this.ctx = ctx; + } + + public void update(DownloadResourceGroup mainGroup) { + this.mainGroup = mainGroup; + data = mainGroup.getGroups(); + notifyDataSetChanged(); + } + + @Override + public Object getChild(int groupPosition, int childPosition) { + DownloadResourceGroup drg = data.get(groupPosition); + if (drg.getType().containsIndexItem()) { + return drg.getItemByIndex(childPosition); + } + return drg.getGroupByIndex(childPosition); + } + + @Override + public long getChildId(int groupPosition, int childPosition) { + return groupPosition * 10000 + childPosition; + } + + @Override + public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, + View convertView, ViewGroup parent) { + final Object child = getChild(groupPosition, childPosition); + if (child instanceof IndexItem) { + + IndexItem item = (IndexItem) child; + DownloadResourceGroup group = getGroupObj(groupPosition); + ItemViewHolder viewHolder; + if (convertView != null && convertView.getTag() instanceof ItemViewHolder) { + viewHolder = (ItemViewHolder) convertView.getTag(); + } else { + convertView = LayoutInflater.from(parent.getContext()).inflate( + R.layout.two_line_with_images_list_item, parent, false); + viewHolder = new ItemViewHolder(convertView, ctx); + viewHolder.setShowRemoteDate(true); + convertView.setTag(viewHolder); + } + if (mainGroup.getType() == DownloadResourceGroup.DownloadResourceGroupType.REGION && + group != null && group.getType() == DownloadResourceGroup.DownloadResourceGroupType.REGION_MAPS + && !(item instanceof CustomIndexItem)) { + viewHolder.setShowTypeInName(true); + viewHolder.setShowTypeInDesc(false); + } else if (group != null && (group.getType() == DownloadResourceGroup.DownloadResourceGroupType.SRTM_HEADER + || group.getType() == DownloadResourceGroup.DownloadResourceGroupType.HILLSHADE_HEADER)) { + viewHolder.setShowTypeInName(false); + viewHolder.setShowTypeInDesc(false); + } else { + viewHolder.setShowTypeInDesc(true); + } + viewHolder.bindIndexItem(item); + } else { + DownloadResourceGroup group = (DownloadResourceGroup) child; + DownloadGroupViewHolder viewHolder; + if (convertView != null && convertView.getTag() instanceof DownloadGroupViewHolder) { + viewHolder = (DownloadGroupViewHolder) convertView.getTag(); + } else { + convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.simple_list_menu_item, + parent, false); + viewHolder = new DownloadGroupViewHolder(ctx, convertView); + convertView.setTag(viewHolder); + } + viewHolder.bindItem(group); + } + + return convertView; + } + + + @Override + public View getGroupView(int groupPosition, boolean isExpanded, final View convertView, final ViewGroup parent) { + View v = convertView; + String section = getGroup(groupPosition); + if (v == null) { + LayoutInflater inflater = LayoutInflater.from(ctx); + v = inflater.inflate(R.layout.download_item_list_section, parent, false); + } + TextView nameView = ((TextView) v.findViewById(R.id.title)); + nameView.setText(section); + v.setOnClickListener(null); + TypedValue typedValue = new TypedValue(); + Resources.Theme theme = ctx.getTheme(); + theme.resolveAttribute(R.attr.activity_background_color, typedValue, true); + v.setBackgroundColor(typedValue.data); + + return v; + } + + @Override + public int getChildrenCount(int groupPosition) { + return data.get(groupPosition).size(); + } + + public DownloadResourceGroup getGroupObj(int groupPosition) { + return data.get(groupPosition); + } + + @Override + public String getGroup(int groupPosition) { + DownloadResourceGroup drg = data.get(groupPosition); + int rid = drg.getType().getResourceId(); + if (rid != -1) { + return ctx.getString(rid); + } + return ""; + } + + @Override + public int getGroupCount() { + return data.size(); + } + + @Override + public long getGroupId(int groupPosition) { + return groupPosition; + } + + @Override + public boolean hasStableIds() { + return false; + } + + @Override + public boolean isChildSelectable(int groupPosition, int childPosition) { + return true; + } +} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java index adeb95ea28..6f8467bf48 100644 --- a/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java +++ b/OsmAnd/src/net/osmand/plus/download/ui/DownloadResourceGroupFragment.java @@ -3,11 +3,9 @@ package net.osmand.plus.download.ui; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.DialogInterface; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Bundle; -import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -28,19 +26,17 @@ import androidx.fragment.app.DialogFragment; import net.osmand.AndroidNetworkUtils; import net.osmand.AndroidUtils; +import net.osmand.map.WorldRegion; import net.osmand.plus.CustomRegion; import net.osmand.plus.LockableViewPager; import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; -import net.osmand.plus.activities.OsmandBaseExpandableListAdapter; import net.osmand.plus.download.CustomIndexItem; import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.download.DownloadActivity.BannerAndDownloadFreeVersion; import net.osmand.plus.download.DownloadActivityType; import net.osmand.plus.download.DownloadIndexesThread.DownloadEvents; import net.osmand.plus.download.DownloadResourceGroup; -import net.osmand.plus.download.DownloadResourceGroup.DownloadResourceGroupType; import net.osmand.plus.download.DownloadResources; import net.osmand.plus.download.DownloadValidationManager; import net.osmand.plus.download.IndexItem; @@ -53,9 +49,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.text.MessageFormat; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import static net.osmand.plus.download.ui.DownloadItemFragment.updateActionButtons; @@ -438,6 +432,13 @@ public class DownloadResourceGroupFragment extends DialogFragment implements Dow if (group != null) { listAdapter.update(group); toolbar.setTitle(group.getName(activity)); + WorldRegion region = group.getRegion(); + if (region instanceof CustomRegion) { + int headerColor = ((CustomRegion) region).getHeaderColor(); + if (headerColor != CustomRegion.INVALID_ID) { + toolbar.setBackgroundColor(headerColor); + } + } } expandAllGroups(); } @@ -565,208 +566,4 @@ public class DownloadResourceGroupFragment extends DialogFragment implements Dow fragment.setArguments(bundle); return fragment; } - - - - private static class DownloadGroupViewHolder { - TextView textView; - private DownloadActivity ctx; - - public DownloadGroupViewHolder(DownloadActivity ctx, View v) { - this.ctx = ctx; - textView = (TextView) v.findViewById(R.id.title); - } - - private boolean isParentWorld(DownloadResourceGroup group) { - return group.getParentGroup() == null - || group.getParentGroup().getType() == DownloadResourceGroupType.WORLD; - } - - private Drawable getIconForGroup(DownloadResourceGroup group) { - Drawable iconStart; - if (group.getType() == DownloadResourceGroupType.VOICE_REC - || group.getType() == DownloadResourceGroupType.VOICE_TTS) { - iconStart = ctx.getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_volume_up); - } else if (group.getType() == DownloadResourceGroupType.FONTS) { - iconStart = ctx.getMyApplication().getUIUtilities().getThemedIcon(R.drawable.ic_action_map_language); - } else { - UiUtilities cache = ctx.getMyApplication().getUIUtilities(); - if (isParentWorld(group) || isParentWorld(group.getParentGroup())) { - iconStart = cache.getThemedIcon(R.drawable.ic_world_globe_dark); - } else { - DownloadResourceGroup ggr = group - .getSubGroupById(DownloadResourceGroupType.REGION_MAPS.getDefaultId()); - iconStart = cache.getThemedIcon(R.drawable.ic_map); - if (ggr != null && ggr.getIndividualResources() != null) { - IndexItem item = null; - for (IndexItem ii : ggr.getIndividualResources()) { - if (ii.getType() == DownloadActivityType.NORMAL_FILE - || ii.getType() == DownloadActivityType.ROADS_FILE) { - if (ii.isDownloaded() || ii.isOutdated()) { - item = ii; - break; - } - } - } - if (item != null) { - if (item.isOutdated()) { - iconStart = cache.getIcon(R.drawable.ic_map, R.color.color_distance); - } else { - iconStart = cache.getIcon(R.drawable.ic_map, R.color.color_ok); - } - } - } - } - } - return iconStart; - } - - public void bindItem(DownloadResourceGroup group) { - String name = group.getName(ctx); - textView.setText(name); - Drawable iconStart = getIconForGroup(group); - AndroidUtils.setCompoundDrawablesWithIntrinsicBounds(textView, iconStart, null, null, null); - } - } - - public static class DownloadResourceGroupAdapter extends OsmandBaseExpandableListAdapter { - - private List data = new ArrayList(); - private DownloadActivity ctx; - private DownloadResourceGroup mainGroup; - - - - public DownloadResourceGroupAdapter(DownloadActivity ctx) { - this.ctx = ctx; - } - - public void update(DownloadResourceGroup mainGroup) { - this.mainGroup = mainGroup; - data = mainGroup.getGroups(); - notifyDataSetChanged(); - } - - @Override - public Object getChild(int groupPosition, int childPosition) { - DownloadResourceGroup drg = data.get(groupPosition); - if (drg.getType().containsIndexItem()) { - return drg.getItemByIndex(childPosition); - } - return drg.getGroupByIndex(childPosition); - } - - @Override - public long getChildId(int groupPosition, int childPosition) { - return groupPosition * 10000 + childPosition; - } - - @Override - public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, - View convertView, ViewGroup parent) { - final Object child = getChild(groupPosition, childPosition); - if (child instanceof IndexItem) { - - IndexItem item = (IndexItem) child; - DownloadResourceGroup group = getGroupObj(groupPosition); - ItemViewHolder viewHolder; - if (convertView != null && convertView.getTag() instanceof ItemViewHolder) { - viewHolder = (ItemViewHolder) convertView.getTag(); - } else { - convertView = LayoutInflater.from(parent.getContext()).inflate( - R.layout.two_line_with_images_list_item, parent, false); - viewHolder = new ItemViewHolder(convertView, ctx); - viewHolder.setShowRemoteDate(true); - convertView.setTag(viewHolder); - } - if (mainGroup.getType() == DownloadResourceGroupType.REGION && - group != null && group.getType() == DownloadResourceGroupType.REGION_MAPS - && !(item instanceof CustomIndexItem)) { - viewHolder.setShowTypeInName(true); - viewHolder.setShowTypeInDesc(false); - } else if (group != null && (group.getType() == DownloadResourceGroupType.SRTM_HEADER - || group.getType() == DownloadResourceGroupType.HILLSHADE_HEADER)) { - viewHolder.setShowTypeInName(false); - viewHolder.setShowTypeInDesc(false); - } else { - viewHolder.setShowTypeInDesc(true); - } - viewHolder.bindIndexItem(item); - } else { - DownloadResourceGroup group = (DownloadResourceGroup) child; - DownloadGroupViewHolder viewHolder; - if (convertView != null && convertView.getTag() instanceof DownloadGroupViewHolder) { - viewHolder = (DownloadGroupViewHolder) convertView.getTag(); - } else { - convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.simple_list_menu_item, - parent, false); - viewHolder = new DownloadGroupViewHolder(ctx, convertView); - convertView.setTag(viewHolder); - } - viewHolder.bindItem(group); - } - - return convertView; - } - - - - @Override - public View getGroupView(int groupPosition, boolean isExpanded, final View convertView, final ViewGroup parent) { - View v = convertView; - String section = getGroup(groupPosition); - if (v == null) { - LayoutInflater inflater = LayoutInflater.from(ctx); - v = inflater.inflate(R.layout.download_item_list_section, parent, false); - } - TextView nameView = ((TextView) v.findViewById(R.id.title)); - nameView.setText(section); - v.setOnClickListener(null); - TypedValue typedValue = new TypedValue(); - Resources.Theme theme = ctx.getTheme(); - theme.resolveAttribute(R.attr.activity_background_color, typedValue, true); - v.setBackgroundColor(typedValue.data); - - return v; - } - - @Override - public int getChildrenCount(int groupPosition) { - return data.get(groupPosition).size(); - } - - public DownloadResourceGroup getGroupObj(int groupPosition) { - return data.get(groupPosition); - } - - @Override - public String getGroup(int groupPosition) { - DownloadResourceGroup drg = data.get(groupPosition); - int rid = drg.getType().getResourceId(); - if (rid != -1) { - return ctx.getString(rid); - } - return ""; - } - - @Override - public int getGroupCount() { - return data.size(); - } - - @Override - public long getGroupId(int groupPosition) { - return groupPosition; - } - - @Override - public boolean hasStableIds() { - return false; - } - - @Override - public boolean isChildSelectable(int groupPosition, int childPosition) { - return true; - } - } } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 8a29d2ea1f..7651f8413a 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -854,6 +854,12 @@ public class ImportHelper { if (!Algorithms.isEmpty(plugin.getDownloadMaps())) { app.getDownloadThread().runReloadIndexFilesSilent(); } + if (!Algorithms.isEmpty(plugin.getRendererNames())) { + app.getRendererRegistry().updateExternalRenderers(); + } + if (!Algorithms.isEmpty(plugin.getRouterNames())) { + loadRoutingFiles(app, null); + } if (activity != null) { plugin.onInstall(app, activity); } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java index bd5260d4b9..1600d2d736 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java @@ -1079,7 +1079,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL MapActivity mapActivity = getMapActivity(); if (mapActivity != null) { LatLon latLon = getLatLon(); - return mapActivity.getMapActions().getContextMenuItemClickListener(latLon.getLatitude(), latLon.getLatitude(), menuAdapter); + return mapActivity.getMapActions().getContextMenuItemClickListener(latLon.getLatitude(), latLon.getLongitude(), menuAdapter); } return null; } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java index 750272622d..88b30c09ca 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OpenstreetmapRemoteUtil.java @@ -467,6 +467,9 @@ public class OpenstreetmapRemoteUtil implements OpenstreetmapUtil { if (entity != null) { if (!isWay && entity instanceof Node) { // check whether this is node (because id of node could be the same as relation) + if (object instanceof NativeLibrary.RenderedObject && object.getLocation() == null) { + object.setLocation(((NativeLibrary.RenderedObject) object).getLabelLatLon()); + } if (MapUtils.getDistance(entity.getLatLon(), object.getLocation()) < 50) { if (object instanceof Amenity) { return replaceEditOsmTags((Amenity) object, entity); diff --git a/OsmAnd/src/net/osmand/plus/render/OsmandRenderer.java b/OsmAnd/src/net/osmand/plus/render/OsmandRenderer.java index 6592198107..177a16d61b 100644 --- a/OsmAnd/src/net/osmand/plus/render/OsmandRenderer.java +++ b/OsmAnd/src/net/osmand/plus/render/OsmandRenderer.java @@ -162,11 +162,10 @@ public class OsmandRenderer { return dashEffect.get(dashes); } - public Shader getShader(String resId){ - - if(shaders.get(resId) == null){ + public Shader getShader(String resId) { + if (shaders.get(resId) == null) { Bitmap bmp = RenderingIcons.getIcon(context, resId, true); - if(bmp != null){ + if (bmp != null) { Shader sh = new BitmapShader(bmp, TileMode.REPEAT, TileMode.REPEAT); shaders.put(resId, sh); } else { @@ -326,17 +325,17 @@ public class OsmandRenderer { bounds.inset(-bounds.width()/4, -bounds.height()/4); QuadTree boundIntersections = new QuadTree(bounds, 4, 0.6f); List result = new ArrayList(); - + for (IconDrawInfo icon : rc.iconsToDraw) { if (icon.resId != null) { - Bitmap ico = RenderingIcons.getIcon(context, icon.resId, true); + Drawable ico = RenderingIcons.getDrawableIcon(context, icon.resId, true); if (ico != null) { if (icon.y >= 0 && icon.y < rc.height && icon.x >= 0 && icon.x < rc.width) { - int visbleWidth = icon.iconSize >= 0 ? (int) icon.iconSize : ico.getWidth(); - int visbleHeight = icon.iconSize >= 0 ? (int) icon.iconSize : ico.getHeight(); + int visbleWidth = icon.iconSize >= 0 ? (int) icon.iconSize : ico.getIntrinsicWidth(); + int visbleHeight = icon.iconSize >= 0 ? (int) icon.iconSize : ico.getIntrinsicHeight(); boolean intersects = false; float coeff = rc.getDensityValue(rc.screenDensityRatio * rc.textScale); - RectF rf = calculateRect(rc, icon, ico.getWidth(), ico.getHeight()); + RectF rf = calculateRect(rc, icon, ico.getIntrinsicWidth(), ico.getIntrinsicHeight()); RectF visibleRect = null; if (visbleHeight > 0 && visbleWidth > 0) { visibleRect = calculateRect(rc, icon, visbleWidth, visbleHeight); @@ -350,37 +349,29 @@ public class OsmandRenderer { } if (!intersects) { - Bitmap shield = icon.shieldId == null ? null : RenderingIcons.getIcon(context, icon.shieldId, true); - if(shield != null) { - RectF shieldRf = calculateRect(rc, icon, shield.getWidth(), shield.getHeight()); - if (coeff != 1f) { - Rect src = new Rect(0, 0, shield.getWidth(), shield.getHeight()); - drawBitmap(cv, shield, shieldRf, src); - } else { - drawBitmap(cv, shield, shieldRf); - } + Drawable shield = icon.shieldId == null ? null : RenderingIcons.getDrawableIcon(context, icon.shieldId, true); + boolean fillRect = coeff != 1f; + if (shield != null) { + cv.save(); + RectF shieldRf = calculateRect(rc, icon, shield.getIntrinsicWidth(), shield.getIntrinsicHeight()); + cv.translate(shieldRf.left, shieldRf.top); + draw(cv, shield, shieldRf, fillRect); + cv.restore(); } - if (coeff != 1f) { - Rect src = new Rect(0, 0, ico.getWidth(), ico.getHeight()); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId_1, true), rf, src); - drawBitmap(cv, ico, rf, src); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId2, true), rf, src); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId3, true), rf, src); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId4, true), rf, src); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId5, true), rf, src); - } else { - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId_1, true), rf); - drawBitmap(cv, ico, rf); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId2, true), rf); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId3, true), rf); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId4, true), rf); - drawBitmap(cv, RenderingIcons.getIcon(context, icon.resId5, true), rf); - } - if(visibleRect != null) { + cv.save(); + cv.translate(rf.left, rf.top); + draw(cv, RenderingIcons.getDrawableIcon(context, icon.resId_1, true), rf, fillRect); + draw(cv, ico, rf, fillRect); + draw(cv, RenderingIcons.getDrawableIcon(context, icon.resId2, true), rf, fillRect); + draw(cv, RenderingIcons.getDrawableIcon(context, icon.resId3, true), rf, fillRect); + draw(cv, RenderingIcons.getDrawableIcon(context, icon.resId4, true), rf, fillRect); + draw(cv, RenderingIcons.getDrawableIcon(context, icon.resId5, true), rf, fillRect); + if (visibleRect != null) { visibleRect.inset(-visibleRect.width() / 4, -visibleRect.height() / 4); boundIntersections.insert(visibleRect, new QuadRect(visibleRect.left, visibleRect.top, visibleRect.right, visibleRect.bottom)); } + cv.restore(); } } } @@ -391,23 +382,16 @@ public class OsmandRenderer { } } - public Drawable getShieldDrawable(String shieldId){ - Bitmap shield = RenderingIcons.getIcon(context, shieldId, true); - return new BitmapDrawable(context.getResources(),shield); - } - - protected void drawBitmap(Canvas cv, Bitmap ico, RectF rf) { - if(ico == null) { + protected void draw(Canvas cv, Drawable ico, RectF rf, boolean fillRect) { + if (ico == null) { return; } - cv.drawBitmap(ico, rf.left, rf.top, paintIcon); - } - - protected void drawBitmap(Canvas cv, Bitmap ico, RectF rf, Rect src) { - if(ico == null) { - return; + if (fillRect) { + ico.setBounds(0, 0, (int) rf.width(), (int) rf.height()); + } else { + ico.setBounds(0, 0, ico.getIntrinsicWidth(), ico.getIntrinsicHeight()); } - cv.drawBitmap(ico, src, rf, paintIcon); + ico.draw(cv); } private RectF calculateRect(RenderingContext rc, IconDrawInfo icon, int visbleWidth, int visbleHeight) { diff --git a/OsmAnd/src/net/osmand/plus/render/RenderingIcons.java b/OsmAnd/src/net/osmand/plus/render/RenderingIcons.java index 612ac54b4f..26d5a82cce 100644 --- a/OsmAnd/src/net/osmand/plus/render/RenderingIcons.java +++ b/OsmAnd/src/net/osmand/plus/render/RenderingIcons.java @@ -1,17 +1,5 @@ package net.osmand.plus.render; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.util.LinkedHashMap; -import java.util.Map; - -import net.osmand.PlatformUtil; -import net.osmand.plus.R; -import net.osmand.plus.R.drawable; - -import org.apache.commons.logging.Log; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -23,6 +11,18 @@ import android.os.Build; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; +import net.osmand.PlatformUtil; +import net.osmand.plus.R; +import net.osmand.plus.R.drawable; + +import org.apache.commons.logging.Log; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.util.LinkedHashMap; +import java.util.Map; + public class RenderingIcons { private static final Log log = PlatformUtil.getLog(RenderingIcons.class); @@ -30,6 +30,7 @@ public class RenderingIcons { private static Map smallIcons = new LinkedHashMap(); private static Map bigIcons = new LinkedHashMap(); private static Map iconsBmp = new LinkedHashMap(); + private static Map iconsDrawable = new LinkedHashMap(); // private static DisplayMetrics dm; private static Bitmap cacheBmp = null; @@ -42,9 +43,11 @@ public class RenderingIcons { return bigIcons.containsKey(s); } - - public static synchronized byte[] getBitmapFromVectorDrawable(Context context, int drawableId) { + public static synchronized Bitmap getBitmapFromVectorDrawable(Context context, int drawableId) { Drawable drawable = ContextCompat.getDrawable(context, drawableId); + if (drawable == null) { + return null; + } if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { drawable = (DrawableCompat.wrap(drawable)).mutate(); } @@ -57,20 +60,27 @@ public class RenderingIcons { Canvas canvas = new Canvas(cacheBmp); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); + return cacheBmp; + } + private static synchronized byte[] getPngFromVectorDrawable(Context context, int drawableId) { + Bitmap bmp = getBitmapFromVectorDrawable(context, drawableId); + if (bmp == null) { + return null; + } ByteArrayOutputStream baos = new ByteArrayOutputStream(); - cacheBmp.compress(Bitmap.CompressFormat.PNG, 100, baos); + bmp.compress(Bitmap.CompressFormat.PNG, 100, baos); return baos.toByteArray(); } public static byte[] getIconRawData(Context ctx, String s) { Integer resId = shaderIcons.get(s); - if(resId == null) { + if (resId == null) { resId = smallIcons.get(s); } - if(resId == null) + if (resId == null) { return null; - + } try { final InputStream inputStream = ctx.getResources().openRawResource(resId.intValue()); final ByteArrayOutputStream proxyOutputStream = new ByteArrayOutputStream(1024); @@ -82,7 +92,7 @@ public class RenderingIcons { inputStream.close(); final byte[] bitmapData = proxyOutputStream.toByteArray(); if (isVectorData(bitmapData)) { - return getBitmapFromVectorDrawable(ctx, resId.intValue()); + return getPngFromVectorDrawable(ctx, resId.intValue()); } // log.info("Icon data length is " + bitmapData.length); //$NON-NLS-1$ // Bitmap dm = android.graphics.BitmapFactory.decodeByteArray(bitmapData, 0, bitmapData.length) ; @@ -128,7 +138,13 @@ public class RenderingIcons { } return null; } - + + /** + * Return vector icon as bitmap. Used for java rendering only. + * + * @deprecated Use getDrawableIcon instead. + */ + @Deprecated public static Bitmap getIcon(Context ctx, String s, boolean includeShader) { if(s == null) { return null; @@ -139,7 +155,7 @@ public class RenderingIcons { if (!iconsBmp.containsKey(s)) { Integer resId = s.startsWith("h_") ? shaderIcons.get(s.substring(2)) : smallIcons.get(s); if (resId != null) { - Bitmap bmp = BitmapFactory.decodeResource(ctx.getResources(), resId, null); + Bitmap bmp = getBitmapFromVectorDrawable(ctx, resId); iconsBmp.put(s, bmp); } else { iconsBmp.put(s, null); @@ -147,7 +163,29 @@ public class RenderingIcons { } return iconsBmp.get(s); } - + + public static Drawable getDrawableIcon(Context ctx, String s, boolean includeShader) { + if (s == null) { + return null; + } + if (includeShader && shaderIcons.containsKey(s)) { + s = "h_" + s; + } + Drawable d = iconsDrawable.get(s); + if (d == null) { + Integer drawableId = s.startsWith("h_") ? shaderIcons.get(s.substring(2)) : smallIcons.get(s); + if (drawableId != null) { + d = ContextCompat.getDrawable(ctx, drawableId); + if (d != null) { + d = DrawableCompat.wrap(d); + d.mutate(); + iconsDrawable.put(s, d); + } + } + } + return d; + } + public static Integer getResId(String id) { return id.startsWith("h_") ? shaderIcons.get(id.substring(2)) : smallIcons.get(id); } diff --git a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java index 5743a40025..9e338d08ec 100644 --- a/OsmAnd/src/net/osmand/plus/render/TextRenderer.java +++ b/OsmAnd/src/net/osmand/plus/render/TextRenderer.java @@ -31,6 +31,8 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Typeface; +import android.graphics.drawable.Drawable; + import org.apache.commons.logging.Log; public class TextRenderer { @@ -315,19 +317,20 @@ public class TextRenderer { public void drawShieldIcon(RenderingContext rc, Canvas cv, TextDrawInfo text, String sr) { if (sr != null) { float coef = rc.getDensityValue(rc.screenDensityRatio * rc.textScale); - Bitmap ico = RenderingIcons.getIcon(context, sr, true); + Drawable ico = RenderingIcons.getDrawableIcon(context, sr, true); if (ico != null) { - float left = text.centerX - ico.getWidth() / 2 * coef - 0.5f; - float top = text.centerY - ico.getHeight() / 2 * coef - paintText.descent() * 1.5f; - if(rc.screenDensityRatio != 1f){ - RectF rf = new RectF(left, top, left + ico.getWidth() * coef, - top + ico.getHeight() * coef); - Rect src = new Rect(0, 0, ico.getWidth(), ico - .getHeight()); - cv.drawBitmap(ico, src, rf, paintIcon); + float left = text.centerX - ico.getIntrinsicWidth() / 2f * coef - 0.5f; + float top = text.centerY - ico.getIntrinsicHeight() / 2f * coef - paintText.descent() * 1.5f; + cv.save(); + cv.translate(left, top); + if (rc.screenDensityRatio != 1f) { + ico.setBounds(0, 0, (int) (ico.getIntrinsicWidth() * coef), (int) (ico.getIntrinsicHeight() * coef)); + ico.draw(cv); } else { - cv.drawBitmap(ico, left, top, paintIcon); + ico.setBounds(0, 0, ico.getIntrinsicWidth(), ico.getIntrinsicHeight()); + ico.draw(cv); } + cv.restore(); } } } diff --git a/OsmAnd/src/net/osmand/plus/routing/TransportRoutingHelper.java b/OsmAnd/src/net/osmand/plus/routing/TransportRoutingHelper.java index 822f1dac85..47084fb1f6 100644 --- a/OsmAnd/src/net/osmand/plus/routing/TransportRoutingHelper.java +++ b/OsmAnd/src/net/osmand/plus/routing/TransportRoutingHelper.java @@ -491,7 +491,7 @@ public class TransportRoutingHelper { } GeneralRouter prouter = config.getRouter(params.mode.getRoutingProfile()); TransportRoutingConfiguration cfg = new TransportRoutingConfiguration(prouter, params.params); - TransportRoutePlanner planner = new TransportRoutePlanner(); + TransportRoutingContext ctx = new TransportRoutingContext(cfg, library, files); ctx.calculationProgress = params.calculationProgress; if (ctx.library != null && !settings.PT_SAFE_MODE.get()) { @@ -501,9 +501,9 @@ public class TransportRoutingHelper { MapUtils.get31TileNumberX(params.end.getLongitude()), MapUtils.get31TileNumberY(params.end.getLatitude()), cfg, ctx.calculationProgress); - List res = TransportRoutePlanner.convertToTransportRoutingResult(nativeRes, cfg); - return res; + return TransportRoutePlanner.convertToTransportRoutingResult(nativeRes, cfg); } else { + TransportRoutePlanner planner = new TransportRoutePlanner(); return planner.buildRoute(ctx, params.start, params.end); } } diff --git a/OsmAnd/src/net/osmand/plus/search/QuickSearchListFragment.java b/OsmAnd/src/net/osmand/plus/search/QuickSearchListFragment.java index f3554d0c46..3b10b03b49 100644 --- a/OsmAnd/src/net/osmand/plus/search/QuickSearchListFragment.java +++ b/OsmAnd/src/net/osmand/plus/search/QuickSearchListFragment.java @@ -99,7 +99,7 @@ public abstract class QuickSearchListFragment extends OsmAndListFragment { showResult(sr); } else { - if (sr.objectType == ObjectType.CITY || sr.objectType == ObjectType.VILLAGE) { + if (sr.objectType == ObjectType.CITY || sr.objectType == ObjectType.VILLAGE || sr.objectType == ObjectType.STREET) { showResult = true; } dialogFragment.completeQueryWithObject(sr); diff --git a/OsmAnd/src/net/osmand/plus/settings/ImportDuplicatesFragment.java b/OsmAnd/src/net/osmand/plus/settings/ImportDuplicatesFragment.java index 08f9346c21..0820b24052 100644 --- a/OsmAnd/src/net/osmand/plus/settings/ImportDuplicatesFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/ImportDuplicatesFragment.java @@ -271,11 +271,7 @@ public class ImportDuplicatesFragment extends BaseOsmAndFragment implements View public void onSettingsImportFinished(boolean succeed, @NonNull List items) { if (succeed) { app.getRendererRegistry().updateExternalRenderers(); - AppInitializer.loadRoutingFiles(app, new AppInitializer.LoadRoutingFilesCallback() { - @Override - public void onRoutingFilesLoaded() { - } - }); + AppInitializer.loadRoutingFiles(app, null); FragmentManager fm = getFragmentManager(); if (fm != null && file != null) { ImportCompleteFragment.showInstance(fm, items, file.getName()); diff --git a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeDataStorageBottomSheet.java b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeDataStorageBottomSheet.java index fd28c3b974..b1b31e5d8e 100644 --- a/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeDataStorageBottomSheet.java +++ b/OsmAnd/src/net/osmand/plus/settings/bottomsheets/ChangeDataStorageBottomSheet.java @@ -170,6 +170,7 @@ public class ChangeDataStorageBottomSheet extends BasePreferenceBottomSheet { fragment.setNewDirectory(newDirectory); fragment.setTargetFragment(target, 0); fragment.setUsedOnMap(usedOnMap); + fragment.setArguments(args); fragment.show(fm, TAG); return true; } diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index 1f145c58c9..0614b54eb3 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -819,7 +819,9 @@ public class MapControlsLayer extends OsmandMapLayer { compassHud.forceHideCompass = forceHideCompass; compassHud.updateVisibility(!forceHideCompass && shouldShowCompass()); - if (layersHud.setIconResId(settings.getApplicationMode().getMapIconRes())) { + ApplicationMode appMode = settings.getApplicationMode(); + layersHud.setIconColorId(appMode.getIconColorInfo().getColor(isNight)); + if (layersHud.setIconResId(appMode.getMapIconRes())) { layersHud.update(app, isNight); } layersHud.updateVisibility(!routeDialogOpened && !trackDialogOpened && !isInMeasurementToolMode() && !isInPlanRouteMode() diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java index 1ced6f9e16..a2db278ca9 100644 --- a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java @@ -14,8 +14,8 @@ import android.graphics.Path; import android.graphics.PointF; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffColorFilter; -import android.graphics.Rect; import android.graphics.RectF; +import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.util.Pair; import android.view.MotionEvent; @@ -170,7 +170,7 @@ public abstract class OsmandMapLayer { private Bitmap arrowBitmap; private Bitmap walkArrowBitmap; private Bitmap anchorBitmap; - private Map, Bitmap> stopBitmapsCache = new HashMap<>(); + private Map, Bitmap> stopBitmapsCache = new HashMap<>(); private Map stopSmallBitmapsCache = new HashMap<>(); public GeometryWayContext(Context ctx, float density) { @@ -317,8 +317,8 @@ public abstract class OsmandMapLayer { return anchorBitmap; } - public Bitmap getStopShieldBitmap(int color, Bitmap stopBitmap) { - Bitmap bmp = stopBitmapsCache.get(new Pair<>(color, stopBitmap)); + public Bitmap getStopShieldBitmap(int color, Drawable stopDrawable) { + Bitmap bmp = stopBitmapsCache.get(new Pair<>(color, stopDrawable)); if (bmp == null) { int fillColor = UiUtilities.getContrastColor(getApp(), color, true); int strokeColor = getStrokeColor(color); @@ -344,15 +344,15 @@ public abstract class OsmandMapLayer { paint.setStyle(Paint.Style.STROKE); canvas.drawRoundRect(rect, routeShieldCornerRadius, routeShieldCornerRadius, paint); - if (stopBitmap != null) { - paint.setFilterBitmap(true); - paint.setColorFilter(new PorterDuffColorFilter(strokeColor, Mode.SRC_IN)); - Rect src = new Rect(0, 0, stopBitmap.getWidth(), stopBitmap.getHeight()); + if (stopDrawable != null) { + stopDrawable.setColorFilter(new PorterDuffColorFilter(strokeColor, Mode.SRC_IN)); float marginBitmap = 1f * density; rect.inset(marginBitmap, marginBitmap); - canvas.drawBitmap(stopBitmap, src, rect, paint); + stopDrawable.setBounds(0, 0, (int) rect.width(), (int) rect.height()); + canvas.translate(rect.left, rect.top); + stopDrawable.draw(canvas); } - stopBitmapsCache.put(new Pair<>(color, stopBitmap), bmp); + stopBitmapsCache.put(new Pair<>(color, stopDrawable), bmp); } return bmp; } diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java index 04eade58e2..86e1b1be86 100644 --- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java @@ -61,11 +61,11 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon public static final org.apache.commons.logging.Log log = PlatformUtil.getLog(POIMapLayer.class); - private Paint paintIcon; - private Paint paintIconBackground; private Bitmap poiBackground; private Bitmap poiBackgroundSmall; + private PorterDuffColorFilter poiColorFilter; + private int poiSize; private OsmandMapTileView view; @@ -176,11 +176,8 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon public void initLayer(OsmandMapTileView view) { this.view = view; - paintIcon = new Paint(); - //paintIcon.setStrokeWidth(1); - //paintIcon.setStyle(Style.STROKE); - //paintIcon.setColor(Color.BLUE); - paintIcon.setColorFilter(new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)); + poiSize = dpToPx(view.getContext(), 16f); + poiColorFilter = new PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); paintIconBackground = new Paint(); poiBackground = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_orange_poi_shield); poiBackgroundSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_white_orange_poi_shield_small); @@ -263,9 +260,14 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon } } if (id != null) { - Bitmap bmp = RenderingIcons.getIcon(view.getContext(), id, false); - if (bmp != null) { - canvas.drawBitmap(bmp, x - bmp.getWidth() / 2, y - bmp.getHeight() / 2, paintIcon); + Drawable img = RenderingIcons.getDrawableIcon(view.getContext(), id, false); + if (img != null) { + canvas.save(); + canvas.translate(x - poiSize / 2f, y - poiSize / 2f); + img.setBounds(0, 0, poiSize, poiSize); + img.setColorFilter(poiColorFilter); + img.draw(canvas); + canvas.restore(); } } } diff --git a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java index 8024ce3a30..b1632aa5ac 100644 --- a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java @@ -11,6 +11,7 @@ import android.graphics.Path; import android.graphics.PointF; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.util.Pair; @@ -559,7 +560,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont private static class GeometryTransportWayStyle extends GeometryWayStyle { private TransportRouteResultSegment segment; - private Bitmap stopBitmap; + private Drawable stopDrawable; protected Integer pointColor; GeometryTransportWayStyle(GeometryWayContext context, TransportRouteResultSegment segment) { @@ -579,7 +580,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont type = TransportStopType.findType("bus"); } if (type != null) { - stopBitmap = RenderingIcons.getIcon(getCtx(), type.getResName(), false); + stopDrawable = RenderingIcons.getDrawableIcon(getCtx(), type.getResName(), false); } } @@ -607,7 +608,7 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont } public Bitmap getStopBitmap() { - return getContext().getStopShieldBitmap(color, stopBitmap); + return getContext().getStopShieldBitmap(color, stopDrawable); } public Bitmap getStopSmallBitmap() { diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index 676837dd8f..5b104e9638 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -4,11 +4,13 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.ColorFilter; import android.graphics.Paint; import android.graphics.Path; import android.graphics.PointF; import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; +import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; import android.view.WindowManager; @@ -48,8 +50,8 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa private OsmandMapTileView view; private Paint paintIcon; - private Paint paintLightIcon; - private Paint paintDarkIcon; + private ColorFilter paintLightIconFilter; + private ColorFilter paintDarkIconFilter; private Bitmap backgroundIcon; private Bitmap stopBus; private Bitmap stopSmall; @@ -81,10 +83,8 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa WindowManager wmgr = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE); wmgr.getDefaultDisplay().getMetrics(dm); paintIcon = new Paint(); - paintLightIcon = new Paint(); - paintLightIcon.setColorFilter(new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_light), PorterDuff.Mode.SRC_IN)); - paintDarkIcon = new Paint(); - paintDarkIcon.setColorFilter(new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_dark), PorterDuff.Mode.SRC_IN)); + paintLightIconFilter = new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_light), PorterDuff.Mode.SRC_IN); + paintDarkIconFilter = new PorterDuffColorFilter(ContextCompat.getColor(mapActivity, R.color.active_buttons_and_links_text_dark), PorterDuff.Mode.SRC_IN); path = new Path(); stopBus = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_transport_stop_bus); stopSmall = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_transport_stop_small); @@ -253,9 +253,14 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa if (stopRoute != null) { TransportStopType type = TransportStopType.findType(stopRoute.route.getType()); if (type != null) { - Bitmap foregroundIcon = RenderingIcons.getIcon(mapActivity, type.getResName(), false); + Drawable foregroundIcon = RenderingIcons.getDrawableIcon(mapActivity, type.getResName(), false); canvas.drawBitmap(backgroundIcon, x - backgroundIconHalfWidth, y - backgroundIconHalfHeight, paintIcon); - canvas.drawBitmap(foregroundIcon, x - foregroundIcon.getWidth() / 2f, y - foregroundIcon.getHeight() / 2f, nightMode ? paintDarkIcon : paintLightIcon); + canvas.save(); + canvas.translate(x - foregroundIcon.getIntrinsicWidth() / 2f, y - foregroundIcon.getIntrinsicHeight() / 2f); + foregroundIcon.setBounds(0, 0, foregroundIcon.getIntrinsicWidth(), foregroundIcon.getIntrinsicHeight()); + foregroundIcon.setColorFilter(nightMode ? paintDarkIconFilter : paintLightIconFilter); + foregroundIcon.draw(canvas); + canvas.restore(); } } else { Bitmap b = stopBus; diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java index c02efde32a..2b997cf25b 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapInfoWidgetsFactory.java @@ -59,6 +59,7 @@ import net.osmand.plus.helpers.WaypointDialogHelper; import net.osmand.plus.helpers.WaypointHelper; import net.osmand.plus.helpers.WaypointHelper.LocationPointWrapper; import net.osmand.plus.render.OsmandRenderer; +import net.osmand.plus.render.RenderingIcons; import net.osmand.plus.render.TextRenderer; import net.osmand.plus.routepreparationmenu.MapRouteInfoMenu; import net.osmand.plus.routepreparationmenu.ShowAlongTheRouteBottomSheet; @@ -1130,7 +1131,6 @@ public class MapInfoWidgetsFactory { } private boolean setRoadShield(ImageView view, RouteDataObject object) { - String nameTag = null; String name = null; StringBuilder additional = new StringBuilder(); @@ -1144,7 +1144,6 @@ public class MapInfoWidgetsFactory { additional.append(key).append("=").append(val).append(";"); } } -// LOG.debug("Additionals (names): " + additional.toString() ); Context context = topBar.getContext(); int[] tps = object.getTypes(); @@ -1197,13 +1196,13 @@ public class MapInfoWidgetsFactory { } if (shieldRes != -1) { - float xSize; - float ySize; - Bitmap shield; - shield = BitmapFactory.decodeResource(app.getResources(), shieldRes); - ySize = shield.getHeight(); - xSize = shield.getWidth(); - float xyRatio = xSize/ySize; + Drawable shield = ContextCompat.getDrawable(view.getContext(), shieldRes); + if (shield == null) { + return false; + } + float xSize = shield.getIntrinsicWidth(); + float ySize = shield.getIntrinsicHeight(); + float xyRatio = xSize / ySize; //setting view propotions (height is fixed by toolbar size - 48dp); int viewHeightPx = AndroidUtils.dpToPx(context, 48); int viewWidthPx = (int) (viewHeightPx * xyRatio); @@ -1215,9 +1214,9 @@ public class MapInfoWidgetsFactory { //creating bitmap according to size of resource Bitmap bitmap = Bitmap.createBitmap((int) xSize, (int) ySize, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); - text.fillProperties(rc, rreq, xSize/2, ySize/2 - p.getFontMetrics().ascent/2f); + text.fillProperties(rc, rreq, xSize / 2f, ySize / 2f - p.getFontMetrics().ascent / 2f); textRenderer.drawShieldIcon(rc, canvas, text, text.getShieldResIcon()); - textRenderer.drawWrappedText(canvas, text, 20); + textRenderer.drawWrappedText(canvas, text, 20f); view.setImageBitmap(bitmap); return true;