Merge branch 'master' into DownloadAllButton

This commit is contained in:
Vitaliy 2021-02-15 23:55:18 +02:00 committed by GitHub
commit 756cbdb20b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
111 changed files with 1971 additions and 615 deletions

View file

@ -60,7 +60,8 @@ public class GPXUtilities {
private final static NumberFormat latLonFormat = new DecimalFormat("0.00#####", new DecimalFormatSymbols(
new Locale("EN", "US")));
private final static NumberFormat decimalFormat = new DecimalFormat("#.###", new DecimalFormatSymbols(
// speed, ele, hdop
private final static NumberFormat decimalFormat = new DecimalFormat("#.#", new DecimalFormatSymbols(
new Locale("EN", "US")));
public enum GPXColor {
@ -2480,6 +2481,7 @@ public class GPXUtilities {
firstSegment.routeSegments = routeSegments;
firstSegment.routeTypes = routeTypes;
}
gpxFile.addGeneralTrack();
} catch (Exception e) {
gpxFile.error = e;
log.error("Error reading gpx", e); //$NON-NLS-1$

View file

@ -83,7 +83,7 @@ public class BinaryMapIndexReader {
public final static int TRANSPORT_STOP_ZOOM = 24;
public static final int SHIFT_COORDINATES = 5;
public static final int LABEL_ZOOM_ENCODE = 26;
public static final int LABEL_ZOOM_ENCODE = 31 - SHIFT_COORDINATES;
private final static Log log = PlatformUtil.getLog(BinaryMapIndexReader.class);
public static boolean READ_STATS = false;
public static final SearchPoiTypeFilter ACCEPT_ALL_POI_TYPE_FILTER = new SearchPoiTypeFilter() {

View file

@ -38,6 +38,11 @@ public class BinaryMapPoiReaderAdapter {
private static final int ZOOM_TO_SKIP_FILTER_READ = 6;
private static final int ZOOM_TO_SKIP_FILTER = 3;
private static final int BUCKET_SEARCH_BY_NAME = 15; // should be bigger 100?
private static final int BASE_POI_SHIFT = SHIFT_BITS_CATEGORY;// 7
private static final int FINAL_POI_SHIFT = BinaryMapIndexReader.SHIFT_COORDINATES;// 5
private static final int BASE_POI_ZOOM = 31 - BASE_POI_SHIFT;// 24 zoom
private static final int FINAL_POI_ZOOM = 31 - FINAL_POI_SHIFT;// 26 zoom
public static class PoiSubType {
public boolean text;
@ -714,6 +719,8 @@ public class BinaryMapPoiReaderAdapter {
Amenity am = null;
int x = 0;
int y = 0;
int precisionXY = 0;
boolean hasLocation = false;
StringBuilder retValue = new StringBuilder();
PoiCategory amenityType = null;
LinkedList<String> textTags = null;
@ -740,12 +747,22 @@ public class BinaryMapPoiReaderAdapter {
am.setRoutePoint(arp);
}
}
if (hasLocation) {
if (precisionXY != 0) {
int[] xy = MapUtils.calculateFinalXYFromBaseAndPrecisionXY(BASE_POI_ZOOM, FINAL_POI_ZOOM, precisionXY, x >> BASE_POI_SHIFT, y >> BASE_POI_SHIFT, true);
int x31 = xy[0] << FINAL_POI_SHIFT;
int y31 = xy[1] << FINAL_POI_SHIFT;
am.setLocation(MapUtils.get31LatitudeY(y31), MapUtils.get31LongitudeX(x31));
} else {
am.setLocation(MapUtils.get31LatitudeY(y), MapUtils.get31LongitudeX(x));
}
}
return am;
case OsmandOdb.OsmAndPoiBoxDataAtom.DX_FIELD_NUMBER:
x = (codedIS.readSInt32() + (px << (24 - zoom))) << 7;
x = (codedIS.readSInt32() + (px << (BASE_POI_ZOOM - zoom))) << BASE_POI_SHIFT;
break;
case OsmandOdb.OsmAndPoiBoxDataAtom.DY_FIELD_NUMBER:
y = (codedIS.readSInt32() + (py << (24 - zoom))) << 7;
y = (codedIS.readSInt32() + (py << (BASE_POI_ZOOM - zoom))) << BASE_POI_SHIFT;
req.numberOfVisitedObjects++;
if (checkBounds) {
if (left31 > x || right31 < x || top31 > y || bottom31 < y) {
@ -754,7 +771,8 @@ public class BinaryMapPoiReaderAdapter {
}
}
am = new Amenity();
am.setLocation(MapUtils.get31LatitudeY(y), MapUtils.get31LongitudeX(x));
hasLocation = true;
//am.setLocation(MapUtils.get31LatitudeY(y), MapUtils.get31LongitudeX(x)); // set precise coordinates
break;
case OsmandOdb.OsmAndPoiBoxDataAtom.SUBCATEGORIES_FIELD_NUMBER:
int subtypev = codedIS.readUInt32();
@ -827,6 +845,11 @@ public class BinaryMapPoiReaderAdapter {
case OsmandOdb.OsmAndPoiBoxDataAtom.NOTE_FIELD_NUMBER:
am.setDescription(codedIS.readString());
break;
case OsmandOdb.OsmAndPoiBoxDataAtom.PRECISIONXY_FIELD_NUMBER:
if (hasLocation) {
precisionXY = codedIS.readInt32();
}
break;
default:
skipUnknownField(t);
break;

View file

@ -54371,6 +54371,24 @@ public final class OsmandOdb {
*/
com.google.protobuf.ByteString
getTextValuesBytes(int index);
// optional int32 precisionXY = 16;
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
boolean hasPrecisionXY();
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
int getPrecisionXY();
}
/**
* Protobuf type {@code OsmAnd.OBF.OsmAndPoiBoxDataAtom}
@ -54539,6 +54557,11 @@ public final class OsmandOdb {
textValues_.add(input.readBytes());
break;
}
case 128: {
bitField0_ |= 0x00000200;
precisionXY_ = input.readInt32();
break;
}
}
}
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
@ -55048,6 +55071,30 @@ public final class OsmandOdb {
return textValues_.getByteString(index);
}
// optional int32 precisionXY = 16;
public static final int PRECISIONXY_FIELD_NUMBER = 16;
private int precisionXY_;
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public boolean hasPrecisionXY() {
return ((bitField0_ & 0x00000200) == 0x00000200);
}
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public int getPrecisionXY() {
return precisionXY_;
}
private void initFields() {
dx_ = 0;
dy_ = 0;
@ -55062,6 +55109,7 @@ public final class OsmandOdb {
note_ = "";
textCategories_ = java.util.Collections.emptyList();
textValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
precisionXY_ = 0;
}
private byte memoizedIsInitialized = -1;
public final boolean isInitialized() {
@ -55122,6 +55170,9 @@ public final class OsmandOdb {
for (int i = 0; i < textValues_.size(); i++) {
output.writeBytes(15, textValues_.getByteString(i));
}
if (((bitField0_ & 0x00000200) == 0x00000200)) {
output.writeInt32(16, precisionXY_);
}
getUnknownFields().writeTo(output);
}
@ -55203,6 +55254,10 @@ public final class OsmandOdb {
size += dataSize;
size += 1 * getTextValuesList().size();
}
if (((bitField0_ & 0x00000200) == 0x00000200)) {
size += com.google.protobuf.CodedOutputStream
.computeInt32Size(16, precisionXY_);
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@ -55345,6 +55400,8 @@ public final class OsmandOdb {
bitField0_ = (bitField0_ & ~0x00000800);
textValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
bitField0_ = (bitField0_ & ~0x00001000);
precisionXY_ = 0;
bitField0_ = (bitField0_ & ~0x00002000);
return this;
}
@ -55430,6 +55487,10 @@ public final class OsmandOdb {
bitField0_ = (bitField0_ & ~0x00001000);
}
result.textValues_ = textValues_;
if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
to_bitField0_ |= 0x00000200;
}
result.precisionXY_ = precisionXY_;
result.bitField0_ = to_bitField0_;
onBuilt();
return result;
@ -55525,6 +55586,9 @@ public final class OsmandOdb {
}
onChanged();
}
if (other.hasPrecisionXY()) {
setPrecisionXY(other.getPrecisionXY());
}
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@ -56506,6 +56570,55 @@ public final class OsmandOdb {
return this;
}
// optional int32 precisionXY = 16;
private int precisionXY_ ;
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public boolean hasPrecisionXY() {
return ((bitField0_ & 0x00002000) == 0x00002000);
}
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public int getPrecisionXY() {
return precisionXY_;
}
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public Builder setPrecisionXY(int value) {
bitField0_ |= 0x00002000;
precisionXY_ = value;
onChanged();
return this;
}
/**
* <code>optional int32 precisionXY = 16;</code>
*
* <pre>
* precision in 1-xy-xy-xy binary format
* </pre>
*/
public Builder clearPrecisionXY() {
bitField0_ = (bitField0_ & ~0x00002000);
precisionXY_ = 0;
onChanged();
return this;
}
// @@protoc_insertion_point(builder_scope:OsmAnd.OBF.OsmAndPoiBoxDataAtom)
}
@ -65008,37 +65121,38 @@ public final class OsmandOdb {
"tegories\030\003 \003(\r\022\025\n\rsubcategories\030\005 \003(\r\"i\n" +
"\020OsmAndPoiBoxData\022\014\n\004zoom\030\001 \001(\r\022\t\n\001x\030\002 \001" +
"(\r\022\t\n\001y\030\003 \001(\r\0221\n\007poiData\030\005 \003(\0132 .OsmAnd." +
"OBF.OsmAndPoiBoxDataAtom\"\360\001\n\024OsmAndPoiBo",
"OBF.OsmAndPoiBoxDataAtom\"\205\002\n\024OsmAndPoiBo",
"xDataAtom\022\n\n\002dx\030\002 \002(\021\022\n\n\002dy\030\003 \002(\021\022\022\n\ncat" +
"egories\030\004 \003(\r\022\025\n\rsubcategories\030\005 \003(\r\022\014\n\004" +
"name\030\006 \001(\t\022\016\n\006nameEn\030\007 \001(\t\022\n\n\002id\030\010 \001(\004\022\024" +
"\n\014openingHours\030\n \001(\t\022\014\n\004site\030\013 \001(\t\022\r\n\005ph" +
"one\030\014 \001(\t\022\014\n\004note\030\r \001(\t\022\026\n\016textCategorie" +
"s\030\016 \003(\r\022\022\n\ntextValues\030\017 \003(\t\"\032\n\007IdTable\022\017" +
"\n\007routeId\030\001 \003(\022\"F\n\017RestrictionData\022\014\n\004ty" +
"pe\030\001 \002(\005\022\014\n\004from\030\002 \002(\005\022\n\n\002to\030\003 \002(\005\022\013\n\003vi" +
"a\030\004 \001(\005\"x\n\tRouteData\022\016\n\006points\030\001 \002(\014\022\022\n\n" +
"pointTypes\030\004 \001(\014\022\022\n\npointNames\030\005 \001(\014\022\r\n\005",
"types\030\007 \002(\014\022\017\n\007routeId\030\014 \002(\005\022\023\n\013stringNa" +
"mes\030\016 \001(\014\"\304\005\n\022OsmAndRoutingIndex\022\014\n\004name" +
"\030\001 \002(\t\022?\n\005rules\030\002 \003(\01320.OsmAnd.OBF.OsmAn" +
"dRoutingIndex.RouteEncodingRule\022>\n\trootB" +
"oxes\030\003 \003(\0132+.OsmAnd.OBF.OsmAndRoutingInd" +
"ex.RouteDataBox\022A\n\014basemapBoxes\030\004 \003(\0132+." +
"OsmAnd.OBF.OsmAndRoutingIndex.RouteDataB" +
"ox\022=\n\006blocks\030\005 \003(\0132-.OsmAnd.OBF.OsmAndRo" +
"utingIndex.RouteDataBlock\032;\n\021RouteEncodi" +
"ngRule\022\013\n\003tag\030\003 \002(\t\022\r\n\005value\030\005 \002(\t\022\n\n\002id",
"\030\007 \001(\r\032\231\001\n\014RouteDataBox\022\014\n\004left\030\001 \002(\021\022\r\n" +
"\005right\030\002 \002(\021\022\013\n\003top\030\003 \002(\021\022\016\n\006bottom\030\004 \002(" +
"\021\022\023\n\013shiftToData\030\005 \001(\007\022:\n\005boxes\030\007 \003(\0132+." +
"OsmAnd.OBF.OsmAndRoutingIndex.RouteDataB" +
"ox\032\303\001\n\016RouteDataBlock\022$\n\007idTable\030\005 \001(\0132\023" +
".OsmAnd.OBF.IdTable\022*\n\013dataObjects\030\006 \003(\013" +
"2\025.OsmAnd.OBF.RouteData\0221\n\014restrictions\030" +
"\007 \003(\0132\033.OsmAnd.OBF.RestrictionData\022,\n\013st" +
"ringTable\030\010 \001(\0132\027.OsmAnd.OBF.StringTable" +
"B\036\n\021net.osmand.binaryB\tOsmandOdb"
"s\030\016 \003(\r\022\022\n\ntextValues\030\017 \003(\t\022\023\n\013precision" +
"XY\030\020 \001(\005\"\032\n\007IdTable\022\017\n\007routeId\030\001 \003(\022\"F\n\017" +
"RestrictionData\022\014\n\004type\030\001 \002(\005\022\014\n\004from\030\002 " +
"\002(\005\022\n\n\002to\030\003 \002(\005\022\013\n\003via\030\004 \001(\005\"x\n\tRouteDat" +
"a\022\016\n\006points\030\001 \002(\014\022\022\n\npointTypes\030\004 \001(\014\022\022\n",
"\npointNames\030\005 \001(\014\022\r\n\005types\030\007 \002(\014\022\017\n\007rout" +
"eId\030\014 \002(\005\022\023\n\013stringNames\030\016 \001(\014\"\304\005\n\022OsmAn" +
"dRoutingIndex\022\014\n\004name\030\001 \002(\t\022?\n\005rules\030\002 \003" +
"(\01320.OsmAnd.OBF.OsmAndRoutingIndex.Route" +
"EncodingRule\022>\n\trootBoxes\030\003 \003(\0132+.OsmAnd" +
".OBF.OsmAndRoutingIndex.RouteDataBox\022A\n\014" +
"basemapBoxes\030\004 \003(\0132+.OsmAnd.OBF.OsmAndRo" +
"utingIndex.RouteDataBox\022=\n\006blocks\030\005 \003(\0132" +
"-.OsmAnd.OBF.OsmAndRoutingIndex.RouteDat" +
"aBlock\032;\n\021RouteEncodingRule\022\013\n\003tag\030\003 \002(\t",
"\022\r\n\005value\030\005 \002(\t\022\n\n\002id\030\007 \001(\r\032\231\001\n\014RouteDat" +
"aBox\022\014\n\004left\030\001 \002(\021\022\r\n\005right\030\002 \002(\021\022\013\n\003top" +
"\030\003 \002(\021\022\016\n\006bottom\030\004 \002(\021\022\023\n\013shiftToData\030\005 " +
"\001(\007\022:\n\005boxes\030\007 \003(\0132+.OsmAnd.OBF.OsmAndRo" +
"utingIndex.RouteDataBox\032\303\001\n\016RouteDataBlo" +
"ck\022$\n\007idTable\030\005 \001(\0132\023.OsmAnd.OBF.IdTable" +
"\022*\n\013dataObjects\030\006 \003(\0132\025.OsmAnd.OBF.Route" +
"Data\0221\n\014restrictions\030\007 \003(\0132\033.OsmAnd.OBF." +
"RestrictionData\022,\n\013stringTable\030\010 \001(\0132\027.O" +
"smAnd.OBF.StringTableB\036\n\021net.osmand.bina",
"ryB\tOsmandOdb"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@ -65296,7 +65410,7 @@ public final class OsmandOdb {
internal_static_OsmAnd_OBF_OsmAndPoiBoxDataAtom_fieldAccessorTable = new
com.google.protobuf.GeneratedMessage.FieldAccessorTable(
internal_static_OsmAnd_OBF_OsmAndPoiBoxDataAtom_descriptor,
new java.lang.String[] { "Dx", "Dy", "Categories", "Subcategories", "Name", "NameEn", "Id", "OpeningHours", "Site", "Phone", "Note", "TextCategories", "TextValues", });
new java.lang.String[] { "Dx", "Dy", "Categories", "Subcategories", "Name", "NameEn", "Id", "OpeningHours", "Site", "Phone", "Note", "TextCategories", "TextValues", "PrecisionXY", });
internal_static_OsmAnd_OBF_IdTable_descriptor =
getDescriptor().getMessageTypes().get(36);
internal_static_OsmAnd_OBF_IdTable_fieldAccessorTable = new

View file

@ -49,6 +49,47 @@ public class MapUtils {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_', '~'
};
public static int calculateFromBaseZoomPrecisionXY(int baseZoom, int finalZoom, int xFinal, int yFinal) {
int px = xFinal;
int py = yFinal;
int precisionNumber = 1;
for (int zoom = finalZoom - 1; zoom >= baseZoom; zoom--) {
int x = px / 2; // (int) MapUtils.getTileNumberX(zoom, lon);
int y = py / 2; // (int) MapUtils.getTileNumberY(zoom, lat);
int deltax = px - x * 2;
int deltay = py - y * 2;
precisionNumber = (precisionNumber << 2) + (deltax << 1) + deltay;
// StringBuilder spaces = new StringBuilder();
// for (int i = 0; i < 32 - zoom; i++) {
// spaces.append(' ');
// }
// System.out.println(String.format("%d %s + %d %s %s + %d", zoom, Integer.toBinaryString(x), deltax, spaces.toString(), Integer.toBinaryString(y), deltay));
px = x;
py = y;
}
// System.out.println(String.format("Bits: %d %s (%d)", Integer.toBinaryString(precisionNumber).length(), Integer.toBinaryString(precisionNumber), precisionNumber));
return precisionNumber;
}
public static int[] calculateFinalXYFromBaseAndPrecisionXY(int bazeZoom, int finalZoom,
int precisionXY, int xBase, int yBase, boolean ignoreNotEnoughPrecision) {
// System.out.println(String.format("Base x, y at zoom %d: %d %d", zoomToStart, xBaseApproximation, yBaseApproximation));
// calculate finish approximation using precisionNumber
int finalX = xBase;
int finalY = yBase;
int precisionCalc = precisionXY;
for (int zoom = bazeZoom; zoom < finalZoom; zoom++) {
if (precisionCalc <= 1 && precisionCalc > 0 && !ignoreNotEnoughPrecision) {
throw new IllegalArgumentException("Not enough bits to retrieve zoom approximation");
}
finalY = finalY * 2 + (precisionXY & 1);
finalX = finalX * 2 + ((precisionXY & 2) >> 1);
precisionXY = precisionXY >> 2;
}
// System.out.println(String.format("Calc x, y at zoom %d: %d %d", finalZoom, finalX, finalY));
return new int[] { finalX, finalY };
}
public static double getDistance(LatLon l, double latitude, double longitude) {

View file

@ -138,7 +138,7 @@
<string name="nm">nmi</string>
<string name="min_mile">хв/м</string>
<string name="min_km">хв/км</string>
<string name="nm_h">вузл</string>
<string name="nm_h">вузлів</string>
<string name="m_s">м/с</string>
<string name="km_h">км/г</string>
<string name="mile_per_hour">мл/г</string>

View file

@ -0,0 +1,23 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16,3C16.5523,3 17,3.4477 17,4V5.1707C17.8524,5.472 18.528,6.1476 18.8293,7H20C20.5523,7 21,7.4477 21,8C21,8.5523 20.5523,9 20,9H18.8293C18.528,9.8524 17.8524,10.528 17,10.8293V12C17,12.5523 16.5523,13 16,13C15.4477,13 15,12.5523 15,12V10.8293C14.1476,10.528 13.472,9.8524 13.1707,9H12C11.4477,9 11,8.5523 11,8C11,7.4477 11.4477,7 12,7H13.1707C13.472,6.1476 14.1476,5.472 15,5.1707V4C15,3.4477 15.4477,3 16,3ZM17,8C17,8.5523 16.5523,9 16,9C15.4477,9 15,8.5523 15,8C15,7.4477 15.4477,7 16,7C16.5523,7 17,7.4477 17,8Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M6,19.5C6,20.3284 5.3284,21 4.5,21C3.6716,21 3,20.3284 3,19.5C3,18.6716 3.6716,18 4.5,18C5.3284,18 6,18.6716 6,19.5Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M12.7071,12.7071C13.0976,12.3166 13.0976,11.6834 12.7071,11.2929C12.3166,10.9024 11.6834,10.9024 11.2929,11.2929L10.2929,12.2929C9.9024,12.6834 9.9024,13.3166 10.2929,13.7071C10.6834,14.0976 11.3166,14.0976 11.7071,13.7071L12.7071,12.7071Z"
android:strokeAlpha="0.5"
android:fillColor="#ffffff"
android:fillAlpha="0.5"/>
<path
android:pathData="M9.7071,15.7071C10.0976,15.3166 10.0976,14.6834 9.7071,14.2929C9.3166,13.9024 8.6834,13.9024 8.2929,14.2929L7.2929,15.2929C6.9024,15.6834 6.9024,16.3166 7.2929,16.7071C7.6834,17.0976 8.3166,17.0976 8.7071,16.7071L9.7071,15.7071Z"
android:strokeAlpha="0.5"
android:fillColor="#ffffff"
android:fillAlpha="0.5"/>
</vector>

View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingTop="@dimen/measurement_tool_menu_title_padding_top"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingBottom="@dimen/measurement_tool_button_padding_top">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/widget_turn_lane_margin"
android:ellipsize="end"
android:gravity="center_vertical"
android:letterSpacing="@dimen/text_button_letter_spacing"
android:lineSpacingExtra="@dimen/titleLineSpacingExtra"
android:maxLines="1"
android:text="@string/select_segments"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size"
osmand:typeface="@string/font_roboto_medium" />
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/list_header_settings_top_margin"
android:letterSpacing="@dimen/description_letter_spacing"
android:lineSpacingMultiplier="@dimen/bottom_sheet_text_spacing_multiplier"
android:lineSpacingExtra="@dimen/descriptionLineSpacingExtra"
android:text="@string/select_segments_description"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_regular" />
</LinearLayout>
<include
android:id="@+id/gpx_track_container"
layout="@layout/gpx_track_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dashPluginMargin" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?attr/dashboard_divider" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gpx_segment_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:itemCount="1"
tools:listitem="@layout/gpx_segment_list_item">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>

View file

@ -66,14 +66,20 @@
<include layout="@layout/divider" />
<FrameLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dialog_button_height"
android:layout_marginStart="@dimen/content_padding"
android:layout_marginTop="@dimen/content_padding_small"
android:layout_marginEnd="@dimen/content_padding"
android:layout_marginBottom="@dimen/content_padding_small"
android:background="?attr/dlg_btn_secondary">
android:orientation="horizontal" >
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="?attr/dlg_btn_secondary"
android:layout_weight="1">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/button_close"
@ -84,11 +90,41 @@
android:text="@string/shared_string_close"
android:textColor="?attr/active_color_basic"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_medium"
tools:text="Button" />
osmand:typeface="@string/font_roboto_medium" />
</FrameLayout>
<View
android:id="@+id/buttons_divider"
android:layout_width="@dimen/content_padding"
android:layout_height="match_parent"
android:visibility="gone"
tools:visibility="visible" />
<FrameLayout
android:id="@+id/button_restart_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="?attr/dlg_btn_secondary"
android:layout_weight="1"
android:visibility="gone"
tools:visibility="visible">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/button_restart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackground"
android:gravity="center"
android:text="@string/restart"
android:textColor="?attr/active_color_basic"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_medium" />
</FrameLayout>
</LinearLayout>
</LinearLayout>
<com.google.android.material.appbar.AppBarLayout

View file

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:minHeight="@dimen/favorites_list_item_height"
android:paddingTop="@dimen/list_header_settings_top_margin"
android:paddingBottom="@dimen/list_header_settings_top_margin"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/list_content_padding"
android:layout_marginLeft="@dimen/list_content_padding"
android:layout_marginEnd="@dimen/list_content_padding"
android:layout_marginRight="@dimen/list_content_padding"
android:contentDescription="@string/shared_string_icon"
android:visibility="visible"
osmand:srcCompat="@drawable/ic_action_split_interval" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/list_content_padding"
android:layout_marginLeft="@dimen/list_content_padding"
android:layout_marginEnd="@dimen/list_content_padding"
android:layout_marginRight="@dimen/list_content_padding"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_list_text_size"
tools:text="Segment" />
<LinearLayout
android:id="@+id/read_section"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingTop="@dimen/subHeaderPadding"
android:paddingBottom="@dimen/subHeaderPadding"
android:visibility="visible">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/distance_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_padding_half"
android:layout_marginRight="@dimen/content_padding_half"
android:contentDescription="@string/distance"
osmand:srcCompat="@drawable/ic_action_distance_16" />
<TextView
android:id="@+id/distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
tools:text="0" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_padding_half"
android:layout_marginRight="@dimen/content_padding_half"
android:contentDescription="@string/track_points"
osmand:srcCompat="@drawable/ic_action_time_moving_16" />
<TextView
android:id="@+id/time_interval"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/content_padding"
android:layout_marginRight="@dimen/content_padding"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
tools:text="0" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -51,6 +51,7 @@
<LinearLayout
android:id="@+id/name_and_read_section_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingTop="@dimen/gpx_text_top_margin"

View file

@ -795,7 +795,6 @@
<string name="poi_filter_sightseeing">Besigtigingstoere</string>
<string name="show_warnings_descr">Verstel verkeer waarskuwings (spoedbeperkings, geforseerde stoppe, spoedhobbels), spoed kameras, en laan inligting</string>
<string name="avoid_motorway">Vermy snelweë</string>
<string name="snap_to_road_descr">Knip posisie aan paaie vas gedurende navigasie</string>
<string name="snap_to_road">Knip vas aan pad</string>
<string name="osmand_long_description_1000_chars">
OsmAnd (OSM Automated Navigation Directions) is `n ope bron navigasie toepassing met toegang tot `n wye verskeidenheid wêreldwye OpenStreetMap (OSM) inligting. Alle kaart inligting (vektor of teël kaarte) kan gestoor word op die foon geheue kaart vir aflyn gebruik. OsmAnd bied ook aan- en aflyn routeberekening funksionaliteit insluitend draai-vir-draai stem begeleiding. Sommige van die kern funksies: - Volledege aflyn funksionaliteit (stoor afgelaaide vektor of teël kaarte in `n kiesbare leër) - Kompakte aflyn vektor kaarte vir die hele wëreld beskikbaar - aflaai van land of streek kaarte direk uit die toepassing - Oorlegging van verskeie kaart lae moontlik, bv GPX of navigasie spore, Belangepunte, gunstelinge, kontoerlyne, publieke vervoer haltes, ekstra kaarte met verstelbare deurskynendheid - Aflyn

View file

@ -3075,7 +3075,7 @@
<string name="poi_motorcar_destination">السماح بدخول السيارات: للعبور للوجهة</string>
<string name="poi_motorcar_no">السماح بدخول السيارات: لا</string>
<string name="poi_motorcar_private">السماح بدخول السيارات:خاص</string>
<string name="poi_motorcar_yes">السماح بدخول السيارات:</string>
<string name="poi_motorcar_yes">السماح بدخول السيارات:نعم</string>
<string name="poi_vehicle_forestry">السماح بدخول المركبات: الخاصة بالغابات</string>
<string name="poi_vehicle_delivery">السماح بدخول المركبات: لتسليم الطلبات</string>
<string name="poi_vehicle_military">السماح بدخول المركبات: العسكرية</string>
@ -3586,7 +3586,7 @@
<string name="poi_internet_access_service">الوصول إلى الإنترنت: خدمة</string>
<string name="poi_internet_access_public">الوصول إلى الإنترنت: عام</string>
<string name="poi_internet_access_wired">ولوج الإنترنت: سلكي</string>
<string name="poi_internet_access_terminal">"ولوج الإنترنت: terminal"</string>
<string name="poi_internet_access_terminal">ولوج الإنترنت: terminal</string>
<string name="poi_internet_access_wlan">ولوج الإنترنت: wlan</string>
<string name="poi_denomination_mahayana">ماهايانا</string>
<string name="poi_denomination_maronite">ماروني</string>
@ -3679,4 +3679,14 @@
<string name="poi_wildlife_crossing_bat_bridge">جسر خفافيش</string>
<string name="poi_wildlife_crossing">معبر الحيوانات البرية</string>
<string name="poi_attraction_slide">شريط التمرير</string>
<string name="poi_craft_winery">مصنع شراب</string>
<string name="poi_hanami">هانامي</string>
<string name="poi_wayside_shrine">ضريح على جانب الطريق</string>
<string name="poi_wayside_cross">صليب جانبي</string>
<string name="poi_monastery">ديرصومعة</string>
<string name="poi_denomination_wesleyan">الديانة</string>
<string name="poi_denomination_dutch_reformed">كنيسة المصلحة الهولندية</string>
<string name="poi_denomination_united_methodist">الكنيسة الميثودية</string>
<string name="poi_denomination_pentecostal">الخمسينية</string>
<string name="poi_denomination_presbyterian">المشيخية</string>
</resources>

View file

@ -353,7 +353,6 @@
<string name="use_compass_navigation_descr">استخدم البوصلة عندما لا تكون هناك أي وجهة محددة.</string>
<string name="auto_zoom_map_descr">ملائمة تقريب الخريطة تزامناً مع موقعك.</string>
<string name="auto_zoom_map">التكبير التلقائي</string>
<string name="snap_to_road_descr">التقط الموقع إلى الطرق أثناء الملاحة.</string>
<string name="snap_to_road">التقاط الطريق</string>
<string name="osmand_play_title_30_chars">خرائط أوسماند والملاحة</string>
<string name="osmand_short_description_80_chars">برنامج عرض الخرائط العالمية والملاحة باستخدام خرائط الشوارع المفتوحة OSM أثناء الاتصال بالإنترنت أو من دونه</string>
@ -1999,7 +1998,6 @@
<string name="shared_string_change">تغيير</string>
<string name="get_started">ابدأ</string>
<string name="routing_attr_short_way_name">طريق أقل استهلاكاً للوقود</string>
<string name="routing_attr_short_way_description">استخدم طريق أقل استهلاكا للوقود (عادة أقصر).</string>
<string name="replace_favorite_confirmation">هل تريد استبدال المفضلة %1$s؟</string>
<string name="clear_tile_data">حذف جميع الطبقات</string>
<string name="update_all_maps_now">هل تريد تحديث كافة الخرائط الآن؟</string>
@ -2075,7 +2073,7 @@
<string name="rendering_value_fine_name">اللون والسمك</string>
<string name="route_roundabout_short">خذ المخرج %1$d ثم واصل</string>
<string name="search_map_hint">المدينة أو المنطقة</string>
<string name="wiki_around">مقالات ويكيبيديا القريبة</string>
<string name="wiki_around">مقالات ويكيبيديا مجاورة</string>
<string name="routing_attr_allow_motorway_name">استخدام الطرق السريعة</string>
<string name="routing_attr_allow_motorway_description">السماح للطرق السريعة.</string>
<string name="lang_sr_latn">الصربية (اللاتينية)</string>
@ -3384,7 +3382,7 @@
<string name="select_color">اختر اللون</string>
<string name="edit_profiles_descr">لا يمكنك حذف أوضاع أوسماند الافتراضية ، ولكن يمكنك تعطيلها في الشاشة السابقة ، أو نقلها إلى الأسفل.</string>
<string name="edit_profiles">تحرير الأوضاع</string>
<string name="select_nav_profile_dialog_message">يؤثر نوع التنقل على قواعد حسابات المسار.</string>
<string name="select_nav_profile_dialog_message">يؤثر نوع التنقل على كييفية حساب المسارات.</string>
<string name="profile_appearance">مظهر الوضع</string>
<string name="choose_icon_color_name">اختر الايقونة واللون والاسم</string>
<string name="reorder_profiles">تحرير قائمة الأوضاع</string>
@ -3988,7 +3986,6 @@
<string name="select_picture">تحديد صورة</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">الألمانية (تقليدية)</string>
<string name="elevation_data">يمكنك استخدام بيانات الارتفاع للنظر في الارتفاع / النزول لرحلتك</string>
<string name="app_mode_light_aircraft">طائرة</string>
<string name="plan_route_join_segments">ربط الأجزاء</string>
<string name="plan_route_split_before">تقسيم قبل</string>
@ -4086,7 +4083,7 @@
\nجميع بيانات OpenPlaceReview مفتوحة ومتاحة للجميع: http://openplacereviews.org/data.
\n
\nيمكنك قراءة المزيد على: http://openplacereviews.org</string>
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="open_place_reviews">موقع OpenPlaceReviews</string>
<string name="opr_use_dev_url">استخدام test.openplacereviews.org</string>
<string name="login_open_place_reviews">الدخول إلى OpenPlaceReviews</string>
<string name="activity_type_water_name">ماء</string>

View file

@ -979,7 +979,6 @@
<string name="impassable_road">Yollardan yayın…</string>
<string name="routing_attr_avoid_toll_name">Pullu yollardan yayın</string>
<string name="ending_point_too_far">Son nöqtə ən yaxın yoldan çox uzaqdır.</string>
<string name="snap_to_road_descr">Naviqasiya zamanı mövqeni yollara bərkit.</string>
<string name="snap_to_road">Yola bərkit</string>
<string name="avoid_unpaved">Asfaltsız yollardan yayın</string>
<string name="avoid_toll_roads">Pullu yollardan yayın</string>
@ -1967,7 +1966,6 @@
<string name="save_track_precision_descr">Filtr: Nöqtənin qeydiyyatı üçün minimum dəqiqlik seçin.</string>
<string name="rendering_attr_surfaceIntegrity_name">Yol səthinin keyfiyyəti</string>
<string name="routing_attr_short_way_name">Yanacağa qənaətli yol</string>
<string name="routing_attr_short_way_description">Yanacağa qənaətli yoldan istifadə et (adətən daha qısa).</string>
<string name="access_direction_haptic_feedback_descr">Hədəf nöqtənin istiqamətini titrəmə ilə göstər.</string>
<string name="use_osm_live_routing_description">OsmAnd Live dəyişiklikləri üçün naviqasiyanı aktivləşdir.</string>
<string name="storage_permission_restart_is_required">İndi proqramın xarici yaddaşa yazmasına icazə verilir, lakin bunun üçün yenidən başlatmaq lazımdır.</string>

View file

@ -1278,7 +1278,6 @@
<string name="speak_poi">PdI cercanos</string>
<string name="routing_attr_avoid_unpaved_name">Evitar carreteres ensin pavimentar</string>
<string name="routing_attr_avoid_motorway_name">Evitar autopistes</string>
<string name="snap_to_road_descr">Axusta la posición a los caminos na navegación.</string>
<string name="snap_to_road">Axustar a la carretera</string>
<string name="keep_informing_never">Namái a mano (toca na flecha)</string>
<string name="keep_informing">Repitir les instrucciones de navegación</string>

View file

@ -562,7 +562,6 @@ Punktaŭ maršrutu %2$s</string>
<string name="avoid_motorway">Paźbiahać aŭtamahіstralaŭ</string>
<string name="auto_zoom_map_descr">Uzrovień pavieličennia zhodna vašaj chutkasci (kali mapa sinchranizujecca z ciapierašnim stanoviščam).</string>
<string name="auto_zoom_map">Aŭtamatyčnaje pamianšeńnie/pavieličeńnie</string>
<string name="snap_to_road_descr">Pryviazvacca da daroh padčas navihacyi.</string>
<string name="snap_to_road">Pryviazvacca da daroh</string>
<string name="interrupt_music_descr">Halasavyja padkazki prypyniajuć muzyku, a nie toĺki pryhlušajuć jaje.</string>
<string name="interrupt_music">Pierapynieńnie muzykі</string>
@ -1983,7 +1982,6 @@ Praparcyjnaj pamiacі %4$s MB (Abmiežavańnie Android %5$s MB, Dalvik %6$s MB).
<string name="update_all_maps_now">Abnavić usie mapy zaraz?</string>
<string name="clear_tile_data">Ačyścіć keš siecіŭnych mapaŭ</string>
<string name="routing_attr_short_way_name">Paliŭna-aščadny maršrut</string>
<string name="routing_attr_short_way_description">Različvaje paliva-aščadny maršrut (zvyčajna najkaraciejšy).</string>
<string name="replace_favorite_confirmation">Vy sapraŭdy chočacie zamianić upadabanaje %1$s?</string>
<string name="rendering_attr_hideOverground_name">Nadziemnyja abjekty</string>
<string name="shared_string_change">Źmianіć</string>

View file

@ -444,7 +444,6 @@
<string name="avoid_motorway">Awtodróhi wobeńć</string>
<string name="auto_zoom_map_descr">Přiměrja wulkosć karty wotpowědujo aktualnej spěšnosći (karta so z tuchwilnym stejišćom synchronizuje).</string>
<string name="auto_zoom_map">Awtomatiski zoom</string>
<string name="snap_to_road_descr">W běhu nawigacije poziciski dypk na dróhach zdźeržować.</string>
<string name="snap_to_road">Na dróze wostać</string>
<string name="interrupt_music_descr">Připowědźenje přetorhnje hudźbu.</string>
<string name="interrupt_music">Wothrawanje hudźby přetorhować</string>
@ -1360,7 +1359,6 @@
<string name="give_permission">Dowolić</string>
<string name="allow_access_location">Přistup k stejišću dowolić</string>
<string name="routing_attr_short_way_name">Naftu lutowacy puć</string>
<string name="routing_attr_short_way_description">Naftu lutowacy puć wužić (zwjetša krótši).</string>
<string name="confirmation_to_delete_history_items">Wubrane objekty z archiwa wotstronić?</string>
<string name="select_map_marker">Chorhojčku wubrać</string>
<string name="map_markers_other">Druhe chorhojčki</string>

View file

@ -3823,5 +3823,11 @@
<string name="poi_recycling_small_electrical_appliances">Маленькія электрапрыборы</string>
<string name="poi_beehive">Вулей</string>
<string name="poi_nuts">Крама арэхаў</string>
<string name="poi_fuel_lng"></string>
<string name="poi_fuel_lng"/>
<string name="poi_diplomatic_services_citizen_services_filter">Паслугі для грамадзян</string>
<string name="poi_diplomatic_services_immigrant_visas_filter">Іміграцыйныя візы</string>
<string name="poi_diplomatic_services_non_immigrant_visas_filter">Неіміграцыйныя візы</string>
<string name="poi_liaison_filter">Сувязь</string>
<string name="poi_consulate_filter">Консульства</string>
<string name="poi_embassy_filter">Амбасада</string>
</resources>

View file

@ -88,7 +88,7 @@
<string name="files_limit">засталося %1$d файлаў</string>
<string name="available_downloads_left">Засталося %1$d файлаў для спампоўвання</string>
<string name="install_paid">Поўная версія</string>
<string name="cancel_route">Скасаваць маршрут</string>
<string name="cancel_route">Скасаваць маршрут\?</string>
<string name="cancel_navigation">Спыніць навігацыю</string>
<string name="clear_destination">Выдаліць месца прызначэння</string>
<string name="download_using_mobile_internet">Wi-Fi не падлучаны. Выкарыстаць дзейнае падлучэнне да Інтэрнэту для спампоўвання?</string>
@ -232,7 +232,6 @@
<string name="avoid_motorway">Без аўтамагістраляў</string>
<string name="auto_zoom_map_descr">Узровень павелічэння згодна вашай хуткасці (калі мапа сінхранізуецца з цяперашнім становішчам).</string>
<string name="auto_zoom_map">Аўтаматычнае памяншэнне/павелічэнне</string>
<string name="snap_to_road_descr">Прывязвацца да дарог падчас навігацыі.</string>
<string name="snap_to_road">Прывязвацца да дарог</string>
<string name="osmand_play_title_30_chars">OsmAnd Мапы і навігацыя</string>
<string name="osmand_short_description_80_chars">Прагляд глабальнай мабільнай мапы і навігатар для аўтаномных і сеціўных мапаў OSM</string>
@ -515,7 +514,7 @@
<string name="use_fluorescent_overlays">Флюарэсцэнтныя пласты</string>
<string name="use_fluorescent_overlays_descr">Ужываць флюарэсцэнтныя колеры для слядоў і шляхоў.</string>
<string name="offline_edition">Пазасеціўнае рэдагаванне</string>
<string name="offline_edition_descr">Заўсёды выкарыстоўваць аўтаномнае рэдагаванне.</string>
<string name="offline_edition_descr">Калі выкарыстоўваецца рэдагаванне на прыладзе, то змены будуць захаваныя лакальна і загружаныя на сервер толькі па запыце, інакш яны будуць загружацца неадкладна.</string>
<string name="update_poi_does_not_change_indexes">Змены цікавых пунктаў (POI) у праграме не паўплываюць на cпампаваныя файлы мапаў, змены захоўваюцца як файлы на вашай прыладзе.</string>
<string name="local_openstreetmap_uploading">Запампоўка…</string>
<string name="local_openstreetmap_were_uploaded">{0} POI/нататкі запампаваныя</string>
@ -1574,7 +1573,7 @@
<string name="routing_attr_height_name">Абмежаванне па вышыні</string>
<string name="routing_attr_height_description">Пазначыць вышыню транспартнага сродку для разліку маршруту.</string>
<string name="use_fast_recalculation">Разумны пераразлік маршруту</string>
<string name="use_fast_recalculation_desc">Пераразлічваць толькі пачатак маршруту. Падыходзіць для доўгіх паездак.</string>
<string name="use_fast_recalculation_desc">Пераразлічваць толькі пачатак маршруту. Карысна для доўгіх паездак.</string>
<string name="shared_string_logoff">Выйсці</string>
<string name="rendering_value_disabled_name">Выключана</string>
<string name="rendering_value_walkingRoutesOSMC_name">Афарбоўка па пешаходнаму сімвалу OSMC</string>
@ -1985,7 +1984,7 @@
<string name="map_widget_bearing">Адносны азімут</string>
<string name="map_widget_magnetic_bearing">Магнітны азімут</string>
<string name="use_osm_live_routing">Навігацыя OsmAnd Live</string>
<string name="access_no_destination">Пункт прызначэння не зададзены</string>
<string name="access_no_destination">Убудова спецыяльных магчымасцей: Пункт прызначэння не зададзены</string>
<string name="follow_us">Сачыце за намі</string>
<string name="access_direction_audio_feedback">Гукавая напрамкі</string>
<string name="access_direction_audio_feedback_descr">Індыцыраваць гукам кірунак на мэтавы пункт.</string>
@ -2028,7 +2027,6 @@
<string name="shared_string_change">Змяніць</string>
<string name="get_started">Пачаць</string>
<string name="routing_attr_short_way_name">Паліўна-ашчадны маршрут</string>
<string name="routing_attr_short_way_description">Разлічвае паліва-ашчадны маршрут (звычайна найкарацейшы).</string>
<string name="replace_favorite_confirmation">Вы сапраўды хочаце замяніць улюбёную мясціну %1$s\?</string>
<string name="update_all_maps_now">Абнавіць усе мапы зараз?</string>
<string name="clear_tile_data">Ачысціць кэш сеціўных мапаў</string>
@ -2483,7 +2481,7 @@
<string name="average">Сярэдняя</string>
<string name="of">%1$d з %2$d</string>
<string name="ascent_descent">Пад\'ём/Cпуск</string>
<string name="moving_time">Час руху</string>
<string name="moving_time">Час у руху</string>
<string name="max_min">Макс/Мін</string>
<string name="min_max">Мін/Макс</string>
<string name="rendering_value_translucent_pink_name">Паўпразрысты ружовы</string>
@ -2671,7 +2669,7 @@
<string name="first_intermediate_dest_description">Дадае першы прыпынак</string>
<string name="subsequent_dest_description">Перамясціць прызначэнне далей і стварыць яго</string>
<string name="show_closed_notes">Паказаць закрытыя нататкі</string>
<string name="switch_osm_notes_visibility_desc">Паказаць/схаваць OSM-нататкі на мапе.</string>
<string name="switch_osm_notes_visibility_desc">Паказаць або схаваць OSM-нататкі на мапе.</string>
<string name="gpx_file_desc">GPX падыходзіць для экспарту ў JOSM і іншыя OSM-рэдактары.</string>
<string name="osc_file_desc">OSC падыходзіць для экспарту ў OpenStreetMap.</string>
<string name="shared_string_gpx_file">GPX-файл</string>
@ -3159,9 +3157,9 @@
<string name="osmand_default_routing">Навігацыя OsmAnd</string>
<string name="third_party_routing_type">Іншая навігацыя</string>
<string name="quick_action_need_to_add_item_to_list">Дадаць прынамсі адзін элемент у спіс \"Хуткае дзеянне\" у наладах</string>
<string name="routing_attr_piste_type_downhill_name">Альпійская/горныя лыжы</string>
<string name="routing_attr_piste_type_downhill_name">Альпійскія і горныя лыжы</string>
<string name="routing_attr_piste_type_downhill_description">Схілы для горных лыжаў і доступ да пад\'ёмнікаў.</string>
<string name="routing_attr_piste_type_nordic_name">Лыжныя гонкі / паўночныя тыпы</string>
<string name="routing_attr_piste_type_nordic_name">Бегавыя і скандынаўскія лыжы</string>
<string name="routing_attr_piste_type_nordic_description">Трасы для лыжных гонак і іх паўночных тыпаў.</string>
<string name="routing_attr_allow_intermediate_name">Дазволіць прамежкавыя маршруты</string>
<string name="routing_attr_allow_intermediate_description">Больш складаныя трасы са стромкімі ўчасткамі. Пэўныя перашкоды, якіх варта пазбягаць.</string>
@ -3429,9 +3427,9 @@
<string name="osmand_purchases_item">Пакупкі OsmAnd</string>
<string name="legend_item_description">Даведка па знаках мапы.</string>
<string name="navigation_profiles_item">Профілі навігацыі</string>
<string name="create_edit_poi">Стварыць/Рэдагаваць POI</string>
<string name="create_edit_poi">Стварыць ці Рэдагаваць POI</string>
<string name="parking_positions">Месца паркоўкі</string>
<string name="add_edit_favorite">Дадаць / рэдагаваць улюбёнае</string>
<string name="add_edit_favorite">Дадаць ці рэдагаваць улюбёнае</string>
<string name="reset_deafult_order">Аднавіць прадвызначаны парадак элементаў</string>
<string name="back_to_editing">Вярнуцца да рэдагавання</string>
<string name="quick_action_transport_show">Паказаць грамадскі транспарт</string>
@ -3439,7 +3437,7 @@
<string name="shared_string_add_profile">Дадаць профіль</string>
<string name="n_items_of_z">%1$s з %2$s</string>
<string name="download_slope_maps">Схілы</string>
<string name="quick_action_show_hide_terrain">Паказаць/схаваць рэльеф</string>
<string name="quick_action_show_hide_terrain">Паказаць ці схаваць рэльеф</string>
<string name="quick_action_terrain_hide">Схаваць рэльеф</string>
<string name="quick_action_terrain_show">Паказаць рэльеф</string>
<string name="delete_description">Выдаліць апісанне</string>
@ -3517,7 +3515,7 @@
<string name="change_application_profile">Змяніць профіль праграмы</string>
<string name="index_item_world_basemap_detailed">Аглядная мапа свету (падрабязная)</string>
<string name="quick_action_transport_hide">Схаваць грамадскі транспарт</string>
<string name="quick_action_show_hide_transport">Паказаць/схаваць грамадскі транспарт</string>
<string name="quick_action_show_hide_transport">Паказаць ці схаваць грамадскі транспарт</string>
<string name="recalculate_route_in_deviation">Пералічыць маршрут у выпадку адхілення</string>
<string name="shared_string_uninstall">Выдаліць</string>
<string name="vessel_width_limit_description">Вызначце шырыню судна, каб пазбягаць вузкіх мастоў</string>
@ -3531,7 +3529,7 @@
<string name="item_deleted">Выдалена: %1$s</string>
<string name="speed_cameras_restart_descr">Перазапусціце праграму для поўнага выдалення даных камер кантролю хуткасці.</string>
<string name="use_volume_buttons_as_zoom_descr">Кіраванне ўзроўнем маштабавання мапы пры дапамозе кнопак рэгулявання гучнасці.</string>
<string name="plugin_wikipedia_description">Інфармацыя пра славутасці з Вікіпедыі. Гэта ваш кішэнны даведнік - уключыце ўбудову вікіпедыі і чытайце артыкулы пра аб’екты вакол вас.</string>
<string name="plugin_wikipedia_description">Інфармацыя пра славутасці з Вікіпедыі, вашага кішэннага даведніка з артыкуламі пра аб’екты вакол вас.</string>
<string name="app_mode_enduro_motorcycle">Матацыкл Эндура</string>
<string name="app_mode_motor_scooter">Мотаролер</string>
<string name="shared_string_uninstall_and_restart">Выдаліць і перазапусціць</string>
@ -3549,8 +3547,8 @@
<string name="open_saved_track">Адкрыць захаваны след</string>
<string name="shared_string_is_saved">захавана</string>
<string name="save_track_to_gpx">Аўтаматычна запісваць след падчас навігацыі</string>
<string name="disable_recording_once_app_killed_descrp">Запіс GPX прыпыніцца, калі праграма будзе забітая (праз надаўнія праграмы). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.)</string>
<string name="save_global_track_interval_descr">Вызначце інтэрвал запісу следу (уключаецца праз віджэт запісу GPX на мапе).</string>
<string name="disable_recording_once_app_killed_descrp">Спыненне запісу GPX, падчас прымусовага спынення (праз апошнія прыкладанні). (Апавяшчэнне ў вобласці падказак Android пра фонавы рэжым OsmAnd знікне.)</string>
<string name="save_global_track_interval_descr">Вызначце інтэрвал запісу трэка (уключаецца праз віджэт \"Запіс паездкі\" на мапе).</string>
<string name="monitoring_control_start">ЗАПІС</string>
<string name="shared_string_done">Завершана</string>
<string name="shared_string_save_as_gpx">Захаваць як новы файл следу</string>
@ -3655,7 +3653,7 @@
<string name="previous_segment">Папярэдні сегмент</string>
<string name="all_previous_segments">Усе папярэднія сегменты</string>
<string name="only_selected_segment_recalc">Толькі абраны сегмент пералічыцца з выкарыстаннем абранага профілю.</string>
<string name="osm_edits_view_descr">Прагляд вашых правак альбо хібаў OSM, яшчэ не адпраўленых у %1$s. Запампаваныя пункты больш не будуць паказвацца.</string>
<string name="osm_edits_view_descr">Прагледзець усе вашы яшчэ не загружаныя паўкі OSM або памылкі ў %1$s. Ужо загружаныя змены больш не будуць паказвацца.</string>
<string name="live_monitoring_adress_descr">Пазначце сеціўны адрас з наступнымі параметрамі: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
<string name="monitoring_min_distance_descr_recommendation">Рэкамендацыя: наладка ў 5 метраў можа вас задаволіць, калі вам не патрэбна фіксаваць больш кароткія перамяшчэнні, і вы не хочаце відавочна збіраць даныя ў стане спакою.</string>
<string name="monitoring_min_distance_descr_side_effect">Пабочныя эфекты: перыяды ў стане спакою не запісваюцца наогул альбо па адным пункце кожны. Невялікія (у рэальным свеце) перамяшчэнні (напрыклад, убок, што адзначаюць магчымы паварот у вашай паездцы) могуць быць адфільтраваныя. Файл змяшчае менш інфармацыі для наступнай апрацоўкі і мае горшую статыстыку, адфільтроўваючы відавочна лішнія пункты падчас запісу. Пры гэтым патэнцыйна захоўваюцца артэфакты, выкліканыя дрэнным прыёмам альбо эфектамі модуля GPS.</string>
@ -3861,7 +3859,7 @@
<string name="shared_string_redo">Вярнуць</string>
<string name="release_3_8">• Абноўлена функцыя планавання маршруту. З’явілася магчымасць выкарыстоўваць розныя тыпы навігацыі для кожнага сегмента і прымацоўваць сляды
\n
\n • Новае меню \"Выгляд\" для слядоў. Можна абраць колер, таўшчыню, уключыць стрэлкі кірунку, адзнакі старту / фінішу
\n • Новае меню \"Выгляд\" для слядоў. Можна абраць колер, таўшчыню, уключыць стрэлкі кірунку, адзнакі старту і фінішу
\n
\n • Палепшана бачнасць роварных вузлоў.
\n
@ -3892,12 +3890,199 @@
<string name="use_native_pt">Натыўны грамадскі транспарт (у распрацоўцы)</string>
<string name="perform_oauth_authorization">Увайсці праз OAuth</string>
<string name="use_two_phase_routing">Выкарыстоўваць 2-фазны алгарытм маршрутызацыі A *</string>
<string name="use_native_pt_desc">Перайсці на разлік маршруту грамадскага транспарту на Java (бяспечны)</string>
<string name="use_native_pt_desc">Перайсці на разлік маршруту грамадскага транспарту з дапамогай Java (бяспечны)</string>
<string name="file_already_imported">Файл ужо імпартаваны ў OsmAnd</string>
<string name="start_finish_icons">Значкі старту і фінішу</string>
<string name="perform_oauth_authorization_description">Увайдзіце праз OAuth, каб выкарыстоўваць функцыі osmedit</string>
<string name="perform_oauth_authorization_description">Выканайце ўваход з дапамогай OAuth, каб выкарыстоўваць функцыі osmedit</string>
<string name="clear_osm_token">Ачысціць токен OpenStreetMap OAuth</string>
<string name="osm_edit_logout_success">Выхад выкананы</string>
<string name="osm_edit_logout_success">Вы выйшлі</string>
<string name="use_live_public_transport">Даныя OsmAnd Live</string>
<string name="use_live_routing">Даныя OsmAnd Live</string>
<string name="voice_prompts_timetable">Час галасавых падказак</string>
<string name="lang_de_casual">Нямецкая (неафіцыйная)</string>
<string name="navigate_point_mgrs">MGRS</string>
<string name="snowmobile_render_descr">Для язды на снегаходах па вызначаных дарогах і трасах.</string>
<string name="navigate_point_format_mgrs">MGRS</string>
<string name="mgrs_format_descr">OsmAnd выкарыстоўвае MGRS, які падобны да фармату UTM NATO.</string>
<string name="shared_string_graph">Графік</string>
<string name="message_need_calculate_route_before_show_graph">Даныя %1$s даступныя толькі для дарог, разлічылі маршрут, выкарыстоўваючы \"Маршрут паміж кропкамі\", каб убачыць графікі.</string>
<string name="message_graph_will_be_available_after_recalculation">Калі ласка пачакайце.
\nГрафік будзе даступны пасля пераразліку маршруту.</string>
<string name="shared_string_local_maps">Лакальныя мапы</string>
<string name="ltr_or_rtl_combine_via_dash">%1$s — %2$s</string>
<string name="app_mode_gap">Разрыў</string>
<string name="icon_group_amenity">Выгады</string>
<string name="icon_group_special">Спецыяльныя</string>
<string name="icon_group_transport">Транспарт</string>
<string name="icon_group_service">Паслугі</string>
<string name="icon_group_symbols">Сімвалы</string>
<string name="icon_group_sport">Спорт</string>
<string name="icon_group_emergency">Экстраныя службы</string>
<string name="icon_group_travel">Вандроўка</string>
<string name="message_you_need_add_two_points_to_show_graphs">Дадайце прынамсі два пункты</string>
<string name="login_open_street_map">Увайсці ў OpenStreetMap</string>
<string name="login_open_street_map_org">Увайсці ў OpenStreetMap.org</string>
<string name="sign_in_with_open_street_map">Увайсці з дапамогай OpenStreetMap</string>
<string name="open_street_map_login_mode">Вам неабходна ўвайсці ў сістэму, каб загрузіць новыя або адрэдагаваныя змены.
\n
\nВы можаце ўвайсці, выкарыстоўваючы бяспечны метад OAuth, або з дапамогай сваіх імя карыстальніка і пароля.</string>
<string name="use_login_password">Выкарыстоўваць імя карыстальніка і пароль</string>
<string name="login_account">Уліковы запіс</string>
<string name="user_login">Аўтарызавацца</string>
<string name="manage_subscription">Кіраванне падпіскай</string>
<string name="subscription_payment_issue_title">Націсніце кнопку, каб перайсці ў налады падпіскі Google Play і выправіць спосаб аплаты.</string>
<string name="subscription_expired_title">Мінуў тэрмін дзеяння падпіскі OsmAnd Live</string>
<string name="subscription_paused_title">Падпіска OsmAnd Live была прыпынена</string>
<string name="subscription_on_hold_title">Падпіска OsmAnd Live прыпынена</string>
<string name="markers_history">Гісторыя маркераў</string>
<string name="send_files_to_openstreetmap">Адправіць файл GPX на OpenStreetMap</string>
<string name="enter_text_separated">Увадзіце тэгі праз коску.</string>
<string name="gpx_upload_public_visibility_descr">\"Агульнадаступны\" азначае, што трасіроўка публічна адлюстроўваецца ў вашых GPS-трасіроўках і ў агульнадаступных спісах GPS-трасіровак, а таксама ў агульнадаступным спісе трасіровак з пазнакамі часу ў неапрацаваным выглядзе. Даныя, прадстаўленыя праз API, не спасылаюцца на вашу старонку трасіроўкі. Меткі часу трасіроўкі недаступныя праз агульнадаступны API GPS і не размяшчаюцца ў храналагічным парадку.</string>
<string name="gpx_upload_private_visibility_descr">\"Прыватны\" азначае, што след не з\'явіцца ў любым агульнадаступным спісе, але кантрольныя пункты з яго даступныя ў адвольным парадку праз агульнадаступны GPS API без пазнак часу.</string>
<string name="gpx_upload_identifiable_visibility_descr">\"Ідэнтыфікаваны\" азначае, што трасіроўка будзе публічна адлюстроўвацца ў вашай GPS-трасіроўкі і ў агульнадаступных спісах GPS-трасіровак, гэта значыць, што іншыя карыстальнікі змогуць загрузіць неапрацаваны след і звязаць яго з вашым імем карыстальніка. Агульнадаступныя даныя трасіроўкі з GPS API, якія абслугоўваюцца з дапамогай API пунктаў адсочвання, спасылаюцца на пачатковую старонку трасіроўкі.</string>
<string name="gpx_upload_trackable_visibility_descr">\"Адсочванне\" азначае, што трэк не з\'явіцца ў любым агульнадаступным спісе, але апрацоўка маршрутных пунктаў з яго (якія не могуць быць непасрэдна звязаны з вамі) ажыццяўляецца з выкарыстаннем загрузак з агульнадаступнага API GPS.</string>
<string name="osm_edit_close_note">Закрыць нататку OSM</string>
<string name="osm_edit_comment_note">Каментаваць нататку OSM</string>
<string name="osm_login_descr">Вы можаце ўвайсці, выкарыстоўваючы бяспечны метад OAuth або з дапамогай сваіх імя карыстальніка і пароля.</string>
<string name="shared_string_add_photo">Дадаць фотаздымак</string>
<string name="register_on_openplacereviews">Зарэгістравацца на
\nOpenPlaceReviews.org</string>
<string name="register_on_openplacereviews_desc">Фотаздымкі прадастаўлены праектам з адкрытымі данымі OpenPlaceReviews.org. Каб загрузіць фатаграфіі, зарэгіструйцеся на іх сайце.</string>
<string name="register_opr_create_new_account">Стварыць уліковы запіс</string>
<string name="register_opr_have_account">У мяне ўжо ёсць уліковы запіс</string>
<string name="shared_string_search_history">Гісторыя пошуку</string>
<string name="app_mode_kayak">Каяк</string>
<string name="app_mode_motorboat">Маторная лодка</string>
<string name="cannot_upload_image">Немагчыма загрузіць выяву, паўтарыце спробу пазней</string>
<string name="select_picture">Выберыце выявы</string>
<string name="shared_string_resources">Рэсурсы</string>
<string name="approximate_file_size">Прыблізны памер файла</string>
<string name="select_data_to_export">Выберыце даныя, якія вы хочаце экспартаваць у файл.</string>
<string name="file_size_needed_for_import">Неабходна для імпартавання</string>
<string name="export_not_enough_space_descr">На вашай прыладзе свабодна толькі %1$s. Вызваліце месца альбо зніміце пазнаку з некаторых элементаў для экспартавання.</string>
<string name="export_not_enough_space">Недастаткова месца</string>
<string name="select_groups_for_import">Выберыце групы, якія трэба імпартаваць.</string>
<string name="select_items_for_import">Выберыце элементы, якія трэба імпартаваць.</string>
<string name="add_to_mapillary">Дадаць да Mapillary</string>
<string name="add_to_opr">Дадаць да OpenPlaceReviews</string>
<string name="use_dev_url_descr">Пераключыцца на выкарыстанне dev.openstreetmap.org замест openstreetmap.org для тэсціравання адпраўкі нататак OSM / POI / GPX.</string>
<string name="use_dev_url">Выкарыстоўваць dev.openstreetmap.org</string>
<string name="add_photos_descr">OsmAnd паказвае фотаздымкі з некалькіх крыніц;
\nOpenPlaceReviews - фотаздымкі POI;
\nMapillary - выявы вуліц;
\nWeb / Wikimedia - фотаздымкі POI паводле дадзеных з OpenStreetMap.</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">Вы можаце выкарыстоўваць даныя пра вышыні, каб улічыць ўздымы/спускі падчас вашай паездкі</string>
<string name="app_mode_light_aircraft">Лёгкі самалёт</string>
<string name="plan_route_join_segments">Аб\'яднаць сегменты</string>
<string name="plan_route_split_before">Падзяліць да</string>
<string name="plan_route_split_after">Падзяліць пасля</string>
<string name="plan_route_add_new_segment">Дадаць новы сегмент</string>
<string name="profile_type_user_string">Профіль карыстальніка</string>
<string name="release_3_9">"• Дададзена магчымасць экспарту і імпарту ўсіх даных, уключаючы налады, рэсурсы, мае месцы.
\n
\n • Планаванне маршруту: графікі для сегментаў трэка з маршрутам, дададзена магчымасць ствараць і рэдагаваць некалькі сегментаў трэка.
\n
\n • Дададзены OAuth метад аўтэнтыфікацыі для OpenStreetMap, палепшаны інтэрфейс дыялогаў OSM.
\n
\n • Падтрымка карыстальніцкіх колераў для абранага і маршрутных пунктаў трэка.
\n
\n"</string>
<string name="reverse_all_points">Вярнуць назад усе пункты</string>
<string name="profile_by_default_description">Выберыце профіль, які будзе выкарыстоўвацца падчас запуску прыкладання.</string>
<string name="shared_string_last_used">Апошні раз выкарыстоўвалася</string>
<string name="routing_attr_prefer_hiking_routes_description">Аддаваць перавагу пешаходным маршрутам</string>
<string name="routing_attr_prefer_hiking_routes_name">Аддаваць перавагу пешаходным маршрутам</string>
<string name="routing_attr_allow_streams_description">Дазвольце ручаі і меліярацыйныя каналы</string>
<string name="routing_attr_allow_streams_name">Дазвольце ручаі і меліярацыйныя каналы</string>
<string name="routing_attr_allow_intermittent_description">Дазволіць перарывістыя водныя маршруты</string>
<string name="routing_attr_allow_intermittent_name">Дазволіць перарывістыя водныя маршруты</string>
<string name="add_online_routing_engine">Дадаць анлайн-маршрутызатар</string>
<string name="edit_online_routing_engine">Рэдагаваць анлайн-маршрутызатар</string>
<string name="shared_string_subtype">Падтып</string>
<string name="shared_string_vehicle">Транспартны сродак</string>
<string name="shared_string_api_key">Ключ API</string>
<string name="shared_string_server_url">URL-адрас сервера</string>
<string name="shared_string_enter_param">Увядзіце параметр</string>
<string name="keep_it_empty_if_not">Пакінуць пустым, калі не</string>
<string name="online_routing_example_hint">URL-адрас з усімі параметрамі будзе выглядаць так:</string>
<string name="test_route_calculation">Тэст разліку маршруту</string>
<string name="routing_engine_vehicle_type_driving">Ваджэнне</string>
<string name="routing_engine_vehicle_type_foot">Пешшу</string>
<string name="routing_engine_vehicle_type_bike">Ровар</string>
<string name="routing_engine_vehicle_type_car">Аўтамабіль</string>
<string name="copy_address">Капіраваць адрас</string>
<string name="online_routing_engine">Анлайн-маршрутызатар</string>
<string name="online_routing_engines">Анлайн-маршрутызатары</string>
<string name="shared_string_folders">Папкі</string>
<string name="select_folder">Выберыце папку</string>
<string name="select_folder_descr">Выберыце папку або стварыце новую</string>
<string name="shared_string_empty">Пуста</string>
<string name="analyze_by_intervals">Аналіз паводле інтэрвалаў</string>
<string name="upload_to_openstreetmap">Выгрузіць на OpenStreetMap</string>
<string name="edit_track">Змяніць трэк</string>
<string name="rename_track">Перайменаваць трэк</string>
<string name="change_folder">Змяніць папку</string>
<string name="shared_string_sec">сек.</string>
<string name="announcement_time_passing">Пры праходжанні</string>
<string name="announcement_time_approach">Набліжэнне</string>
<string name="announcement_time_prepare_long">Заўчасная падрыхтоўка</string>
<string name="announcement_time_prepare">Падрыхтавацца</string>
<string name="announcement_time_off_route">Па-за маршрутам</string>
<string name="announcement_time_arrive">Прыбыццё ў пункт прызначэння</string>
<string name="shared_string_turn">Паварот</string>
<string name="announcement_time_intervals">Інтэрвалы часу і адлегласці</string>
<string name="profile_type_osmand_string">Профіль OsmAnd</string>
<string name="announcement_time_title">Час абвяшчэння</string>
<string name="announcement_time_descr">Час розных галасавых падказак залежыць ад тыпу запыту, бягучай хуткасці навігацыі і хуткасці навігацыі па змаўчанні.</string>
<string name="start_recording">Пачаць запіс</string>
<string name="show_track_on_map">Паказаць трэк на мапе</string>
<string name="routing_engine_vehicle_type_wheelchair">Інвалідны вазок</string>
<string name="routing_engine_vehicle_type_hiking">Пешы турызм</string>
<string name="routing_engine_vehicle_type_walking">Хадзьба</string>
<string name="routing_engine_vehicle_type_cycling_electric">Электраровар</string>
<string name="routing_engine_vehicle_type_cycling_mountain">Горны ровар</string>
<string name="routing_engine_vehicle_type_cycling_road">Дарожны ровар</string>
<string name="routing_engine_vehicle_type_cycling_regular">Звычайны ровар</string>
<string name="routing_engine_vehicle_type_hgv">Грузавік</string>
<string name="routing_engine_vehicle_type_small_truck">Малы грузавік</string>
<string name="routing_engine_vehicle_type_truck">Грузавік</string>
<string name="routing_engine_vehicle_type_scooter">Скутэр</string>
<string name="routing_engine_vehicle_type_racingbike">Гоначны ровар</string>
<string name="routing_engine_vehicle_type_mtb">Горны ровар</string>
<string name="message_server_error">Памылка сервера: %1$s</string>
<string name="message_name_is_already_exists">Назва ўжо існуе</string>
<string name="delete_online_routing_engine">Выдаліць анлайн-маршрутызатар\?</string>
<string name="context_menu_read_full">Чытаць цалкам</string>
<string name="context_menu_edit_descr">Змяніць апісанне</string>
<string name="delete_waypoints">Выдаліць маршрутныя пункты</string>
<string name="copy_to_map_markers">Капіраваць да пазнак мапы</string>
<string name="copy_to_map_favorites">Капіраваць да абранага</string>
<string name="upload_photo">Выгрузка</string>
<string name="upload_photo_completed">Выгрузка завершана</string>
<string name="uploading_count">Выгрузка %1$d з %2$d</string>
<string name="uploaded_count">Выгружана %1$d з %2$d</string>
<string name="toast_select_edits_for_upload">Выберыце змены для выгрузкі</string>
<string name="hillshade_slope_contour_lines">Рэльеф мясцовасці / Схілы / Гарызанталі</string>
<string name="open_place_reviews_plugin_description">OpenPlaceReviews — гэта грамадскі праект пра месцы агульнага карыстання, такія як, рэстараны, гатэлі, музеі, пункты шляху. Ён збірае ўсе агульнадаступныя даныя пра іх, такія як, выявы, водгукі, спасылкі на іншыя сістэмы, спасылкі OpenStreetMap, Вікіпедыя.
\n
\nУсе даныя OpenPlaceReview з\'яўляюцца адкрытымі і даступны тут: http://openplacereviews.org/data.
\n
\nВы можаце прачытаць больш па адрасу: http://openplacereviews.org</string>
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="opr_use_dev_url">Выкарыстаць test.openplacereviews.org</string>
<string name="login_open_place_reviews">Увайсці ў OpenPlaceReviews</string>
<string name="activity_type_water_name">Вада</string>
<string name="activity_type_winter_name">Зіма</string>
<string name="activity_type_snowmobile_name">Снегаход</string>
<string name="activity_type_riding_name">Язда</string>
<string name="activity_type_racing_name">Гонка</string>
<string name="activity_type_mountainbike_name">Горны ровар</string>
<string name="activity_type_cycling_name">Язда на ровары</string>
<string name="activity_type_hiking_name">Пешы турызм</string>
<string name="activity_type_running_name">Бег</string>
<string name="activity_type_walking_name">Пешаход</string>
<string name="activity_type_offroad_name">Пазадарожнік</string>
<string name="activity_type_motorbike_name">Матацыкл</string>
<string name="activity_type_car_name">Аўтамабіль</string>
</resources>

View file

@ -208,7 +208,6 @@
<string name="avoid_motorway">Без магистрали</string>
<string name="auto_zoom_map_descr">Авто-мащабиране съобразно вашата скорост (само за синхронизирани карти)</string>
<string name="auto_zoom_map">Авто-мащабиране</string>
<string name="snap_to_road_descr">Позицията да се придържа към пътя по време на пътуване</string>
<string name="snap_to_road">Придържай мястото към пътя</string>
<string name="osmand_play_title_30_chars">OsmAnd за карти и навигация</string>
<string name="osmand_short_description_80_chars">Мобилни карти и навигация от OSM</string>
@ -1925,7 +1924,6 @@
<string name="update_all_maps_now">Обновяване на всички карти сега\?</string>
<string name="clear_tile_data">Изчистване на всички плочки</string>
<string name="routing_attr_short_way_name">Икономичен маршрут</string>
<string name="routing_attr_short_way_description">Използване на икономичен маршрут (обичайно по-кратък).</string>
<string name="replace_favorite_confirmation">Наистина ли искате да заместите %1$s?</string>
<string name="rendering_attr_hideOverground_name">Надземни обекти</string>
<string name="osm_live_payment_desc">Абонаментна такса се начислява всеки месец. Можете да я отмените от Google Play по всяко време.</string>

View file

@ -641,7 +641,6 @@
<string name="avoid_motorway">Sense autopistes</string>
<string name="auto_zoom_map_descr">Nivell de zoom en funció de la velocitat (mentre el mapa estigui sincronitzat amb la posició actual).</string>
<string name="auto_zoom_map">Zoom automàtic del mapa</string>
<string name="snap_to_road_descr">Ajusta la posició a les carreteres durant la navegació.</string>
<string name="snap_to_road">Desplaça a la carretera</string>
<string name="asap">MCP</string>
<string name="prefs_plugins_descr">Els connectors activen els paràmetres del mode expert i de funcionalitats addicionals.</string>
@ -1987,7 +1986,6 @@
<string name="shared_string_change">Modifica</string>
<string name="get_started">Comença</string>
<string name="routing_attr_short_way_name">Ruta amb menys consum</string>
<string name="routing_attr_short_way_description">Utilitza la ruta de menys consum (normalment la més curta).</string>
<string name="replace_favorite_confirmation">Confirmeu que voleu substituir el Preferit %1$s?</string>
<string name="update_all_maps_now">Voleu actualitzar tots els mapes ara mateix?</string>
<string name="clear_tile_data">Esborra totes les tessel·les</string>
@ -3813,7 +3811,6 @@
\nWeb / Wikimedia: fotos dels PDIs d\'OpenStreetMap.</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="icon_group_amenity">Equipament</string>
<string name="elevation_data">Podeu utilitzar les dades delevació per acumular l\'ascens/descens de la vostra ruta</string>
<string name="app_mode_light_aircraft">Avioneta</string>
<string name="gpx_upload_identifiable_visibility_descr">\"Identificable\" vol dir que la traça es mostrarà públicament a les vostres traces GPS i als llistats públics de traces GPS, és a dir, els altres usuaris la podran baixar en brut i associada al vostre usuari. Les dades cronològiques de pas per les fites de lAPI GPS que es publiquen mitjançant lAPI de fites faran referència a la pàgina de la vostra traça original.</string>
<string name="gpx_upload_private_visibility_descr">\"Privada\" vol dir que la traça no es mostra a cap llistat públic, però les fites que conté estan disponibles a través de l\'API pública GPS, desordenades i sense enregistraments temporals.</string>

View file

@ -781,7 +781,6 @@
<string name="day_night_info">Denní/noční info</string>
<string name="map_widget_renderer">Styl mapy</string>
<string name="avoid_motorway">Žádné dálnice</string>
<string name="snap_to_road_descr">Zachytí kurzor na nejbližší silnici/cestu během navigace.</string>
<string name="map_widget_vector_attributes">Vlastnosti vykreslování</string>
<string name="poi_filter_parking">Parkoviště</string>
<string name="poi_filter_public_transport">Veřejná doprava</string>
@ -2004,7 +2003,6 @@
<string name="update_all_maps_now">Aktualizovat všechny mapy ihned?</string>
<string name="clear_tile_data">Vymazat všechny dlaždice</string>
<string name="routing_attr_short_way_name">Ekonomická trasa</string>
<string name="routing_attr_short_way_description">Použít ekonomickou trasu (obvykle kratší).</string>
<string name="replace_favorite_confirmation">Opravdu chcete nahradit Oblíbené místo „%1$s“\?</string>
<string name="rendering_attr_hideOverground_name">Nadzemní objekty</string>
<string name="shared_string_change">Změnit</string>
@ -3919,7 +3917,6 @@
<string name="use_dev_url">Použít dev.openstreetmap.org</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Němčina (hovorová)</string>
<string name="elevation_data">Můžete použít výšková data pro započítání výstupu/sestupu na trase</string>
<string name="app_mode_light_aircraft">Lehké letadlo</string>
<string name="plan_route_join_segments">Spojit úseky</string>
<string name="plan_route_split_before">Rozdělit před</string>

View file

@ -51,7 +51,6 @@
<string name="avoid_motorway">Ceisiwch osgoi traffyrdd</string>
<string name="auto_zoom_map_descr">Zoom Auto mapio yn ôl eich cyflymder (tra map wedi eu cydamseru gyda\'r sefyllfa bresennol)</string>
<string name="auto_zoom_map">Auto chwyddo map</string>
<string name="snap_to_road_descr">Snap sefyllfa i ffyrdd yn ystod llywio</string>
<string name="snap_to_road">Snap i\'r ffordd</string>
<string name="osmand_short_description_80_chars">OsmAnd yn gais ffynhonnell agored ar gyfer llywio fapiau all-lein ac ar-lein</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd yn gais ffynhonnell agored ar gyfer llywio fapiau all-lein ac ar-lein</string>

View file

@ -128,7 +128,6 @@
<string name="av_use_external_camera">Brug kamera</string>
<string name="route_descr_lat_lon">Lat %1$.3f, Lon %2$.3f</string>
<string name="intermediate_point">Mellemliggende destination %1$s</string>
<string name="snap_to_road_descr">Hold position på vejen under navigation.</string>
<string name="snap_to_road">Fastgør til vejen</string>
<string name="osmand_short_description_80_chars">Globale mobilkort og navigation til offline og online OSM-kort</string>
<string name="osmand_plus_short_description_80_chars">Global mobilkortvisning og navigation til offline og online OSM-kort</string>
@ -1995,7 +1994,6 @@
<string name="route_stops_before">%1$s stop før</string>
<string name="rendering_attr_hideOverground_name">Objekter over jorden</string>
<string name="routing_attr_short_way_name">Brændstofbesparende rute</string>
<string name="routing_attr_short_way_description">Brug brændstofbesparende rute (normalt kortere).</string>
<string name="replace_favorite_confirmation">Erstat Favorit %1$s?</string>
<string name="shared_string_change">Skift</string>
<string name="get_started">Kom i gang</string>

View file

@ -97,7 +97,6 @@
<string name="avoid_motorway">Keine Autobahnen</string>
<string name="auto_zoom_map_descr">Kartenvergrößerung der Geschwindigkeit anpassen (während der Kartennachführung).</string>
<string name="auto_zoom_map">Automatische Vergrößerung</string>
<string name="snap_to_road_descr">Standort während der Navigation auf Straßen einrasten.</string>
<string name="snap_to_road">Auf Straße einrasten</string>
<string name="osmand_play_title_30_chars">OsmAnd Karten &amp; Navigation</string>
<string name="osmand_short_description_80_chars">Globale Landkarten- und Navigationsanwendung für Offline- und Online-OSM-Karten</string>
@ -1999,7 +1998,6 @@
<string name="route_stops_before">%1$s Haltestellen davor</string>
<string name="rendering_attr_hideOverground_name">Oberirdische Objekte</string>
<string name="routing_attr_short_way_name">Kraftstoffsparende Route</string>
<string name="routing_attr_short_way_description">Kraftstoffsparende Route verwenden (in der Regel kürzer).</string>
<string name="replace_favorite_confirmation">Wollen Sie den Favoriten \'%1$s\' wirklich ersetzen?</string>
<string name="shared_string_change">Ändern</string>
<string name="get_started">Erste Schritte</string>
@ -3923,7 +3921,6 @@
<string name="cannot_upload_image">Bild kann nicht hochgeladen werden, bitte versuchen Sie es später erneut</string>
<string name="select_picture">Bild auswählen</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">Sie können Höhendaten verwenden, um Steigungen und Gefälle auf Ihrer Reise zu berücksichtigen</string>
<string name="app_mode_light_aircraft">Kleinflugzeug</string>
<string name="plan_route_split_before">Teilen vor</string>
<string name="plan_route_split_after">Teilen nach</string>
@ -4034,7 +4031,8 @@
<string name="activity_type_offroad_name">Geländegängig</string>
<string name="activity_type_motorbike_name">Motorrad</string>
<string name="activity_type_car_name">Auto</string>
<string name="announcement_time_prepare">Vorbereiten</string>
<string name="announcement_time_prepare">Zweite Ankündigung (mittlere Distanz)</string>
<string name="shared_string_sec">sek</string>
<string name="activity_type_racing_name">Rennsport</string>
<string name="announcement_time_prepare_long">Erste Ankündigung (größere Distanz)</string>
</resources>

View file

@ -20,7 +20,6 @@
<string name="avoid_motorway">Όχι αυτοκινητόδρομους</string>
<string name="auto_zoom_map_descr">Επίπεδο εστίασης χάρτη ανάλογα με την ταχύτητά σας (ενώ ο χάρτης συγχρονίζεται με την τρέχουσα θέση).</string>
<string name="auto_zoom_map">Αυτόματη εστίαση χάρτη</string>
<string name="snap_to_road_descr">Προσανατολισμός στους δρόμους κατά τη διάρκεια της πλοήγησης.</string>
<string name="snap_to_road">Προσανατολισμός στο δρόμο</string>
<string name="osmand_short_description_80_chars">Προβολή φορητού παγκόσμιου χάρτη &amp; πλοήγηση για χάρτες OSM χωρίς και με διαδίκτυο</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Αυτοματοποιημένες Οδηγίες Πλοήγησης)
@ -1965,7 +1964,6 @@
<string name="update_all_maps_now">Θέλετε να ενημερώσετε όλους τους χάρτες τώρα;</string>
<string name="clear_tile_data">Καθαρισμός όλων των πλακιδίων</string>
<string name="routing_attr_short_way_name">Διαδρομή με οικονομία καυσίμων</string>
<string name="routing_attr_short_way_description">Χρησιμοποιήστε τη διαδρομή με οικονομία καυσίμων (συνήθως συντομότερη).</string>
<string name="replace_favorite_confirmation">Είσαστε σίγουρος/η ότι θέλετε να αντικαταστήσετε το Αγαπημένο %1$s;</string>
<string name="rendering_attr_hideOverground_name">Υπέργεια αντικείμενα</string>
<string name="shared_string_change">Αλλαγή</string>

View file

@ -1056,7 +1056,6 @@
<string name="avoid_motorway">Sen aŭtovojojn</string>
<string name="auto_zoom_map">Aŭtomate skali mapon</string>
<string name="auto_zoom_map_descr">Skali mapon depende de via rapido (kiam mapo estas samtempigita kun aktuala pozicio).</string>
<string name="snap_to_road_descr">Proksimumigi pozicion al vojo dum navigado.</string>
<string name="snap_to_road">Proksimumigi al vojo</string>
<string name="interrupt_music">Paŭzigi muzikon</string>
<string name="interrupt_music_descr">Voĉaj anoncoj paǔzigas ludadon de muziko.</string>
@ -1991,7 +1990,6 @@
<string name="shared_string_change">Ŝanĝi</string>
<string name="get_started">Ekigi</string>
<string name="routing_attr_short_way_name">Brulaĵ-ŝparema kurso</string>
<string name="routing_attr_short_way_description">Kalkuli brulaĵ-ŝpareman kurson (kutime plej mallongan).</string>
<string name="replace_favorite_confirmation">Ĉu vi volas anstataŭigi la ŝatatan ejon %1$s?</string>
<string name="clear_tile_data">Forviŝi ĉiujn kahelojn</string>
<string name="update_all_maps_now">Ĉu ĝisdatigi ĉiujn mapojn nun?</string>
@ -3919,7 +3917,6 @@
<string name="select_picture">Elektu bildon</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Germana (ordinara)</string>
<string name="elevation_data">Vi povas uzi datumojn pri altitudo por kalkuli suprenirojn/malsuprenirojn de via kurso</string>
<string name="app_mode_light_aircraft">Malpeza aviadilo</string>
<string name="plan_route_join_segments">Kunigi segmentojn</string>
<string name="plan_route_split_before">Dividi antaŭ</string>

View file

@ -3222,7 +3222,7 @@
<string name="poi_water_supply_pump">Bomba</string>
<string name="poi_water_supply_borehole">Perforación</string>
<string name="poi_water_supply_water_trucking">Camión de agua</string>
<string name="poi_water_supply_water_tank">Depósito de agua</string>
<string name="poi_water_supply_water_tank">Tanque de agua</string>
<string name="poi_water_supply_bottled_water">Botella de agua</string>
<string name="poi_water_place_access_community">Comunidad</string>
<string name="poi_water_place_access_family">Familia</string>
@ -3869,7 +3869,7 @@
<string name="poi_water_source_river">Río</string>
<string name="poi_water_source_well">Pozo</string>
<string name="poi_water_source_powered_pump">Bomba accionada</string>
<string name="poi_water_source_water_tank">Depósito de agua</string>
<string name="poi_water_source_water_tank">Tanque de agua</string>
<string name="poi_water_source_tap">Canilla</string>
<string name="poi_water_source_water_works">Planta potabilizadora</string>
<string name="poi_water_source_tube_well">Pozo entubado</string>
@ -3881,4 +3881,14 @@
<string name="poi_wildlife_crossing_bat_bridge">Puente para murciélagos</string>
<string name="poi_wildlife_crossing">Cruce de vida silvestre</string>
<string name="poi_swimming_area">Área de natación</string>
<string name="poi_mobile_library">Biblioteca móvil (parada)</string>
<string name="poi_summit_register_no">Registro de la cumbre: no</string>
<string name="poi_summit_register_yes">Registro de la cumbre: sí</string>
<string name="poi_piste_status_closed">Estado de la pista: cerrado</string>
<string name="poi_piste_status_open">Estado de la pista: abierto</string>
<string name="poi_patrolled_no">Patrullado: no</string>
<string name="poi_patrolled_yes">Patrullado: sí</string>
<string name="poi_gladed_yes">Arboleda: sí</string>
<string name="poi_piste_name">Nombre de la pista</string>
<string name="poi_piste_ski_jump">Salto con esquís</string>
</resources>

View file

@ -742,7 +742,6 @@
<string name="avoid_motorway">Sin autopistas</string>
<string name="auto_zoom_map_descr">Nivel de zoom según la velocidad (mientras el mapa se sincroniza con la ubicación actual).</string>
<string name="auto_zoom_map">Zoom automático del mapa</string>
<string name="snap_to_road_descr">Ajusta la ubicación al camino durante la navegación.</string>
<string name="snap_to_road">Ajustar al camino</string>
<string name="interrupt_music_descr">Las indicaciones por voz pausan la reproducción de música.</string>
<string name="interrupt_music">Pausar música</string>
@ -1992,7 +1991,6 @@
<string name="rendering_attr_hideOverground_name">Objetos en superficie</string>
<string name="replace_favorite_confirmation">¿Reemplazar el Favorito «%1$s»?</string>
<string name="routing_attr_short_way_name">Ruta de bajo consumo (corta)</string>
<string name="routing_attr_short_way_description">Usa la ruta de menor consumo en combustible (usualmente la más corta).</string>
<string name="shared_string_change">Cambiar</string>
<string name="get_started">Empezar</string>
<string name="update_all_maps_now">¿Actualizar todos los mapas ahora?</string>
@ -3674,7 +3672,7 @@
<string name="height_limit_description">Proporciona la altura del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos altos.</string>
<string name="weight_limit_description">Proporciona el peso del vehículo, pueden aplicarse algunas restricciones de ruta para vehículos pesados.</string>
<string name="screen_timeout">Tiempo de espera de la pantalla</string>
<string name="shared_string_tones">tonos</string>
<string name="shared_string_tones">toneladas</string>
<string name="shared_string_meters">metros</string>
<string name="details_dialog_decr">Muestra u oculta los detalles adicionales del mapa</string>
<string name="shared_string_night_map">Mapa nocturno</string>
@ -3921,7 +3919,6 @@
<string name="select_picture">Elegir imagen</string>
<string name="lang_de_casual">Alemán (casual)</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">Puedes usar los datos de elevación para tener en cuenta el ascenso y descenso del viaje</string>
<string name="app_mode_light_aircraft">Avión ligero</string>
<string name="plan_route_join_segments">Unir segmentos</string>
<string name="plan_route_split_before">Dividir antes</string>
@ -4022,4 +4019,17 @@
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="opr_use_dev_url">Usar test.openplacereviews.org</string>
<string name="login_open_place_reviews">Acceder a OpenPlaceReviews</string>
<string name="activity_type_water_name">Agua</string>
<string name="activity_type_winter_name">Invierno</string>
<string name="activity_type_snowmobile_name">Motonieve</string>
<string name="activity_type_riding_name">Equitación</string>
<string name="activity_type_racing_name">Carreras</string>
<string name="activity_type_mountainbike_name">Bicicleta de montaña</string>
<string name="activity_type_cycling_name">Bicicleta</string>
<string name="activity_type_hiking_name">Senderismo</string>
<string name="activity_type_running_name">Correr</string>
<string name="activity_type_walking_name">Peatón</string>
<string name="activity_type_offroad_name">Todo terreno</string>
<string name="activity_type_motorbike_name">Motocicleta</string>
<string name="activity_type_car_name">Automóvil</string>
</resources>

View file

@ -844,7 +844,7 @@
<string name="poi_nwn_ref">Nodo de red nacional de senderismo</string>
<string name="poi_rwn_ref">Nodo de red regional de senderismo</string>
<string name="poi_lwn_ref">Nodo de red local de senderismo</string>
<string name="poi_opening_hours">Horario de atención;Horario de apertura</string>
<string name="poi_opening_hours">Horario de apertura</string>
<string name="poi_collection_times">Horario de recolección</string>
<string name="poi_description">Descripción</string>
<string name="poi_phone">Teléfono</string>
@ -2723,7 +2723,7 @@
<string name="poi_aquaculture_mussels">Acuicultura: mejillones</string>
<string name="poi_min_age">Edad mínima</string>
<string name="poi_organic_yes"></string>
<string name="poi_organic_no">No</string>
<string name="poi_organic_no">Productos orgánicos: no</string>
<string name="poi_organic_only">Únicamente</string>
<string name="poi_traffic_mirror">Espejo de tráfico</string>
<string name="poi_diplomatic_consulate">Consulado</string>
@ -3868,7 +3868,7 @@
<string name="poi_lavoir">Lavadero público de ropa</string>
<string name="poi_waste_transfer_station">Estación de transferencia de residuos</string>
<string name="poi_weightbridge">Báscula puente</string>
<string name="poi_ranger_station">Estación de guardabosque</string>
<string name="poi_ranger_station">Estación de guardabosques</string>
<string name="poi_water_source_lake">Lago</string>
<string name="poi_water_source_river">Río</string>
<string name="poi_water_source_well">Pozo</string>
@ -3881,4 +3881,14 @@
<string name="poi_wildlife_crossing_bat_bridge">Puente para murciélagos</string>
<string name="poi_wildlife_crossing">Cruce de vida silvestre</string>
<string name="poi_swimming_area">Área de natación</string>
<string name="poi_summit_register_yes">Registro de la cumbre: sí</string>
<string name="poi_summit_register_no">Registro de la cumbre: no</string>
<string name="poi_piste_status_open">Estado de la pista: abierto</string>
<string name="poi_piste_status_closed">Estado de la pista: cerrado</string>
<string name="poi_piste_ski_jump">Salto con esquís</string>
<string name="poi_piste_name">Nombre de la pista</string>
<string name="poi_patrolled_yes">Patrullado: sí</string>
<string name="poi_patrolled_no">Patrullado: no</string>
<string name="poi_mobile_library">Biblioteca móvil (parada)</string>
<string name="poi_gladed_yes">Arboleda: sí</string>
</resources>

View file

@ -742,7 +742,6 @@
<string name="avoid_motorway">Sin autopistas</string>
<string name="auto_zoom_map_descr">Nivel de zoom según la velocidad (mientras el mapa se sincroniza con la ubicación actual).</string>
<string name="auto_zoom_map">Zoom automático del mapa</string>
<string name="snap_to_road_descr">Ajusta la ubicación al camino durante la navegación.</string>
<string name="snap_to_road">Ajustar al camino</string>
<string name="interrupt_music_descr">Las indicaciones por voz pausan la reproducción de música.</string>
<string name="interrupt_music">Pausar música</string>
@ -1222,8 +1221,7 @@
<string name="osmand_net_previously_installed">Todos los datos sin conexión en la versión vieja de OsmAnd son compatibles con la nueva versión, pero los puntos de Favoritos deben exportarse desde la versión vieja y luego, importarse en la nueva.</string>
<string name="build_installed">Compilación {0} instalada ({1}).</string>
<string name="downloading_build">Descargando compilación…</string>
<string name="install_selected_build">¿Instalar OsmAnd?
\nVersión: {0}
<string name="install_selected_build">¿Instalar OsmAnd {0}\?
\nFecha: {1}
\nTamaño: {2} MB</string>
<string name="loading_builds_failed">Error al recuperar la lista de compilaciones de OsmAnd</string>
@ -1992,7 +1990,6 @@
<string name="route_stops_before">%1$s parada(s) anterior(es)</string>
<string name="rendering_attr_hideOverground_name">Objetos en superficie</string>
<string name="routing_attr_short_way_name">Ruta de bajo consumo (corta)</string>
<string name="routing_attr_short_way_description">Usa la ruta de menor consumo en combustible (usualmente la más corta).</string>
<string name="replace_favorite_confirmation">¿Reemplazar el Favorito «%1$s»?</string>
<string name="shared_string_change">Cambiar</string>
<string name="get_started">Empezar</string>
@ -2063,7 +2060,7 @@
<string name="shared_string_notifications">Notificaciones</string>
<string name="gpx_no_tracks_title">Sin archivos de trazas aún</string>
<string name="gpx_no_tracks_title_folder">También puedes añadir archivos de trazas a la carpeta</string>
<string name="gpx_add_track">Añadir GPX</string>
<string name="gpx_add_track">Añadir más…</string>
<string name="shared_string_appearance">Aspecto</string>
<string name="rendering_value_fine_name">Muy fino</string>
<string name="route_calculation">Cálculo de la ruta</string>
@ -2438,7 +2435,7 @@
<string name="average">Promedio</string>
<string name="of">%1$d de %2$d</string>
<string name="ascent_descent">Ascenso/Descenso</string>
<string name="moving_time">Tiempo moviéndose</string>
<string name="moving_time">Tiempo en movimiento</string>
<string name="max_min">Máx/Min</string>
<string name="min_max">Min/Máx</string>
<string name="rendering_value_translucent_pink_name">Rosa translúcido</string>
@ -3650,7 +3647,7 @@
<string name="system_screen_timeout">Usar el tiempo de espera de la pantalla del sistema</string>
<string name="storage_format">Formato de almacenamiento</string>
<string name="sqlite_db_file">Archivo SQLiteDB</string>
<string name="shared_string_tones">tonos</string>
<string name="shared_string_tones">toneladas</string>
<string name="shared_string_night_map">Mapa nocturno</string>
<string name="shared_string_meters">metros</string>
<string name="shared_string_delete_all_q">¿Borrar todo\?</string>
@ -3728,8 +3725,8 @@
<string name="route_between_points">Ruta entre puntos</string>
<string name="plan_a_route">Planificar ruta</string>
<string name="osm_edit_closed_note">Nota de OSM cerrada</string>
<string name="gpx_split_interval_none_descr">Marca la opción de división deseada: por tiempo o por distancia.</string>
<string name="gpx_split_interval_descr">Marca el intervalo en el que se mostrarán las marcas con distancia o tiempo en la traza.</string>
<string name="gpx_split_interval_none_descr">Elige la opción de división deseada: por tiempo o por distancia.</string>
<string name="gpx_split_interval_descr">Elige el intervalo de la traza en el que se mostrarán las marcas con la distancia o el tiempo.</string>
<string name="gpx_direction_arrows">Flechas de dirección</string>
<string name="app_mode_wheelchair_forward">Silla de ruedas (hacia adelante)</string>
<string name="app_mode_wheelchair">Silla de ruedas</string>
@ -3934,7 +3931,6 @@
<string name="plan_route_add_new_segment">Añadir nuevo segmento</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Alemán (casual)</string>
<string name="elevation_data">Puedes usar los datos de elevación para tener en cuenta el ascenso y descenso del viaje</string>
<string name="app_mode_light_aircraft">Avión ligero</string>
<string name="shared_string_last_used">Usado por última vez</string>
<string name="routing_attr_prefer_hiking_routes_name">Preferir rutas de senderismo</string>
@ -3947,32 +3943,93 @@
<string name="profile_type_user_string">Perfil de usuario</string>
<string name="profile_type_osmand_string">Perfil de OsmAnd</string>
<string name="profile_by_default_description">Elige el perfil que será usado al iniciar la aplicación.</string>
<string name="voice_prompts_timetable">Tiempo de indicaciones por voz</string>
<string name="voice_prompts_timetable">Tiempo de los avisos por voz</string>
<string name="select_folder">Elegir carpeta</string>
<string name="shared_string_folders">Carpetas</string>
<string name="change_folder">Cambiar carpeta</string>
<string name="add_online_routing_engine"></string>
<string name="edit_online_routing_engine"></string>
<string name="shared_string_subtype"></string>
<string name="shared_string_vehicle"></string>
<string name="shared_string_api_key"></string>
<string name="shared_string_server_url"></string>
<string name="shared_string_enter_param"></string>
<string name="keep_it_empty_if_not"></string>
<string name="online_routing_example_hint"></string>
<string name="test_route_calculation"></string>
<string name="routing_engine_vehicle_type_driving"></string>
<string name="routing_engine_vehicle_type_foot"></string>
<string name="routing_engine_vehicle_type_bike"></string>
<string name="routing_engine_vehicle_type_car"></string>
<string name="message_error_recheck_parameters"></string>
<string name="copy_address"></string>
<string name="online_routing_engine"></string>
<string name="online_routing_engines"></string>
<string name="select_folder_descr"></string>
<string name="shared_string_empty"></string>
<string name="analyze_by_intervals"></string>
<string name="upload_to_openstreetmap"></string>
<string name="edit_track"></string>
<string name="rename_track"></string>
<string name="add_online_routing_engine">Añadir motor de navegación en línea</string>
<string name="edit_online_routing_engine">Editar motor de navegación en línea</string>
<string name="shared_string_subtype">Subtipo</string>
<string name="shared_string_vehicle">Vehículo</string>
<string name="shared_string_api_key">Clave de la API</string>
<string name="shared_string_server_url">URL del servidor</string>
<string name="shared_string_enter_param">Ingresa parámetro</string>
<string name="keep_it_empty_if_not">Si no, mantenerlo vacío</string>
<string name="online_routing_example_hint">La URL con todos los parámetros se verá así:</string>
<string name="test_route_calculation">Cálculo de la ruta de prueba</string>
<string name="routing_engine_vehicle_type_driving">Automóvil</string>
<string name="routing_engine_vehicle_type_foot">Peatón</string>
<string name="routing_engine_vehicle_type_bike">Bicicleta</string>
<string name="routing_engine_vehicle_type_car">Automóvil</string>
<string name="message_error_recheck_parameters"/>
<string name="copy_address">Copiar dirección</string>
<string name="online_routing_engine">Motor de navegación en línea</string>
<string name="online_routing_engines">Motores de navegación en línea</string>
<string name="select_folder_descr">Elegir carpeta o añadir una nueva</string>
<string name="shared_string_empty">Vacío</string>
<string name="analyze_by_intervals">Analizar intervalos divididos</string>
<string name="upload_to_openstreetmap">Subir a OpenStreetMap</string>
<string name="edit_track">Editar traza</string>
<string name="rename_track">Renombrar traza</string>
<string name="uploading_count">Subiendo %1$d de %2$d</string>
<string name="uploaded_count">Se subieron %1$d de %2$d</string>
<string name="upload_photo_completed">Subida completa</string>
<string name="upload_photo">Subiendo</string>
<string name="toast_select_edits_for_upload">Marcar ediciones a subir</string>
<string name="start_recording">Iniciar grabación</string>
<string name="show_track_on_map">Mostrar traza en el mapa</string>
<string name="shared_string_turn">Girar</string>
<string name="shared_string_sec">seg</string>
<string name="routing_engine_vehicle_type_wheelchair">Silla de ruedas</string>
<string name="routing_engine_vehicle_type_walking">Peatón</string>
<string name="routing_engine_vehicle_type_truck">Camión</string>
<string name="routing_engine_vehicle_type_small_truck">Camión pequeño</string>
<string name="routing_engine_vehicle_type_scooter">Motoneta</string>
<string name="routing_engine_vehicle_type_racingbike">Bicicleta de carreras</string>
<string name="routing_engine_vehicle_type_mtb">Bicicleta de montaña</string>
<string name="routing_engine_vehicle_type_hiking">Senderismo</string>
<string name="routing_engine_vehicle_type_hgv">Vehículos pesados</string>
<string name="routing_engine_vehicle_type_cycling_road">Ciclismo de ruta</string>
<string name="routing_engine_vehicle_type_cycling_regular">Ciclismo regular</string>
<string name="routing_engine_vehicle_type_cycling_mountain">Ciclismo de montaña</string>
<string name="routing_engine_vehicle_type_cycling_electric">Ciclismo eléctrico</string>
<string name="opr_use_dev_url">Usar test.openplacereviews.org</string>
<string name="open_place_reviews_plugin_description">OpenPlaceReviews es un proyecto impulsado por la comunidad sobre lugares públicos como restaurantes, hoteles, museos, puntos de referencia. Recoge toda la información pública sobre ellos como fotos, reseñas, enlaces a otros servicios como OpenStreetMap y Wikipedia.
\n
\nTodos los datos de OpenPlaceReviews son abiertos y están disponibles para todos: http://openplacereviews.org/data.
\n
\nPuedes leer más en: https://openplacereviews.org</string>
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="message_server_error">Error de servidor: %1$s</string>
<string name="message_name_is_already_exists">El nombre ya existe</string>
<string name="login_open_place_reviews">Acceder a OpenPlaceReviews</string>
<string name="hillshade_slope_contour_lines">Sombreado / Pendiente / Curvas de nivel</string>
<string name="delete_waypoints">Borrar puntos de referencia</string>
<string name="delete_online_routing_engine">¿Borrar este motor de navegación en línea\?</string>
<string name="copy_to_map_markers">Copiar a «Marcadores del mapa»</string>
<string name="copy_to_map_favorites">Copiar a favoritos</string>
<string name="context_menu_read_full">Leer completo</string>
<string name="context_menu_edit_descr">Editar descripción</string>
<string name="announcement_time_title">Tiempo de anuncio</string>
<string name="announcement_time_prepare_long">Preparación larga</string>
<string name="announcement_time_prepare">Preparar</string>
<string name="announcement_time_passing">Pasando</string>
<string name="announcement_time_off_route">Fuera de la ruta</string>
<string name="announcement_time_intervals">Intervalos de tiempo y distancia</string>
<string name="announcement_time_descr">El tiempo de anuncio de las diferentes indicaciones por voz depende del tipo de mensaje, la velocidad de navegación actual y la velocidad de navegación predefinida.</string>
<string name="announcement_time_arrive">Has llegado al destino</string>
<string name="announcement_time_approach">Acercarse</string>
<string name="activity_type_winter_name">Invierno</string>
<string name="activity_type_water_name">Agua</string>
<string name="activity_type_walking_name">Peatón</string>
<string name="activity_type_snowmobile_name">Motonieve</string>
<string name="activity_type_running_name">Correr</string>
<string name="activity_type_riding_name">Equitación</string>
<string name="activity_type_racing_name">Carreras</string>
<string name="activity_type_offroad_name">Todo terreno</string>
<string name="activity_type_mountainbike_name">Bicicleta de montaña</string>
<string name="activity_type_motorbike_name">Motocicleta</string>
<string name="activity_type_hiking_name">Senderismo</string>
<string name="activity_type_cycling_name">Bicicleta</string>
<string name="activity_type_car_name">Automóvil</string>
</resources>

View file

@ -825,7 +825,6 @@
\n - Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas
\n</string>
<string name="avoid_motorway">Sin autopistas</string>
<string name="snap_to_road_descr">Ajusta la ubicación al camino durante la navegación.</string>
<string name="snap_to_road">Ajustar al camino</string>
<string name="context_menu_item_first_intermediate_point">Añadir como primer destino intermedio</string>
<string name="context_menu_item_last_intermediate_point">Añadir como último destino intermedio</string>
@ -1988,7 +1987,6 @@
<string name="update_all_maps_now">¿Actualizar todos los mapas ahora?</string>
<string name="clear_tile_data">Limpiar todas las teselas</string>
<string name="routing_attr_short_way_name">Ruta de bajo consumo (corta)</string>
<string name="routing_attr_short_way_description">Usa la ruta de menor consumo en combustible (usualmente la más corta).</string>
<string name="replace_favorite_confirmation">¿Reemplazar el Favorito «%1$s»?</string>
<string name="rendering_attr_hideOverground_name">Objetos en superficie</string>
<string name="shared_string_change">Cambiar</string>
@ -3927,7 +3925,6 @@
<string name="select_items_for_import">Seleccione los elementos que se importarán.</string>
<string name="use_dev_url_descr">Cambie para usar dev.openstreetmap.org en lugar de openstreetmap.org para probar la carga de OSM Note / POI / GPX.</string>
<string name="use_dev_url">Usar dev.openstreetmap.org</string>
<string name="elevation_data">Puede utilizar los datos de elevación para tener en cuenta el ascenso/descenso de su viaje</string>
<string name="app_mode_light_aircraft">Aeronave ligera</string>
<string name="plan_route_join_segments">Unir segmentos</string>
<string name="plan_route_split_before">Dividir antes</string>

View file

@ -1469,7 +1469,6 @@
<string name="routing_attr_prefer_motorway_name">Eelista kiirteid</string>
<string name="routing_attr_prefer_motorway_description">Eelista kiirteid</string>
<string name="routing_attr_short_way_name">Kütusesäästlik tee</string>
<string name="routing_attr_short_way_description">Kasuta kütusesäästlikku teed (tavaliselt lühem).</string>
<string name="routing_attr_avoid_toll_name">Väldi tasulisi teid</string>
<string name="routing_attr_avoid_toll_description">Väldib tasulisi teid</string>
<string name="routing_attr_avoid_unpaved_name">Väldi sillutamata teid</string>
@ -1691,7 +1690,6 @@
<string name="use_compass_navigation">Kasuta kompassi</string>
<string name="avoid_motorway">Väldi kiirteid</string>
<string name="auto_zoom_map">Automaatne kaardi suurendamine</string>
<string name="snap_to_road_descr">Hoia navigeerimise ajal asukoht teel.</string>
<string name="snap_to_road">Kinnitu teele</string>
<string name="interrupt_music_descr">Hääljuhised peatavad muusika esitamise.</string>
<string name="interrupt_music">Peata muusika</string>
@ -3841,7 +3839,6 @@
<string name="markers_history">Markerite ajalugu</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="app_mode_light_aircraft">Kerglennukid</string>
<string name="elevation_data">Võid kasutada kõugusandmeid teekonna tõusu ja laskumise arvutamisel</string>
<string name="plan_route_add_new_segment">Lisa uus lõik</string>
<string name="plan_route_split_after">Tükelda pärast</string>
<string name="plan_route_split_before">Tükelda enne</string>

View file

@ -234,7 +234,6 @@
<string name="avoid_motorway">Autobiderik ez</string>
<string name="auto_zoom_map_descr">Zooma maila abiaduraren arabera (mapa uneko kokapenarekin sinkronizatua dagoela).</string>
<string name="auto_zoom_map">Auto zoom-a egin mapan</string>
<string name="snap_to_road_descr">Atxikitu kokapena errepidera nabigatu bitartean.</string>
<string name="snap_to_road">Atxikitu errepidera</string>
<string name="osmand_play_title_30_chars">OsmAnd Maps &amp; Nabigazioa</string>
<string name="osmand_short_description_80_chars">Mapa ikusle eta nabigatzaile mugikor globala lineaz kanpoko eta sare bidezko OSM mapetarako</string>
@ -1996,7 +1995,6 @@ mapak eta nabigazioa</string>
<string name="update_all_maps_now">Eguneratu mapa guztiak orain?</string>
<string name="clear_tile_data">Garbitu tesela guztiak</string>
<string name="routing_attr_short_way_name">Bide erregai-efizientea</string>
<string name="routing_attr_short_way_description">Erabili bide erregai-efizientea (normalean laburragoa).</string>
<string name="replace_favorite_confirmation">Ziur %1$s gogokoa ordezkatu nahi duzula?</string>
<string name="shared_string_change">Aldatu</string>
<string name="get_started">Hasi</string>

View file

@ -503,7 +503,6 @@
<string name="show_warnings_descr">پیکربندی‌های مربوط به هشدارهای ترافیکی (مانند محدودیت‌های سرعت، توقف‌های اجباری، سرعتگیرها، تونل‌ها)، اخطارهای دوربین سرعت و اطلاعات خط عبوری را انجام دهید.</string>
<string name="use_compass_navigation_descr">اگر جهت شناسایی نشد از قطب‌نما استفاده شود.</string>
<string name="avoid_motorway">آزادراه</string>
<string name="snap_to_road_descr">در هنگام ناوبری، موقعیت را به جاده‌ها بچسبان.</string>
<string name="snap_to_road">چسبیدن به راه</string>
<string name="osmand_play_title_30_chars">نقشه و ناوبری با OsmAnd</string>
<string name="osmand_short_description_80_chars">برنامهٔ همراه برای مشاهدهٔ نقشه جهانی و ناوبری با نقشه‌های آفلاین و آنلاین OSM</string>
@ -1651,7 +1650,6 @@
<string name="update_all_maps_now">اکنون همهٔ نقشه‌ها را به‌روز می‌کنید؟</string>
<string name="clear_tile_data">پاک‌کردن همهٔ کاشی‌ها</string>
<string name="routing_attr_short_way_name">راه صرفه‌جویی سوخت</string>
<string name="routing_attr_short_way_description">انتخاب راه مناسب برای مصرف سوخت کمتر (معمولاً کوتاه‌تر).</string>
<string name="replace_favorite_confirmation">آیا این نقطهٔ جدید را جانشین «%1$s» می‌کنید؟</string>
<string name="rendering_attr_hideOverground_name">اشیای روی زمین</string>
<string name="shared_string_change">تغییر</string>

View file

@ -33,7 +33,6 @@
<string name="use_compass_navigation">Käytä kompassia</string>
<string name="avoid_motorway">Vältä moottoriteitä</string>
<string name="auto_zoom_map">Automaattinen kartan zoomaus</string>
<string name="snap_to_road_descr">Kiinnitä sijainti teihin navigoinnin aikana</string>
<string name="snap_to_road">Kiinnitä tiehen</string>
<string name="osmand_short_description_80_chars">OsmAnd on avoimen lähdekoodin navigointisovellus offline ja online kartoille</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd on avoimen lähdekoodin navigointisovellus offline ja online kartoille</string>
@ -876,7 +875,6 @@ Maailmanlaajuiset tiedot (välillä 70 astetta pohjoista ja 70 astetta eteläist
<string name="update_all_maps_now">Päivitetäänkö kaikki kartat nyt?</string>
<string name="clear_tile_data">Poista kaikki tiilet</string>
<string name="routing_attr_short_way_name">Polttoainetaloudellinen reitti</string>
<string name="routing_attr_short_way_description">Käytä polttoainetta säästävää reittiä (tavallisesti lyhin).</string>
<string name="shared_string_change">Muuta</string>
<string name="get_started">Aloita</string>
<string name="coords_search">Koordinaattihaku</string>

View file

@ -781,7 +781,6 @@
<string name="int_continuosly">En continu</string>
<string name="osmand_short_description_80_chars">Logiciel de cartographie et de navigation fonctionnant avec des cartes OSM hors-ligne et en ligne</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd est un logiciel libre de navigation pouvant fonctionner avec des cartes hors-ligne ou en ligne</string>
<string name="snap_to_road_descr">Déplacer la position sur la route en cours de navigation.</string>
<string name="snap_to_road">Déplacer sur la route</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
\n
@ -1984,7 +1983,6 @@
<string name="shared_string_change">Modifier</string>
<string name="get_started">Démarrer</string>
<string name="routing_attr_short_way_name">Trajet économe en carburant</string>
<string name="routing_attr_short_way_description">Suivre un trajet économe en carburant (habituellement plus court).</string>
<string name="skip_map_downloading">Ignorer le téléchargement des cartes</string>
<string name="skip_map_downloading_desc">Aucune carte hors ligne n\'est installée. Vous pouvez sélectionner une carte dans la liste ou télécharger une carte plus tard depuis le menu « %1$s».</string>
<string name="search_another_country">Sélectionner une autre région</string>
@ -3290,7 +3288,7 @@
<string name="added_profiles_descr">Profils ajoutés par le greffon</string>
<string name="shared_string_turn_off">Désactiver</string>
<string name="new_plugin_added">Nouveau greffon ajouté</string>
<string name="join_segments">Relier les segments</string>
<string name="join_segments">Joindre les segments</string>
<string name="add_new_profile_q">Ajouter le profil \'%1$s\' \?</string>
<string name="save_heading">Inclure la direction</string>
<string name="save_heading_descr">Inclure la direction de chaque point lors de l\'enregistrement d\'une trace.</string>
@ -3907,7 +3905,6 @@
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Allemand (courant)</string>
<string name="app_mode_light_aircraft">Aviation légère</string>
<string name="elevation_data">Vous pouvez utiliser l\'altitude pour prendre en compte le dénivellé de votre itinéraire</string>
<string name="gpx_upload_trackable_visibility_descr">« Traçable » signifie que la trace ne s\'affichera pas dans les listes publiques, mais que les points de cheminement horodatés qu\'elle contient seront téléchargeables depuis l\'API GPS publique (ces points sont traités afin de n\'avoir aucun lien direct avec vous).</string>
<string name="release_3_9">• Ajout d\'une option pour exporter et importer toutes les données, y compris les paramètres, les ressources, mes lieux
\n

View file

@ -494,7 +494,6 @@
<string name="avoid_motorway">Sen autoestradas</string>
<string name="auto_zoom_map_descr">Variar o achegamento do mapa segundo a velocidade (mentres o mapa estiver sincronizado coa posición actual).</string>
<string name="auto_zoom_map">Achegamento automático do mapa</string>
<string name="snap_to_road_descr">Axustar a posición ás estradas durante a navegación.</string>
<string name="snap_to_road">Axustar á estrada</string>
<string name="interrupt_music_descr">As indicacións por voz deteñen a reprodución de música.</string>
<string name="interrupt_music">Deter a música</string>
@ -1976,7 +1975,6 @@ Lon %2$s</string>
<string name="access_tree_list">Listaxe en árbore</string>
<string name="osmand_plus_banner_desc">Descargas ilimitadas dos mapas, actualizacións e plugin da Wikipedia.</string>
<string name="routing_attr_short_way_name">Camiño con aforro no combustíbel</string>
<string name="routing_attr_short_way_description">Empregar o camiño con aforro no combustíbel (normalmente máis curto).</string>
<string name="shared_string_change">Mudar</string>
<string name="get_started">Comezar</string>
<string name="route_stops_before">%1$s paradas antes</string>
@ -3928,7 +3926,6 @@ Lon %2$s</string>
\nWeb / Wikimedia - imaxes POI segundo datos do OpenStreetMap.</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Alemán casual</string>
<string name="elevation_data">Podes empregar os datos de elevación para ter en conta o ascenso e descenso da viaxe</string>
<string name="app_mode_light_aircraft">Avión lixeiro</string>
<string name="plan_route_join_segments">Unir segmentos</string>
<string name="plan_route_split_before">Dividir antes</string>

View file

@ -822,7 +822,6 @@
\n</string>
<string name="osmand_plus_short_description_80_chars">Globális mobil térkép és navigáció, offline és online OSM térképekkel</string>
<string name="avoid_motorway">Autópálya nélkül</string>
<string name="snap_to_road_descr">Úthoz rögzítés navigáció közben.</string>
<string name="snap_to_road">Úthoz illesztés</string>
<string name="add_as_last_destination_point">Hozzáadás utolsó köztes célpontként</string>
<string name="add_as_first_destination_point">Hozzáadás első köztes célpontként</string>
@ -2010,7 +2009,6 @@
<string name="update_all_maps_now">Frissíted most az összes térképet?</string>
<string name="clear_tile_data">Összes csempe törlése</string>
<string name="routing_attr_short_way_name">Üzemanyag-takarékos útvonal</string>
<string name="routing_attr_short_way_description">Üzemanyag-takarékos útvonal tervezése (általában rövidebb).</string>
<string name="replace_favorite_confirmation">Lecseréled a(z) %1$s Kedvencet\?</string>
<string name="driving_region_australia">Ausztrália</string>
<string name="get_for">Beszerzés %1$s-ért</string>
@ -3912,7 +3910,6 @@
<string name="select_picture">Kép kijelölése</string>
<string name="lang_de_casual">német (tegeződő)</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">A magassági adatok felhasználásával figyelembe veheti az utazás során az emelkedést / lejtést</string>
<string name="app_mode_light_aircraft">Könnyű légi jármű</string>
<string name="plan_route_split_before">Elvágás előtte</string>
<string name="plan_route_split_after">Elvágás utána</string>

View file

@ -430,7 +430,6 @@
<string name="update_all_maps_now">Թարմացնել բոլոր քարտեզները հիմա?</string>
<string name="clear_tile_data">Ջնջել բոլոր տայլերը</string>
<string name="routing_attr_short_way_name">Վառելիք տնտեսող ճանապարհ</string>
<string name="routing_attr_short_way_description">Կիրառել վառելիք տնտեսող ճանապարհ (սովորաբար ավելի կարճ)։</string>
<string name="replace_favorite_confirmation">Վստահ եք, որ ցանկանում եք փոխարինել Սիրածները %1$s\?</string>
<string name="rendering_attr_hideOverground_name">Վերգետնյա օբյեկտներ</string>
<string name="shared_string_change">Փոխել</string>
@ -1437,7 +1436,6 @@
<string name="avoid_motorway">Առանց ավտոմայրուղիներից</string>
<string name="auto_zoom_map_descr">Ավտոմատ կերպով փոխել քարտեզի մասշտաբը ըստ արագությանը։</string>
<string name="auto_zoom_map">Ավտո-մասշտաբ</string>
<string name="snap_to_road_descr">Կապել ընթացիկ դիրքը ճանապարհին։</string>
<string name="snap_to_road">Կապել ճանապարհին</string>
<string name="interrupt_music_descr">Ձայնային հրահանգներ դադարեցնում են երաժշտության նվագումը։</string>
<string name="interrupt_music">Ընդհատել երաժշտությունը</string>

View file

@ -424,7 +424,6 @@
<string name="update_all_maps_now">Apakah anda ingin memperbahurui semua peta sekarang?</string>
<string name="clear_tile_data">Bersihkan Semua ubin</string>
<string name="routing_attr_short_way_name">Cara hemat bahan bakar</string>
<string name="routing_attr_short_way_description">Gunakan cara hemat bahan bakar (biasanya lebih pendek).</string>
<string name="replace_favorite_confirmation">Apakah kamu yakin kamu ingin mengganti favorit %1$s?</string>
<string name="rendering_attr_hideOverground_name">Benda-benda di atas tanah</string>
<string name="shared_string_change">Ganti</string>

View file

@ -1374,7 +1374,6 @@
<string name="get_it">Ná í það</string>
<string name="get_for">Ná í það fyrir %1$s</string>
<string name="routing_attr_short_way_name">Leið með hagkvæmri eldsneytisnýtingu</string>
<string name="routing_attr_short_way_description">Nota leið með hagkvæmri eldsneytisnýtingu (venjulega styttri).</string>
<string name="replace_favorite_confirmation">Ertu viss að þú viljir skipta út eftirlætinu %1$s?</string>
<string name="confirmation_to_delete_history_items">Fjarlægja valin atriði úr breytingaskránni?</string>
<string name="change_markers_position">Breyta staðsetningu kortamerkis</string>
@ -1835,7 +1834,6 @@
<string name="close_changeset">Loka breytingasetti</string>
<string name="use_compass_navigation_descr">Nota áttavita þegar stefna finnst ekki á annan máta.</string>
<string name="auto_zoom_map_descr">Sjálfvirkur aðdráttur korts miðað við hraða þinn (á meðan kort er samstillt við virka staðsetningu).</string>
<string name="snap_to_road_descr">Staðsetning grípi í vegi á meðan leiðsögn stendur.</string>
<string name="interrupt_music_descr">Gera hlé á tónlist á meðan talskilaboð eru flutt.</string>
<string name="do_not_send_anonymous_app_usage">Ekki senda nafnlausar upplýsingar um notkun forritsins</string>
<string name="do_not_send_anonymous_app_usage_desc">OsmAnd sendir almennar upplýsingar um þá hluta forritsins sem þó opnar. Við söfnum ekki neinum gögnum um staðsetningar eða hegðun notenda, né heldur um neitt af því sem notendur setja inn til leitar, niðurhald eða skoðunar.</string>
@ -3904,7 +3902,6 @@
<string name="register_on_openplacereviews_desc">Ljósmyndir eru í boði frá opna gagnaverkefninu OpenPlaceReviews.org. Til að geta sent inn myndir þarftu að skrá þig á vefsvæðinu þeirra.</string>
<string name="osm_edit_comment_note">Gera athugasemd við OSM-minnispunkt</string>
<string name="gpx_upload_trackable_visibility_descr">\"Rekjanlegt\" þýðir að ferillinn birtist ekki á neinum opinberum listum, en meðhöndlaðir ferilpunktar með tímamerkjum úr ferlinum (sem ekki er hægt að tengja beint við þig) munu birtast í gögnum sem eru sótt í gegnum opinbert GPS API-forritsviðmót.</string>
<string name="elevation_data">Þú getur notað hæðargögn til útreikninga á hækkun/lækkun í ferðunum þínum</string>
<string name="add_photos_descr">OsmAnd birtir ljósmyndir frá ýmsum þjónustum:
\nOpenPlaceReviews - ljósmyndir POI-merkisstaða;
\nMapillary - myndefni í götuhæð;

View file

@ -791,7 +791,6 @@
\n - Allineamento della mappa in base alla direzione o alla bussola
\n - Indicazioni di corsia, indicazione del limite di velocità, voci registrate e dal testo-alla-voce
\n</string>
<string name="snap_to_road_descr">Blocca la posizione sulle strade durante la navigazione.</string>
<string name="snap_to_road">Blocca sulle strade</string>
<string name="avoid_motorway">Evita le autostrade</string>
<string name="intermediate_point_too_far">La destinazione intermedia %1$s è troppo lontana dalla strada più vicina.</string>
@ -1981,7 +1980,6 @@
<string name="lang_hsb">Sorabo superiore</string>
<string name="rendering_attr_hideOverground_name">Oggetti sopra il terreno</string>
<string name="routing_attr_short_way_name">Percorso più efficiente rispetto ai consumi</string>
<string name="routing_attr_short_way_description">Utilizza la via migliore rispetto ai consumi (di solito la più breve).</string>
<string name="replace_favorite_confirmation">Sei sicuro di voler sostituire il preferito %1$s?</string>
<string name="shared_string_change">Cambia</string>
<string name="get_started">Inizia</string>
@ -3910,7 +3908,6 @@
<string name="select_picture">Scegli la foto</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Tedesco (informale)</string>
<string name="elevation_data">Puoi utililizzare i dati dell\'altitudine per valutare la Salita/Discesa del tuo percorso</string>
<string name="app_mode_light_aircraft">Ultraleggeri</string>
<string name="plan_route_split_after">Spezza dopo</string>
<string name="plan_route_add_new_segment">Aggiungi un nuovo segmento</string>

View file

@ -47,7 +47,6 @@
<string name="avoid_motorway">ללא כבישים סלולים</string>
<string name="auto_zoom_map_descr">תקריב המפה בהתאמה אוטומטית למהירות (בעוד שהמפה מסתנכרנת עם המיקום הנוכחי).</string>
<string name="auto_zoom_map">שינוי תקריב אוטומטי במפה</string>
<string name="snap_to_road_descr">הצמדת המיקום לדרכים במהלך הניווט.</string>
<string name="snap_to_road">הצמדה לדרך</string>
<string name="osmand_short_description_80_chars">OsmAnd הנו יישומון צפייה במפות וניווט עם מפות מקוונות ובלתי מקוונות של OSM</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd הנו יישום ניווט בקוד פתוח עבור מפות מקוונות ובלתי מקוונות</string>
@ -2023,7 +2022,6 @@
<string name="update_all_maps_now">לעדכן את כל המפות כעת?</string>
<string name="clear_tile_data">מחיקת כל האריחים</string>
<string name="routing_attr_short_way_name">דרך חסכונית בדלק</string>
<string name="routing_attr_short_way_description">שימוש בדרך חסכונית בדלק (בד״כ קצרה יותר).</string>
<string name="replace_favorite_confirmation">להחליף את המועדף %1$s?</string>
<string name="rendering_attr_hideOverground_name">עצמים מעל הקרקע</string>
<string name="shared_string_change">שינוי</string>
@ -3920,7 +3918,6 @@
<string name="select_picture">בחירת תמונה</string>
<string name="lang_de_casual">גרמנית (עממית)</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">אפשר להשתמש בנתוני רום לצורך חישוב עליה/ירידה במהלך הטיול</string>
<string name="app_mode_light_aircraft">כלי טיס קל</string>
<string name="plan_route_join_segments">צירוף מקטעים</string>
<string name="plan_route_split_before">לפצל לפני</string>

View file

@ -687,7 +687,6 @@ POIの更新は利用できません</string>
<string name="use_compass_navigation_descr">方向が全く検出できない場合電子コンパスを使用します</string>
<string name="use_compass_navigation">電子コンパスを使用</string>
<string name="avoid_motorway">高速道路を使わない</string>
<string name="snap_to_road_descr">有効化でナビゲーション中は現在位置が道路から外れないようになります</string>
<string name="snap_to_road">道路に合わせる</string>
<string name="osmand_play_title_30_chars">OsmAnd Maps &amp; Navigation</string>
<string name="osmand_short_description_80_chars">OSMオフラインオンライン両対応、グローバルモバイルマップナビゲーション</string>
@ -2097,7 +2096,6 @@ POIの更新は利用できません</string>
<string name="shared_string_record">記録</string>
<string name="gpx_logging_no_data">データなし</string>
<string name="routing_attr_short_way_name">燃費を抑えたルート</string>
<string name="routing_attr_short_way_description">燃費を抑えることを重視した(通常より短い)ルートを優先します。</string>
<string name="clear_tile_data">すべてのタイルを消去</string>
<string name="navigate_point_olc">オープンロケーションコード(OLC)</string>
<string name="navigate_point_olc_info_invalid">OLCの値が正しくありません</string>

View file

@ -812,7 +812,6 @@
<string name="poi_filter_restaurants">რესტორნები</string>
<string name="poi_filter_sightseeing">ღირსშესანიშნაობები</string>
<string name="avoid_motorway">მოტოციკლეტის გზებისათვის თავის არიდება</string>
<string name="snap_to_road_descr">ნავიგაციისას პიზიციის გზებისათვის მიბმა.</string>
<string name="snap_to_road">გზისთვის მიბმა</string>
<string name="osmand_short_description_80_chars">OsmAnd არის ნავიგაციის აპლიკაცია ღია წყაროთი გათიშული და ონლაინ რუკების მხარდაჭერით</string>
<string name="map_widget_intermediate_distance">შუალედური დანიშნულების პუნქტი</string>

View file

@ -888,7 +888,6 @@
<string name="use_compass_navigation_descr">GPS로 진행방향이 탐지되지 않을 때 나침반을 사용</string>
<string name="use_compass_navigation">나침반 사용</string>
<string name="avoid_motorway">전용도로 회피</string>
<string name="snap_to_road_descr">운행하는 동안 차량을 도로에 밀착시킴</string>
<string name="snap_to_road">도로에 밀착</string>
<string name="osmand_play_title_30_chars">OsmAnd 지도 및 내비게이션</string>
<string name="osmand_short_description_80_chars">글로벌 모바일 맵 뷰어 및 오프라인 및 온라인 OSM 지도를 위한 운행</string>

View file

@ -774,7 +774,6 @@
<string name="map_widget_renderer">Atvaizdavimo stilius</string>
<string name="osmand_short_description_80_chars">OsmAnd - atviro kodo navigacijos programa su interneto/parsiųstais žemėlapius</string>
<string name="avoid_motorway">Vengti greitkelių</string>
<string name="snap_to_road_descr">Poziciją rodyti ant kelių kai naviguojama.</string>
<string name="snap_to_road">Rodyti ant kelio</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
\n
@ -1949,7 +1948,6 @@ Tai yra puikus būdas paremti OsmAnd ir OSM, jei jie jums patinka.</string>
<string name="share_history_subject">bendrinta iš OsmAnd</string>
<string name="update_all_maps_now">Ar norite atnaujinti visus žemėlapius?</string>
<string name="routing_attr_short_way_name">Taupus kelias</string>
<string name="routing_attr_short_way_description">Važiuoti taupiuoju keliu (paprastai trumpesnis).</string>
<string name="rendering_attr_hideOverground_name">Antžeminiai objektai</string>
<string name="shared_string_change">Pakeisti</string>
<string name="get_started">Pradėti</string>

View file

@ -789,7 +789,6 @@
<string name="poi_filter_restaurants">Restorāni</string>
<string name="poi_filter_sightseeing">Apskates vietas</string>
<string name="avoid_motorway">Izvairīties no automaģistrālēm</string>
<string name="snap_to_road_descr">Navigācijas laikā tuvināt ceļam</string>
<string name="snap_to_road">Tuvināt ceļam</string>
<string name="osmand_short_description_80_chars">OsmAnd ir atvērtā koda navigācijas lietotne bezsaistes un tiešsaistes kartēm</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
@ -1948,7 +1947,6 @@ failu(s)?
<string name="update_all_maps_now">Vai vēlaties atjaunot visas kartes?</string>
<string name="clear_tile_data">Iztīrīt bilžu kešatmiņu</string>
<string name="routing_attr_short_way_name">Ekonomiskais maršruts</string>
<string name="routing_attr_short_way_description">Lietot ekonomisko maršrutu (parasti īsākais).</string>
<string name="replace_favorite_confirmation">Vai nomainīt izlases vienību %1$s?</string>
<string name="rendering_attr_hideOverground_name">Virszemes objektus</string>
<string name="shared_string_change">Mainīt</string>

View file

@ -505,7 +505,6 @@
<string name="get_for">%1$s മേടിക്കുക</string>
<string name="si_mi_meters">"മൈല്‍/മീറ്റര്‍ "</string>
<string name="routing_attr_short_way_name">"മൈലേജ് കൂടുതലുള്ള വഴി "</string>
<string name="routing_attr_short_way_description">മൈലേജ് കൂടുതലുള്ള വഴി ഉപയോഗിക്കുക</string>
<string name="get_started">തുടങ്ങുക</string>
<string name="back_to_search">തെരച്ചിലിലോട്ട് തിരിച്ച് പോവുക</string>
<string name="confirmation_to_delete_history_items">തെരഞ്ഞെടുത്തവ ഹിസ്റ്ററിയില്‍ നിന്നും നീക്കട്ടെ?</string>
@ -978,7 +977,6 @@
<string name="index_srtm_parts">കഷണങ്ങള്‍</string>
<string name="close_changeset">"ചേഞ്ച്സെറ്റ് അടയ്ക്കുക"</string>
<string name="show_warnings_title">മുന്നറിയിപ്പുകള്‍ കാണിക്കുക…</string>
<string name="snap_to_road_descr">റോഡില്‍ തന്നെ നിന്ന് വഴികാട്ടുക</string>
<string name="context_menu_item_add_parking_point">"പാര്‍ക്കിങ്ങ് ആയി രേഖപ്പെടുത്തുക "</string>
<string name="support_new_features">"പുതിയതായുള്ള സവിശേഷതകള്‍ "</string>
<string name="show_ruler_level">സ്കേല്‍ കാണിക്കുക</string>

View file

@ -41,7 +41,6 @@
<string name="avoid_motorway">Ingen motorveier</string>
<string name="auto_zoom_map_descr">Zoomnivå i henhold til hastigheten din (mens kartet er synkronisert med gjeldende posisjon).</string>
<string name="auto_zoom_map">Auto-zoom kart</string>
<string name="snap_to_road_descr">Hold posisjon på veien under navigering.</string>
<string name="snap_to_road">Hold på vei</string>
<string name="osmand_short_description_80_chars">Global mobilkartvisning &amp; navigering for offline og nettbaserte OSM-kart</string>
<string name="osmand_plus_short_description_80_chars">Global mobilkartvisning &amp; navigering for offline og nettbaserte OSM-kart</string>
@ -1558,7 +1557,6 @@
<string name="replace_favorite_confirmation">Er du sikker på at du vil erstatte favoritt %1$s\?</string>
<string name="get_started">Kom i gang</string>
<string name="routing_attr_short_way_name">Drivstoff-effektiv vei</string>
<string name="routing_attr_short_way_description">Bruk drivstoffeffektiv vei (vanligvis kortere).</string>
<string name="edit_tilesource_expiration_time">Utløper (minutter)</string>
<string name="local_index_tile_data_expire">Utløper (minutter): %1$s</string>
<string name="current_track">Aktuelle spor</string>
@ -3846,7 +3844,6 @@
\nOpenPlaceReviews - interessepunktbilder;
\nMapillary - bilder på gatenivå;
\nWeb / Wikimedia - interessepunktbilder i henhold til OpenStreetMap-data.</string>
<string name="elevation_data">Du kan bruke høydedata for å ta hensyn til stigning/nedstigning på turen din</string>
<string name="app_mode_light_aircraft">Småfly</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Tysk (uformell)</string>

View file

@ -790,7 +790,6 @@
\n - Rijstrookindicatie, snelheidswaarschuwingen en stembegeleiding met opgenomen- en TTS-stemmen
\n</string>
<string name="avoid_motorway">Geen snelwegen</string>
<string name="snap_to_road_descr">Positie op de weg uitlijnen tijdens navigatie.</string>
<string name="snap_to_road">Positie op de weg uitlijnen</string>
<string name="intermediate_point_too_far">Tussenpunt %1$s te ver van dichtstbijzijnde weg.</string>
<string name="arrived_at_intermediate_point">Je bent aangekomen op je Tussenpunt</string>
@ -1982,7 +1981,6 @@
<string name="shared_string_change">Wijzig</string>
<string name="get_started">Aan de slag</string>
<string name="routing_attr_short_way_name">Economische route</string>
<string name="routing_attr_short_way_description">Economische route gebruiken (meestal korter).</string>
<string name="replace_favorite_confirmation">Wil je Favoriet %1$s inderdaad vervangen\?</string>
<string name="update_all_maps_now">Nu alle kaarten updaten\?</string>
<string name="si_mi_meters">Mijl/meter</string>
@ -3941,7 +3939,6 @@
\nOpenPlaceReviews - foto\'s van interessepunten;
\nMapillary - foto\'s vanop straatniveau;
\nWikimedia / het Web - foto\'s van interessepunten zoals gelinkt in OpenStreetMap.</string>
<string name="elevation_data">Je kan hoogtedata gebruiken om het hoogteverschil van je route te berekenen</string>
<string name="release_3_9">• Een optie is toegevoegd om alle data te exporten, waaronder instellingen, andere bronnen en mijn plaatsen
\n
\n • Plan een route: diagram met individuele segmenten is toegevoegd, verschillende segmenten kunnen nu gemaakt en aangepast worden

View file

@ -796,7 +796,6 @@
\nOsmAnd jest aktywnie rozwijany i dalszy rozwój jest uzależniony od wkładu pieniężnego na finansowanie rozwoju i testowania nowych funkcjonalności. Proszę rozważyć zakup OsmAnd+, lub finansowanie konkretnych nowych funkcji lub dokonania ogólnej darowizny na https://osmand.net.</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd to aplikacja open source do nawigacji obsługująca mapy offline i online</string>
<string name="avoid_motorway">Unikaj autostrad</string>
<string name="snap_to_road_descr">Przyciąga położenie do dróg podczas nawigacji.</string>
<string name="snap_to_road">Przyciąganie do drogi</string>
<string name="day_night_info">Informacja o dniu/nocy</string>
<string name="map_widget_vector_attributes">Atrybuty renderowania</string>
@ -1993,7 +1992,6 @@
<string name="shared_string_change">Zmień</string>
<string name="get_started">Rozpocznij</string>
<string name="routing_attr_short_way_name">Ekonomiczna trasa</string>
<string name="routing_attr_short_way_description">Użyj trasy oszczędzającej paliwo (zwykle najkrótszej).</string>
<string name="replace_favorite_confirmation">Zastąpić ulubiony punkt %1$s?</string>
<string name="skip_map_downloading">Pomiń pobieranie map</string>
<string name="first_usage_greeting">Otrzymuj wskazówki dojazdu i odkrywaj nowe miejsca bez połączenia z Internetem</string>
@ -3920,7 +3918,6 @@
<string name="lang_de_casual">Niemiecki (styl potoczny)</string>
<string name="gpx_upload_public_visibility_descr">\"Publiczny\" oznacza, że ślad jest pokazywany publicznie w śladach GPS i na publicznych listach śladów GPS oraz na publicznej liście śladów z surowymi znacznikami czasowymi. Dane obsługiwane przez API nie odnoszą się do strony śladów. Znaczniki czasu punktów śladowych nie są dostępne za pośrednictwem publicznego API GPS, a punkty śladowe nie są uporządkowane chronologicznie.</string>
<string name="app_mode_light_aircraft">Lekki samolot</string>
<string name="elevation_data">Możesz użyć danych wysokości, aby uwzględnić wzniesienie / zejście podczas podróży</string>
<string name="plan_route_join_segments">Połącz segmenty</string>
<string name="plan_route_split_before">Podziel przed</string>
<string name="plan_route_split_after">Podziel po</string>

View file

@ -578,7 +578,6 @@
<string name="route_from">De:</string>
<string name="settings_preset">Perfil predefinido</string>
<string name="settings_preset_descr">Configurações de exibição e navegação de mapa são gravadas por perfil de uso. Defina seu perfil padrão aqui.</string>
<string name="snap_to_road_descr">Ajustar posição às vias próximas durante a navegação.</string>
<string name="snap_to_road">Ajustar com a via</string>
<string name="osmand_short_description_80_chars">OsmAnd é um aplicativo de navegação de código aberto para mapas off-line e on-line</string>
<string name="osmand_long_description_1000_chars">OsmAnd (Direções de Navegação Automatizada do OSM)
@ -1876,7 +1875,6 @@
<string name="access_disable_wrong_direction_recalc_descr">Desabilitar recálculo de rota se só estiver se movendo na direção oposta.</string>
<string name="follow_us">Siga-nos</string>
<string name="routing_attr_short_way_name">Via mais econômica</string>
<string name="routing_attr_short_way_description">Utilizar caminho econômico (geralmente mais curto).</string>
<string name="edit_filter">Editar categorias</string>
<string name="subcategories">Subcategorias</string>
<string name="selected_categories">Categorias selecionadas</string>
@ -3914,7 +3912,6 @@
<string name="select_picture">Selecione a foto</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Alemão (casual)</string>
<string name="elevation_data">Você pode usar dados de elevação para contabilizar a subida/descida de sua viagem</string>
<string name="app_mode_light_aircraft">Avião leve</string>
<string name="release_3_9">"• Adicionada opção para exportar e importar todos os dados, incluindo configurações, recursos, meus lugares
\n

View file

@ -763,7 +763,6 @@
<string name="show_warnings_title">Mostrar alertas…</string>
<string name="show_warnings_descr">Configure avisos de trânsito (limites de velocidade, paragens forçadas, redutores de velocidade, túneis), avisos de radares de velocidade e informações da faixa.</string>
<string name="avoid_motorway">Sem autoestradas</string>
<string name="snap_to_road_descr">Encaixe posição de estradas durante a navegação.</string>
<string name="snap_to_road">Ajustar à estrada</string>
<string name="osmand_short_description_80_chars">Visualização e navegação móvel de mapas globais do OSM offline e online</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd é uma aplicação de navegação de código aberto para mapas off-line e on-line</string>
@ -2101,7 +2100,6 @@
<string name="update_all_maps_now">Atualizar todos os mapas agora\?</string>
<string name="clear_tile_data">Limpar todas as telhas</string>
<string name="routing_attr_short_way_name">Percurso económico</string>
<string name="routing_attr_short_way_description">Utilizar percurso económico (geralmente mais curto).</string>
<string name="replace_favorite_confirmation">Tem a certeza que quer substituir o favorito %1$s\?</string>
<string name="rendering_attr_hideOverground_name">Objetos à superfície</string>
<string name="get_started">Começar</string>
@ -3919,7 +3917,6 @@
<string name="use_dev_url_descr">Mude para usar dev.openstreetmap.org ao invés de openstreetmap.org para testar enviar uma OSM Nota / POI / GPX.</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Alemão (casual)</string>
<string name="elevation_data">Pode usar dados de elevação para representar a subida / descida da sua viagem</string>
<string name="app_mode_light_aircraft">Aeronaves ligeiras</string>
<string name="plan_route_join_segments">Unir segmentos</string>
<string name="plan_route_split_before">Dividir antes</string>

View file

@ -46,7 +46,6 @@
<string name="avoid_motorway">Evită autostrăzile</string>
<string name="auto_zoom_map_descr">Auto zoom hartă funcție de viteză (când harta e sincronizată cu poziția curentă)</string>
<string name="auto_zoom_map">Auto zoom hartă</string>
<string name="snap_to_road_descr">Menține poziția pe drum în timpul navigării</string>
<string name="snap_to_road">Poziționează pe drum</string>
<string name="osmand_short_description_80_chars">OsmAnd este o aplicație open source pentru navigare cu hărți offline și online</string>
<string name="osmand_long_description_1000_chars">
@ -2276,7 +2275,6 @@
<string name="routing_attr_allow_motorway_description">Permiteți autostrăzile.</string>
<string name="search_hint">Introduceți orașul, adresa, numele POI</string>
<string name="osm_live_payment_desc">Abonament perceput pe lună. Anulați-l pe Google Play în orice moment.</string>
<string name="routing_attr_short_way_description">Utilizați un mod eficient de combustibil (de obicei mai scurt).</string>
<string name="rendering_value_black_name">Negru</string>
<string name="shared_string_launch">Lansează</string>
<string name="navigation_over_track">Pornesc navigarea de-a lungul traseului\?</string>

View file

@ -3879,4 +3879,10 @@
<string name="poi_ranger_station">Станция рейнджеров</string>
<string name="poi_swimming_area">Место для купания</string>
<string name="poi_wildlife_crossing">Экодук</string>
<string name="poi_piste_status_closed">Состояние трассы: закрыта</string>
<string name="poi_piste_status_open">Состояние трассы: открыта</string>
<string name="poi_patrolled_no">Патрулируется: нет</string>
<string name="poi_patrolled_yes">Патрулируется: да</string>
<string name="poi_piste_name">Название трассы</string>
<string name="poi_piste_ski_jump">Лыжный трамплин</string>
</resources>

View file

@ -1155,7 +1155,6 @@
\n — подсказки полосы движения, отображение ограничения скорости, предварительно записанные и синтезированные голосовые подсказки
\n</string>
<string name="avoid_motorway">Без автомагистралей</string>
<string name="snap_to_road_descr">Привязывать позицию к дороге во время навигации.</string>
<string name="snap_to_road">Привязка к дороге</string>
<string name="intermediate_point_too_far">Промежуточный пункт %1$s слишком далеко от ближайшей дороги.</string>
<string name="arrived_at_intermediate_point">Вы прибыли в промежуточный пункт</string>
@ -2198,7 +2197,6 @@
<string name="update_all_maps_now">Обновить все карты сейчас?</string>
<string name="clear_tile_data">Удалить из кеша</string>
<string name="routing_attr_short_way_name">Снижать расход топлива</string>
<string name="routing_attr_short_way_description">Использование топливо-сберегающего пути (обычно короче).</string>
<string name="replace_favorite_confirmation">Вы уверены, что хотите заменить избранные %1$s\?</string>
<string name="shared_string_change">Изменить</string>
<string name="get_started">Начать</string>
@ -3938,13 +3936,12 @@
<string name="select_folder">Выбор папки</string>
<string name="select_folder_descr">Выберите папку или добавьте новую</string>
<string name="voice_prompts_timetable">Время голосовых подсказок</string>
<string name="elevation_data">Можно использовать данные о высотах для учёта подъёма/спуска поездки</string>
<string name="routing_attr_prefer_hiking_routes_description">Предпочитать пешеходные маршруты</string>
<string name="shared_string_subtype">Подтип</string>
<string name="shared_string_enter_param">Введите параметр</string>
<string name="routing_engine_vehicle_type_walking">Пешеход</string>
<string name="routing_engine_vehicle_type_scooter">Самокат</string>
<string name="analyze_by_intervals">Анализ по интервалам (по отдельности)</string>
<string name="analyze_by_intervals">Анализ по интервалам</string>
<string name="announcement_time_prepare_long">Заблаговременно</string>
<string name="announcement_time_prepare">Заранее</string>
<string name="announcement_time_passing">При прохождении</string>
@ -4008,4 +4005,14 @@
<string name="activity_type_offroad_name">Внедорожник</string>
<string name="activity_type_motorbike_name">Мотоцикл</string>
<string name="activity_type_car_name">Автомобиль</string>
<string name="opr_use_dev_url">Использовать test.openplacereviews.org</string>
<string name="login_open_place_reviews">Вход в OpenPlaceReviews</string>
<string name="activity_type_snowmobile_name">Снегоход</string>
<string name="activity_type_mountainbike_name">Горный велосипед</string>
<string name="routing_engine_vehicle_type_driving">Вождение</string>
<string name="routing_engine_vehicle_type_foot">Пешком</string>
<string name="open_place_reviews">OpenPlaceReviews</string>
<string name="activity_type_water_name">Вода</string>
<string name="activity_type_winter_name">Зима</string>
<string name="activity_type_riding_name">Верховая езда</string>
</resources>

View file

@ -356,7 +356,6 @@
<string name="avoid_motorway">Peruna autostrada</string>
<string name="auto_zoom_map_descr">Ismanniamentu mapa relativu a sa lestresa (si sa mapa est sincronizzata cun sa positzione currente).</string>
<string name="auto_zoom_map">Ismanniamentu automàticu mapa</string>
<string name="snap_to_road_descr">Arrea sa positzione in subra de sos caminos durante sa navigatzione.</string>
<string name="snap_to_road">Arrea in subra de sos caminos</string>
<string name="interrupt_music_descr">Sos annùntzios vocales ponent sa mùsica in pàusa.</string>
<string name="interrupt_music">Firma sa mùsica</string>
@ -1989,7 +1988,6 @@
<string name="advanced_coords_search">Chirca avantzada cun coordinadas</string>
<string name="route_stops_before">%1$s firmadas in antis</string>
<string name="routing_attr_short_way_name">Àndala prus de atòliu pro sos consumos</string>
<string name="routing_attr_short_way_description">Issèbera s\'àndala prus de atòliu pro sos consumos (sa prus curtza, de sòlitu).</string>
<string name="replace_favorite_confirmation">Seguru ses de bòlere sostituire su preferidu %1$s?</string>
<string name="rendering_attr_hideOverground_name">Ogetos subra de terra</string>
<string name="shared_string_change">Càmbia</string>
@ -3916,7 +3914,6 @@
<string name="select_picture">Ischerta un\'immàgine</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Tedescu (informale)</string>
<string name="elevation_data">Podes impreare sos datos de s\'artària pro valutare s\'Artziada / Achirrada pro su biàgiu tuo</string>
<string name="app_mode_light_aircraft">Aèreu lèbiu</string>
<string name="plan_route_join_segments">Auni sos segmentos</string>
<string name="plan_route_split_before">Iscroba in antis de</string>

View file

@ -32,7 +32,6 @@
<string name="poi_filter_fuel">Palivo</string>
<string name="add_tag">Pridať značku</string>
<string name="btn_advanced_mode">Pokročilý režim…</string>
<string name="snap_to_road_descr">Prichytiť pozíciu k cestám počas navigácie.</string>
<string name="snap_to_road">Prichytiť k ceste</string>
<string name="avoid_motorway">Žiadne diaľnice</string>
<string name="layer_map_appearance">Konfigurovať obrazovku</string>
@ -1989,7 +1988,6 @@
<string name="shared_string_change">Zmeniť</string>
<string name="get_started">Začať</string>
<string name="routing_attr_short_way_name">Ekonomická trasa</string>
<string name="routing_attr_short_way_description">Použiť ekonomickú trasu (obyčajne kratšia).</string>
<string name="replace_favorite_confirmation">Naozaj chcete nahradiť Obľúbený bod %1$s?</string>
<string name="skip_map_downloading">Preskočiť sťahovanie máp</string>
<string name="skip_map_downloading_desc">Nemáte nainštalovanú žiadnu offline mapu. Môžete vybrať mapu zo zoznamu alebo stiahnuť mapy neskôr cez \"Menu - %1$s\".</string>
@ -3914,7 +3912,6 @@
<string name="gpx_upload_private_visibility_descr">\"Súkromná\" znamená, že trasa sa nezobrazí vo verejných zoznamoch, ale body trasy z nej v budú dostupné v neusporiadanom poradí cez verejné GPS rozhranie (API) bez časových pečiatok.</string>
<string name="gpx_upload_identifiable_visibility_descr">\"Identifikovateľná\" znamená, že trasa sa zobrazí verejne vo vašich GPS stopách a vo verejných zoznamoch GPS stôp, tzn. iní používatelia budú môcť stiahnuť nespracovanú trasu a prepojiť su s vašim používateľkým menom. Verejné body trasy s časovými pečiatkami poskytované cez GPS rozhranie (API) budú odkazovať na vašu pôvodnú stránku s trasou.</string>
<string name="gpx_upload_trackable_visibility_descr">\"Sledovateľná\" znamená, že trasa sa nezobrazí vo verejných zoznamoch, ale spracované body trasy s časovými pečiatkami (ktoré nie je možné spojiť s vami), budú dostupné na stiahnutie cez verejné GPS rozhranie (API).</string>
<string name="elevation_data">Údaje o nadmorskej výške môžete použiť na zaznamenanie stúpania / klesania vašej cesty</string>
<string name="app_mode_light_aircraft">Ľahké lietadlo</string>
<string name="plan_route_join_segments">Spojiť úseky</string>
<string name="plan_route_split_before">Rozdeliť predtým</string>

View file

@ -279,7 +279,6 @@
<string name="poi_filter_fuel">Gorivo</string>
<string name="auto_zoom_map_descr">Približevanje zemljevida glede na hitrost vožnje (zemljevid se usklajuje s trenutnim mestom).</string>
<string name="auto_zoom_map">Samodejna povečava zemljevida</string>
<string name="snap_to_road_descr">Med navigacijo pripni položaj na ceste.</string>
<string name="snap_to_road">Pripni na cesto</string>
<string name="osmand_short_description_80_chars">OsmAnd je odprtokodni program za navigacijo z uporabo shranjenih ali spletnih zemljevidov</string>
<string name="osmand_plus_short_description_80_chars">OsmAnd je odprtokodni program za navigacijo z uporabo shranjenih ali spletnih zemljevidov</string>
@ -1985,7 +1984,6 @@
<string name="route_stops_before">%1$s se zaustavi pred</string>
<string name="rendering_attr_hideOverground_name">Ne izriši nadzemnih zgradb</string>
<string name="routing_attr_short_way_name">Pot z najmanjšo porabo goriva</string>
<string name="routing_attr_short_way_description">Prednostno izberi pot z najmanjšo porabo goriva (običajno najkrajša).</string>
<string name="replace_favorite_confirmation">Ali ste prepričani, da želite zamenjati priljubljeno točko %1$s?</string>
<string name="shared_string_change">Spremeni</string>
<string name="get_started">Kako začeti ...</string>

View file

@ -1030,7 +1030,6 @@
<string name="update_all_maps_now">Освежити све карте сада?</string>
<string name="clear_tile_data">Очисти све плочице</string>
<string name="routing_attr_short_way_name">Пут који штеди гориво</string>
<string name="routing_attr_short_way_description">Користи пут који штеди гориво (обично краћи).</string>
<string name="replace_favorite_confirmation">Да ли сте сигурни да желите заменити Омиљени %1$s?</string>
<string name="rendering_attr_hideOverground_name">Надземне грађевине</string>
<string name="shared_string_change">Измени</string>
@ -1897,7 +1896,6 @@
<string name="map_imported_successfully">Карта увезена</string>
<string name="download_using_mobile_internet">Неповезан на бежичну мрежу. Искористите тренутну интернет везу за преузимање?</string>
<string name="auto_zoom_map">Аутоматско зумирање карте</string>
<string name="snap_to_road_descr">Прилепи позицију за путеве приликом навођења.</string>
<string name="snap_to_road">Прилепи на пут</string>
<string name="starting_point_too_far">Тачка поласка је превише далеко од најближег пута.</string>
<string name="rendering_attr_noPolygons_name">Полигоне</string>
@ -3916,7 +3914,6 @@
<string name="use_dev_url">Употреби dev.openstreetmap.org</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Немачки (говорни)</string>
<string name="elevation_data">Податке о надморској висини можете користити за разматрање успона / спуштања за ваше путовање</string>
<string name="app_mode_light_aircraft">Лака летелица</string>
<string name="plan_route_join_segments">Споји сегменте</string>
<string name="plan_route_split_before">Подели пре</string>

View file

@ -21,7 +21,6 @@
<string name="avoid_motorway">Undvik motorvägar</string>
<string name="auto_zoom_map_descr">Zooma in/ut automatiskt på kartan beroende på din hastighet (när kartan är synkroniserad med aktuell position).</string>
<string name="auto_zoom_map">Automatisk kartzoomning</string>
<string name="snap_to_road_descr">Fäst positionen på vägen under navigering.</string>
<string name="snap_to_road">Fäst på vägen</string>
<string name="filterpoi_activity">Skapa POI-filter</string>
<string name="recalculate_route_to_your_location">Transportsätt:</string>
@ -1953,7 +1952,6 @@ Om du tycker om OsmAnd och OSM och vill stödja dem så är detta ett utmärkt s
<string name="allow_access_location">Tillåt platsåtkomst</string>
<string name="update_all_maps_now">Uppdatera alla kartor nu\?</string>
<string name="routing_attr_short_way_name">Bränslesnål väg</string>
<string name="routing_attr_short_way_description">Använd bränslesnål väg (oftast kortare).</string>
<string name="shared_string_change">Ändra</string>
<string name="get_started">Kom igång</string>
<string name="replace_favorite_confirmation">Är du säker på att du vill ersätta favoriten %1$s?</string>
@ -2962,7 +2960,6 @@ Vänligen tillhandahåll fullständig kod</string>
\nOpenPlaceReviews - Foton av sevärdheter;
\nMapillary - Bilder på gatunivå;
\nWeb/Wikimedia - Foton av sevärdheter enligt OpenStreetMap-data.</string>
<string name="elevation_data">Du kan använda höjddata för att ta hänsyn till upp- / nedstigning på din resa</string>
<string name="plan_route_join_segments">Sammanslå segment</string>
<string name="plan_route_split_before">Dela innan</string>
<string name="plan_route_split_after">Dela efter</string>

View file

@ -389,7 +389,6 @@
<string name="update_all_maps_now">இப்போது எல்லா வரைபடங்களையும் புதுப்பிக்குமா\?</string>
<string name="clear_tile_data">அனைத்து ஓலைகளையும் அழி</string>
<string name="routing_attr_short_way_name">எரிபொருள்-திறனுள்ள வழி</string>
<string name="routing_attr_short_way_description">எரிபொருள்-திறனுள்ள வழி (வழக்கமாக குறுகியது) பயன்படுத்தவும்.</string>
<string name="replace_favorite_confirmation">%1$s விருப்பத்தை நிச்சயமாக மாற்ற விரும்புகிறீர்களா \?</string>
<string name="rendering_attr_hideOverground_name">நிலப்பரப்பு பொருட்கள்</string>
<string name="shared_string_change">மாற்றம்</string>

View file

@ -154,7 +154,6 @@
<string name="rendering_attr_showRoadMaps_name">Yollar-sadece haritalar</string>
<string name="show_warnings_descr">Trafik uyarıları (hız sınırları, zorunlu duruşlar, hız tümsekleri, tüneller), hız kamerası uyarıları ve şerit bilgilerini ayarlayın.</string>
<string name="use_compass_navigation_descr">Başka bir başlık algılanmadığında pusulayı kullan.</string>
<string name="snap_to_road_descr">Navigasyon sırasında konumu yola tuttur.</string>
<string name="snap_to_road">Yola tuttur</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
\n
@ -1962,7 +1961,6 @@
<string name="get_it">Al</string>
<string name="si_mi_meters">Mil/metre</string>
<string name="routing_attr_short_way_name">Yakıt-tasarruflu yol</string>
<string name="routing_attr_short_way_description">Yakıt tasarruflu yolu kullan (çoğunlukla daha kısadır).</string>
<string name="add_new_folder">Yeni klasör ekle</string>
<string name="points_delete_multiple_succesful">Nokta(lar) silindi.</string>
<string name="shared_string_gpx_track">Takip et</string>
@ -3920,7 +3918,6 @@
<string name="cannot_upload_image">Resim yüklenemiyor, lütfen daha sonra tekrar deneyin</string>
<string name="select_picture">Resim seç</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">Yolculuğunuzun yükselme/alçalma değerlerini hesaplamak için yükseklik verilerini kullanabilirsiniz</string>
<string name="app_mode_light_aircraft">Hafif uçak</string>
<string name="plan_route_join_segments">Bölümleri birleştir</string>
<string name="plan_route_split_before">Önce böl</string>

View file

@ -880,7 +880,6 @@
<string name="non_optimal_route_calculation">Швидка побудова маршруту (можливо неоптимальна)</string>
<string name="show_warnings_descr">Налаштування попередження про дорожній рух (обмеження швидкості, вимушені зупинки, штучні нерівності, тунелі), попередження про камери контролю швидкості, відомості про смуги руху.</string>
<string name="avoid_motorway">Уник. автомагістралей</string>
<string name="snap_to_road_descr">Прив\'язуватися до доріг під час навігації.</string>
<string name="snap_to_road">Прив’язуватися до доріг</string>
<string name="osmand_short_description_80_chars">Перегляд та навігація в автономному та мережевому режимах мапами OSM</string>
<string name="osmand_plus_short_description_80_chars">Перегляд та навігація в автономному та мережевому режимах мапами ОСМ</string>
@ -2049,7 +2048,6 @@
<string name="update_all_maps_now">Оновити усі мапи зараз?</string>
<string name="clear_tile_data">Очистити кеш мережевих мап</string>
<string name="routing_attr_short_way_name">Паливно-ефективний шлях</string>
<string name="routing_attr_short_way_description">Розраховувати паливо-ощадний маршрут (зазвичай найкоротший).</string>
<string name="replace_favorite_confirmation">Ви впевнені, що хочете замінити закладку %1$s?</string>
<string name="rendering_attr_hideOverground_name">Надземні об’єкти</string>
<string name="shared_string_change">Змінити</string>
@ -3918,7 +3916,6 @@
<string name="select_picture">Вибрати зображення</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="lang_de_casual">Німецька (неформальна)</string>
<string name="elevation_data">Ви можете використовувати дані про висоту, щоб врахувати підйом/спуск у вашої подорожі</string>
<string name="app_mode_light_aircraft">Легкий літак</string>
<string name="plan_route_join_segments">Об’єднати сегменти</string>
<string name="plan_route_split_before">Розділити перед</string>

View file

@ -68,7 +68,7 @@
<string name="poi_telescope_type">类型</string>
<string name="poi_outdoor_seating">户外座位</string>
<string name="poi_smoking">吸烟</string>
<string name="poi_takeaway"></string>
<string name="poi_takeaway"></string>
<string name="poi_cocktails">鸡尾酒</string>
<string name="poi_washing_machine">洗衣机</string>
<string name="poi_motorcycle_services">服务</string>
@ -87,7 +87,7 @@
<string name="poi_social_facility_type">类型</string>
<string name="poi_zoo_type">类型</string>
<string name="poi_shop">商店</string>
<string name="poi_emergency"></string>
<string name="poi_emergency">紧急救助</string>
<string name="poi_man_made">人造</string>
<string name="poi_landuse">土地利用</string>
<string name="poi_administrative">行政</string>
@ -97,7 +97,7 @@
<string name="poi_tourism">旅游</string>
<string name="poi_sightseeing">遊覽</string>
<string name="poi_accomodation">住宿</string>
<string name="poi_entertainment">闲暇</string>
<string name="poi_entertainment">休闲娱乐</string>
<string name="poi_finance">金融</string>
<string name="poi_natural">自然</string>
<string name="poi_military">军事</string>
@ -360,7 +360,7 @@
<string name="poi_recycling_furniture">家具</string>
<string name="poi_tower"></string>
<string name="poi_capital"></string>
<string name="poi_town"></string>
<string name="poi_town"></string>
<string name="poi_village"></string>
<string name="poi_hamlet">村庄</string>
<string name="poi_suburb">市郊</string>
@ -500,7 +500,7 @@
<string name="poi_drive_through_yes"></string>
<string name="poi_microbrewery_yes"></string>
<string name="poi_takeaway_filter_yes"></string>
<string name="poi_takeaway_yes"></string>
<string name="poi_takeaway_yes"></string>
<string name="poi_delivery_filter_yes"></string>
<string name="poi_outdoor_seating_filter_yes"></string>
<string name="poi_cocktails_yes"></string>
@ -766,4 +766,7 @@
<string name="poi_craft_scaffolder">脚手架</string>
<string name="poi_wreck">沉船</string>
<string name="poi_pile"></string>
<string name="poi_charging_station">充电站</string>
<string name="poi_takeaway_no">无外卖</string>
<string name="poi_takeaway_only">仅限外卖</string>
</resources>

View file

@ -21,7 +21,7 @@
<string name="shared_string_target_points">目的地</string>
<string name="map_widget_intermediate_distance">途径目的地</string>
<string name="poi_filter_parking">停車</string>
<string name="poi_filter_emergency"></string>
<string name="poi_filter_emergency">紧急救助</string>
<string name="poi_filter_public_transport">公共交通</string>
<string name="poi_filter_entertainment">娛樂</string>
<string name="poi_filter_accomodation">住宿</string>
@ -62,7 +62,7 @@
<string name="map_widget_show_destination_arrow">显示目标方向</string>
<string name="enable_plugin_monitoring_services">启用跟踪插件使用日志位置服务GPX记录网上查询</string>
<string name="gps_not_available">请在设置中启用GPS</string>
<string name="show_lanes">显示车道</string>
<string name="show_lanes">车道</string>
<string name="avoid_unpaved">无未铺设道路</string>
<string name="avoid_ferries">避开轮渡</string>
<string name="avoid_in_routing_title">避让…</string>
@ -94,7 +94,7 @@
<string name="gpxup_trackable">可追踪</string>
<string name="gpxup_private">私人</string>
<string name="navpoint_search_desc">坐标</string>
<string name="favourites_search_desc">我的最爱搜索</string>
<string name="favourites_search_desc">搜索收藏的方法</string>
<string name="unknown_from_location">出发点尚未确定。</string>
<string name="unknown_location">位置尚不清楚。</string>
<string name="plugins_screen">插件</string>
@ -182,7 +182,7 @@
<string name="city_type_suburb">市郊</string>
<string name="city_type_hamlet">村庄</string>
<string name="city_type_village"></string>
<string name="city_type_town"></string>
<string name="city_type_town"></string>
<string name="city_type_city">城市</string>
<string name="button_upgrade_osmandplus">升级OsmAnd+</string>
<string name="shared_string_rename">重命名</string>
@ -214,14 +214,14 @@
<string name="amenity_type_administrative">行政</string>
<string name="amenity_type_barrier">屏障</string>
<string name="amenity_type_education">教育</string>
<string name="amenity_type_emergency"></string>
<string name="amenity_type_emergency">紧急救助</string>
<string name="amenity_type_entertainment">娱乐</string>
<string name="amenity_type_finance">金融</string>
<string name="amenity_type_geocache">藏宝</string>
<string name="amenity_type_healthcare">医疗保健</string>
<string name="amenity_type_historic">历史性</string>
<string name="amenity_type_landuse">土地利用</string>
<string name="amenity_type_leisure">闲暇</string>
<string name="amenity_type_leisure">休闲娱乐</string>
<string name="amenity_type_man_made">人造</string>
<string name="amenity_type_military">军事</string>
<string name="amenity_type_natural">自然</string>
@ -254,8 +254,8 @@
<string name="thanks_yandex_traffic">由于Yandex的交通信息。</string>
<string name="layer_yandex_traffic">Yandex的流量</string>
<string name="layer_route">路线</string>
<string name="shared_string_favorites">我的最爱</string>
<string name="layer_osm_bugs">OSM注记(在线)</string>
<string name="shared_string_favorites">收藏</string>
<string name="layer_osm_bugs">OSM 注记(在线)</string>
<string name="network_provider">网络</string>
<string name="int_seconds"></string>
<string name="int_min">分钟</string>
@ -270,8 +270,8 @@
<string name="first_time_continue">后来</string>
<string name="first_time_download">下载区域</string>
<string name="search_poi_location">正在搜索信号…</string>
<string name="map_orientation_portrait">肖像</string>
<string name="map_orientation_landscape">景观</string>
<string name="map_orientation_portrait">竖屏</string>
<string name="map_orientation_landscape">横屏</string>
<string name="map_screen_orientation">屏幕方向</string>
<string name="transport_Routes">路线</string>
<string name="transport_Stop">停止</string>
@ -312,7 +312,7 @@
<string name="search_activity">搜索</string>
<string name="app_mode_default">浏览地图</string>
<string name="app_mode_car">驾驶</string>
<string name="app_mode_bicycle">自行车出行</string>
<string name="app_mode_bicycle">自行车</string>
<string name="app_mode_pedestrian">走路</string>
<string name="position_on_map_center">中心</string>
<string name="position_on_map_bottom">底部</string>
@ -626,7 +626,7 @@
<string name="indexing_poi">POI索引中…</string>
<string name="indexing_transport">交通设施索引中…</string>
<string name="old_map_index_is_not_supported">已废弃的地图数据格式 \'\'{0}\'\' 不再支持</string>
<string name="poi_filter_closest_poi">最近的POI</string>
<string name="poi_filter_closest_poi">最近的兴趣点</string>
<string name="poi_filter_custom_filter">自定义过滤器</string>
<string name="reading_cached_tiles">正在读取缓存瓦片…</string>
<string name="version_index_is_big_for_memory">索引 \'\'{0}\'\' 太大而无法载入内存</string>
@ -1115,7 +1115,7 @@
<string name="quick_action_add_first_intermediate">添加第一个途径地</string>
<string name="subscribe_email_error">错误</string>
<string name="fonts_header">地图字体</string>
<string name="right_side_navigation">右侧</string>
<string name="right_side_navigation">右侧行</string>
<string name="driving_region_automatic">自动</string>
<string name="do_not_send_anonymous_app_usage">不发送匿名应用使用情况统计信息</string>
<string name="restore_purchases">恢复购买内容</string>
@ -1308,7 +1308,6 @@
<string name="distance_moving">距离已修正</string>
<string name="no_photos_descr">这里没有照片。</string>
<string name="routing_attr_short_way_name">节油道路</string>
<string name="routing_attr_short_way_description">使用节油道路(通常更短)。</string>
<string name="configure_screen_quick_action">快捷操作</string>
<string name="shared_string_show_all">显示全部</string>
<string name="osmand_plus_short_description_80_chars">全球移动地图浏览,以及使用离线和在线 OSM 地图进行导航</string>
@ -1451,7 +1450,7 @@
<string name="back_to_search">返回到搜索</string>
<string name="confirmation_to_delete_history_items">从“历史”中删除所选项目?</string>
<string name="show_something_on_map">在地图上显示 %1$s</string>
<string name="dist_away_from_my_location">搜索 %1$s </string>
<string name="dist_away_from_my_location">搜索 %1$s 开</string>
<string name="share_history_subject">通过 OsmAnd 分享</string>
<string name="postcode">邮政编码</string>
<string name="shared_string_from"></string>
@ -1669,7 +1668,7 @@
<string name="rendering_attr_tramRoutes_name">有轨电车线路</string>
<string name="rendering_attr_shareTaxiRoutes_name">分享出租车线路</string>
<string name="rendering_attr_trolleybusRoutes_name">无轨电车线路</string>
<string name="rendering_category_transport">运输</string>
<string name="rendering_category_transport">公共交通</string>
<string name="map_widget_appearance_rem">剩余的元素</string>
<string name="search_radius_proximity">之间</string>
<string name="speed_limit_exceed_message">选择限速容许幅度,超过限速容许幅度将收到语音警告。</string>
@ -1883,7 +1882,7 @@
<string name="app_mode_hiking">徒步</string>
<string name="app_mode_motorcycle">摩托车</string>
<string name="app_mode_boat">小船</string>
<string name="app_mode_aircraft">航空器</string>
<string name="app_mode_aircraft">飞机</string>
<string name="local_osm_changes_delete_all_confirm">你确定你要删除 %1$d 个 OSM 更改?</string>
<string name="animate_routing_route_not_calculated">请先计算路径</string>
<string name="animate_routing_route">使用计算的路线进行模拟</string>
@ -2941,8 +2940,8 @@
<string name="item_deleted">%1$s 已删除</string>
<string name="shared_string_uninstall_and_restart">卸载并重新启动</string>
<string name="quick_action_remove_next_destination">删除下一个目的地</string>
<string name="use_volume_buttons_as_zoom_descr">启用以使用设备音量按钮控制地图缩放级别。</string>
<string name="use_volume_buttons_as_zoom">音量按钮用于缩放</string>
<string name="use_volume_buttons_as_zoom_descr">启用以使用设备音量控制地图缩放级别。</string>
<string name="use_volume_buttons_as_zoom">音量用于缩放</string>
<string name="please_provide_point_name_error">请提供该点的名称</string>
<string name="app_mode_wheelchair">轮椅</string>
<string name="set_working_days_to_continue">您需要设置工作日以继续</string>
@ -3108,7 +3107,7 @@
<string name="rendering_attr_piste_type_connection_name">连接</string>
<string name="rendering_attr_piste_type_hike_name">远足</string>
<string name="rendering_attr_piste_type_sleigh_name">雪橇</string>
<string name="analytics_pref_title">分析</string>
<string name="analytics_pref_title">数据分析</string>
<string name="shared_string_example">示例</string>
<string name="years_5"></string>
<string name="years_2_4"></string>
@ -3419,4 +3418,56 @@
<string name="activity_type_racing_name">赛车</string>
<string name="activity_type_mountainbike_name">山地车</string>
<string name="activity_type_offroad_name">越野</string>
<string name="turn_screen_on_power_button_descr">按下设备电源键就会在锁屏上方用OsmAnd打开屏幕。</string>
<string name="turn_screen_on_power_button">电源键</string>
<string name="turn_screen_on_proximity_sensor">接近传感器</string>
<string name="screen_control">屏幕控制</string>
<string name="show_along_the_route">沿途显示</string>
<string name="layer_gpx_layer">轨迹</string>
<string name="plugin_global_prefs_info">这些插件设置是全局的,并应用于所有配置文件</string>
<string name="osm_editing_prefs_descr">登录、密码、离线编辑</string>
<string name="copy_from_other_profile">从其他配置文件复制</string>
<string name="settings_privacy_and_security">隐私和安全</string>
<string name="osmand_settings_descr">对整个应用生效</string>
<string name="icon_group_sport">运动</string>
<string name="icon_group_emergency">紧急救助</string>
<string name="rearrange_categories">重新排列类别</string>
<string name="select_distance_route_will_recalc">选择之后重新计算路径的距离。</string>
<string name="recalculate_route_distance_promo">如果从路线到当前位置的距离超过了所选的值,路线将被重新计算。</string>
<string name="select_group">选择组</string>
<string name="ui_customization_description">自定义 \"抽屉\"、\"配置地图\"、\"上下文菜单 \"中的项目数量。
\n
\n关闭未使用的插件隐藏其所有控件。%1$s.</string>
<string name="ui_customization_short_descr">抽屉项目,上下文菜单</string>
<string name="ui_customization">UI 自定义</string>
<string name="select_wikipedia_article_langs">选择地图上维基百科文章的语言,在阅读文章时切换到任何可用的语言。</string>
<string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string>
<string name="search_poi_types_descr">合并不同类别的兴趣点类型。点击开关全选,点击左侧选择类别。</string>
<string name="extra_maps_menu_group">额外地图</string>
<string name="download_unsupported_action">不支持的操作 %1$s</string>
<string name="tracker_item">OsmAnd 跟踪器</string>
<string name="mapillary_item">OsmAnd + Mapillary</string>
<string name="quick_action_item">快捷操作</string>
<string name="measure_distance_item">测量距离</string>
<string name="travel_item">旅行(维基导游和维基百科)</string>
<string name="map_markers_item">地图标记</string>
<string name="osmand_purchases_item">OsmAnd 购买</string>
<string name="legend_item_description">地图符号系统指南。</string>
<string name="navigation_profiles_item">导航配置文件</string>
<string name="parking_positions">停车位置</string>
<string name="add_edit_favorite">添加或编辑收藏</string>
<string name="reset_deafult_order">还原默认项目顺序</string>
<string name="back_to_editing">返回编辑</string>
<string name="shared_string_add_profile">添加配置文件</string>
<string name="change_application_profile">更改应用配置文件</string>
<string name="profiles_for_action_not_found">找不到任何此类配置文件。</string>
<string name="index_item_world_basemap_detailed">世界概览地图(详细)</string>
<string name="unsupported_type_error">不支持的类型</string>
<string name="width_limit_description">提供你的车辆宽度,较宽的车辆可能会受到一些路线限制。</string>
<string name="height_limit_description">提供你的车辆高度,较高的车辆可能会受到一些路线限制。</string>
<string name="weight_limit_description">提供你的车辆重量,较重的车辆可能会受到一些路线限制。</string>
<string name="lenght_limit_description">提供你的车辆长度,较长的车辆可能会受到一些路线限制。</string>
<string name="gpx_parse_error">OsmAnd GPX 格式不正确,请联系支持团队进一步调查。</string>
<string name="simplified_track_description">只有路线线会被保存,航点会被删除。</string>
<string name="shared_string_file_name">文件名</string>
</resources>

View file

@ -43,7 +43,6 @@
<string name="avoid_motorway">避開高速公路</string>
<string name="auto_zoom_map_descr">依據您的速度去縮放級別(當地圖與目前位置同步時)。</string>
<string name="auto_zoom_map">自動縮放地圖</string>
<string name="snap_to_road_descr">導航過程中對齊道路位置。</string>
<string name="snap_to_road">對齊道路</string>
<string name="osmand_short_description_80_chars">離線與線上的 OSM 地圖用於全球行動地圖檢視與導航</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
@ -1984,7 +1983,6 @@
<string name="route_stops_before">%1$s 之前停止</string>
<string name="rendering_attr_hideOverground_name">地上的物件</string>
<string name="routing_attr_short_way_name">省油的方式</string>
<string name="routing_attr_short_way_description">使用省油的方式 (通常路途較短)。</string>
<string name="replace_favorite_confirmation">您確定想要替換我的收藏 %1$s 嗎?</string>
<string name="shared_string_change">更換</string>
<string name="get_started">開始</string>
@ -3912,7 +3910,6 @@
<string name="select_picture">選取圖片</string>
<string name="lang_de_casual">德語(非正式)</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="elevation_data">您可以將海拔資料用來說明您旅程的上升與下降</string>
<string name="app_mode_light_aircraft">輕型飛機</string>
<string name="plan_route_join_segments">加入線段</string>
<string name="plan_route_split_before">分離前</string>

View file

@ -4339,10 +4339,10 @@
<string name="poi_patrolled_no">Patrolled: no</string>
<string name="poi_piste_status_open">Piste status: open</string>
<string name="poi_piste_status_closed">Piste status: closed</string>
<string name="poi_summit_register_yes">Summit register: yes</string>
<string name="poi_summit_register_no">Summit register: no</string>
<string name="poi_mobile_library">Mobile library stop position</string>
<string name="poi_conference_centre">Conference centre</string>
<string name="poi_geodesist">Geodesist</string>
</resources>

View file

@ -413,4 +413,7 @@
<dimen name="radioButtonSize">32dp</dimen>
<dimen name="checkBoxSize">24dp</dimen>
<dimen name="titleLineSpacingExtra">5sp</dimen>
<dimen name="descriptionLineSpacingExtra">3sp</dimen>
</resources>

View file

@ -14,6 +14,13 @@
<string name="delete_number_files_question">Delete %1$d files?</string>
<string name="shared_strings_all_regions">All regions</string>
<string name="restart">Restart</string>
<string name="elevation_data_descr">Routing could avoid strong uphills</string>
<string name="map_orientation_threshold_descr">Don\'t rotate map view if speed is less than a threshold</string>
<string name="snap_to_road_descr">Current location icon will be snapped to the current navigation route</string>
<string name="routing_attr_driving_style_description">Select driving purpose to get shorter, faster or safer route</string>
<string name="routing_attr_short_way_description">Optimized shorter route (energy saving)</string>
<string name="temporary_conditional_routing_descr">Use road restrictions that are active now on the map</string>
<string name="activity_type_car_name">Car</string>
<string name="activity_type_motorbike_name">Motorbike</string>
<string name="activity_type_offroad_name">Off-road</string>
@ -34,6 +41,9 @@
<string name="hillshade_slope_contour_lines">Hillshade / Slope / Contour lines</string>
<string name="toast_select_edits_for_upload">Select edits for upload</string>
<string name="uploaded_count">Uploaded %1$d of %2$d</string>
<string name="segments_count">Segment %1$d</string>
<string name="select_segments_description">%1$s contains more than one segment, you need to select the needed part for the navigation.</string>
<string name="select_segments">Select segments</string>
<string name="uploading_count">Uploading %1$d of %2$d</string>
<string name="upload_photo_completed">Upload completed</string>
<string name="upload_photo">Uploading</string>
@ -119,7 +129,6 @@
<string name="plan_route_split_before">Split before</string>
<string name="plan_route_join_segments">Join segments</string>
<string name="app_mode_light_aircraft">Light aircraft</string>
<string name="elevation_data">You can use elevation data to account for ascent/descent of your trip</string>
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
<string name="add_photos_descr">OsmAnd shows photos from several sources:\nOpenPlaceReviews - POI photos;\nMapillary - street-level imagery;\nWeb / Wikimedia - POI photos as per OpenStreetMap data.</string>
<string name="use_dev_url">Use dev.openstreetmap.org</string>
@ -1746,7 +1755,6 @@
<string name="update_all_maps_now">Update all maps now?</string>
<string name="clear_tile_data">Clear all tiles</string>
<string name="routing_attr_short_way_name">Fuel-efficient way</string>
<string name="routing_attr_short_way_description">Use fuel-efficient way (usually shorter).</string>
<string name="replace_favorite_confirmation">Are you sure you want to replace Favorite %1$s?</string>
<string name="rendering_attr_hideOverground_name">Overground objects</string>
<string name="shared_string_change">Change</string>
@ -2910,7 +2918,6 @@
<string name="avoid_motorway">No motorways</string>
<string name="auto_zoom_map_descr">Zoom level according to your speed (while map is synchronized with current position).</string>
<string name="auto_zoom_map">Auto zoom map</string>
<string name="snap_to_road_descr">Snap position to roads during navigation.</string>
<string name="snap_to_road">Snap to road</string>
<string name="interrupt_music_descr">Voice prompts pause music playback.</string>
<string name="interrupt_music">Pause music</string>

View file

@ -514,7 +514,7 @@ public class AppInitializer implements IProgress {
return null;
}
});
app.regions.setLocale(app.getLanguage(), app.getCountry());
app.regions.setLocale(app.getLanguage(), app.getLocaleHelper().getCountry());
}

View file

@ -237,7 +237,7 @@ public class CustomOsmandPlugin extends OsmandPlugin {
final SettingsHelper.SettingsImportListener importListener = new SettingsHelper.SettingsImportListener() {
@Override
public void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items) {
public void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
if (AndroidUtils.isActivityNotDestroyed(activity)) {
progress.dismiss();
}

View file

@ -59,6 +59,7 @@ import net.osmand.plus.download.DownloadService;
import net.osmand.plus.download.IndexItem;
import net.osmand.plus.helpers.AvoidSpecificRoads;
import net.osmand.plus.helpers.DayNightHelper;
import net.osmand.plus.helpers.LocaleHelper;
import net.osmand.plus.helpers.LocationServiceHelper;
import net.osmand.plus.helpers.LockHelper;
import net.osmand.plus.helpers.WaypointHelper;
@ -126,6 +127,7 @@ public class OsmandApplication extends MultiDexApplication {
private final SQLiteAPI sqliteAPI = new SQLiteAPIImpl(this);
private final OsmAndTaskManager taskManager = new OsmAndTaskManager(this);
private final UiUtilities iconsCache = new UiUtilities(this);
private final LocaleHelper localeHelper = new LocaleHelper(this);
// start variables
ResourceManager resourceManager;
@ -166,10 +168,7 @@ public class OsmandApplication extends MultiDexApplication {
MeasurementEditingContext measurementEditingContext;
OnlineRoutingHelper onlineRoutingHelper;
private Resources localizedResources;
private Map<String, Builder> customRoutingConfigs = new ConcurrentHashMap<>();
private Locale preferredLocale;
private Locale defaultLocale;
private File externalStorageDirectory;
private boolean externalStorageDirectoryReadOnly;
@ -218,7 +217,7 @@ public class OsmandApplication extends MultiDexApplication {
removeSqliteDbTravelFiles();
}
checkPreferredLocale();
localeHelper.checkPreferredLocale();
appInitializer.onCreateApplication();
// if(!osmandSettings.FOLLOW_THE_ROUTE.get()) {
// targetPointsHelper.clearPointToNavigate(false);
@ -402,6 +401,10 @@ public class OsmandApplication extends MultiDexApplication {
return oprAuthHelper;
}
public LocaleHelper getLocaleHelper() {
return localeHelper;
}
public synchronized DownloadIndexesThread getDownloadThread() {
if (downloadIndexesThread == null) {
downloadIndexesThread = new DownloadIndexesThread(this);
@ -416,7 +419,8 @@ public class OsmandApplication extends MultiDexApplication {
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
public void onConfigurationChanged(@NonNull Configuration newConfig) {
Locale preferredLocale = localeHelper.getPreferredLocale();
if (preferredLocale != null && !newConfig.locale.getLanguage().equals(preferredLocale.getLanguage())) {
super.onConfigurationChanged(newConfig);
// ugly fix ! On devices after 4.0 screen is blinking when you rotate device!
@ -430,49 +434,6 @@ public class OsmandApplication extends MultiDexApplication {
}
}
public void checkPreferredLocale() {
Configuration config = getBaseContext().getResources().getConfiguration();
String pl = osmandSettings.PREFERRED_LOCALE.get();
String[] split = pl.split("_");
String lang = split[0];
String country = (split.length > 1) ? split[1] : "";
if (defaultLocale == null) {
defaultLocale = Locale.getDefault();
}
if (!Algorithms.isEmpty(lang)) {
if (!Algorithms.isEmpty(country)) {
preferredLocale = new Locale(lang, country);
} else {
preferredLocale = new Locale(lang);
}
}
Locale selectedLocale = null;
if (!Algorithms.isEmpty(lang) && !config.locale.equals(preferredLocale)) {
selectedLocale = preferredLocale;
} else if (Algorithms.isEmpty(lang) && defaultLocale != null && Locale.getDefault() != defaultLocale) {
selectedLocale = defaultLocale;
preferredLocale = null;
}
if (selectedLocale != null) {
Locale.setDefault(selectedLocale);
config.locale = selectedLocale;
config.setLayoutDirection(selectedLocale);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
if (android.os.Build.VERSION.SDK_INT >= 17) {
Configuration conf = new Configuration(config);
conf.locale = selectedLocale;
localizedResources = createConfigurationContext(conf).getResources();
}
}
}
public static final int PROGRESS_DIALOG = 5;
public void checkApplicationIsBeingInitialized(Activity activity, AppInitializeListener listener) {
// start application if it was previously closed
startApplication();
@ -717,7 +678,6 @@ public class OsmandApplication extends MultiDexApplication {
}
}
public TargetPointsHelper getTargetPointsHelper() {
return targetPointsHelper;
}
@ -823,7 +783,7 @@ public class OsmandApplication extends MultiDexApplication {
themeResId = R.style.OsmandLightTheme;
}
}
setLanguage(c);
localeHelper.setLanguage(c);
c.setTheme(themeResId);
}
@ -850,53 +810,18 @@ public class OsmandApplication extends MultiDexApplication {
return s;
}
public void setLanguage(Context context) {
if (preferredLocale != null) {
Configuration config = context.getResources().getConfiguration();
String lang = preferredLocale.getLanguage();
if (!Algorithms.isEmpty(lang) && !config.locale.getLanguage().equals(lang)) {
preferredLocale = new Locale(lang);
Locale.setDefault(preferredLocale);
config.locale = preferredLocale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
} else if (Algorithms.isEmpty(lang) && defaultLocale != null && Locale.getDefault() != defaultLocale) {
Locale.setDefault(defaultLocale);
config.locale = defaultLocale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
}
}
public String getCountry() {
String country;
if (preferredLocale != null) {
country = preferredLocale.getCountry();
} else {
country = Locale.getDefault().getCountry();
}
return country;
}
public String getLanguage() {
String lang;
if (preferredLocale != null) {
lang = preferredLocale.getLanguage();
} else {
lang = Locale.getDefault().getLanguage();
}
if (lang != null && lang.length() > 3) {
lang = lang.substring(0, 2).toLowerCase();
}
return lang;
return localeHelper.getLanguage();
}
@Override
public AssetManager getAssets() {
return localizedResources != null ? localizedResources.getAssets() : super.getAssets();
return getResources() != null ? getResources().getAssets() : super.getAssets();
}
@Override
public Resources getResources() {
Resources localizedResources = localeHelper.getLocalizedResources();
return localizedResources != null ? localizedResources : super.getResources();
}

View file

@ -522,6 +522,7 @@ public class MapActivityActions implements DialogProvider {
GPXRouteParamsBuilder params = new GPXRouteParamsBuilder(result, settings);
params.setCalculateOsmAndRouteParts(settings.GPX_ROUTE_CALC_OSMAND_PARTS.get());
params.setCalculateOsmAndRoute(settings.GPX_ROUTE_CALC.get());
params.setSelectedSegment(settings.GPX_ROUTE_SEGMENT.get());
List<Location> ps = params.getPoints(settings.getContext());
mapActivity.getRoutingHelper().setGpxParams(params);
settings.FOLLOW_THE_GPX_ROUTE.set(result.path);

View file

@ -134,6 +134,9 @@ public class FailSafeFuntions {
if(settings.GPX_ROUTE_CALC.get()) {
gpxRoute.setCalculateOsmAndRoute(true);
}
if (settings.GPX_ROUTE_SEGMENT.get() != -1) {
gpxRoute.setSelectedSegment(settings.GPX_ROUTE_SEGMENT.get());
}
} else {
gpxRoute = null;
}

View file

@ -0,0 +1,118 @@
package net.osmand.plus.helpers;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import net.osmand.StateChangedListener;
import net.osmand.plus.OsmandApplication;
import net.osmand.util.Algorithms;
import java.util.Locale;
public class LocaleHelper {
private final OsmandApplication app;
private Locale defaultLocale;
private Locale preferredLocale;
private Resources localizedResources;
public LocaleHelper(OsmandApplication app) {
this.app = app;
}
public void checkPreferredLocale() {
Configuration config = app.getBaseContext().getResources().getConfiguration();
String pl = app.getSettings().PREFERRED_LOCALE.get();
String[] split = pl.split("_");
String lang = split[0];
String country = (split.length > 1) ? split[1] : "";
if (defaultLocale == null) {
defaultLocale = Locale.getDefault();
}
if (!Algorithms.isEmpty(lang)) {
if (!Algorithms.isEmpty(country)) {
preferredLocale = new Locale(lang, country);
} else {
preferredLocale = new Locale(lang);
}
}
Locale selectedLocale = null;
if (!Algorithms.isEmpty(lang) && !config.locale.equals(preferredLocale)) {
selectedLocale = preferredLocale;
} else if (Algorithms.isEmpty(lang) && defaultLocale != null && Locale.getDefault() != defaultLocale) {
selectedLocale = defaultLocale;
preferredLocale = null;
}
if (selectedLocale != null) {
Locale.setDefault(selectedLocale);
config.locale = selectedLocale;
config.setLayoutDirection(selectedLocale);
Resources resources = app.getBaseContext().getResources();
resources.updateConfiguration(config, resources.getDisplayMetrics());
if (android.os.Build.VERSION.SDK_INT >= 17) {
Configuration conf = new Configuration(config);
conf.locale = selectedLocale;
localizedResources = app.createConfigurationContext(conf).getResources();
}
}
}
public void setLanguage(Context context) {
if (preferredLocale != null) {
Configuration config = context.getResources().getConfiguration();
String lang = preferredLocale.getLanguage();
if (!Algorithms.isEmpty(lang) && !config.locale.getLanguage().equals(lang)) {
preferredLocale = new Locale(lang);
Locale.setDefault(preferredLocale);
config.locale = preferredLocale;
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
} else if (Algorithms.isEmpty(lang) && defaultLocale != null && Locale.getDefault() != defaultLocale) {
Locale.setDefault(defaultLocale);
config.locale = defaultLocale;
Resources resources = app.getBaseContext().getResources();
resources.updateConfiguration(config, resources.getDisplayMetrics());
}
}
}
public Resources getLocalizedResources() {
return localizedResources;
}
public Locale getPreferredLocale() {
return preferredLocale;
}
public Locale getDefaultLocale() {
return defaultLocale;
}
public String getCountry() {
String country;
if (preferredLocale != null) {
country = preferredLocale.getCountry();
} else {
country = Locale.getDefault().getCountry();
}
return country;
}
public String getLanguage() {
String lang;
if (preferredLocale != null) {
lang = preferredLocale.getLanguage();
} else {
lang = Locale.getDefault().getLanguage();
}
if (lang != null && lang.length() > 3) {
lang = lang.substring(0, 2).toLowerCase();
}
return lang;
}
}

View file

@ -0,0 +1,134 @@
package net.osmand.plus.helpers;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.GPXUtilities.TrkSegment;
import net.osmand.GPXUtilities.WptPt;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.helpers.TrackSelectSegmentAdapter.TrackViewHolder;
import net.osmand.util.MapUtils;
import java.util.List;
public class TrackSelectSegmentAdapter extends RecyclerView.Adapter<TrackViewHolder> {
private final OsmandApplication app;
private final LayoutInflater themedInflater;
private final UiUtilities iconsCache;
private final List<TrkSegment> segments;
private OnItemClickListener onItemClickListener;
public TrackSelectSegmentAdapter(Context ctx, List<TrkSegment> segments) {
app = (OsmandApplication) ctx.getApplicationContext();
themedInflater = UiUtilities.getInflater(ctx, app.getDaynightHelper().isNightModeForMapControls());
iconsCache = app.getUIUtilities();
this.segments = segments;
}
@NonNull
@Override
public TrackViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = themedInflater.inflate(R.layout.gpx_segment_list_item, parent, false);
ImageView distanceIcon = view.findViewById(R.id.distance_icon);
distanceIcon.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_action_split_interval));
ImageView timeIcon = view.findViewById(R.id.time_icon);
timeIcon.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_action_time_moving_16));
return new TrackViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final TrackViewHolder holder, int position) {
holder.icon.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_action_split_interval));
TrkSegment segment = segments.get(position);
String segmentTitle = app.getResources().getString(R.string.segments_count, position + 1);
holder.name.setText(segmentTitle);
double distance = getDistance(segment);
long time = getSegmentTime(segment);
if (time != 1) {
holder.time.setText(OsmAndFormatter.getFormattedDurationShort((int) (time / 1000)));
} else {
holder.time.setText("");
}
holder.distance.setText(OsmAndFormatter.getFormattedDistance((float) distance, app));
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(holder.getAdapterPosition());
}
}
});
}
@Override
public int getItemCount() {
return segments.size();
}
private long getSegmentTime(TrkSegment segment) {
long startTime = Long.MAX_VALUE;
long endTime = Long.MIN_VALUE;
for (int i = 0; i < segment.points.size(); i++) {
WptPt point = segment.points.get(i);
long time = point.time;
if (time != 0) {
startTime = Math.min(startTime, time);
endTime = Math.max(endTime, time);
}
}
return endTime - startTime;
}
private double getDistance(TrkSegment segment) {
double distance = 0;
WptPt prevPoint = null;
for (int i = 0; i < segment.points.size(); i++) {
WptPt point = segment.points.get(i);
if (prevPoint != null) {
distance += MapUtils.getDistance(prevPoint.getLatitude(), prevPoint.getLongitude(), point.getLatitude(), point.getLongitude());
}
prevPoint = point;
}
return distance;
}
public void setAdapterListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(int position);
}
static class TrackViewHolder extends RecyclerView.ViewHolder {
ImageView icon;
TextView name;
TextView distance;
TextView time;
TrackViewHolder(View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.icon);
name = itemView.findViewById(R.id.name);
distance = itemView.findViewById(R.id.distance);
time = itemView.findViewById(R.id.time_interval);
}
}
}

View file

@ -134,7 +134,7 @@ class SettingsImportTask extends BaseLoadAsyncTask<Void, Void, String> {
private SettingsImportListener getImportListener(final File file) {
return new SettingsImportListener() {
@Override
public void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items) {
public void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
if (succeed) {
app.getRendererRegistry().updateExternalRenderers();
app.getPoiFilters().loadSelectedPoiFilters();
@ -150,7 +150,7 @@ class SettingsImportTask extends BaseLoadAsyncTask<Void, Void, String> {
}
if (!silentImport && file != null && activity != null) {
FragmentManager fm = activity.getSupportFragmentManager();
ImportCompleteFragment.showInstance(fm, items, file.getName());
ImportCompleteFragment.showInstance(fm, items, file.getName(), needRestart);
}
}
}
@ -174,7 +174,7 @@ class SettingsImportTask extends BaseLoadAsyncTask<Void, Void, String> {
final SettingsImportListener importListener = new SettingsImportListener() {
@Override
public void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items) {
public void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
FragmentActivity activity = activityRef.get();
if (progress != null && AndroidUtils.isActivityNotDestroyed(activity)) {
progress.dismiss();

View file

@ -651,7 +651,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
}
private void updateTitle(String address) {
nameStr = address;
setNameStr(address);
getPointDescription().setName(address);
WeakReference<MapContextMenuFragment> fragmentRef = findMenuFragment();
if (fragmentRef != null)

View file

@ -808,7 +808,11 @@ public class MenuBuilder {
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (description.contains("</")) {
POIMapLayer.showHtmlDescriptionDialog(view.getContext(), app, description, descriptionLabel);
} else {
POIMapLayer.showPlainDescriptionDialog(view.getContext(), app, description, descriptionLabel);
}
}
};
@ -1369,8 +1373,10 @@ public class MenuBuilder {
if (amenity != null) {
PoiCategory category = amenity.getType();
PoiType poiType = category.getPoiTypeByKeyName(amenity.getSubType());
if (poiType != null) {
return app.getPoiFilters().getFilterById(PoiUIFilter.STD_PREFIX + poiType.getKeyName());
}
}
return null;
}

View file

@ -138,6 +138,10 @@ public abstract class MenuTitleController {
}
}
public void setNameStr(@Nullable String nameStr) {
this.nameStr = nameStr != null ? nameStr : "";
}
protected boolean needStreetName() {
MenuController menuController = getMenuController();
boolean res = getObject() != null || Algorithms.isEmpty(getPointDescription().getName());
@ -165,28 +169,28 @@ public abstract class MenuTitleController {
protected void acquireNameAndType() {
String firstNameStr = "";
nameStr = "";
typeStr = "";
commonTypeStr = "";
streetStr = "";
setNameStr("");
MenuController menuController = getMenuController();
if (menuController != null) {
firstNameStr = menuController.getFirstNameStr();
nameStr = menuController.getNameStr();
setNameStr(menuController.getNameStr());
typeStr = menuController.getTypeStr();
commonTypeStr = menuController.getCommonTypeStr();
}
if (Algorithms.isEmpty(nameStr)) {
nameStr = typeStr;
setNameStr(typeStr);
typeStr = commonTypeStr;
} else if (Algorithms.isEmpty(typeStr)) {
typeStr = commonTypeStr;
}
if (!Algorithms.isEmpty(firstNameStr)) {
nameStr = firstNameStr + " (" + nameStr + ")";
setNameStr(firstNameStr + " (" + nameStr + ")");
}
}
@ -204,7 +208,7 @@ public abstract class MenuTitleController {
}
if (displayStreetNameInTitle()) {
nameStr = streetStr;
setNameStr(streetStr);
getPointDescription().setName(nameStr);
}
onSearchAddressDone();

View file

@ -302,7 +302,7 @@ public class AmenityMenuBuilder extends MenuBuilder {
ll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
POIMapLayer.showDescriptionDialog(view.getContext(), app, text, textPrefix);
POIMapLayer.showPlainDescriptionDialog(view.getContext(), app, text, textPrefix);
}
});
}

View file

@ -61,7 +61,7 @@ public class WptPtMenuBuilder extends MenuBuilder {
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
POIMapLayer.showDescriptionDialog(view.getContext(), app, wpt.desc, textPrefix);
POIMapLayer.showPlainDescriptionDialog(view.getContext(), app, wpt.desc, textPrefix);
}
};
@ -103,7 +103,7 @@ public class WptPtMenuBuilder extends MenuBuilder {
rowc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
POIMapLayer.showDescriptionDialog(rowc.getContext(), app, wpt.comment,
POIMapLayer.showPlainDescriptionDialog(rowc.getContext(), app, wpt.comment,
rowc.getResources().getString(R.string.poi_dialog_comment));
}
});

View file

@ -231,7 +231,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
final MapActivity mapActivity = (MapActivity) getActivity();
MapActivity mapActivity = (MapActivity) getActivity();
if (mapActivity == null) {
return null;
}
@ -375,6 +375,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
mainView.findViewById(R.id.options_button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
boolean trackSnappedToRoad = !editingCtx.isApproximationNeeded();
boolean addNewSegmentAllowed = editingCtx.isAddNewSegmentAllowed();
OptionsBottomSheetDialogFragment.showInstance(mapActivity.getSupportFragmentManager(),
@ -383,6 +385,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
editingCtx.getAppMode().getStringKey()
);
}
}
});
undoBtn = ((ImageButton) mainView.findViewById(R.id.undo_point_button));
@ -431,7 +434,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
@Override
public void onSelectPoint(int selectedPointPos) {
if (selectedPointPos != -1) {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null && selectedPointPos != -1) {
openSelectedPointMenu(mapActivity);
}
}
@ -440,7 +444,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
measurementLayer.setOnMeasureDistanceToCenterListener(new MeasurementToolLayer.OnMeasureDistanceToCenter() {
@Override
public void onMeasure(float distance, float bearing) {
String distStr = OsmAndFormatter.getFormattedDistance(distance, mapActivity.getMyApplication());
String distStr = OsmAndFormatter.getFormattedDistance(distance, app);
String azimuthStr = OsmAndFormatter.getFormattedAzimuth(bearing, app);
distanceToCenterTv.setText(String.format("%1$s • %2$s", distStr, azimuthStr));
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(
@ -496,8 +500,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
public void onClick(View v) {
if (isFollowTrackMode()) {
startTrackNavigation();
} else {
} else if (editingCtx.isNewData() || editingCtx.hasChanges()) {
saveChanges(FinalSaveAction.SHOW_SNACK_BAR_AND_CLOSE, false);
} else {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
dismiss(mapActivity, false);
}
}
}
});
@ -535,10 +544,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment implements Route
configBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
RouteOptionsBottomSheet.showInstance(
mapActivity, MeasurementToolFragment.this, DialogMode.PLAN_ROUTE,
editingCtx.getAppMode().getStringKey());
}
}
});
initMeasurementMode(gpxData, savedInstanceState == null);

View file

@ -62,10 +62,11 @@ import net.osmand.plus.routing.RouteProvider;
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.views.layers.MapControlsLayer;
import net.osmand.plus.track.TrackSelectSegmentBottomSheet;
import net.osmand.plus.track.TrackSelectSegmentBottomSheet.OnSegmentSelectedListener;
import net.osmand.plus.views.layers.MapControlsLayer.MapControlsThemeInfoProvider;
import net.osmand.plus.widgets.popup.PopUpMenuHelper;
import net.osmand.plus.widgets.popup.PopUpMenuItem;
import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
@ -75,7 +76,7 @@ import java.util.List;
public class FollowTrackFragment extends ContextMenuScrollFragment implements CardListener,
IRouteInformationListener, MapControlsLayer.MapControlsThemeInfoProvider {
IRouteInformationListener, MapControlsThemeInfoProvider, OnSegmentSelectedListener {
public static final String TAG = FollowTrackFragment.class.getName();
@ -210,20 +211,8 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca
if (gpxFile == null || selectingTrack) {
setupTracksCard();
} else {
String fileName = null;
File file = null;
if (!Algorithms.isEmpty(gpxFile.path)) {
file = new File(gpxFile.path);
fileName = file.getName();
} else if (!Algorithms.isEmpty(gpxFile.tracks)) {
fileName = gpxFile.tracks.get(0).name;
}
if (Algorithms.isEmpty(fileName)) {
fileName = app.getString(R.string.shared_string_gpx_track);
}
sortButton.setVisibility(View.GONE);
GPXInfo gpxInfo = new GPXInfo(fileName, file != null ? file.lastModified() : 0, file != null ? file.length() : 0);
TrackEditCard importTrackCard = new TrackEditCard(mapActivity, gpxInfo);
TrackEditCard importTrackCard = new TrackEditCard(mapActivity, gpxFile);
importTrackCard.setListener(this);
cardsContainer.addView(importTrackCard.build(mapActivity));
@ -490,14 +479,26 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca
String fileName = gpxInfo.getFileName();
SelectedGpxFile selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByName(fileName);
if (selectedGpxFile != null) {
selectTrackToFollow(selectedGpxFile.getGpxFile());
GPXFile gpxFile = selectedGpxFile.getGpxFile();
if (gpxFile.getNonEmptySegmentsCount() > 1) {
TrackSelectSegmentBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), gpxFile, this);
} else {
selectTrackToFollow(gpxFile);
updateSelectionMode(false);
}
} else {
CallbackWithObject<GPXFile[]> callback = new CallbackWithObject<GPXFile[]>() {
@Override
public boolean processResult(GPXFile[] result) {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
if (result[0].getNonEmptySegmentsCount() > 1) {
TrackSelectSegmentBottomSheet.showInstance(mapActivity.getSupportFragmentManager(), result[0], FollowTrackFragment.this);
} else {
selectTrackToFollow(result[0]);
updateSelectionMode(false);
}
}
return true;
}
};
@ -716,4 +717,16 @@ public class FollowTrackFragment extends ContextMenuScrollFragment implements Ca
protected String getThemeInfoProviderTag() {
return TAG;
}
@Override
public void onSegmentSelect(GPXFile gpxFile, int selectedSegment) {
selectTrackToFollow(gpxFile);
GPXRouteParamsBuilder paramsBuilder = app.getRoutingHelper().getCurrentGPXRoute();
if (paramsBuilder != null) {
paramsBuilder.setSelectedSegment(selectedSegment);
app.getSettings().GPX_ROUTE_SEGMENT.set(selectedSegment);
app.getRoutingHelper().onSettingsChanged(true);
}
updateSelectionMode(false);
}
}

View file

@ -1675,6 +1675,13 @@ public class MapRouteInfoMenu implements IRouteInformationListener, CardListener
if (Algorithms.isEmpty(fileName)) {
fileName = app.getString(R.string.shared_string_gpx_track);
}
GPXRouteParamsBuilder routeParams = app.getRoutingHelper().getCurrentGPXRoute();
if (gpxFile.getNonEmptySegmentsCount() > 1 && routeParams != null && routeParams.getSelectedSegment() != -1) {
int selectedSegmentCount = routeParams.getSelectedSegment() + 1;
int totalSegmentCount = routeParams.getFile().getNonEmptyTrkSegments(false).size();
fileName = app.getResources().getString(R.string.of, selectedSegmentCount, totalSegmentCount) + ", " + fileName;
}
title.setText(GpxUiHelper.getGpxTitle(fileName));
description.setText(R.string.follow_track);
buttonDescription.setText(R.string.shared_string_add);

View file

@ -6,6 +6,7 @@ import android.widget.ImageButton;
import android.widget.LinearLayout;
import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GpxDbHelper.GpxDataItemCallback;
import net.osmand.plus.R;
@ -13,17 +14,18 @@ import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.helpers.GpxUiHelper;
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
import net.osmand.util.Algorithms;
import java.io.File;
public class TrackEditCard extends BaseCard {
private GPXInfo gpxInfo;
private final GPXFile gpxFile;
public TrackEditCard(MapActivity mapActivity, GPXInfo gpxInfo) {
public TrackEditCard(MapActivity mapActivity, GPXFile gpxFile) {
super(mapActivity);
this.gpxInfo = gpxInfo;
this.gpxFile = gpxFile;
}
@Override
@ -50,9 +52,27 @@ public class TrackEditCard extends BaseCard {
@Override
protected void updateContent() {
String fileName = Algorithms.getFileWithoutDirs(gpxInfo.getFileName());
String title = GpxUiHelper.getGpxTitle(fileName);
String fileName = null;
File file = null;
if (!Algorithms.isEmpty(gpxFile.path)) {
file = new File(gpxFile.path);
fileName = gpxFile.path;
} else if (!Algorithms.isEmpty(gpxFile.tracks)) {
fileName = gpxFile.tracks.get(0).name;
}
if (Algorithms.isEmpty(fileName)) {
fileName = app.getString(R.string.shared_string_gpx_track);
}
GPXInfo gpxInfo = new GPXInfo(gpxFile.path, file != null ? file.lastModified() : 0, file != null ? file.length() : 0);
GpxDataItem dataItem = getDataItem(gpxInfo);
String title = GpxUiHelper.getGpxTitle(Algorithms.getFileWithoutDirs(fileName));
GPXRouteParamsBuilder routeParams = app.getRoutingHelper().getCurrentGPXRoute();
if (gpxFile.getNonEmptySegmentsCount() > 1 && routeParams != null && routeParams.getSelectedSegment() != -1) {
int selectedSegmentCount = routeParams.getSelectedSegment() + 1;
int totalSegmentCount = routeParams.getFile().getNonEmptyTrkSegments(false).size();
title = app.getResources().getString(R.string.of, selectedSegmentCount, totalSegmentCount) + ", " + title;
}
GpxUiHelper.updateGpxInfoView(view, title, gpxInfo, dataItem, false, app);
ImageButton editButton = view.findViewById(R.id.show_on_map);

View file

@ -8,7 +8,6 @@ import android.util.Base64;
import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.GPXUtilities.Route;
import net.osmand.GPXUtilities.Track;
import net.osmand.GPXUtilities.TrkSegment;
import net.osmand.GPXUtilities.WptPt;
import net.osmand.Location;
@ -20,15 +19,15 @@ import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.data.WptLocationPoint;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.onlinerouting.OnlineRoutingHelper;
import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine.OnlineRoutingResponse;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.settings.backend.CommonPreference;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.TargetPointsHelper.TargetPoint;
import net.osmand.plus.onlinerouting.OnlineRoutingHelper;
import net.osmand.plus.onlinerouting.engine.OnlineRoutingEngine.OnlineRoutingResponse;
import net.osmand.plus.render.NativeOsmandLibrary;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.CommonPreference;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.router.GeneralRouter;
import net.osmand.router.GeneralRouter.RoutingParameter;
import net.osmand.router.GeneralRouter.RoutingParameterType;
@ -161,6 +160,7 @@ public class RouteProvider {
private boolean leftSide;
private boolean passWholeRoute;
private boolean calculateOsmAndRouteParts;
private int selectedSegment = -1;
public GPXRouteParamsBuilder(GPXFile file, OsmandSettings settings) {
leftSide = settings.DRIVING_REGION.get().leftHandDriving;
@ -191,6 +191,14 @@ public class RouteProvider {
this.calculateOsmAndRoute = calculateOsmAndRoute;
}
public int getSelectedSegment() {
return selectedSegment;
}
public void setSelectedSegment(int selectedSegment) {
this.selectedSegment = selectedSegment;
}
public void setPassWholeRoute(boolean passWholeRoute) {
this.passWholeRoute = passWholeRoute;
}
@ -278,8 +286,9 @@ public class RouteProvider {
wpt.add(new WptLocationPoint(w));
}
}
int selectedSegment = builder.getSelectedSegment();
if (OSMAND_ROUTER_V2.equals(file.author)) {
route = parseOsmAndGPXRoute(points, file);
route = parseOsmAndGPXRoute(points, file, selectedSegment);
routePoints = file.getRoutePoints();
if (reverse) {
Collections.reverse(points);
@ -287,7 +296,7 @@ public class RouteProvider {
}
addMissingTurns = route != null && route.isEmpty();
} else if (file.isCloudmadeRouteFile() || OSMAND_ROUTER.equals(file.author)) {
directions = parseOsmAndGPXRoute(points, file, OSMAND_ROUTER.equals(file.author), builder.leftSide, 10);
directions = parseOsmAndGPXRoute(points, file, OSMAND_ROUTER.equals(file.author), builder.leftSide, 10, selectedSegment);
if (OSMAND_ROUTER.equals(file.author) && file.hasRtePt()) {
// For files generated by OSMAND_ROUTER use directions contained unaltered
addMissingTurns = false;
@ -301,12 +310,16 @@ public class RouteProvider {
} else {
// first of all check tracks
if (!useIntermediatePointsRTE) {
for (Track tr : file.tracks) {
if (!tr.generalTrack) {
for (TrkSegment tkSeg : tr.segments) {
for (WptPt pt : tkSeg.points) {
points.add(createLocation(pt));
List<TrkSegment> segments = file.getNonEmptyTrkSegments(false);
if (selectedSegment != -1 && segments.size() > selectedSegment) {
TrkSegment segment = segments.get(selectedSegment);
for (WptPt p : segment.points) {
points.add(createLocation(p));
}
} else {
for (TrkSegment tkSeg : segments) {
for (WptPt p : tkSeg.points) {
points.add(createLocation(p));
}
}
}
@ -998,28 +1011,42 @@ public class RouteProvider {
return new RouteCalculationResult("Empty result");
}
private static List<RouteSegmentResult> parseOsmAndGPXRoute(List<Location> points, GPXFile gpxFile) {
for (Track tr : gpxFile.tracks) {
for (TrkSegment ts : tr.segments) {
for (WptPt p : ts.points) {
private static List<RouteSegmentResult> parseOsmAndGPXRoute(List<Location> points, GPXFile gpxFile, int selectedSegment) {
List<TrkSegment> segments = gpxFile.getNonEmptyTrkSegments(false);
if (selectedSegment != -1 && segments.size() > selectedSegment) {
TrkSegment segment = segments.get(selectedSegment);
for (WptPt p : segment.points) {
points.add(createLocation(p));
}
RouteImporter routeImporter = new RouteImporter(segment);
return routeImporter.importRoute();
} else {
for (TrkSegment ts : segments) {
for (WptPt p : ts.points) {
points.add(createLocation(p));
}
}
RouteImporter routeImporter = new RouteImporter(gpxFile);
return routeImporter.importRoute();
}
}
private static List<RouteDirectionInfo> parseOsmAndGPXRoute(List<Location> points, GPXFile gpxFile, boolean osmandRouter,
boolean leftSide, float defSpeed) {
boolean leftSide, float defSpeed, int selectedSegment) {
List<RouteDirectionInfo> directions = null;
if (!osmandRouter) {
for (WptPt pt : gpxFile.getPoints()) {
points.add(createLocation(pt));
}
} else {
for (Track tr : gpxFile.tracks) {
for (TrkSegment ts : tr.segments) {
List<TrkSegment> segments = gpxFile.getNonEmptyTrkSegments(false);
if (selectedSegment != -1 && segments.size() > selectedSegment) {
TrkSegment segment = segments.get(selectedSegment);
for (WptPt p : segment.points) {
points.add(createLocation(p));
}
} else {
for (TrkSegment ts : segments) {
for (WptPt p : ts.points) {
points.add(createLocation(p));
}
@ -1307,7 +1334,7 @@ public class RouteProvider {
GPXFile gpxFile = GPXUtilities.loadGPXFile(gpxStream);
dir = parseOsmAndGPXRoute(res, gpxFile, true, params.leftSide, params.mode.getDefaultSpeed());
dir = parseOsmAndGPXRoute(res, gpxFile, true, params.leftSide, params.mode.getDefaultSpeed(), -1);
if (dir != null) {
addMissingTurns = false;

View file

@ -45,10 +45,8 @@ import net.osmand.plus.helpers.enums.DrivingRegion;
import net.osmand.plus.helpers.enums.MetricsConstants;
import net.osmand.plus.helpers.enums.SpeedConstants;
import net.osmand.plus.helpers.enums.TracksSortByMode;
import net.osmand.plus.mapillary.MapillaryPlugin;
import net.osmand.plus.mapmarkers.CoordinateInputFormats.Format;
import net.osmand.plus.mapmarkers.MapMarkersMode;
import net.osmand.plus.openplacereviews.OpenPlaceReviewsPlugin;
import net.osmand.plus.profiles.LocationIcon;
import net.osmand.plus.profiles.NavigationIcon;
import net.osmand.plus.profiles.ProfileIconColors;
@ -1389,6 +1387,7 @@ public class OsmandSettings {
public final OsmandPreference<Boolean> GPX_ROUTE_CALC_OSMAND_PARTS = new BooleanPreference(this, "gpx_routing_calculate_osmand_route", true).makeGlobal().makeShared().cache();
public final OsmandPreference<Boolean> GPX_CALCULATE_RTEPT = new BooleanPreference(this, "gpx_routing_calculate_rtept", true).makeGlobal().makeShared().cache();
public final OsmandPreference<Boolean> GPX_ROUTE_CALC = new BooleanPreference(this, "calc_gpx_route", false).makeGlobal().makeShared().cache();
public final OsmandPreference<Integer> GPX_ROUTE_SEGMENT = new IntPreference(this, "gpx_route_segment", -1).makeGlobal().makeShared().cache();
public final OsmandPreference<Boolean> SHOW_START_FINISH_ICONS = new BooleanPreference(this, "show_start_finish_icons", true).makeGlobal().makeShared().cache();
public final OsmandPreference<Boolean> AVOID_TOLL_ROADS = new BooleanPreference(this, "avoid_toll_roads", false).makeProfile().cache();

View file

@ -11,6 +11,7 @@ import net.osmand.Collator;
import net.osmand.IndexConstants;
import net.osmand.OsmAndCollator;
import net.osmand.PlatformUtil;
import net.osmand.StateChangedListener;
import net.osmand.data.LatLon;
import net.osmand.map.ITileSource;
import net.osmand.map.TileSourceManager;
@ -29,6 +30,7 @@ import net.osmand.plus.helpers.AvoidSpecificRoads.AvoidRoadInfo;
import net.osmand.plus.helpers.FileNameTranslationHelper;
import net.osmand.plus.helpers.GpxUiHelper;
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
import net.osmand.plus.helpers.LocaleHelper;
import net.osmand.plus.helpers.SearchHistoryHelper;
import net.osmand.plus.helpers.SearchHistoryHelper.HistoryEntry;
import net.osmand.plus.mapmarkers.MapMarker;
@ -110,7 +112,7 @@ public class SettingsHelper {
private Map<File, ExportAsyncTask> exportAsyncTasks = new HashMap<>();
public interface SettingsImportListener {
void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items);
void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items);
}
public interface SettingsCollectListener {
@ -172,7 +174,7 @@ public class SettingsHelper {
}
}
private void finishImport(@Nullable SettingsImportListener listener, boolean success, @NonNull List<SettingsItem> items) {
private void finishImport(@Nullable SettingsImportListener listener, boolean success, @NonNull List<SettingsItem> items, boolean needRestart) {
importTask = null;
List<String> warnings = new ArrayList<>();
for (SettingsItem item : items) {
@ -182,17 +184,19 @@ public class SettingsHelper {
app.showToastMessage(AndroidUtils.formatWarnings(warnings).toString());
}
if (listener != null) {
listener.onSettingsImportFinished(success, items);
listener.onSettingsImportFinished(success, needRestart, items);
}
}
@SuppressLint("StaticFieldLeak")
private class ImportItemsAsyncTask extends AsyncTask<Void, Void, Boolean> {
private SettingsImporter importer;
private File file;
private SettingsImportListener listener;
private List<SettingsItem> items;
private final SettingsImporter importer;
private final File file;
private final SettingsImportListener listener;
private final List<SettingsItem> items;
private final StateChangedListener<String> localeListener;
private boolean needRestart = false;
ImportItemsAsyncTask(@NonNull File file,
@Nullable SettingsImportListener listener,
@ -201,6 +205,17 @@ public class SettingsHelper {
this.file = file;
this.listener = listener;
this.items = items;
localeListener = new StateChangedListener<String>() {
@Override
public void stateChanged(String change) {
needRestart = true;
}
};
}
@Override
protected void onPreExecute() {
app.getSettings().PREFERRED_LOCALE.addListener(localeListener);
}
@Override
@ -218,7 +233,8 @@ public class SettingsHelper {
@Override
protected void onPostExecute(Boolean success) {
finishImport(listener, success, items);
app.getSettings().PREFERRED_LOCALE.removeListener(localeListener);
finishImport(listener, success, items, needRestart);
}
}
@ -339,7 +355,7 @@ public class SettingsHelper {
protected void onPreExecute() {
ImportAsyncTask importTask = SettingsHelper.this.importTask;
if (importTask != null && !importTask.importDone) {
finishImport(importListener, false, items);
finishImport(importListener, false, items, false);
}
SettingsHelper.this.importTask = this;
}

View file

@ -18,7 +18,7 @@ import net.osmand.plus.base.MenuBottomSheetDialogFragment;
import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithCompoundButton;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerSpaceItem;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.LongDescriptionItem;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.ShortDescriptionItem;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem;
import net.osmand.plus.routepreparationmenu.RouteOptionsBottomSheet;
import net.osmand.plus.settings.backend.ApplicationMode;
@ -114,8 +114,7 @@ public class ElevationDateBottomSheet extends MenuBottomSheetDialogFragment {
int contentPaddingSmall = getResources().getDimensionPixelSize(R.dimen.content_padding_small);
items.add(new DividerSpaceItem(app, contentPaddingSmall));
items.add(new LongDescriptionItem(getString(R.string.elevation_data)));
items.add(new DividerSpaceItem(app, contentPaddingSmall));
items.add(new ShortDescriptionItem((getString(R.string.elevation_data_descr))));
createReliefFactorButtons(themedCtx);
}

View file

@ -202,7 +202,7 @@ public class ConfigureProfileFragment extends BaseSettingsFragment implements Co
private void importBackupSettingsItems(File file, List<SettingsItem> items) {
app.getSettingsHelper().importSettings(file, items, "", 1, new SettingsHelper.SettingsImportListener() {
@Override
public void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items) {
public void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
app.showToastMessage(R.string.profile_prefs_reset_successful);
updateCopiedOrResetPrefs();
}

View file

@ -108,7 +108,7 @@ public class GlobalSettingsFragment extends BaseSettingsFragment
Activity activity = getActivity();
OsmandApplication app = getMyApplication();
if (app != null && activity != null) {
app.checkPreferredLocale();
app.getLocaleHelper().checkPreferredLocale();
app.restartApp(activity);
}
} else if (prefId.equals(settings.SPEED_CAMERAS_UNINSTALLED.getId())) {

View file

@ -15,6 +15,7 @@ import android.widget.TextView;
import androidx.activity.OnBackPressedCallback;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@ -28,6 +29,7 @@ import net.osmand.plus.audionotes.AudioVideoNotesPlugin;
import net.osmand.plus.base.BaseOsmAndFragment;
import net.osmand.plus.dashboard.DashboardOnMap;
import net.osmand.plus.dialogs.SelectMapStyleBottomSheetDialogFragment;
import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.myplaces.FavoritesActivity;
import net.osmand.plus.osmedit.OsmEditingPlugin;
import net.osmand.plus.quickaction.QuickActionListFragment;
@ -50,14 +52,16 @@ public class ImportCompleteFragment extends BaseOsmAndFragment {
private RecyclerView recyclerView;
private List<SettingsItem> settingsItems;
private String fileName;
private boolean needRestart;
private boolean nightMode;
public static void showInstance(FragmentManager fm, @NonNull List<SettingsItem> settingsItems,
@NonNull String fileName) {
@NonNull String fileName, boolean needRestart) {
ImportCompleteFragment fragment = new ImportCompleteFragment();
fragment.setSettingsItems(settingsItems);
fragment.setFileName(fileName);
fragment.setRetainInstance(true);
fragment.setNeedRestart(needRestart);
fm.beginTransaction()
.replace(R.id.fragmentContainer, fragment, TAG)
.addToBackStack(SETTINGS_LIST_TAG)
@ -97,6 +101,9 @@ public class ImportCompleteFragment extends BaseOsmAndFragment {
dismissFragment();
}
});
if (needRestart) {
setupRestartButton(root);
}
if (Build.VERSION.SDK_INT >= 21) {
AndroidUtils.addStatusBarPadding21v(app, root);
}
@ -239,6 +246,25 @@ public class ImportCompleteFragment extends BaseOsmAndFragment {
}
}
private void setupRestartButton(View root) {
View buttonsDivider = root.findViewById(R.id.buttons_divider);
View buttonContainer = root.findViewById(R.id.button_restart_container);
AndroidUiHelper.setVisibility(View.VISIBLE, buttonsDivider, buttonContainer);
TextView btnRestart = root.findViewById(R.id.button_restart);
btnRestart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentActivity activity = getActivity();
if (activity instanceof MapActivity) {
MapActivity.doRestart(activity);
} else {
android.os.Process.killProcess(android.os.Process.myPid());
}
}
});
}
@Override
public int getStatusBarColorId() {
return nightMode ? R.color.status_bar_color_dark : R.color.status_bar_color_light;
@ -251,4 +277,8 @@ public class ImportCompleteFragment extends BaseOsmAndFragment {
public void setFileName(String fileName) {
this.fileName = fileName;
}
public void setNeedRestart(boolean needRestart) {
this.needRestart = needRestart;
}
}

View file

@ -155,7 +155,7 @@ public class ImportSettingsFragment extends BaseSettingsListFragment {
public SettingsHelper.SettingsImportListener getImportListener() {
return new SettingsHelper.SettingsImportListener() {
@Override
public void onSettingsImportFinished(boolean succeed, @NonNull List<SettingsItem> items) {
public void onSettingsImportFinished(boolean succeed, boolean needRestart, @NonNull List<SettingsItem> items) {
if (succeed) {
app.getRendererRegistry().updateExternalRenderers();
AppInitializer.loadRoutingFiles(app, null);
@ -166,7 +166,7 @@ public class ImportSettingsFragment extends BaseSettingsListFragment {
}
FragmentManager fm = getFragmentManager();
if (fm != null && file != null) {
ImportCompleteFragment.showInstance(fm, items, file.getName());
ImportCompleteFragment.showInstance(fm, items, file.getName(), needRestart);
}
}
}

View file

@ -90,6 +90,7 @@ public class MapDuringNavigationFragment extends BaseSettingsFragment {
}
}
ListPreferenceEx switchMapDirectionToCompass = (ListPreferenceEx) findPreference(settings.SWITCH_MAP_DIRECTION_TO_COMPASS_KMH.getId());
switchMapDirectionToCompass.setDescription(R.string.map_orientation_threshold_descr);
switchMapDirectionToCompass.setEntries(names);
switchMapDirectionToCompass.setEntryValues(valuesKmh);
}

View file

@ -156,6 +156,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
timeConditionalRouting.setIcon(getRoutingPrefIcon(settings.ENABLE_TIME_CONDITIONAL_ROUTING.getId()));
timeConditionalRouting.setSummaryOn(R.string.shared_string_on);
timeConditionalRouting.setSummaryOff(R.string.shared_string_off);
timeConditionalRouting.setDescription(R.string.temporary_conditional_routing_descr);
getPreferenceScreen().addPreference(timeConditionalRouting);
}
@ -580,6 +581,7 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
private ListPreferenceEx createRoutingBooleanListPreference(String groupKey, List<RoutingParameter> routingParameters) {
String defaultTitle = Algorithms.capitalizeFirstLetterAndLowercase(groupKey.replace('_', ' '));
String title = AndroidUtils.getRoutingStringPropertyName(app, groupKey, defaultTitle);
String description = AndroidUtils.getRoutingStringPropertyDescription(app, groupKey, "");
ApplicationMode am = getSelectedAppMode();
Object[] entryValues = new Object[routingParameters.size()];
@ -599,6 +601,9 @@ public class RouteParametersFragment extends BaseSettingsFragment implements OnP
routingListPref.setPersistent(false);
routingListPref.setValue(selectedParameterId);
routingListPref.setIcon(getRoutingPrefIcon(groupKey));
if (!Algorithms.isEmpty(defaultTitle)) {
routingListPref.setDescription(description);
}
return routingListPref;
}

Some files were not shown because too many files have changed in this diff Show more