Merge branch 'master' into app_profiles

This commit is contained in:
madwasp79 2019-04-24 09:46:15 +03:00
commit 169196ea07
154 changed files with 11132 additions and 3982 deletions

View file

@ -199,6 +199,10 @@ public class RotatedTileBox {
return tile;
}
public double getPixDensity() {
final double dist = getDistance(0, getPixHeight() / 2, getPixWidth(), getPixHeight() / 2);
return getPixWidth() / dist;
}
public int getPixWidth() {
return pixWidth;

View file

@ -1,5 +1,10 @@
package net.osmand.data;
import net.osmand.osm.edit.Node;
import net.osmand.osm.edit.Way;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@ -7,11 +12,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.osmand.osm.edit.Node;
import net.osmand.osm.edit.Way;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
public class TransportRoute extends MapObject {
private List<TransportStop> forwardStops = new ArrayList<TransportStop>();
private String ref;
@ -221,17 +221,19 @@ public class TransportRoute extends MapObject {
return d;
}
public String getAdjustedRouteRef() {
if (ref != null) {
int charPos = ref.lastIndexOf(':');
public String getAdjustedRouteRef(boolean small) {
String adjustedRef = getRef();
if (adjustedRef != null) {
int charPos = adjustedRef.lastIndexOf(':');
if (charPos != -1) {
ref = ref.substring(0, charPos);
adjustedRef = adjustedRef.substring(0, charPos);
}
if (ref.length() > 4) {
ref = ref.substring(0, 4);
int maxRefLength = small ? 5 : 8;
if (adjustedRef.length() > maxRefLength) {
adjustedRef = adjustedRef.substring(0, maxRefLength - 1) + "";
}
}
return ref;
return adjustedRef;
}
public boolean compareRoute(TransportRoute thatObj) {

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View file

@ -217,4 +217,8 @@
<string name="welcome_descr">
<b>OsmAnd Tracker</b> us permet compartir la vostra posició i veure la dels altres a OsmAnd.<br/>
<br/>L\'aplicació utilitza l\'API de Telegram, per tant us cal un compte de Telegram.</string>
<string name="direction">Adreça</string>
<string name="precision">Precisió</string>
<string name="altitude">Altitud</string>
<string name="bearing">Trajectòria</string>
</resources>

View file

@ -217,4 +217,7 @@
<string name="search_contacts_descr">Søg på tværs af alle grupper og kontaktpersoner.</string>
<string name="type_contact_or_group_name">Skriv navnet på kontakt eller gruppe</string>
<string name="shared_string_search">Søg</string>
<string name="direction">Retning</string>
<string name="altitude">Højde</string>
<string name="bearing">Kurs</string>
</resources>

View file

@ -217,4 +217,8 @@
<string name="search_contacts_descr">Alle Gruppen und Kontakte durchsuchen.</string>
<string name="type_contact_or_group_name">Kontakt- oder Gruppenname eingeben</string>
<string name="shared_string_search">Suchen</string>
<string name="direction">Richtung</string>
<string name="precision">Genauigkeit</string>
<string name="altitude">Höhe</string>
<string name="bearing">Peilung</string>
</resources>

View file

@ -212,4 +212,12 @@
<string name="timeline_description">Activa la monitorización para guardar todas las ubicaciones en el historial.</string>
<string name="app_name_short_online">Rastreador en línea</string>
<string name="app_name_short">Rastreador de OsmAnd</string>
<string name="search_contacts">Buscar contactos</string>
<string name="search_contacts_descr">Busca en todos tus grupos y contactos.</string>
<string name="type_contact_or_group_name">Escribe el nombre del contacto o grupo</string>
<string name="shared_string_search">Buscar</string>
<string name="direction">Dirección</string>
<string name="precision">Precisión</string>
<string name="altitude">Altitud</string>
<string name="bearing">Rumbo</string>
</resources>

View file

@ -212,4 +212,12 @@
<string name="shared_string_appearance">Aspecto</string>
<string name="show_gps_points">Mostrar puntos GPS</string>
<string name="show_gps_points_descr">Muestra la cantidad de puntos GPS recibidos y enviados.</string>
<string name="search_contacts">Buscar contactos</string>
<string name="search_contacts_descr">Buscar en todos tus grupos y contactos.</string>
<string name="type_contact_or_group_name">Escriba el nombre del contacto o grupo</string>
<string name="shared_string_search">Buscar</string>
<string name="direction">Dirección</string>
<string name="precision">Precisión</string>
<string name="altitude">Altitud</string>
<string name="bearing">Rumbo</string>
</resources>

View file

@ -216,4 +216,8 @@
<string name="search_contacts_descr">חיפוש בין כל הקבוצות ואנשי הקשר שלך.</string>
<string name="type_contact_or_group_name">נא להקליד שם איש קשר או קבוצה</string>
<string name="shared_string_search">חיפוש</string>
<string name="direction">כיוון</string>
<string name="precision">דיוק</string>
<string name="altitude">גובה</string>
<string name="bearing">תכווין</string>
</resources>

View file

@ -216,4 +216,8 @@
<string name="active_chats">Aktív csevegések</string>
<string name="shared_string_authorization">Engedélyezés</string>
<string name="shared_string_authorization_descr">Kérjük, nemzetközi formátumban adja meg a Telegramhoz használt telefonszámát</string>
<string name="direction">Irány</string>
<string name="precision">Pontosság</string>
<string name="altitude">Magasság</string>
<string name="bearing">Tájolás</string>
</resources>

View file

@ -217,4 +217,8 @@
<string name="search_contacts_descr">Søk gjennom alle dine grupper og kontakter.</string>
<string name="type_contact_or_group_name">Skriv kontakt- eller gruppenavn</string>
<string name="shared_string_search">Søk</string>
<string name="direction">Retning</string>
<string name="precision">Nøyaktighet</string>
<string name="altitude">Høyde</string>
<string name="bearing">Kurs</string>
</resources>

View file

@ -219,4 +219,7 @@
<string name="search_contacts_descr">Przeszukaj wszystkie swoje grupy i kontakty.</string>
<string name="type_contact_or_group_name">Wpisz nazwę kontaktu lub grupy</string>
<string name="shared_string_search">Szukaj</string>
<string name="direction">Kierunek</string>
<string name="precision">Precyzja</string>
<string name="altitude">Wysokość</string>
</resources>

View file

@ -211,4 +211,8 @@
<string name="si_nm">Морские мили</string>
<string name="si_mi_meters">Мили/метры</string>
<string name="timeline">Хронология</string>
<string name="search_contacts">Искать контакты</string>
<string name="search_contacts_descr">Поиск среди всех ваших групп и контактов.</string>
<string name="type_contact_or_group_name">Введите контакт или название группы</string>
<string name="shared_string_search">Поиск</string>
</resources>

View file

@ -216,4 +216,6 @@
<string name="search_contacts_descr">Chirca intre totu sos grupos e sos cuntatos tuos.</string>
<string name="type_contact_or_group_name">Iscrie su nùmene de unu cuntatu o de unu grupu</string>
<string name="shared_string_search">Chirca</string>
<string name="precision">Pretzisione</string>
<string name="altitude">Artària</string>
</resources>

View file

@ -1,93 +1,97 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources><string name="enter_another_device_name">Izberite ime, ki ga še niste uporabili</string>
<string name="device_added_successfully">Naprava %1$s je uspešno dodana.</string>
<string name="shared_string_add">Dodaj</string>
<string name="error_adding_new_device">Ni mogoče dodati nove naprave</string>
<string name="enter_device_name_description">Ime nove naprave je omejeno z 200 znaki.</string>
<string name="device_name_is_too_long">Ime naprave je predolgo</string>
<string name="device_name_cannot_be_empty">Ime naprave mora biti dodeljeno</string>
<string name="device_name">Ime naprave</string>
<string name="shared_string_hide">Skrij</string>
<string name="share_location_as_description_second_line">ID naprave je mogoče ustvariti in pogledati v odjemalcu Telegram z uporabo klepetalnega robota %1$s. %2$s</string>
<string name="last_updated_location">Nazadnje zabeleženo mesto:</string>
<string name="successfully_sent_and_updated">Podatki so uspešno poslani in posodobljeni.</string>
<string name="not_possible_to_send_to_telegram_chats">Ni mogoče pošiljati klepetov Telegram:</string>
<string name="waiting_for_response_from_telegram">Poteka čakanje na odziv programa Telegram</string>
<string name="sending_location_messages">Pošiljanje podatkov o trenutnem mestu</string>
<string name="initializing">Začenjanje</string>
<string name="searching_for_gps">Poteka določevanje mesta …</string>
<string name="connecting_to_the_internet">Poteka vzpostavljanje povezave na internet</string>
<string name="go_to_settings">Skoči na nastavitve</string>
<string name="shared_string_later">Kasneje</string>
<string name="not_sent_yet">Ni še poslano</string>
<string name="not_found_yet">Ni še najdeno</string>
<string name="re_send_location">Ponovno pošiljanje trenutnega mesta</string>
<string name="last_available_location">Zadnje določeno mesto</string>
<string name="sharing_status">Objavljanje stanja</string>
<string name="sharing_enabled">Objavljanje: omogočeno</string>
<string name="shared_string_status">Stanje</string>
<string name="no_gps_connection">Ni povezave z GPS</string>
<string name="no_internet_connection">Ni vzpostavljene internetne povezave</string>
<string name="shared_string_disable">Onemogoči</string>
<string name="shared_string_save">Shrani</string>
<string name="add_device">Dodaj napravo</string>
<string name="share_location_as">Objavi trenutno mesto kot</string>
<string name="logout_from_osmand_telegram">Ali se želite odjaviti iz storitve OsmAnd Tracker\?</string>
<string name="shared_string_name">Ime</string>
<string name="by_distance">Po razdalji</string>
<string name="by_name">Po imenu</string>
<string name="by_group">Po skupini</string>
<string name="shared_string_sort">Razvrsti</string>
<string name="shared_string_sort_by">Razvrsti po</string>
<string name="choose_osmand">Izbor različice OsmAnd za uporabo</string>
<string name="disable_all_sharing">Onemogoči vse objavljanje</string>
<string name="turn_off_all">Izklopi vse</string>
<string name="shared_string_exit">Končaj</string>
<string name="last_response">Zadnji odziv</string>
<string name="shared_string_group">Skupina</string>
<string name="logout_no_internet_msg">Pred odjavo storitve Telegram je treba vzpostaviti internetno povezavo.</string>
<string name="shared_string_close">Zapri</string>
<string name="connected_account">Povezan račun</string>
<string name="shared_string_account">Račun</string>
<string name="in_time">v %1$s</string>
<string name="show_on_map">Pokaži na zemljevidu</string>
<string name="app_name">OsmAnd Online GPS Tracker</string>
<string name="phone_number_title">Telefonska številka</string>
<string name="phone_number_descr">Telefonska številka v mednarodnem zapisu</string>
<string name="shared_string_password">Geslo</string>
<string name="enter_code">Koda</string>
<string name="authentication_code">Overitvena koda</string>
<string name="install_osmand">Namesti program OsmAnd</string>
<string name="show_users_on_map">Pokaži uporabnike na zemljevidu</string>
<string name="active_chats">Dejavni klepeti</string>
<string name="shared_string_authorization">Overitev</string>
<string name="shared_string_authorization_descr">Telefonsko številko programa Telegram je treba vpisati v mednarodnem zapisu</string>
<string name="shared_string_welcome">Dobrodošli</string>
<string name="yard">yd</string>
<string name="foot">ft</string>
<string name="mile">mi</string>
<string name="km">km</string>
<string name="m">m</string>
<string name="nm">nmi</string>
<string name="min_mile">min/m</string>
<string name="min_km">min/km</string>
<string name="nm_h">nmi/h</string>
<string name="m_s">m/s</string>
<string name="km_h">km/h</string>
<string name="mile_per_hour">mph</string>
<string name="si_kmh">Kilometri na uro</string>
<string name="si_mph">Milje na uro</string>
<string name="si_m_s">Metri na sekundo</string>
<string name="si_min_km">Minute na kilometer</string>
<string name="si_min_m">Minute na miljo</string>
<string name="si_nm_h">Navtične milje na uro (vozli)</string>
<string name="si_mi_feet">Milje/Čevlji</string>
<string name="si_mi_yard">Milje/Jardi</string>
<string name="si_km_m">Kilometri/Metri</string>
<string name="si_nm">Navtične milje</string>
<string name="si_mi_meters">Milje/Metri</string>
<string name="shared_string_hour_short">h</string>
<string name="shared_string_minute_short">min</string>
<string name="shared_string_second_short">sek</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="enter_another_device_name">Izberite ime, ki ga še niste uporabili</string>
<string name="device_added_successfully">Naprava %1$s je uspešno dodana.</string>
<string name="shared_string_add">Dodaj</string>
<string name="error_adding_new_device">Ni mogoče dodati nove naprave</string>
<string name="enter_device_name_description">Ime nove naprave je omejeno z 200 znaki.</string>
<string name="device_name_is_too_long">Ime naprave je predolgo</string>
<string name="device_name_cannot_be_empty">Ime naprave mora biti dodeljeno</string>
<string name="device_name">Ime naprave</string>
<string name="shared_string_hide">Skrij</string>
<string name="share_location_as_description_second_line">ID naprave je mogoče ustvariti in pogledati v odjemalcu Telegram z uporabo klepetalnega robota %1$s. %2$s</string>
<string name="last_updated_location">Nazadnje zabeleženo mesto:</string>
<string name="successfully_sent_and_updated">Podatki so uspešno poslani in posodobljeni.</string>
<string name="not_possible_to_send_to_telegram_chats">Ni mogoče pošiljati klepetov Telegram:</string>
<string name="waiting_for_response_from_telegram">Poteka čakanje na odziv programa Telegram</string>
<string name="sending_location_messages">Pošiljanje podatkov o trenutnem mestu</string>
<string name="initializing">Začenjanje</string>
<string name="searching_for_gps">Poteka določevanje mesta …</string>
<string name="connecting_to_the_internet">Poteka vzpostavljanje povezave na internet</string>
<string name="go_to_settings">Skoči na nastavitve</string>
<string name="shared_string_later">Kasneje</string>
<string name="not_sent_yet">Ni še poslano</string>
<string name="not_found_yet">Ni še najdeno</string>
<string name="re_send_location">Ponovno pošiljanje trenutnega mesta</string>
<string name="last_available_location">Zadnje določeno mesto</string>
<string name="sharing_status">Objavljanje stanja</string>
<string name="sharing_enabled">Objavljanje: omogočeno</string>
<string name="shared_string_status">Stanje</string>
<string name="no_gps_connection">Ni povezave z GPS</string>
<string name="no_internet_connection">Ni vzpostavljene internetne povezave</string>
<string name="shared_string_disable">Onemogoči</string>
<string name="shared_string_save">Shrani</string>
<string name="add_device">Dodaj napravo</string>
<string name="share_location_as">Objavi trenutno mesto kot</string>
<string name="logout_from_osmand_telegram">Ali se želite odjaviti iz storitve OsmAnd Tracker\?</string>
<string name="shared_string_name">Ime</string>
<string name="by_distance">Po razdalji</string>
<string name="by_name">Po imenu</string>
<string name="by_group">Po skupini</string>
<string name="shared_string_sort">Razvrsti</string>
<string name="shared_string_sort_by">Razvrsti po</string>
<string name="choose_osmand">Izbor različice OsmAnd za uporabo</string>
<string name="disable_all_sharing">Onemogoči vse objavljanje</string>
<string name="turn_off_all">Izklopi vse</string>
<string name="shared_string_exit">Končaj</string>
<string name="last_response">Zadnji odziv</string>
<string name="shared_string_group">Skupina</string>
<string name="logout_no_internet_msg">Pred odjavo storitve Telegram je treba vzpostaviti internetno povezavo.</string>
<string name="shared_string_close">Zapri</string>
<string name="connected_account">Povezan račun</string>
<string name="shared_string_account">Račun</string>
<string name="in_time">v %1$s</string>
<string name="show_on_map">Pokaži na zemljevidu</string>
<string name="app_name">OsmAnd Online GPS Tracker</string>
<string name="phone_number_title">Telefonska številka</string>
<string name="phone_number_descr">Telefonska številka v mednarodnem zapisu</string>
<string name="shared_string_password">Geslo</string>
<string name="enter_code">Koda</string>
<string name="authentication_code">Overitvena koda</string>
<string name="install_osmand">Namesti program OsmAnd</string>
<string name="show_users_on_map">Pokaži uporabnike na zemljevidu</string>
<string name="active_chats">Dejavni klepeti</string>
<string name="shared_string_authorization">Overitev</string>
<string name="shared_string_authorization_descr">Telefonsko številko programa Telegram je treba vpisati v mednarodnem zapisu</string>
<string name="shared_string_welcome">Dobrodošli</string>
<string name="yard">yd</string>
<string name="foot">ft</string>
<string name="mile">mi</string>
<string name="km">km</string>
<string name="m">m</string>
<string name="nm">nmi</string>
<string name="min_mile">min/m</string>
<string name="min_km">min/km</string>
<string name="nm_h">nmi/h</string>
<string name="m_s">m/s</string>
<string name="km_h">km/h</string>
<string name="mile_per_hour">mph</string>
<string name="si_kmh">Kilometri na uro</string>
<string name="si_mph">Milje na uro</string>
<string name="si_m_s">Metri na sekundo</string>
<string name="si_min_km">Minute na kilometer</string>
<string name="si_min_m">Minute na miljo</string>
<string name="si_nm_h">Navtične milje na uro (vozli)</string>
<string name="si_mi_feet">Milje/Čevlji</string>
<string name="si_mi_yard">Milje/Jardi</string>
<string name="si_km_m">Kilometri/Metri</string>
<string name="si_nm">Navtične milje</string>
<string name="si_mi_meters">Milje/Metri</string>
<string name="shared_string_hour_short">h</string>
<string name="shared_string_minute_short">min</string>
<string name="shared_string_second_short">sek</string>
<string name="search_contacts">Iskanje stikov</string>
<string name="search_contacts_descr">Iskanje med skupinami in stiki</string>
<string name="shared_string_search">Iskanje</string>
<string name="shared_string_ok">V redu</string>
</resources>

View file

@ -214,4 +214,12 @@
<string name="timeline_description">啟用監視以儲存所有歷史中的位置。</string>
<string name="app_name_short_online">線上追蹤器</string>
<string name="app_name_short">OsmAnd 追蹤器</string>
<string name="search_contacts">搜尋聯絡人</string>
<string name="search_contacts_descr">搜尋您所有的群組與聯絡人。</string>
<string name="type_contact_or_group_name">輸入聯絡人或群組名稱</string>
<string name="shared_string_search">搜尋</string>
<string name="direction">方向</string>
<string name="precision">精確</string>
<string name="altitude">高度</string>
<string name="bearing">方位</string>
</resources>

View file

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="direction">Direction</string>
<string name="precision">Precision</string>
<string name="altitude">Altitude</string>
<string name="bearing">Bearing</string>
<string name="search_contacts">Search contacts</string>
<string name="search_contacts_descr">Search across all of your groups and contacts.</string>
<string name="type_contact_or_group_name">Type contact or group name</string>

View file

@ -2,13 +2,40 @@ package net.osmand.aidl;
import net.osmand.aidl.search.SearchResult;
import net.osmand.aidl.gpx.AGpxBitmap;
import net.osmand.aidl.navigation.ADirectionInfo;
interface IOsmAndAidlCallback {
/**
* Callback for search requests.
*
* @return resultSet - set of SearchResult
*/
void onSearchComplete(in List<SearchResult> resultSet);
/**
* Callback for {@link IOsmAndAidlInterface} registerForUpdates() method.
*/
void onUpdate();
/**
* Callback for {@link IOsmAndAidlInterface} registerForOsmandInitListener() method.
*/
void onAppInitialized();
/**
* Callback for {@link IOsmAndAidlInterface} getBitmapForGpx() method.
*
* @return bitmap - snapshot image of gpx track on map
*/
void onGpxBitmapCreated(in AGpxBitmap bitmap);
/**
* Callback for {@link IOsmAndAidlInterface} registerForNavigationUpdates() method.
*
* @return directionInfo - update on distance to next turn and turns type.
*/
void updateNavigationInfo(in ADirectionInfo directionInfo);
void onContextMenuButtonClicked(in int buttonId, String pointId, String layerId);
}

View file

@ -54,7 +54,6 @@ import net.osmand.aidl.gpx.RemoveGpxParams;
import net.osmand.aidl.maplayer.point.ShowMapPointParams;
import net.osmand.aidl.navdrawer.SetNavDrawerItemsParams;
import net.osmand.aidl.navdrawer.NavDrawerFooterParams;
import net.osmand.aidl.navdrawer.NavDrawerHeaderParams;
@ -76,104 +75,628 @@ import net.osmand.aidl.customization.OsmandSettingsParams;
import net.osmand.aidl.gpx.AGpxFile;
import net.osmand.aidl.gpx.AGpxFileDetails;
import net.osmand.aidl.gpx.CreateGpxBitmapParams;
import net.osmand.aidl.tiles.ASqliteDbFile;
import net.osmand.aidl.plugins.PluginParams;
import net.osmand.aidl.copyfile.CopyFileParams;
import net.osmand.aidl.navigation.ANavigationUpdateParams;
import net.osmand.aidl.contextmenu.ContextMenuButtonsParams;
import net.osmand.aidl.contextmenu.UpdateContextMenuButtonsParams;
import net.osmand.aidl.contextmenu.RemoveContextMenuButtonsParams;
// NOTE: Add new methods at the end of file!!!
interface IOsmAndAidlInterface {
/**
* Add map marker at given location.
*
* @param lat (double) - latitude.
* @param lon (double) - longitude.
* @param name (String)- name of marker.
*/
boolean addMapMarker(in AddMapMarkerParams params);
/**
* Add map marker at given location.
*
* @param lat (double) - latitude.
* @param lon (double) - longitude.
* @param name (String)- name of marker.
*/
boolean removeMapMarker(in RemoveMapMarkerParams params);
/**
* Update map marker at given location with name.
*
* @param latPrev (double) - latitude (current marker).
* @param lonPrev (double) - longitude (current marker).
* @param namePrev (String) - name (current marker).
* @param latNew (double) - latitude (new marker).
* @param lonNew (double) - longitude (new marker).
* @param nameNew (String) - name (new marker).
*/
boolean updateMapMarker(in UpdateMapMarkerParams params);
/**
* Add map widget to the right side of the main screen.
* Note: any specified icon should exist in OsmAnd app resources.
*
* @param id (String) - widget id.
* @param menuIconName (String) - icon name (configure map menu).
* @param menuTitle (String) - widget name (configure map menu).
* @param lightIconName (String) - icon name for the light theme (widget).
* @param darkIconName (String) - icon name for the dark theme (widget).
* @param text (String) - main widget text.
* @param description (String) - sub text, like "km/h".
* @param order (int) - order position in the widgets list.
* @param intentOnClick (String) - onClick intent. Called after click on widget as startActivity(Intent intent).
*/
boolean addMapWidget(in AddMapWidgetParams params);
/**
* Remove map widget.
*
* @param (String) id - widget id.
*/
boolean removeMapWidget(in RemoveMapWidgetParams params);
/**
* Update map widget.
* Note: any specified icon should exist in OsmAnd app resources.
*
* @param id (String) - widget id.
* @param menuIconName (String) - icon name (configure map menu).
* @param menuTitle (String) - widget name (configure map menu).
* @param lightIconName (String) - icon name for the light theme (widget).
* @param darkIconName (String) - icon name for the dark theme (widget).
* @param text (String) - main widget text.
* @param description (String) - sub text, like "km/h".
* @param order (int) - order position in the widgets list.
* @param intentOnClick (String) - onClick intent. Called after click on widget as startActivity(Intent intent).
*/
boolean updateMapWidget(in UpdateMapWidgetParams params);
/**
* Add point to user layer.
*
* @param layerId (String) - layer id. Note: layer should be added first.
* @param pointId (String) - point id.
* @param shortName (String) - short name (single char). Displayed on the map.
* @param fullName (String) - full name. Displayed in the context menu on first row.
* @param typeName (String) - type name. Displayed in context menu on second row.
* @param color (int) - color of circle's background.
* @param location (ALatLon) - location of the point.
* @param details (List<String>)- list of details. Displayed under context menu.
* @param params (Map<String, String>) - optional map of params for point.
*/
boolean addMapPoint(in AddMapPointParams params);
/**
* Remove point.
*
* @param layerId (String) - layer id.
* @param pointId (String) - point id.
*/
boolean removeMapPoint(in RemoveMapPointParams params);
/**
* Update point.
*
* @param layerId (String) - layer id.
* @param pointId (String) - point id.
* @param shortName (String) - short name (single char). Displayed on the map.
* @param fullName (String) - full name. Displayed in the context menu on first row.
* @param typeName (String) - type name. Displayed in context menu on second row.
* @param color (String) - color of circle's background.
* @param location (ALatLon)- location of the point.
* @param details (List<String>) - list of details. Displayed under context menu.
* @param params (Map<String, String>) - optional map of params for point.
*/
boolean updateMapPoint(in UpdateMapPointParams params);
/**
* Add user layer on the map.
*
* @param id (String) - layer id.
* @param name (String) - layer name.
* @param zOrder (float) - z-order position of layer. Default value is 5.5f
* @param points Map<Sting, AMapPoint> - initial list of points. Nullable.
* @param imagePoints (boolean) - use new style for points on map or not. Also default zoom bounds for new style can be edited.
*/
boolean addMapLayer(in AddMapLayerParams params);
/**
* Remove user layer.
*
* @param id (String) - layer id.
*/
boolean removeMapLayer(in RemoveMapLayerParams params);
/**
* Update user layer.
*
* @param id (String) - layer id.
* @param name (String) - layer name.
* @param zOrder (float) - z-order position of layer. Default value is 5.5f
* @param points Map<Sting, AMapPoint> - list of points. Nullable.
* @param imagePoints (boolean) - use new style for points on map or not. Also default zoom bounds for new style can be edited.
*/
boolean updateMapLayer(in UpdateMapLayerParams params);
boolean importGpx(in ImportGpxParams params);
boolean showGpx(in ShowGpxParams params);
boolean hideGpx(in HideGpxParams params);
boolean getActiveGpx(out List<ASelectedGpxFile> files);
/**
* Import GPX file to OsmAnd (from URI or file).
*
* @param gpxUri (Uri) - URI created by FileProvider (preferable method).
* @param file (File) - File which represents GPX track (not recomended, OsmAnd should have rights to access file location).
* @param fileName (String) - Destination file name. May contain dirs.
* @param color (String) - color of gpx. Can be one of: "red", "orange", "lightblue", "blue", "purple",
* "translucent_red", "translucent_orange", "translucent_lightblue",
* "translucent_blue", "translucent_purple"
* @param show (boolean) - show track on the map after import
*/
boolean importGpx(in ImportGpxParams params);
/**
* Show GPX file on map.
*
* @param fileName (String) - file name to show. Must be imported first.
*/
boolean showGpx(in ShowGpxParams params);
/**
* Hide GPX file.
*
* @param fileName (String) - file name to hide.
*/
boolean hideGpx(in HideGpxParams params);
/**
* Get list of active GPX files.
*
* @return list of active gpx files.
*/
boolean getActiveGpx(out List<ASelectedGpxFile> files);
/**
* Set map view to current location.
*
* @param latitude (double) - latitude of new map center.
* @param longitude (double) - longitude of new map center.
* @param zoom (float) - map zoom level. Set 0 to keep zoom unchanged.
* @param animated (boolean) - set true to animate changes.
*/
boolean setMapLocation(in SetMapLocationParams params);
boolean setMapLocation(in SetMapLocationParams params);
boolean calculateRoute(in CalculateRouteParams params);
/**
* Refresh the map (UI)
*/
boolean refreshMap();
/**
* Add favorite group with given params.
*
* @param name (String) - group name.
* @param color (String) - group color. Can be one of: "red", "orange", "yellow",
* "lightgreen", "green", "lightblue", "blue", "purple", "pink", "brown".
* @param visible (boolean) - group visibility.
*/
boolean addFavoriteGroup(in AddFavoriteGroupParams params);
/**
* Update favorite group with given params.
*
* @param namePrev (String) - group name (current).
* @param colorPrev (String) - group color (current).
* @param visiblePrev (boolean) - group visibility (current).
* @param nameNew (String) - group name (new).
* @param colorNew (String) - group color (new).
* @param visibleNew (boolean) - group visibility (new).
*/
boolean removeFavoriteGroup(in RemoveFavoriteGroupParams params);
/**
* Remove favorite group with given name.
*
* @param name (String) - name of favorite group.
*/
boolean updateFavoriteGroup(in UpdateFavoriteGroupParams params);
/**
* Add favorite at given location with given params.
*
* @param lat (double) - latitude.
* @param lon (double) - longitude.
* @param name (String) - name of favorite item.
* @param description (String) - description of favorite item.
* @param category (String) - category of favorite item.
* @param color (String) - color of favorite item. Can be one of: "red", "orange", "yellow",
* "lightgreen", "green", "lightblue", "blue", "purple", "pink", "brown".
* @param visible (boolean) - should favorite item be visible after creation.
*/
boolean addFavorite(in AddFavoriteParams params);
/**
* Update favorite at given location with given params.
*
* @param latPrev (double) - latitude (current favorite).
* @param lonPrev (double) - longitude (current favorite).
* @param namePrev (String) - name of favorite item (current favorite).
* @param categoryPrev (String) - category of favorite item (current favorite).
* @param latNew (double) - latitude (new favorite).
* @param lonNew (double) - longitude (new favorite).
* @param nameNew (String) - name of favorite item (new favorite).
* @param descriptionNew (String) - description of favorite item (new favorite).
* @param categoryNew (String) - category of favorite item (new favorite). Use only to create a new category,
* not to update an existing one. If you want to update an existing category,
* use the {@link #updateFavoriteGroup(String, String, boolean, String, String, boolean)} method.
* @param colorNew (String) - color of new category. Can be one of: "red", "orange", "yellow",
* "lightgreen", "green", "lightblue", "blue", "purple", "pink", "brown".
* @param visibleNew (boolean) - should new category be visible after creation.
*/
boolean removeFavorite(in RemoveFavoriteParams params);
/**
* Remove favorite at given location with given params.
*
* @param lat (double) - latitude.
* @param lon (double) - longitude.
* @param name (String) - name of favorite item.
* @param category (String) - category of favorite item.
*/
boolean updateFavorite(in UpdateFavoriteParams params);
/**
* Start gpx recording.
*/
boolean startGpxRecording(in StartGpxRecordingParams params);
/**
* Stop gpx recording.
*/
boolean stopGpxRecording(in StopGpxRecordingParams params);
/**
* Take photo note.
*
* @param lat (double) - latutude of photo note.
* @param lon (double) - longitude of photo note.
*/
boolean takePhotoNote(in TakePhotoNoteParams params);
/**
* Start video note recording.
*
* @param lat (double) - latutude of video note point.
* @param lon (double) - longitude of video note point.
*/
boolean startVideoRecording(in StartVideoRecordingParams params);
/**
* Start audio note recording.
*
* @param lat (double) - latutude of audio note point.
* @param lon (double) - longitude of audio note point.
*/
boolean startAudioRecording(in StartAudioRecordingParams params);
/**
* Stop Audio/Video recording.
*/
boolean stopRecording(in StopRecordingParams params);
/**
* Start navigation.
*
* @param startName (String) - name of the start point as it displays in OsmAnd's UI. Nullable.
* @param startLat (double) - latitude of the start point. If 0 - current location is used.
* @param startLon (double) - longitude of the start point. If 0 - current location is used.
* @param destName (String) - name of the start point as it displays in OsmAnd's UI.
* @param destLat (double) - latitude of a destination point.
* @param destLon (double) - longitude of a destination point.
* @param profile (String) - One of: "default", "car", "bicycle", "pedestrian", "aircraft", "boat", "hiking", "motorcycle", "truck". Nullable (default).
* @param force (boolean) - ask to stop current navigation if any. False - ask. True - don't ask.
*/
boolean navigate(in NavigateParams params);
/**
* Start navigation using gpx file. User need to grant Uri permission to OsmAnd.
*
* @param gpxUri (Uri) - URI created by FileProvider.
* @param force (boolean) - ask to stop current navigation if any. False - ask. True - don't ask.
*/
boolean navigateGpx(in NavigateGpxParams params);
/**
* Remove GPX file.
*
* @param fileName (String) - file name to remove;
*/
boolean removeGpx(in RemoveGpxParams params);
/**
* Show AMapPoint on map in OsmAnd.
*
* @param layerId (String) - layer id. Note: layer should be added first.
* @param pointId (String) - point id.
* @param shortName (String) - short name (single char). Displayed on the map.
* @param fullName (String) - full name. Displayed in the context menu on first row.
* @param typeName (String) - type name. Displayed in context menu on second row.
* @param color (int) - color of circle's background.
* @param location (ALatLon) - location of the point.
* @param details List<String> - list of details. Displayed under context menu.
* @param params Map<String, String> - optional map of params for point.
*/
boolean showMapPoint(in ShowMapPointParams params);
/**
* Method for adding up to 3 items to the OsmAnd navigation drawer.
*
* @param appPackage - current application package.
* @param names - list of names for items.
* @param uris - list of uris for intents.
* @param iconNames - list of icon names for items.
* @param flags - list of flags for intents. Use -1 if no flags needed.
*/
boolean setNavDrawerItems(in SetNavDrawerItemsParams params);
/**
* Put navigation on pause.
*/
boolean pauseNavigation(in PauseNavigationParams params);
/**
* Resume navigation if it was paused before.
*/
boolean resumeNavigation(in ResumeNavigationParams params);
/**
* Stop navigation. Removes target / intermediate points and route path from the map.
*/
boolean stopNavigation(in StopNavigationParams params);
/**
* Mute voice guidance. Stays muted until unmute manually or via the api.
*/
boolean muteNavigation(in MuteNavigationParams params);
/**
* Unmute voice guidance.
*/
boolean unmuteNavigation(in UnmuteNavigationParams params);
/**
* Run search for POI / Address.
*
* @param searchQuery (String) - search query string.
* @param searchType (int) - type of search. Values:
* SearchParams.SEARCH_TYPE_ALL - all kind of search
* SearchParams.SEARCH_TYPE_POI - POIs only
* SearchParams.SEARCH_TYPE_ADDRESS - addresses only
*
* @param latitude (double) - latitude of original search location.
* @param longitude (double) - longitude of original search location.
* @param radiusLevel (int) - value from 1 to 7. Default value = 1.
* @param totalLimit (int) - limit of returned search result rows. Default value = -1 (unlimited).
*/
boolean search(in SearchParams params, IOsmAndAidlCallback callback);
/**
* Do search and start navigation.
*
* @param startName (String) - name of the start point as it displays in OsmAnd's UI. Nullable.
* @param startLat (double) - latitude of the start point. If 0 - current location is used.
* @param startLon (double) - longitude of the start point. If 0 - current location is used.
* @param searchQuery (String) - Text of a query for searching a destination point. Sent as URI parameter.
* @param searchLat (double) - original location of search (latitude). Sent as URI parameter.
* @param searchLon (double) - original location of search (longitude). Sent as URI parameter.
* @param profile (String) - one of: "default", "car", "bicycle", "pedestrian", "aircraft", "boat", "hiking", "motorcycle", "truck". Nullable (default).
* @param force (boolean) - ask to stop current navigation if any. False - ask. True - don't ask.
*/
boolean navigateSearch(in NavigateSearchParams params);
/**
* Method to register for periodical callbacks from OsmAnd
*
* @param updateTimeMS (long)- period of time in millisecond after which callback is triggered
* @param callback (IOsmAndCallback)- create and provide instance of {@link IOsmAndAidlCallback} interface
* @return id (long) - id of callback in OsmAnd. Needed to unsubscribe from updates.
*/
long registerForUpdates(in long updateTimeMS, IOsmAndAidlCallback callback);
/**
* Method to unregister from periodical callbacks from OsmAnd
*
* @param callbackId (long)- id of registered callback (provided by OsmAnd
* in {@link OsmAndAidlHelper#registerForUpdates(long, IOsmAndAidlCallback)})
*/
boolean unregisterFromUpdates(in long callbackId);
/**
* Method for adding image to the top of Osmand's NavDrawer.
*
* @param imageUri (String)- image's URI.toString
*
* @deprecated
* Use the {@link #setNavDrawerLogoWithParams(NavDrawerHeaderParams params)} method.
*/
boolean setNavDrawerLogo(in String imageUri);
/**
* Method for selected UI elements (like QuickSearch button) to show.
*
* @param ids (List<String>)- list of menu items keys from {@link OsmAndCustomizationConstants}
*/
boolean setEnabledIds(in List<String> ids);
/**
* Method for selected UI elements (like QuickSearch button) to hide.
*
* @param ids (List<String>)- list of menu items keys from {@link OsmAndCustomizationConstants}
*/
boolean setDisabledIds(in List<String> ids);
/**
* Method to show selected NavDrawer's menu items.
*
* @param patterns (List<String>) - list of menu items names from {@link OsmAndCustomizationConstants}
*/
boolean setEnabledPatterns(in List<String> patterns);
/**
* Method to hide selected NavDrawer's menu items.
*
* @param patterns (List<String>)- list of menu items names from {@link OsmAndCustomizationConstants}
*/
boolean setDisabledPatterns(in List<String> patterns);
/**
* Register OsmAnd widgets for visibility.
*
* @param widgetKey ()- widget id.
* @param appModKeys - list of OsmAnd Application modes widget active with. Could be "null" for all modes.
*/
boolean regWidgetVisibility(in SetWidgetsParams params);
/**
* Register OsmAnd widgets for availability.
*
* @param widgetKey (String) - widget id.
* @param appModKeys (List<String>)- ist of OsmAnd Application modes widget active with. Could be "null" for all modes.
*/
boolean regWidgetAvailability(in SetWidgetsParams params);
/**
* Add custom parameters for OsmAnd settings to associate with client app.
*
* @param sharedPreferencesName (String)- string with name of clint's app for shared preferences key
* @param bundle (Bundle)- bundle with keys from Settings IDs {@link OsmAndCustomizationConstants} and Settings params
*/
boolean customizeOsmandSettings(in OsmandSettingsParams params);
/**
* Method to get list of gpx files currently registered (imported or created) in OsmAnd;
*
* @return list of gpx files
*/
boolean getImportedGpx(out List<AGpxFile> files);
/**
* Method to get list of sqlitedb files registered in OsmAnd;
*
* @return list of sqlitedb files
*/
boolean getSqliteDbFiles(out List<ASqliteDbFile> files);
/**
* Method to get list of currently active sqlitedb files
*
* @return list of sqlitedb files
*/
boolean getActiveSqliteDbFiles(out List<ASqliteDbFile> files);
/**
* Method to show selected sqlitedb file as map overlay.
*
* @param fileName (String) - name of sqlitedb file
*/
boolean showSqliteDbFile(String fileName);
/**
* Method to hide sqlitedb file from map overlay.
*
* @param fileName (String) - name of sqlitedb file
*/
boolean hideSqliteDbFile(String fileName);
/**
* Method for adding image to the top of OsmAnd's NavDrawer with additional params
*
* @param imageUri (String) - image's URI.toString
* @param packageName (String) - client's app package name
* @param intent (String) - intent for additional functionality on image click
*
*/
boolean setNavDrawerLogoWithParams(in NavDrawerHeaderParams params);
/**
* Method for adding functionality to "Powered by Osmand" logo in NavDrawer's footer
* (reset OsmAnd settings to pre-clinet app's state)
*
* @param packageName (String) - package name
* @param intent (String) - intent
* @param appName (String) - client's app name
*/
boolean setNavDrawerFooterWithParams(in NavDrawerFooterParams params);
/**
* Restore default (pre-client) OsmAnd settings and state:
* clears features, widgets and settings customization, NavDraw logo.
*/
boolean restoreOsmand();
/**
* Method to change state of plug-ins in OsmAnd.
*
* @param pluginId (String) - id (name) of plugin.
* @param newState (int) - new state (0 - off, 1 - on).
*/
boolean changePluginState(in PluginParams params);
/**
* Method to register for callback on OsmAnd initialization
* @param callback (IOsmAndAidlCallback) - create and provide instance of {@link IOsmAndAidlCallback} interface
*/
boolean registerForOsmandInitListener(in IOsmAndAidlCallback callback);
/**
* Requests bitmap snap-shot of map with GPX file from provided URI in its center.
* You can set bitmap size, density and GPX lines color, but you need
* to manually download appropriate map in OsmAnd or background will be empty.
* Bitmap will be returned through callback {@link IOsmAndAidlCallback#onGpxBitmapCreated(AGpxBitmap)}
*
* @param gpxUri (Uri/File) - Uri for gpx file
* @param density (float) - image density. Recommended to use default metrics for device's display.
* @param widthPixels (int) - width of bitmap
* @param heightPixels (int) - height of bitmap
* @param color (int) - color in ARGB format
* @param callback (IOsmAndAidlCallback) - instance of callback from OsmAnd.
*/
boolean getBitmapForGpx(in CreateGpxBitmapParams file, IOsmAndAidlCallback callback);
/**
* Method to copy files to OsmAnd part by part. For now supports only sqlitedb format.
* Part size (bytearray) should not exceed 256k.
*
* @param fileName (String) - name of file
* @param filePartData (byte[]) - parts of file, byte[] with size 256k or less.
* @param startTime (long) - timestamp of copying start.
* @param isDone (boolean) - boolean to mark end of copying.
* @return number of last successfully received file part or error(-1).
*/
int copyFile(in CopyFileParams filePart);
/**
* Method to register for updates during navgation. Notifies user about distance to the next turn and its type.
*
* @params subscribeToUpdates (boolean) - boolean flag to subscribe or unsubscribe from updates
* @params callbackId (long) - id of callback, needed to unsubscribe from updates
* @params callback (IOsmAndAidlCallback) - callback to notify user on navigation data change
*/
long registerForNavigationUpdates(in ANavigationUpdateParams params, IOsmAndAidlCallback callback);
long addContextMenuButtons(in ContextMenuButtonsParams params, IOsmAndAidlCallback callback);
boolean removeContextMenuButtons(in RemoveContextMenuButtonsParams params);
boolean updateContextMenuButtons(in UpdateContextMenuButtonsParams params);
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.contextmenu;
parcelable AContextMenuButton;

View file

@ -0,0 +1,101 @@
package net.osmand.aidl.contextmenu;
import android.os.Parcel;
import android.os.Parcelable;
public class AContextMenuButton implements Parcelable {
private int buttonId;
private String leftTextCaption;
private String rightTextCaption;
private String leftIconName;
private String rightIconName;
private boolean needColorizeIcon;
private boolean enabled;
public AContextMenuButton(int buttonId, String leftTextCaption, String rightTextCaption, String leftIconName, String rightIconName, boolean needColorizeIcon, boolean enabled) {
this.buttonId = buttonId;
this.leftTextCaption = leftTextCaption;
this.rightTextCaption = rightTextCaption;
this.leftIconName = leftIconName;
this.rightIconName = rightIconName;
this.needColorizeIcon = needColorizeIcon;
this.enabled = enabled;
}
protected AContextMenuButton(Parcel in) {
readFromParcel(in);
}
public static final Creator<AContextMenuButton> CREATOR = new Creator<AContextMenuButton>() {
@Override
public AContextMenuButton createFromParcel(Parcel in) {
return new AContextMenuButton(in);
}
@Override
public AContextMenuButton[] newArray(int size) {
return new AContextMenuButton[size];
}
};
public int getButtonId() {
return buttonId;
}
public String getLeftTextCaption() {
return leftTextCaption;
}
public String getRightTextCaption() {
return rightTextCaption;
}
public String getLeftIconName() {
return leftIconName;
}
public String getRightIconName() {
return rightIconName;
}
public boolean isNeedColorizeIcon() {
return needColorizeIcon;
}
public boolean isEnabled() {
return enabled;
}
public static Creator<AContextMenuButton> getCREATOR() {
return CREATOR;
}
@Override
public void writeToParcel(Parcel dest, int f) {
dest.writeInt(buttonId);
dest.writeString(leftTextCaption);
dest.writeString(rightTextCaption);
dest.writeString(leftIconName);
dest.writeString(rightIconName);
dest.writeInt(needColorizeIcon ? 1 : 0);
dest.writeInt(enabled ? 1 : 0);
}
private void readFromParcel(Parcel in) {
buttonId = in.readInt();
leftTextCaption = in.readString();
rightTextCaption = in.readString();
leftIconName = in.readString();
rightIconName = in.readString();
needColorizeIcon = in.readInt() != 0;
enabled = in.readInt() != 0;
}
@Override
public int describeContents() {
return 0;
}
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.contextmenu;
parcelable ContextMenuButtonsParams;

View file

@ -0,0 +1,105 @@
package net.osmand.aidl.contextmenu;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.List;
public class ContextMenuButtonsParams implements Parcelable {
private AContextMenuButton leftButton;
private AContextMenuButton rightButton;
private String id;
private String appPackage;
private String layerId;
private long callbackId = -1L;
private List<String> pointsIds = new ArrayList<>();
public ContextMenuButtonsParams(AContextMenuButton leftButton, AContextMenuButton rightButton, String id, String appPackage, String layerId, boolean followOpenedPoint, long callbackId, List<String> pointsIds) {
this.leftButton = leftButton;
this.rightButton = rightButton;
this.id = id;
this.appPackage = appPackage;
this.layerId = layerId;
this.callbackId = callbackId;
this.pointsIds = pointsIds;
}
public ContextMenuButtonsParams(Parcel in) {
readFromParcel(in);
}
public static final Creator<ContextMenuButtonsParams> CREATOR = new Creator<ContextMenuButtonsParams>() {
@Override
public ContextMenuButtonsParams createFromParcel(Parcel in) {
return new ContextMenuButtonsParams(in);
}
@Override
public ContextMenuButtonsParams[] newArray(int size) {
return new ContextMenuButtonsParams[size];
}
};
public AContextMenuButton getLeftButton() {
return leftButton;
}
public AContextMenuButton getRightButton() {
return rightButton;
}
public String getId() {
return id;
}
public String getAppPackage() {
return appPackage;
}
public String getLayerId() {
return layerId;
}
public long getCallbackId() {
return callbackId;
}
public void setCallbackId(long callbackId) {
this.callbackId = callbackId;
}
public List<String> getPointsIds() {
return pointsIds;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeParcelable(leftButton, flags);
dest.writeParcelable(rightButton, flags);
dest.writeString(id);
dest.writeString(appPackage);
dest.writeString(layerId);
dest.writeLong(callbackId);
dest.writeStringList(pointsIds);
}
private void readFromParcel(Parcel in) {
leftButton = in.readParcelable(AContextMenuButton.class.getClassLoader());
rightButton = in.readParcelable(AContextMenuButton.class.getClassLoader());
id = in.readString();
appPackage = in.readString();
layerId = in.readString();
callbackId = in.readLong();
in.readStringList(pointsIds);
}
@Override
public int describeContents() {
return 0;
}
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.contextmenu;
parcelable RemoveContextMenuButtonsParams;

View file

@ -0,0 +1,53 @@
package net.osmand.aidl.contextmenu;
import android.os.Parcel;
import android.os.Parcelable;
public class RemoveContextMenuButtonsParams implements Parcelable {
private String paramsId;
private long callbackId = -1L;
public RemoveContextMenuButtonsParams(String paramsId, long callbackId) {
this.paramsId = paramsId;
this.callbackId = callbackId;
}
public RemoveContextMenuButtonsParams(Parcel in) {
readFromParcel(in);
}
public static final Creator<RemoveContextMenuButtonsParams> CREATOR = new
Creator<RemoveContextMenuButtonsParams>() {
public RemoveContextMenuButtonsParams createFromParcel(Parcel in) {
return new RemoveContextMenuButtonsParams(in);
}
public RemoveContextMenuButtonsParams[] newArray(int size) {
return new RemoveContextMenuButtonsParams[size];
}
};
public String getParamsId() {
return paramsId;
}
public long getCallbackId() {
return callbackId;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(paramsId);
dest.writeLong(callbackId);
}
private void readFromParcel(Parcel in) {
paramsId = in.readString();
callbackId = in.readLong();
}
public int describeContents() {
return 0;
}
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.contextmenu;
parcelable UpdateContextMenuButtonsParams;

View file

@ -0,0 +1,43 @@
package net.osmand.aidl.contextmenu;
import android.os.Parcel;
import android.os.Parcelable;
public class UpdateContextMenuButtonsParams implements Parcelable {
private ContextMenuButtonsParams buttonsParams;
public UpdateContextMenuButtonsParams(ContextMenuButtonsParams widget) {
this.buttonsParams = widget;
}
public UpdateContextMenuButtonsParams(Parcel in) {
readFromParcel(in);
}
public static final Creator<UpdateContextMenuButtonsParams> CREATOR = new
Creator<UpdateContextMenuButtonsParams>() {
public UpdateContextMenuButtonsParams createFromParcel(Parcel in) {
return new UpdateContextMenuButtonsParams(in);
}
public UpdateContextMenuButtonsParams[] newArray(int size) {
return new UpdateContextMenuButtonsParams[size];
}
};
public ContextMenuButtonsParams getContextMenuButtonsParams() {
return buttonsParams;
}
public void writeToParcel(Parcel out, int flags) {
out.writeParcelable(buttonsParams, flags);
}
private void readFromParcel(Parcel in) {
buttonsParams = in.readParcelable(ContextMenuButtonsParams.class.getClassLoader());
}
public int describeContents() {
return 0;
}
}

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.copyfile;
parcelable CopyFileParams;

View file

@ -0,0 +1,78 @@
package net.osmand.aidl.copyfile;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
public class CopyFileParams implements Parcelable {
private String fileName;
private byte[] filePartData;
private long startTime;
private boolean done;
public CopyFileParams(@NonNull String fileName, @NonNull byte[] filePartData, long startTime, boolean done) {
this.fileName = fileName;
this.filePartData = filePartData;
this.startTime = startTime;
this.done = done;
}
public String getFileName() {
return fileName;
}
public byte[] getFilePartData() {
return filePartData;
}
public boolean isDone() {
return done;
}
public long getStartTime() {
return startTime;
}
protected CopyFileParams(Parcel in) {
fileName = in.readString();
filePartData = in.createByteArray();
startTime = in.readLong();
done = in.readByte() == 0;
}
public static final Creator<CopyFileParams> CREATOR = new Creator<CopyFileParams>() {
@Override
public CopyFileParams createFromParcel(Parcel in) {
return new CopyFileParams(in);
}
@Override
public CopyFileParams[] newArray(int size) {
return new CopyFileParams[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public String toString() {
return "CopyFileParams {" +
" fileName=" + fileName +
", filePartData size=" + filePartData.length +
", startTime=" + startTime +
", done=" + done +
" }";
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(fileName);
dest.writeByteArray(filePartData);
dest.writeLong(startTime);
dest.writeByte((byte) (done ? 0 : 1));
}
}

View file

@ -21,10 +21,6 @@ public class AGpxBitmap implements Parcelable {
return bitmap;
}
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
public static final Creator<AGpxBitmap> CREATOR = new
Creator<AGpxBitmap>() {
public AGpxBitmap createFromParcel(Parcel in) {

View file

@ -2,15 +2,27 @@ package net.osmand.aidl.gpx;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
public class ASelectedGpxFile implements Parcelable {
private String fileName;
private long modifiedTime;
private long fileSize;
private AGpxFileDetails details;
public ASelectedGpxFile(String fileName) {
public ASelectedGpxFile(@NonNull String fileName) {
this.fileName = fileName;
}
public ASelectedGpxFile(@NonNull String fileName, long modifiedTime, long fileSize, @Nullable AGpxFileDetails details) {
this.fileName = fileName;
this.modifiedTime = modifiedTime;
this.fileSize = fileSize;
this.details = details;
}
public ASelectedGpxFile(Parcel in) {
readFromParcel(in);
}
@ -30,12 +42,40 @@ public class ASelectedGpxFile implements Parcelable {
return fileName;
}
public long getModifiedTime() {
return modifiedTime;
}
public long getFileSize() {
return fileSize;
}
public AGpxFileDetails getDetails() {
return details;
}
public void writeToParcel(Parcel out, int flags) {
out.writeString(fileName);
out.writeLong(modifiedTime);
out.writeLong(fileSize);
out.writeByte((byte) (details != null ? 1 : 0));
if (details != null) {
out.writeParcelable(details, flags);
}
}
private void readFromParcel(Parcel in) {
fileName = in.readString();
modifiedTime = in.readLong();
fileSize = in.readLong();
boolean hasDetails= in.readByte() != 0;
if (hasDetails) {
details = in.readParcelable(AGpxFileDetails.class.getClassLoader());
} else {
details = null;
}
}
public int describeContents() {

View file

@ -66,6 +66,10 @@ public class AMapLayer implements Parcelable {
return new ArrayList<>(points.values());
}
public AMapPoint getPoint(String pointId) {
return points.get(pointId);
}
public boolean hasPoint(String pointId) {
return points.containsKey(pointId);
}

View file

@ -11,25 +11,28 @@ import java.util.List;
import java.util.Map;
public class AMapPoint implements Parcelable {
public static final int POINT_IMAGE_SIZE_PX = 160;
public static final String POINT_IMAGE_URI_PARAM = "point_image_uri_param";
public static final String POINT_SPEED_PARAM = "point_speed_param";
public static final String POINT_TYPE_ICON_NAME_PARAM = "point_type_icon_name_param";
public static final String POINT_STALE_LOC_PARAM = "point_stale_loc_param";
private String id;
private String shortName;
private String fullName;
private String typeName;
private String layerId;
private int color;
private ALatLon location;
private List<String> details = new ArrayList<>();
private Map<String, String> params = new HashMap<>();
public AMapPoint(String id, String shortName, String fullName, String typeName, int color,
ALatLon location, List<String> details, Map<String, String> params) {
public AMapPoint(String id, String shortName, String fullName, String typeName, String layerId,
int color, ALatLon location, List<String> details, Map<String, String> params) {
this.id = id;
this.shortName = shortName;
this.fullName = fullName;
this.typeName = typeName;
this.layerId = layerId;
this.color = color;
this.location = location;
if (details != null) {
@ -71,6 +74,10 @@ public class AMapPoint implements Parcelable {
return typeName;
}
public String getLayerId() {
return layerId;
}
public int getColor() {
return color;
}
@ -92,6 +99,7 @@ public class AMapPoint implements Parcelable {
out.writeString(shortName);
out.writeString(fullName);
out.writeString(typeName);
out.writeString(layerId);
out.writeInt(color);
out.writeParcelable(location, flags);
out.writeStringList(details);
@ -103,6 +111,7 @@ public class AMapPoint implements Parcelable {
shortName = in.readString();
fullName = in.readString();
typeName = in.readString();
layerId = in.readString();
color = in.readInt();
location = in.readParcelable(ALatLon.class.getClassLoader());
in.readStringList(details);

View file

@ -6,10 +6,12 @@ import android.os.Parcelable;
public class UpdateMapPointParams implements Parcelable {
private String layerId;
private AMapPoint point;
private boolean updateOpenedMenuAndMap;
public UpdateMapPointParams(String layerId, AMapPoint point) {
public UpdateMapPointParams(String layerId, AMapPoint point, boolean updateOpenedMenuAndMap) {
this.layerId = layerId;
this.point = point;
this.updateOpenedMenuAndMap = updateOpenedMenuAndMap;
}
public UpdateMapPointParams(Parcel in) {
@ -35,14 +37,20 @@ public class UpdateMapPointParams implements Parcelable {
return point;
}
public boolean isUpdateOpenedMenuAndMap() {
return updateOpenedMenuAndMap;
}
public void writeToParcel(Parcel out, int flags) {
out.writeString(layerId);
out.writeParcelable(point, flags);
out.writeInt(updateOpenedMenuAndMap ? 1 : 0);
}
private void readFromParcel(Parcel in) {
layerId = in.readString();
point = in.readParcelable(AMapPoint.class.getClassLoader());
updateOpenedMenuAndMap = in.readInt() != 0;
}
public int describeContents() {

View file

@ -0,0 +1,3 @@
package net.osmand.aidl.navigation;
parcelable ADirectionInfo;

View file

@ -0,0 +1,73 @@
package net.osmand.aidl.navigation;
import android.os.Parcel;
import android.os.Parcelable;
public class ADirectionInfo implements Parcelable {
private int distanceTo; //distance to next turn
private int turnType; //turn type
private boolean isLeftSide; //is movement left-sided
public ADirectionInfo(int distanceTo, int turnType, boolean isLeftSide) {
this.distanceTo = distanceTo;
this.turnType = turnType;
this.isLeftSide = isLeftSide;
}
protected ADirectionInfo(Parcel in) {
distanceTo = in.readInt();
turnType = in.readInt();
isLeftSide = in.readByte() != 0;
}
public static final Creator<ADirectionInfo> CREATOR = new Creator<ADirectionInfo>() {
@Override
public ADirectionInfo createFromParcel(Parcel in) {
return new ADirectionInfo(in);
}
@Override
public ADirectionInfo[] newArray(int size) {
return new ADirectionInfo[size];
}
};
public int getDistanceTo() {
return distanceTo;
}
public int getTurnType() {
return turnType;
}
public boolean isLeftSide() {
return isLeftSide;
}
public void setDistanceTo(int distanceTo) {
this.distanceTo = distanceTo;
}
public void setTurnType(int turnType) {
this.turnType = turnType;
}
public void setLeftSide(boolean leftSide) {
isLeftSide = leftSide;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(distanceTo);
dest.writeInt(turnType);
dest.writeByte((byte) (isLeftSide ? 1 : 0));
}
}

View file

@ -0,0 +1,4 @@
package net.osmand.aidl.navigation;
parcelable ANavigationUpdateParams;

View file

@ -0,0 +1,57 @@
package net.osmand.aidl.navigation;
import android.os.Parcel;
import android.os.Parcelable;
public class ANavigationUpdateParams implements Parcelable {
private boolean subscribeToUpdates = true;
private long callbackId = -1L;
public ANavigationUpdateParams() {
}
public long getCallbackId() {
return callbackId;
}
public void setCallbackId(long callbackId) {
this.callbackId = callbackId;
}
public void setSubscribeToUpdates(boolean subscribeToUpdates) {
this.subscribeToUpdates = subscribeToUpdates;
}
public boolean isSubscribeToUpdates() {
return subscribeToUpdates;
}
protected ANavigationUpdateParams(Parcel in) {
callbackId = in.readLong();
subscribeToUpdates = in.readByte() != 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(callbackId);
dest.writeByte((byte) (subscribeToUpdates ? 1 : 0));
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<ANavigationUpdateParams> CREATOR = new Creator<ANavigationUpdateParams>() {
@Override
public ANavigationUpdateParams createFromParcel(Parcel in) {
return new ANavigationUpdateParams(in);
}
@Override
public ANavigationUpdateParams[] newArray(int size) {
return new ANavigationUpdateParams[size];
}
};
}

View file

@ -9,14 +9,20 @@ public class NavigateSearchParams implements Parcelable {
private double startLat;
private double startLon;
private String searchQuery;
private double searchLat;
private double searchLon;
private String profile;
private boolean force;
public NavigateSearchParams(String startName, double startLat, double startLon, String searchQuery, String profile, boolean force) {
public NavigateSearchParams(String startName, double startLat, double startLon,
String searchQuery, double searchLat, double searchLon,
String profile, boolean force) {
this.startName = startName;
this.startLat = startLat;
this.startLon = startLon;
this.searchQuery = searchQuery;
this.searchLat = searchLat;
this.searchLon = searchLon;
this.profile = profile;
this.force = force;
}
@ -53,6 +59,14 @@ public class NavigateSearchParams implements Parcelable {
return searchQuery;
}
public double getSearchLat() {
return searchLat;
}
public double getSearchLon() {
return searchLon;
}
public String getProfile() {
return profile;
}
@ -69,6 +83,8 @@ public class NavigateSearchParams implements Parcelable {
out.writeString(searchQuery);
out.writeString(profile);
out.writeByte((byte) (force ? 1 : 0));
out.writeDouble(searchLat);
out.writeDouble(searchLon);
}
private void readFromParcel(Parcel in) {
@ -78,6 +94,8 @@ public class NavigateSearchParams implements Parcelable {
searchQuery = in.readString();
profile = in.readString();
force = in.readByte() != 0;
searchLat = in.readDouble();
searchLon = in.readDouble();
}
@Override

View file

@ -11,15 +11,15 @@ public class SearchParams implements Parcelable {
private String searchQuery;
private int searchType;
private double latutude;
private double latitude;
private double longitude;
private int radiusLevel = 1;
private int totalLimit = -1;
public SearchParams(String searchQuery, int searchType, double latutude, double longitude, int radiusLevel, int totalLimit) {
public SearchParams(String searchQuery, int searchType, double latitude, double longitude, int radiusLevel, int totalLimit) {
this.searchQuery = searchQuery;
this.searchType = searchType;
this.latutude = latutude;
this.latitude = latitude;
this.longitude = longitude;
this.radiusLevel = radiusLevel;
this.totalLimit = totalLimit;
@ -49,8 +49,8 @@ public class SearchParams implements Parcelable {
return searchType;
}
public double getLatutude() {
return latutude;
public double getLatitude() {
return latitude;
}
public double getLongitude() {
@ -69,7 +69,7 @@ public class SearchParams implements Parcelable {
public void writeToParcel(Parcel out, int flags) {
out.writeString(searchQuery);
out.writeInt(searchType);
out.writeDouble(latutude);
out.writeDouble(latitude);
out.writeDouble(longitude);
out.writeInt(radiusLevel);
out.writeInt(totalLimit);
@ -78,7 +78,7 @@ public class SearchParams implements Parcelable {
private void readFromParcel(Parcel in) {
searchQuery = in.readString();
searchType = in.readInt();
latutude = in.readDouble();
latitude = in.readDouble();
longitude = in.readDouble();
radiusLevel = in.readInt();
totalLimit = in.readInt();

View file

@ -52,6 +52,7 @@ class TelegramApplication : Application(), OsmandHelperListener {
listOf("ic_action_location_sharing_app"),
listOf(-1)
)
showLocationHelper.addDirectionContextMenuButton()
if (settings.hasAnyChatToShowOnMap()) {
showLocationHelper.startShowingLocation()
}
@ -138,7 +139,10 @@ class TelegramApplication : Application(), OsmandHelperListener {
}
override fun onOsmandConnectionStateChanged(connected: Boolean) {
showLocationHelper.setupMapLayer()
if (connected) {
showLocationHelper.setupMapLayer()
showLocationHelper.addDirectionContextMenuButton()
}
}
private fun startTelegramService(intent: Int, serviceOffInterval: Long = 0) {

View file

@ -9,6 +9,9 @@ import android.os.IBinder
import android.os.RemoteException
import net.osmand.aidl.IOsmAndAidlCallback
import net.osmand.aidl.IOsmAndAidlInterface
import net.osmand.aidl.contextmenu.AContextMenuButton
import net.osmand.aidl.contextmenu.ContextMenuButtonsParams
import net.osmand.aidl.contextmenu.RemoveContextMenuButtonsParams
import net.osmand.aidl.favorite.AFavorite
import net.osmand.aidl.favorite.AddFavoriteParams
import net.osmand.aidl.favorite.RemoveFavoriteParams
@ -43,6 +46,7 @@ import net.osmand.aidl.note.TakePhotoNoteParams
import net.osmand.aidl.search.SearchParams
import net.osmand.aidl.search.SearchResult
import net.osmand.telegram.TelegramApplication
import net.osmand.telegram.helpers.ShowLocationHelper.Companion.MAP_LAYER_ID
import java.io.File
import java.util.*
@ -61,7 +65,8 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
private var initialized: Boolean = false
private var bound: Boolean = false
private var osmandCallbackId: Long = 0
private var osmandUpdatesCallbackId: Long = -1
private var osmandContextMenuCallbackId: Long = -1
var listener: OsmandHelperListener? = null
@ -81,6 +86,12 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
fun onGpxBitmapCreated(bitmap: AGpxBitmap)
}
private var contextMenuButtonsListener: ContextMenuButtonsListener? = null
interface ContextMenuButtonsListener {
fun onContextMenuButtonClicked(buttonId:Int, pointId: String, layerId: String)
}
private val mIOsmAndAidlCallback = object : IOsmAndAidlCallback.Stub() {
@Throws(RemoteException::class)
@ -106,6 +117,16 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
gpxBitmapCreatedListener!!.onGpxBitmapCreated(bitmap)
}
}
override fun updateNavigationInfo(directionInfo: ADirectionInfo?) {
}
override fun onContextMenuButtonClicked(buttonId:Int, pointId: String, layerId: String) {
if (contextMenuButtonsListener != null) {
contextMenuButtonsListener!!.onContextMenuButtonClicked(buttonId, pointId, layerId)
}
}
}
fun setSearchCompleteListener(mSearchCompleteListener: SearchCompleteListener) {
@ -116,6 +137,10 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
this.gpxBitmapCreatedListener = gpxBitmapCreatedListener
}
fun setContextMenuButtonsListener(contextMenuButtonsListener: ContextMenuButtonsListener) {
this.contextMenuButtonsListener = contextMenuButtonsListener
}
private var mUpdatesListener: UpdatesListener? = null
interface UpdatesListener {
@ -126,7 +151,7 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
this.mUpdatesListener = mUpdatesListener
}
fun updatesCallbackRegistered() = osmandCallbackId > 0
fun updatesCallbackRegistered() = osmandUpdatesCallbackId > 0
/**
* Class for interacting with the main interface of the service.
*/
@ -407,6 +432,22 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
}
/**
* Add map marker at given location.
*
* @param marker - AMapMarker.
*/
fun addMapMarker(marker: AMapMarker): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
return mIOsmAndAidlInterface!!.addMapMarker(AddMapMarkerParams(marker))
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
@ -432,6 +473,23 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
}
/**
* Update map marker at given location with name.
*
* @param markerPrev - AMapMarker (current marker).
* @param markerNew - AMapMarker (new marker).
*/
fun updateMapMarker(markerPrev: AMapMarker, markerNew: AMapMarker): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
return mIOsmAndAidlInterface!!.updateMapMarker(UpdateMapMarkerParams(markerPrev, markerNew))
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
@ -611,7 +669,7 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
typeName: String, color: Int, location: ALatLon, details: List<String>?, params: Map<String, String>?): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val point = AMapPoint(pointId, shortName, fullName, typeName, color, location, details, params)
val point = AMapPoint(pointId, shortName, fullName, typeName, layerId, color, location, details, params)
return mIOsmAndAidlInterface!!.showMapPoint(ShowMapPointParams(layerId, point))
} catch (e: RemoteException) {
e.printStackTrace()
@ -636,7 +694,7 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
typeName: String, color: Int, location: ALatLon, details: List<String>?, params: Map<String, String>?): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val point = AMapPoint(pointId, shortName, fullName, typeName, color, location, details, params)
val point = AMapPoint(pointId, shortName, fullName, typeName, layerId, color, location, details, params)
return mIOsmAndAidlInterface!!.addMapPoint(AddMapPointParams(layerId, point))
} catch (e: RemoteException) {
e.printStackTrace()
@ -662,8 +720,8 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
typeName: String, color: Int, location: ALatLon, details: List<String>?, params: Map<String, String>?): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val point = AMapPoint(pointId, shortName, fullName, typeName, color, location, details, params)
return mIOsmAndAidlInterface!!.updateMapPoint(UpdateMapPointParams(layerId, point))
val point = AMapPoint(pointId, shortName, fullName, typeName, layerId, color, location, details, params)
return mIOsmAndAidlInterface!!.updateMapPoint(UpdateMapPointParams(layerId, point, true))
} catch (e: RemoteException) {
e.printStackTrace()
}
@ -939,10 +997,10 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
return false
}
fun navigateSearch(startName: String, startLat: Double, startLon: Double, searchQuery: String, profile: String, force: Boolean): Boolean {
fun navigateSearch(startName: String, startLat: Double, startLon: Double, searchQuery: String, searchLat: Double, searchLon: Double, profile: String, force: Boolean): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
return mIOsmAndAidlInterface!!.navigateSearch(NavigateSearchParams(startName, startLat, startLon, searchQuery, profile, force))
return mIOsmAndAidlInterface!!.navigateSearch(NavigateSearchParams(startName, startLat, startLon, searchQuery, searchLat, searchLon, profile, force))
} catch (e: RemoteException) {
e.printStackTrace()
}
@ -1070,8 +1128,8 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
fun registerForUpdates(): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
osmandCallbackId = mIOsmAndAidlInterface!!.registerForUpdates(UPDATE_TIME_MS, mIOsmAndAidlCallback)
return osmandCallbackId > 0
osmandUpdatesCallbackId = mIOsmAndAidlInterface!!.registerForUpdates(UPDATE_TIME_MS, mIOsmAndAidlCallback)
return osmandUpdatesCallbackId > 0
} catch (e: RemoteException) {
e.printStackTrace()
}
@ -1082,9 +1140,9 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
fun unregisterFromUpdates(): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val unregistered = mIOsmAndAidlInterface!!.unregisterFromUpdates(osmandCallbackId)
val unregistered = mIOsmAndAidlInterface!!.unregisterFromUpdates(osmandUpdatesCallbackId)
if (unregistered) {
osmandCallbackId = 0
osmandUpdatesCallbackId = 0
}
return unregistered
} catch (e: RemoteException) {
@ -1105,4 +1163,39 @@ class OsmandAidlHelper(private val app: TelegramApplication) {
}
return false
}
fun addContextMenuButtons(
appPackage: String,paramsId:String,
leftTextCaption: String, rightTextCaption: String,
leftIconName: String, rightIconName: String,
needColorizeIcon: Boolean, enabled: Boolean, buttonId: Int
): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val leftButton = AContextMenuButton(buttonId, leftTextCaption, rightTextCaption, leftIconName, rightIconName, needColorizeIcon, enabled)
val params = ContextMenuButtonsParams(leftButton, null, paramsId, appPackage, MAP_LAYER_ID, true, osmandContextMenuCallbackId, mutableListOf())
osmandContextMenuCallbackId = mIOsmAndAidlInterface!!.addContextMenuButtons(params, mIOsmAndAidlCallback)
return osmandContextMenuCallbackId >= 0
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
}
fun removeContextMenuButtons(paramsId: String): Boolean {
if (mIOsmAndAidlInterface != null) {
try {
val params = RemoveContextMenuButtonsParams(paramsId, osmandContextMenuCallbackId)
val removed = mIOsmAndAidlInterface!!.removeContextMenuButtons(params)
if (removed) {
osmandContextMenuCallbackId = -1
}
return removed
} catch (e: RemoteException) {
e.printStackTrace()
}
}
return false
}
}

View file

@ -6,15 +6,19 @@ import android.os.AsyncTask
import android.text.TextUtils
import net.osmand.aidl.map.ALatLon
import net.osmand.aidl.maplayer.point.AMapPoint
import net.osmand.aidl.mapmarker.AMapMarker
import net.osmand.telegram.R
import net.osmand.telegram.TelegramApplication
import net.osmand.telegram.helpers.OsmandAidlHelper.ContextMenuButtonsListener
import net.osmand.telegram.helpers.TelegramUiHelper.ListItem
import net.osmand.telegram.utils.AndroidUtils
import net.osmand.telegram.utils.OsmandFormatter
import net.osmand.telegram.utils.OsmandLocationUtils
import net.osmand.telegram.utils.OsmandLocationUtils.MessageOsmAndBotLocation
import net.osmand.telegram.utils.OsmandLocationUtils.MessageUserLocation
import org.drinkless.td.libcore.telegram.TdApi
import java.io.File
import java.util.*
import java.util.concurrent.Executors
class ShowLocationHelper(private val app: TelegramApplication) {
@ -23,23 +27,65 @@ class ShowLocationHelper(private val app: TelegramApplication) {
const val MAP_LAYER_ID = "telegram_layer"
const val MIN_OSMAND_CALLBACK_VERSION_CODE = 320
const val MAP_CONTEXT_MENU_BUTTON_ID = 1
const val MAP_CONTEXT_MENU_BUTTONS_PARAMS_ID = "DIRECTION"
const val DIRECTION_ICON_ID = "ic_action_start_navigation"
}
private val telegramHelper = app.telegramHelper
private val osmandAidlHelper = app.osmandAidlHelper
private val executor = Executors.newSingleThreadExecutor()
private val points = mutableMapOf<String, TdApi.Message>()
private val markers = mutableMapOf<String, AMapMarker>()
var showingLocation: Boolean = false
private set
private var forcedStop: Boolean = false
init {
app.osmandAidlHelper.setContextMenuButtonsListener(object : ContextMenuButtonsListener {
override fun onContextMenuButtonClicked(buttonId: Int, pointId: String, layerId: String) {
updateDirectionMarker(pointId)
}
})
}
fun setupMapLayer() {
osmandAidlHelper.execOsmandApi {
osmandAidlHelper.addMapLayer(MAP_LAYER_ID, "Telegram", 5.5f, null)
}
}
private fun updateDirectionMarker(pointId: String) {
val message = points[pointId]
if (message != null) {
val aLatLon = getALatLonFromMessage(message.content)
val name = getNameFromMessage(message)
if (aLatLon != null) {
val marker = AMapMarker(ALatLon(aLatLon.latitude, aLatLon.longitude), name)
val markerPrev = markers[pointId]
var markerUpdated: Boolean
if (markerPrev != null) {
markerUpdated = app.osmandAidlHelper.updateMapMarker(markerPrev, marker)
if (!markerUpdated) {
app.osmandAidlHelper.removeMapMarker(markerPrev.latLon.latitude, markerPrev.latLon.longitude, name)
markerUpdated = app.osmandAidlHelper.addMapMarker(marker)
}
} else {
markerUpdated = app.osmandAidlHelper.addMapMarker(marker)
}
if (markerUpdated) {
markers[pointId] = marker
}
}
}
}
fun showLocationOnMap(item: ListItem, stale: Boolean = false) {
if (item.latLon == null) {
return
@ -53,8 +99,8 @@ class ShowLocationHelper(private val app: TelegramApplication) {
item.chatTitle,
Color.WHITE,
ALatLon(item.latLon!!.latitude, item.latLon!!.longitude),
null,
generatePointParams(if (stale) item.grayscalePhotoPath else item.photoPath, stale)
generatePointDetails(item.bearing?.toFloat(), item.altitude?.toFloat(), item.precision?.toFloat()),
generatePointParams(if (stale) item.grayscalePhotoPath else item.photoPath, stale, item.speed?.toFloat())
)
}
}
@ -77,61 +123,89 @@ class ShowLocationHelper(private val app: TelegramApplication) {
fun addOrUpdateLocationOnMap(message: TdApi.Message, update: Boolean = false) {
osmandAidlHelper.execOsmandApi {
val chatId = message.chatId
val chatTitle = telegramHelper.getChat(message.chatId)?.title
val chat = telegramHelper.getChat(message.chatId)
val chatTitle = chat?.title
val isGroup = chat != null && telegramHelper.isGroup(chat)
val content = message.content
val date = OsmandLocationUtils.getLastUpdatedTime(message)
val stale = System.currentTimeMillis() / 1000 - date > app.settings.staleLocTime
if (chatTitle != null && (content is TdApi.MessageLocation || (content is MessageUserLocation && content.isValid()))) {
var userName = ""
var photoPath: String? = null
val user = telegramHelper.getUser(OsmandLocationUtils.getSenderMessageId(message))
if (user != null) {
userName = "${user.firstName} ${user.lastName}".trim()
if (userName.isEmpty()) {
userName = user.username
val aLatLon = getALatLonFromMessage(content)
val details = if (content is OsmandLocationUtils.MessageLocation) generatePointDetails(content.bearing.toFloat(), content.altitude.toFloat(), content.hdop.toFloat()) else null
val name = getNameFromMessage(message)
val senderId = OsmandLocationUtils.getSenderMessageId(message)
val pointId = if (content is MessageOsmAndBotLocation) "${chatId}_${content.deviceName}" else "${chatId}_$senderId"
if (aLatLon != null && chatTitle != null) {
if ((content is TdApi.MessageLocation || (content is MessageUserLocation && content.isValid()))) {
var photoPath: String? = null
val user = telegramHelper.getUser(senderId)
if (user != null) {
photoPath = if (stale) {
telegramHelper.getUserGreyPhotoPath(user)
} else {
telegramHelper.getUserPhotoPath(user)
}
}
if (userName.isEmpty()) {
userName = user.phoneNumber
}
photoPath = if (stale) {
telegramHelper.getUserGreyPhotoPath(user)
} else {
telegramHelper.getUserPhotoPath(user)
}
}
if (userName.isEmpty()) {
userName = OsmandLocationUtils.getSenderMessageId(message).toString()
}
setupMapLayer()
val params = generatePointParams(photoPath, stale)
val aLatLon = when (content) {
is TdApi.MessageLocation -> ALatLon(content.location.latitude, content.location.longitude)
is MessageUserLocation -> ALatLon(content.lat, content.lon)
else -> null
}
if (aLatLon != null) {
setupMapLayer()
val params = generatePointParams(photoPath, stale, if (content is MessageUserLocation) content.speed.toFloat() else null)
val typeName = if (isGroup) chatTitle else OsmandFormatter.getListItemLiveTimeDescr(app, date, app.getString(R.string.last_response) + ": ")
if (update) {
osmandAidlHelper.updateMapPoint(MAP_LAYER_ID, "${chatId}_${OsmandLocationUtils.getSenderMessageId(message)}", userName, userName,
chatTitle, Color.WHITE, aLatLon, null, params)
osmandAidlHelper.updateMapPoint(MAP_LAYER_ID, pointId, name, name, typeName, Color.WHITE, aLatLon, details, params)
} else {
osmandAidlHelper.addMapPoint(MAP_LAYER_ID, "${chatId}_${OsmandLocationUtils.getSenderMessageId(message)}", userName, userName,
chatTitle, Color.WHITE, aLatLon, null, params)
osmandAidlHelper.addMapPoint(MAP_LAYER_ID, pointId, name, name, typeName, Color.WHITE, aLatLon, details, params)
}
points[pointId] = message
} else if (content is MessageOsmAndBotLocation && content.isValid()) {
setupMapLayer()
val params = generatePointParams(null, stale, content.speed.toFloat())
if (update) {
osmandAidlHelper.updateMapPoint(MAP_LAYER_ID, pointId, name, name, chatTitle, Color.WHITE, aLatLon, details, params)
} else {
osmandAidlHelper.addMapPoint(MAP_LAYER_ID, pointId, name, name, chatTitle, Color.WHITE, aLatLon, details, params)
}
points[pointId] = message
}
} else if (chatTitle != null && content is MessageOsmAndBotLocation && content.isValid()) {
val name = content.deviceName
setupMapLayer()
if (update) {
osmandAidlHelper.updateMapPoint(MAP_LAYER_ID, "${chatId}_$name", name, name,
chatTitle, Color.WHITE, ALatLon(content.lat, content.lon), null, generatePointParams(null, stale))
} else {
osmandAidlHelper.addMapPoint(MAP_LAYER_ID, "${chatId}_$name", name, name,
chatTitle, Color.WHITE, ALatLon(content.lat, content.lon), null, generatePointParams(null, stale))
if (markers.containsKey(pointId)) {
updateDirectionMarker(pointId)
}
}
}
}
private fun getALatLonFromMessage(content: TdApi.MessageContent): ALatLon? {
return when (content) {
is TdApi.MessageLocation -> ALatLon(content.location.latitude, content.location.longitude)
is OsmandLocationUtils.MessageLocation -> ALatLon(content.lat, content.lon)
else -> null
}
}
private fun getNameFromMessage(message: TdApi.Message): String {
var name = ""
val content = message.content
val senderId = OsmandLocationUtils.getSenderMessageId(message)
if ((content is TdApi.MessageLocation || (content is MessageUserLocation && content.isValid()))) {
val user = telegramHelper.getUser(senderId)
if (user != null) {
name = "${user.firstName} ${user.lastName}".trim()
if (name.isEmpty()) {
name = user.username
}
if (name.isEmpty()) {
name = user.phoneNumber
}
}
if (name.isEmpty()) {
name = senderId.toString()
}
} else if (content is MessageOsmAndBotLocation && content.isValid()) {
name = content.deviceName
}
return name
}
fun showChatMessages(chatId: Long) {
osmandAidlHelper.execOsmandApi {
val messages = telegramHelper.getChatMessages(chatId)
@ -156,6 +230,14 @@ class ShowLocationHelper(private val app: TelegramApplication) {
}
}
fun addDirectionContextMenuButton() {
osmandAidlHelper.addContextMenuButtons(app.packageName, MAP_CONTEXT_MENU_BUTTONS_PARAMS_ID, app.getString(R.string.direction), "", DIRECTION_ICON_ID, "", true, true, MAP_CONTEXT_MENU_BUTTON_ID)
}
fun removeDirectionContextMenuButton() {
osmandAidlHelper.removeContextMenuButtons(MAP_CONTEXT_MENU_BUTTONS_PARAMS_ID)
}
fun startShowingLocation() {
if (!showingLocation && !forcedStop) {
showingLocation = if (isUseOsmandCallback() && !app.settings.monitoringEnabled) {
@ -164,6 +246,7 @@ class ShowLocationHelper(private val app: TelegramApplication) {
app.startUserLocationService()
true
}
addDirectionContextMenuButton()
}
}
@ -176,6 +259,7 @@ class ShowLocationHelper(private val app: TelegramApplication) {
} else if (!app.settings.monitoringEnabled) {
app.stopUserLocationService()
}
removeDirectionContextMenuButton()
}
}
@ -253,17 +337,37 @@ class ShowLocationHelper(private val app: TelegramApplication) {
}
}
private fun generatePointParams(photoPath: String?, stale: Boolean): Map<String, String> {
private fun generatePointDetails(bearing: Float?, altitude: Float?, precision: Float?): List<String> {
val details = mutableListOf<String>()
if (bearing != null && bearing != 0.0f) {
details.add(String.format(Locale.US, "${OsmandLocationUtils.BEARING_PREFIX}%.1f \n", bearing))
}
if (altitude != null && altitude != 0.0f) {
details.add(String.format(Locale.US, "${OsmandLocationUtils.ALTITUDE_PREFIX}%.1f m\n", altitude))
}
if (precision != null && precision != 0.0f) {
details.add(String.format(Locale.US, "${OsmandLocationUtils.HDOP_PREFIX}%d m\n", precision.toInt()))
}
return details
}
private fun generatePointParams(photoPath: String?, stale: Boolean, speed: Float?): Map<String, String> {
val photoUri = generatePhotoUri(photoPath, stale)
app.grantUriPermission(
app.settings.appToConnectPackage,
photoUri,
Intent.FLAG_GRANT_READ_URI_PERMISSION
)
return mapOf(
val params = mutableMapOf(
AMapPoint.POINT_IMAGE_URI_PARAM to photoUri.toString(),
AMapPoint.POINT_STALE_LOC_PARAM to stale.toString()
)
if (speed != 0.0f) {
params[AMapPoint.POINT_SPEED_PARAM] = speed.toString()
}
return params
}
private fun generatePhotoUri(photoPath: String?, stale: Boolean) =

View file

@ -71,6 +71,10 @@ object TelegramUiHelper {
res.latLon = LatLon(content.location.latitude, content.location.longitude)
} else if (content is MessageUserLocation) {
res.latLon = LatLon(content.lat, content.lon)
res.speed = content.speed
res.bearing = content.bearing
res.altitude = content.altitude
res.precision = content.hdop
}
}
if (user != null) {
@ -140,6 +144,10 @@ object TelegramUiHelper {
chatTitle = chat.title
name = content.deviceName
latLon = LatLon(content.lat, content.lon)
speed = content.speed
bearing = content.bearing
altitude = content.altitude
precision = content.hdop
placeholderId = R.drawable.img_user_picture
lastUpdated = content.lastUpdated
}
@ -158,11 +166,18 @@ object TelegramUiHelper {
return LocationItem().apply {
chatId = chat.id
chatTitle = chat.title
name = TelegramUiHelper.getUserName(user)
latLon = when (content) {
is TdApi.MessageLocation -> LatLon(content.location.latitude, content.location.longitude)
is MessageUserLocation -> LatLon(content.lat, content.lon)
else -> null
name = getUserName(user)
when (content) {
is TdApi.MessageLocation -> {
latLon = LatLon(content.location.latitude, content.location.longitude)
}
is MessageUserLocation -> {
latLon = LatLon(content.lat, content.lon)
speed = content.speed
bearing = content.bearing
altitude = content.altitude
precision = content.hdop
}
}
photoPath = helper.getUserPhotoPath(user)
grayscalePhotoPath = helper.getUserGreyPhotoPath(user)
@ -184,6 +199,10 @@ object TelegramUiHelper {
chatTitle = chat.title
name = content.deviceName
latLon = LatLon(content.lat, content.lon)
speed = content.speed
bearing = content.bearing
altitude = content.altitude
precision = content.hdop
photoPath = chat.photo?.small?.local?.path
placeholderId = R.drawable.img_user_picture
privateChat = helper.isPrivateChat(chat) || helper.isSecretChat(chat)
@ -205,11 +224,18 @@ object TelegramUiHelper {
return ChatItem().apply {
chatId = chat.id
chatTitle = chat.title
name = TelegramUiHelper.getUserName(user)
latLon = when (content) {
is TdApi.MessageLocation -> LatLon(content.location.latitude, content.location.longitude)
is MessageUserLocation -> LatLon(content.lat, content.lon)
else -> null
name = getUserName(user)
when (content) {
is TdApi.MessageLocation -> {
latLon = LatLon(content.location.latitude, content.location.longitude)
}
is MessageUserLocation -> {
latLon = LatLon(content.lat, content.lon)
speed = content.speed
bearing = content.bearing
altitude = content.altitude
precision = content.hdop
}
}
if (helper.isGroup(chat)) {
photoPath = helper.getUserPhotoPath(user)
@ -244,7 +270,7 @@ object TelegramUiHelper {
photoPath = user?.profilePhoto?.small?.local?.path
}
if (user != null) {
name = TelegramUiHelper.getUserName(user)
name = getUserName(user)
userId = user.id
}
userLocations = userLocation
@ -264,6 +290,14 @@ object TelegramUiHelper {
internal set
var latLon: LatLon? = null
internal set
var bearing: Double? = null
internal set
var speed: Double? = null
internal set
var altitude: Double? = null
internal set
var precision: Double? = null
internal set
var photoPath: String? = null
internal set
var grayscalePhotoPath: String? = null

View file

@ -29,6 +29,7 @@ object OsmandLocationUtils {
const val SHARING_LINK = "https://play.google.com/store/apps/details?id=net.osmand.telegram"
const val ALTITUDE_PREFIX = "Altitude: "
const val BEARING_PREFIX = "Bearing: "
const val SPEED_PREFIX = "Speed: "
const val HDOP_PREFIX = "Horizontal precision: "

View file

@ -0,0 +1,61 @@
<?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:baselineAligned="false"
android:orientation="horizontal"
android:paddingBottom="@dimen/context_menu_padding_margin_small">
<LinearLayout
android:id="@+id/additional_button_left_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/context_menu_padding_margin_small"
android:layout_marginRight="@dimen/context_menu_padding_margin_small"
android:layout_weight="1"
android:background="?attr/ctx_menu_controller_bg"
android:minHeight="@dimen/context_menu_controller_height">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/additional_button_left"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@null"
android:gravity="center_vertical"
android:paddingLeft="@dimen/context_menu_button_padding_x"
android:paddingRight="@dimen/context_menu_button_padding_x"
android:textColor="?attr/ctx_menu_controller_text_color"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_medium"
tools:text="@string/poi_additional_type" />
</LinearLayout>
<LinearLayout
android:id="@+id/additional_button_right_view"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/context_menu_padding_margin_small"
android:layout_marginRight="@dimen/context_menu_padding_margin_small"
android:layout_weight="1"
android:background="?attr/ctx_menu_controller_bg"
android:minHeight="@dimen/context_menu_controller_height">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/additional_button_right"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@null"
android:gravity="center_vertical"
android:paddingLeft="@dimen/context_menu_button_padding_x"
android:paddingRight="@dimen/context_menu_button_padding_x"
android:textColor="?attr/ctx_menu_controller_text_color"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_medium"
tools:text="@string/shared_string_others" />
</LinearLayout>
</LinearLayout>

View file

@ -98,23 +98,33 @@
android:layout_height="1dp"
android:layout_weight="1"/>
<net.osmand.plus.widgets.ButtonEx
android:id="@+id/copy_maps"
style="@style/DashboardGeneralButton"
android:gravity="center"
android:text="@string/shared_string_copy"
osmand:textAllCapsCompat="true"
osmand:typeface="@string/font_roboto_medium"/>
<net.osmand.plus.widgets.ButtonEx
android:id="@+id/confirm"
android:id="@+id/cancel"
style="@style/DashboardGeneralButton"
android:gravity="center"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:text="@string/shared_string_continue"
android:text="@string/shared_string_cancel"
osmand:textAllCapsCompat="true"
osmand:typeface="@string/font_roboto_medium"/>
<net.osmand.plus.widgets.ButtonEx
android:id="@+id/dont_copy_maps"
style="@style/DashboardGeneralButton"
android:gravity="center"
android:text="@string/dont_move_maps"
osmand:textAllCapsCompat="true"
osmand:typeface="@string/font_roboto_medium"/>
<net.osmand.plus.widgets.ButtonEx
android:id="@+id/copy_maps"
style="@style/DashboardGeneralButton"
android:gravity="center"
android:text="@string/move_maps"
osmand:textAllCapsCompat="true"
osmand:typeface="@string/font_roboto_medium"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -414,6 +414,14 @@
</LinearLayout>
<LinearLayout
android:id="@+id/additional_buttons_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
tools:visibility="visible"/>
<LinearLayout
android:id="@+id/title_progress_container"
android:layout_width="fill_parent"

View file

@ -0,0 +1,108 @@
<?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:id="@+id/route_info_details_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/card_divider"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<include layout="@layout/list_item_divider" />
</LinearLayout>
<View
android:id="@+id/top_divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?attr/divider_color_basic"
android:focusable="false" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/card_and_list_background_basic"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/list_content_padding"
android:layout_marginLeft="@dimen/list_content_padding"
android:layout_marginTop="@dimen/context_menu_padding_margin_large"
android:layout_marginEnd="@dimen/favorites_icon_right_margin"
android:layout_marginRight="@dimen/favorites_icon_right_margin"
android:src="@drawable/ic_action_pedestrian_dark"
android:tint="@color/description_font_and_bottom_sheet_icons" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/context_menu_padding_margin_large"
android:layout_marginEnd="@dimen/route_info_settings_buttons_height"
android:layout_marginRight="@dimen/route_info_settings_buttons_height"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/content_padding"
android:letterSpacing="@dimen/text_button_letter_spacing"
android:textColor="@color/description_font_and_bottom_sheet_icons"
android:textSize="@dimen/default_desc_text_size"
tools:ignore="UnusedAttribute"
tools:text="@string/public_transport_ped_route_title" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="@dimen/route_info_buttons_height"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/route_info_buttons_padding_top_bottom"
android:layout_marginTop="@dimen/route_info_details_padding"
android:layout_marginRight="@dimen/route_info_buttons_padding_top_bottom"
android:layout_marginBottom="@dimen/route_info_details_padding"
android:orientation="horizontal">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/button_descr"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="center"
android:letterSpacing="@dimen/text_button_letter_spacing"
android:maxLines="1"
android:text="@string/public_transport_calc_pedestrian"
android:textColor="?attr/active_color_basic"
android:textSize="@dimen/text_button_text_size"
osmand:typeface="@string/font_roboto_medium"
tools:ignore="UnusedAttribute" />
</FrameLayout>
</LinearLayout>
<include
android:id="@+id/shadow"
layout="@layout/card_bottom_divider"
android:visibility="visible" />
</LinearLayout>

View file

@ -14,6 +14,7 @@
android:textSize="@dimen/default_sub_text_size_small"
tools:text="3"
android:gravity="center"
android:maxLines="1"
android:id="@+id/transport_stop_route_text"
android:background="@drawable/transport_stop_route_bg"
android:layout_width="match_parent"

View file

@ -38,7 +38,7 @@
tools:text="@string/public_transport_warning_title" />
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/warning_descr"
android:id="@+id/warning_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:letterSpacing="@dimen/text_button_letter_spacing"

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="poi_fuel_type">Tipo de combustible</string>
<string name="poi_fuel_avia_type">Tipo de combustible (avions)</string>
<string name="poi_payment_type">Tipo de pago</string>
</resources>

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="routing_attr_avoid_tram_name">Evitar lo tramvía</string>
</resources>

View file

@ -3032,4 +3032,5 @@
\n • Пры вымярэнні адлегласці будзе адлюстроўвацца азімут
\n
\n</string>
<string name="send_log">Адправіць журнал</string>
</resources>

View file

@ -3045,4 +3045,5 @@ Abasta l\'àrea: %1$s x %2$s</string>
\n
\n• Mostra l\'azimut en la mesura de la distància
\n</string>
<string name="send_log">Envia el registre</string>
</resources>

View file

@ -3586,4 +3586,6 @@
<string name="poi_flare">Gasafbrænding;flaring</string>
<string name="poi_change_delete">Slettet objekt</string>
<string name="poi_health_specialty_radiotherapy_yes">Strålebehandling</string>
<string name="poi_rescue_box">Redningsboks</string>
<string name="poi_climbing_crag">Ja</string>
</resources>

View file

@ -3031,4 +3031,5 @@ Repræsenterer område: %1$s x %2$s</string>
\n • Rettet mørkt tema i Retningsmenuen og Rutedetaljer
\n
\n • Vis azimut i mål afstand</string>
<string name="send_log">Send log</string>
</resources>

View file

@ -1902,7 +1902,7 @@
<string name="poi_shelter_type_building">Gebäude</string>
<string name="poi_shelter_type_basic_hut">Grundhütte</string>
<string name="poi_shelter_type_wildlife_hide">Tierschutz</string>
<string name="poi_shelter_type_rock_shelter">Steinschlagschutz</string>
<string name="poi_shelter_type_rock_shelter">Felsüberhang</string>
<string name="poi_shelter_type_sun_shelter">Sonnenschutz</string>
<string name="poi_shelter_type_field_shelter">Feldhütte</string>
<string name="poi_shelter_type_tent">Unterstand-Typ: Zelt</string>
@ -3581,4 +3581,7 @@
<string name="poi_flare">Gasfackel/Fackel</string>
<string name="poi_change_delete">Gelöschtes Objekt</string>
<string name="poi_health_specialty_radiotherapy_yes">Strahlentherapie</string>
<string name="poi_climbing_crag_filter">Kletterfelsen</string>
<string name="poi_rescue_box">Rettungskasten</string>
<string name="poi_climbing_crag">Ja</string>
</resources>

View file

@ -3036,4 +3036,5 @@ Abgedeckte Fläche: %1$s x %2$s</string>
\n• Azimut in der Maßeinheit Distanz anzeigen
\n
\n</string>
<string name="send_log">Sendeprotokoll</string>
</resources>

View file

@ -147,7 +147,7 @@
<string name="poi_post_office">Poŝtoficejo</string>
<string name="poi_post_box">Poŝtkesto</string>
<string name="poi_school">Lernejo</string>
<string name="poi_kindergarten">Infanĝardeno</string>
<string name="poi_kindergarten">Infanvartejo</string>
<string name="poi_university">Universitato</string>
<string name="poi_hearing_aids">Aŭdhelpil-vendejo</string>
<string name="poi_herbalist">Herb-vendejo</string>
@ -239,7 +239,7 @@
<string name="poi_sewing">Kudrilar-vendejo</string>
<string name="poi_watches">Horloĝ-vendejo</string>
<string name="poi_swimming_pool_shop">Naĝej-akcesoriaĵoj vendejo</string>
<string name="poi_games">Lud-vendejo</string>
<string name="poi_games">Tabulludvendejo</string>
<string name="poi_model">Modelfar-vendejo</string>
<string name="poi_trophy">Pokaloj-k-premioj-vendejo</string>
<string name="poi_video_games">Videolud-vendejo</string>
@ -1069,8 +1069,8 @@
<string name="poi_fee_no">ne</string>
<string name="poi_drinking_water_yes">jes</string>
<string name="poi_drinking_water_no">ne</string>
<string name="poi_supervised_yes">gardata</string>
<string name="poi_supervised_no">negardata</string>
<string name="poi_supervised_yes">Gardata</string>
<string name="poi_supervised_no">Negardata</string>
<string name="poi_seasonal_yes">jes</string>
<string name="poi_seasonal_no">ne</string>
<string name="poi_seasonal_dry_season">seka sezono</string>
@ -1079,9 +1079,9 @@
<string name="poi_seasonal_summer">somero</string>
<string name="poi_seasonal_autumn">aŭtuno</string>
<string name="poi_seasonal_winter">vintro</string>
<string name="poi_crossing_traffic_signals">Trafiklumoj</string>
<string name="poi_crossing_uncontrolled">Sen trafiklumoj</string>
<string name="poi_crossing_unmarked">Nemarkita</string>
<string name="poi_crossing_traffic_signals">kun trafiklumoj</string>
<string name="poi_crossing_uncontrolled">sen trafiklumoj</string>
<string name="poi_crossing_unmarked">nemarkita</string>
<string name="poi_start_date">Ekestis je</string>
<string name="poi_wheelchair_yes">jes</string>
<string name="poi_wheelchair_no">ne</string>
@ -1294,7 +1294,7 @@
<string name="poi_aerialway_duration">Mezuma vojaĝ-tempo (en minutoj)</string>
<string name="poi_aerialway_bubble_yes">Tegmenteto</string>
<string name="poi_aerialway_bubble_no">Sen tegmenteto</string>
<string name="poi_aerialway_heating_yes">Jes</string>
<string name="poi_aerialway_heating_yes">jes</string>
<string name="poi_aerialway_heating_no">Sen hejtado</string>
<string name="poi_aerialway_bicycle_yes">jes</string>
<string name="poi_aerialway_bicycle_no">Bicikloj: malpermesataj</string>
@ -2086,8 +2086,8 @@
<string name="poi_historic_civilization_cycladic">Civilizo: Ciklada kulturo</string>
<string name="poi_historic_civilization_minoan">Civilizo: Minoa kulturo</string>
<string name="poi_historic_civilization_tiahuanacota">Civilizo: Tiahuanaco-kulturo</string>
<string name="poi_animal_training_dog">Hundoj</string>
<string name="poi_animal_training_horse">Ĉevaloj</string>
<string name="poi_animal_training_dog">hundoj</string>
<string name="poi_animal_training_horse">ĉevaloj</string>
<string name="poi_horse_yes">Ĉevaloj permesataj</string>
<string name="poi_horse_no">Ĉevaloj malpermesataj</string>
<string name="poi_animal_yes">Bestoj permesitaj</string>
@ -2755,8 +2755,8 @@
<string name="poi_payment_type">Pagmaniero</string>
<string name="poi_additional_type">Aldona</string>
<string name="poi_shop_craft">Materialoj-por-metio-vendejo</string>
<string name="poi_service_bicycle_charging_yes">Ŝargo: jes</string>
<string name="poi_service_bicycle_charging_no">Ŝargo: ne</string>
<string name="poi_service_bicycle_charging_yes">ŝargo</string>
<string name="poi_service_bicycle_charging_no">ŝargo: ne</string>
<string name="poi_fuel_avia_type">Brulaĵ-tipo (avia)</string>
<string name="poi_payment_fuel_type">Brulaĵ-kartoj</string>
<string name="poi_internet_access_type">Interret-aliro</string>
@ -2769,7 +2769,7 @@
<string name="poi_fire_hydrant_water_source">Fonto de akvo</string>
<string name="poi_payment_toll_type">Pagmaniero</string>
<string name="poi_traffic_signals_sound">Sono</string>
<string name="poi_highway_crossing_type">Speco</string>
<string name="poi_highway_crossing_type">Speco de stratpasejo</string>
<string name="poi_tactile_paving">Reliefo por blinduloj</string>
<string name="poi_service_general">Servo</string>
<string name="poi_brushless">Senbrosa</string>
@ -2779,7 +2779,7 @@
<string name="poi_covered">Kovrita</string>
<string name="poi_subway_station_filter">Metroa stacio</string>
<string name="poi_ferry_terminal_cargo">Portaĵo de</string>
<string name="poi_bicycle_parking_type">Speco</string>
<string name="poi_bicycle_parking_type">Speco de biciklparkumejo</string>
<string name="poi_aerialway_bicycle">Transportado de bicikloj</string>
<string name="poi_aerialway_heating">Hejtado</string>
<string name="poi_pump">Pumpilo</string>
@ -2814,9 +2814,9 @@
<string name="poi_cocktails">Kokteloj</string>
<string name="poi_microbrewery">Metia bierfarejeto</string>
<string name="poi_beauty_salon_service">Servo</string>
<string name="poi_recycling_type">Speco</string>
<string name="poi_recycling_type">Speco de recikligejo</string>
<string name="poi_recycling_accepted_waste">Akceptataj ruboj</string>
<string name="poi_shelter_type">Speco</string>
<string name="poi_shelter_type">Speco de ŝirmejo</string>
<string name="poi_fireplace">Kameno</string>
<string name="poi_seasonal">Sezona</string>
<string name="poi_water_characteristic">Akvospeco</string>
@ -3167,7 +3167,7 @@
<string name="poi_boat_jetski_rental_no">Akvoskoteroj: ne</string>
<string name="poi_boat_sailboat_rental_yes">Velboatoj: jes</string>
<string name="poi_boat_sailboat_rental_no">Velboatoj: ne</string>
<string name="poi_boat_dinghy_rental_rental_yes">Remboatoj :jes</string>
<string name="poi_boat_dinghy_rental_rental_yes">Remboatoj: jes</string>
<string name="poi_boat_dinghy_rental_rental_no">Remboatoj: ne</string>
<string name="poi_boat_kayak_rental_rental_yes">Kajakoj: jes</string>
<string name="poi_boat_kayak_rental_rental_no">Kajakoj: ne</string>
@ -3538,8 +3538,8 @@
<string name="poi_books_children">infanaj</string>
<string name="poi_atoll">Atolo</string>
<string name="poi_toll_gantry">Telekontrolo de vojimposto</string>
<string name="poi_childcare">Infan-vartejo</string>
<string name="poi_denotation">Signifo</string>
<string name="poi_childcare">Infan/bebovartejo</string>
<string name="poi_denotation">Signifo de arbo</string>
<string name="poi_denotation_natural_monument">natura monumento</string>
<string name="poi_denotation_landmark">orientiĝa punkto</string>
<string name="poi_park_ride">Parkumu kaj veturu (P+R)</string>
@ -3571,4 +3571,7 @@
<string name="poi_flare">Gasbruliganta turo</string>
<string name="poi_change_delete">Forigita objekto</string>
<string name="poi_health_specialty_radiotherapy_yes">per-radiad-kuracado (radioterapio)</string>
<string name="poi_climbing_crag_filter">Areo de grimpado</string>
<string name="poi_rescue_box">Tujhelpilo (ensovaĝe)</string>
<string name="poi_climbing_crag">jes</string>
</resources>

View file

@ -3011,4 +3011,5 @@ Indikas lokon: %1$s x %2$s"</string>
\n
\n• montri azimuton ĉe distancmezurilo
\n</string>
<string name="send_log">Sendi erarprotokolon</string>
</resources>

View file

@ -3585,4 +3585,7 @@
<string name="poi_flare">Llamarada de gas;Quemado en antorcha</string>
<string name="poi_change_delete">Objeto borrado</string>
<string name="poi_health_specialty_radiotherapy_yes">Radioterapia</string>
<string name="poi_climbing_crag_filter">Peñón de escalada</string>
<string name="poi_rescue_box">Caja de rescate</string>
<string name="poi_climbing_crag"></string>
</resources>

View file

@ -3028,4 +3028,5 @@ Lon %2$s</string>
\n
\n• Visualización de medida «azimut» en «Medir distancia»
\n</string>
<string name="send_log">Enviar registro del problema</string>
</resources>

View file

@ -3585,4 +3585,7 @@
<string name="poi_flare">Llamarada de gas;Quemado en antorcha</string>
<string name="poi_health_specialty_radiotherapy_yes">Radioterapia</string>
<string name="poi_change_delete">Objeto borrado</string>
<string name="poi_climbing_crag_filter">Peñón de escalada</string>
<string name="poi_rescue_box">Caja de rescate</string>
<string name="poi_climbing_crag"></string>
</resources>

View file

@ -3029,4 +3029,5 @@ Lon %2$s</string>
\n
\n • Visualización de medida «azimut» en «Medir distancia»
\n</string>
<string name="send_log">Enviar registro del problema</string>
</resources>

View file

@ -3578,4 +3578,8 @@
<string name="poi_rtsa_scale_3b_asterisk">3B*</string>
<string name="poi_flare">Llamarada de gas;Quemado en antorcha</string>
<string name="poi_change_delete">Objeto borrado</string>
<string name="poi_climbing_crag_filter">Peñón de escalada</string>
<string name="poi_health_specialty_radiotherapy_yes">Radioterapia</string>
<string name="poi_rescue_box">Caja de rescate</string>
<string name="poi_climbing_crag"></string>
</resources>

View file

@ -3045,4 +3045,5 @@
\n
\n • Visualización de medida «azimut» en «Medir distancia»
\n</string>
<string name="send_log">Enviar registro de problemas</string>
</resources>

View file

@ -3008,5 +3008,6 @@ Area honi dagokio: %1$s x %2$s</string>
<string name="rendering_attr_surface_sett_name">Galtzada-harria</string>
<string name="rendering_attr_surface_cobblestone_name">Galtzadarria</string>
<string name="rendering_attr_surface_fine_gravel_name">Legarra</string>
<string name="routing_attr_avoid_sett_name"></string>
<string name="routing_attr_avoid_sett_name"/>
<string name="send_log">Bidali egunkaria</string>
</resources>

View file

@ -712,7 +712,7 @@
<string name="show_more_map_detail_descr">برخی جزئیات نقشهٔ بُرداری (جاده‌ها و...) را در زوم‌های کمتر نشان می‌دهد.</string>
<string name="favourites_delete_multiple_succesful">نقطه‌های برگزیده حذف شد.</string>
<string name="favorite_delete_multiple">آیا از حذف %1$d نقطهٔ برگزیده و %2$d گروه مطمئن هستید؟</string>
<string name="basemap_missing">نقشه پایهٔ جهان را دانلود کنید تا نمایی از سراسر جهان با امکان بزرگ‌نمایی اندک داشته باشید.</string>
<string name="basemap_missing">نقشه پایهٔ جهان را دانلود کنید تا نمایی از سراسر جهان با بزرگ‌نمایی کم داشته باشید.</string>
<string name="local_index_installed">نسخهٔ محلی</string>
<string name="installing_new_resources">بازکردن داده‌های جدید…</string>
<string name="internet_connection_required_for_online_route">یکی از سرویس‌های مسیریابی آنلاین را انتخاب کرده‌اید اما به اینترنت متصل نیستید.</string>
@ -2787,14 +2787,14 @@
<string name="get_unlimited_access">گرفتن دسترسی نامحدود</string>
<string name="welcome_to_open_beta">به ارزیابی همگانی نسخهٔ بتا خوش آمدید</string>
<string name="contour_lines_hillshade_maps">نقشه‌های منحنی تراز و سایه‌روشن</string>
<string name="download_wikipedia_description">با پرداخت %1$s مقاله‌های ویکی‌سفر را دانلود کنید تا آن‌ها را آفلاین بخوانید.</string>
<string name="download_wikipedia_description">مقاله‌های ویکی‌سفر %1$s را دانلود کنید تا آن‌ها را آفلاین بخوانید.</string>
<string name="download_wikipedia_label">دریافت داده‌های ویکی‌پدیا</string>
<string name="open_in_browser_wiki">بازکردن مقالهٔ آنلاین</string>
<string name="open_in_browser_wiki_description">این مقاله را در مرورگر اینترنت مشاهده کنید.</string>
<string name="download_wiki_region_placeholder">این منطقه</string>
<string name="wiki_article_search_text">جست‌وجو به‌دنبال مقالهٔ همخوان از ویکی</string>
<string name="wiki_article_not_found">مقاله پیدا نشد</string>
<string name="how_to_open_wiki_title">چگونه مقاله‌های ویکی‌پدیا را باز کنیم؟</string>
<string name="how_to_open_wiki_title">مقاله‌های ویکی‌پدیا چگونه باز شوند؟</string>
<string name="popular_destinations">مقصدهای محبوب</string>
<string name="osmand_team">تیم OsmAnd</string>
<string name="maps_you_need_descr">بر اساس مقالاتی که نشانک زده‌اید، پیشنهاد می‌کنیم این نقشه‌ها را دانلود کنید:</string>

View file

@ -463,7 +463,7 @@
<string name="poi_bedding">Magasin de literie</string>
<string name="poi_erotic">Sex shop</string>
<string name="poi_herbalist">Herboriste</string>
<string name="poi_kitchen">Magasin d\'ustensiles de cuisine</string>
<string name="poi_kitchen">Magasin de cuisines</string>
<string name="poi_stationery">Papeterie</string>
<string name="poi_tableware">Magasin de vaisselle</string>
<string name="poi_ticket">Guichet de billetterie</string>
@ -540,7 +540,7 @@
<string name="poi_toll_booth">Barrière de péage</string>
<string name="poi_vehicle_ramp">Rampe pour véhicules</string>
<string name="poi_public_transport_platform_trolleybus">Arrêt de trolleybus</string>
<string name="poi_public_transport_platform_tram">Arrêt de tramway</string>
<string name="poi_public_transport_platform_tram">Arrêt de tram</string>
<string name="poi_aerialway_platter">Remontée mécanique</string>
<string name="poi_standpipe">Colonne d\'alimentation</string>
<string name="poi_migration">Migration</string>
@ -1677,8 +1677,8 @@
<string name="poi_dojo">Dojo</string>
<string name="poi_bench_yes">Oui</string>
<string name="poi_bench_no">Sans banc</string>
<string name="poi_bin_yes">Avec panier</string>
<string name="poi_bin_no">Sans panier</string>
<string name="poi_bin_yes">Avec poubelle</string>
<string name="poi_bin_no">Sans poubelle</string>
<string name="poi_internet_access_type_yes">Avec accès Internet</string>
<string name="poi_fitness_centre">Salle de sport</string>
<string name="poi_billiards">Billards</string>
@ -3205,7 +3205,7 @@
<string name="poi_shop_wholesale">Magasin de vente en gros</string>
<string name="poi_laboratory">Laboratoire médical</string>
<string name="poi_blood_donation">Don du sang</string>
<string name="poi_books_academic">Académique</string>
<string name="poi_books_academic">Scolaire</string>
<string name="poi_books_children">Enfants</string>
<string name="poi_nuclear_explosion_shot_name_en">Nom du tir (anglais)</string>
<string name="poi_medical_system_sidda_yes">Sidda</string>
@ -3249,4 +3249,40 @@
<string name="poi_nuclear_explosion_salvo_first_detonation">Salve d\'explosion : première détonation d\'un test de salve</string>
<string name="poi_nuclear_explosion_salvo_second_or_later_detonation">Salve d\'explosion : deuxième détonation ou détonation ultérieure d\'un test de salve</string>
<string name="poi_nuclear_explosion_device">Explosion : dispositif</string>
<string name="poi_health_service_support_yes">Services de santé : soutien : oui</string>
<string name="poi_health_service_support_no">Services de santé : soutien : non</string>
<string name="poi_health_service_test_yes">Services de santé : test : oui</string>
<string name="poi_health_service_test_no">Services de santé : test : non</string>
<string name="poi_health_facility_type_department">Type d\'établissement de santé : département</string>
<string name="poi_substation_transmission">Transport</string>
<string name="poi_substation_distribution">Distribution</string>
<string name="poi_substation_traction">Traction</string>
<string name="poi_substation_converter">Conversion</string>
<string name="poi_substation_compensation">Compensation</string>
<string name="poi_books_comic">Bande dessinée</string>
<string name="poi_books_antiquarian">Ancien</string>
<string name="poi_books_religion">Religion</string>
<string name="poi_park_ride_yes">Oui</string>
<string name="poi_park_ride_train">Train</string>
<string name="poi_park_ride_bus">Bus</string>
<string name="poi_park_ride_metro">Métro</string>
<string name="poi_park_ride_hov">VOM</string>
<string name="poi_park_ride_tram">Tram</string>
<string name="poi_park_ride_ferry">Ferry</string>
<string name="poi_generator_source_biomass">Source d\'énergie : biomasse</string>
<string name="poi_rtsa_scale_nc">н/к</string>
<string name="poi_rtsa_scale_nc_asterisk">н/к*</string>
<string name="poi_rtsa_scale_1a">1А</string>
<string name="poi_rtsa_scale_1a_asterisk">1А*</string>
<string name="poi_rtsa_scale_1b"></string>
<string name="poi_rtsa_scale_1b_asterisk">1Б*</string>
<string name="poi_rtsa_scale_2a">2А</string>
<string name="poi_rtsa_scale_2a_asterisk">2А*</string>
<string name="poi_rtsa_scale_2b"></string>
<string name="poi_rtsa_scale_2b_asterisk">2Б*</string>
<string name="poi_rtsa_scale_3a">3А</string>
<string name="poi_rtsa_scale_3a_asterisk">3А*</string>
<string name="poi_rtsa_scale_3b"></string>
<string name="poi_rtsa_scale_3b_asterisk">3Б*</string>
<string name="poi_climbing_crag">Oui</string>
</resources>

View file

@ -1310,7 +1310,7 @@ Mémoire proportionnelle %4$s Mo (limite Android %5$s Mo, Dalvik %6$s Mo).</stri
<string name="int_hour">h</string>
<string name="duration">Durée</string>
<string name="distance">Distance</string>
<string name="rendering_attr_publicTransportMode_name">Lignes de bus, tramways, et navettes</string>
<string name="rendering_attr_publicTransportMode_name">Lignes de bus, trolleybus et navettes</string>
<string name="save_track_to_gpx_globally">Enregistrer l\'itinéraire dans un fichier GPX</string>
<string name="save_track_to_gpx_globally_descr">L\'enregistrement des positions dans un fichier GPX peut être activé ou désactivé depuis le gadget de la carte</string>
<string name="save_track_interval_globally">Intervalle d\'enregistrement</string>
@ -1348,11 +1348,11 @@ Mémoire proportionnelle %4$s Mo (limite Android %5$s Mo, Dalvik %6$s Mo).</stri
<string name="search_radius_proximity">Dans</string>
<string name="rendering_category_routes">Itinéraires</string>
<string name="rendering_attr_busRoutes_name">Lignes de bus</string>
<string name="rendering_attr_trolleybusRoutes_name">Lignes de tramway</string>
<string name="rendering_attr_trolleybusRoutes_name">Lignes de trolleybus</string>
<string name="rendering_attr_trainLightrailRoutes_name">Itinéraires de chemin de fer</string>
<string name="rendering_attr_tramRoutes_name">Voies de tramway</string>
<string name="rendering_attr_tramRoutes_name">Lignes de tram</string>
<string name="rendering_attr_shareTaxiRoutes_name">Voies partagées pour les taxis</string>
<string name="rendering_attr_tramTrainRoutes_name">Lignes de tramway et train</string>
<string name="rendering_attr_tramTrainRoutes_name">Lignes de tram et train</string>
<string name="impassable_road">Éviter les routes…</string>
<string name="rendering_category_hide">Masquer</string>
<string name="wake_on_voice">Allumer l\'écran</string>
@ -2069,7 +2069,7 @@ Si vous appréciez OsmAnd et OSM et que vous souhaitez soutenir ces projets, c\'
<string name="gpx_add_track">Autre trace GPX …</string>
<string name="gpx_appearance">Apparence</string>
<string name="rendering_value_fine_name">Bien</string>
<string name="translit_name_if_miss">Transformer si le nom %1$s est absent</string>
<string name="translit_name_if_miss">Translittérer si le nom %1$s est absent</string>
<string name="route_calculation">Calcul de l\'itinéraire</string>
<string name="upload_poi">Télécharger les points d\'intérêt</string>
<string name="route_roundabout_short">Prenez la sortie %1$d</string>
@ -2973,8 +2973,8 @@ représentant la zone : %1$s x %2$s</string>
<string name="shared_string_milliradians">Millièmes angulaires</string>
<string name="angular_measeurement">Unités de mesure d\'angle</string>
<string name="angular_measeurement_descr">Modifier l\'unité de mesure de l\'azimut.</string>
<string name="routing_attr_avoid_tram_name">Éviter le tramway</string>
<string name="routing_attr_avoid_tram_description">Éviter le tramway</string>
<string name="routing_attr_avoid_tram_name">Éviter le tram</string>
<string name="routing_attr_avoid_tram_description">Éviter le tram</string>
<string name="routing_attr_avoid_bus_name">Éviter le bus</string>
<string name="routing_attr_avoid_share_taxi_name">Éviter le taxi partagé</string>
<string name="routing_attr_avoid_share_taxi_description">Éviter le taxi partagé</string>
@ -2993,4 +2993,8 @@ représentant la zone : %1$s x %2$s</string>
\n • Affichage de lazimut lors de la mesure de distance.
\n
\n</string>
<string name="send_log">Envoyer le journal</string>
<string name="routing_attr_avoid_bus_description">Éviter le bus et le trolleybus</string>
<string name="routing_attr_avoid_sett_name">Éviter les pavés</string>
<string name="routing_attr_avoid_sett_description">Éviter les pavés</string>
</resources>

View file

@ -245,7 +245,7 @@
<string name="app_mode_motorcycle">Moto</string>
<string name="app_mode_boat">Embarcación</string>
<string name="app_mode_aircraft">Aeronave</string>
<string name="local_osm_changes_delete_all_confirm">Está a piques de eliminar %1$d mudanzas no OSM. Confírmao\?</string>
<string name="local_osm_changes_delete_all_confirm">Estás a piques de eliminar %1$d mudanzas no OSM. Tes a certeza de querer facelo\?</string>
<string name="shared_string_delete_all">Eliminar todo</string>
<string name="animate_routing_route_not_calculated">Calcula-la rota primeiro</string>
<string name="animate_routing_route">"Simular empregando a rota calculada "</string>
@ -373,8 +373,8 @@
<string name="download_hillshade_maps">Sombreado</string>
<string name="local_indexes_cat_srtm">Curvas de nivel</string>
<string name="local_indexes_cat_av">Datos de son/vídeo</string>
<string name="stop_routing_confirm">Está na certeza de que desexa dete-la navigación\?</string>
<string name="clear_dest_confirm">Confirmas que desexas limpar o destino (e os destinos intermedios)\?</string>
<string name="stop_routing_confirm">Tes a certeza de querer dete-la navigación\?</string>
<string name="clear_dest_confirm">Tes a certeza de querer limpar o destino (e os destinos intermedios)\?</string>
<string name="precise_routing_mode_descr">Calcular rutas precisas sen interferencias. Aínda está limitado polas distancias e é tardo.</string>
<string name="precise_routing_mode">Navigación precisa (alfa)</string>
<string name="recording_context_menu_show">Amosar</string>
@ -882,7 +882,7 @@
<string name="show_more_map_detail">Amosar máis detalles dos mapas</string>
<string name="show_more_map_detail_descr">Amosar algún detalle dos mapas vectoriais (estradas, etc.) xa a niveis inferiores.</string>
<string name="favourites_delete_multiple_succesful">Puntos favoritos eliminados.</string>
<string name="favorite_delete_multiple">Está a piques de eliminar %1$d Favoritos e %2$d grupos de Favoritos. Confírmao\?</string>
<string name="favorite_delete_multiple">Estás a piques de eliminar %1$d Favoritos e %2$d grupos de Favoritos. Tes a certeza de querer facelo\?</string>
<string name="favorite_home_category">Casa</string>
<string name="favorite_friends_category">Amizades</string>
<string name="favorite_places_category">Lugares</string>
@ -1508,8 +1508,8 @@
<string name="welcome_header">Reciba a benvida</string>
<string name="current_route">Rota actual</string>
<string name="mark_to_delete">Marcar para eliminar</string>
<string name="local_recordings_delete_all_confirm">Está a piques de eliminar %1$d notas. Confírmao?</string>
<string name="local_osm_changes_upload_all_confirm">Está a piques de enviar %1$d mudanza(s) ó OSM. Confírmao\?</string>
<string name="local_recordings_delete_all_confirm">Estás a piques de eliminar %1$d notas. Tes a certeza de querer facelo\?</string>
<string name="local_osm_changes_upload_all_confirm">Estás a piques de enviar %1$d mudanza(s) ó OSM. Tes a certeza de querer facelo\?</string>
<string name="confirmation_to_clear_history">Limpa-lo historial\?</string>
<string name="shared_string_go">Ir</string>
<string name="osm_edits">Edicións do OSM</string>
@ -1699,7 +1699,7 @@ Lon %2$s</string>
<string name="poi_deleted_localy">O punto de interese (PDI) será eliminado unha vez enviadas as mudanzas</string>
<string name="show_gpx">Amosar datos GPX</string>
<string name="count_of_lines">Número de liñas</string>
<string name="are_you_sure">Confírmao?</string>
<string name="are_you_sure">Tes a certeza de querer facelo\?</string>
<string name="unsaved_changes_will_be_lost">Vanse perde-las mudanzas non gardadas. Proseguer\?</string>
<string name="downloads_left_template">Fican %1$s baixadas</string>
<string name="roads">Estradas</string>
@ -1972,7 +1972,7 @@ Lon %2$s</string>
<string name="no_update_info">Non mostrar as actualizacións</string>
<string name="update_all_maps_now">Desexa actualizar tódolos mapas agora\?</string>
<string name="clear_tile_data">Limpar tódalas teselas</string>
<string name="replace_favorite_confirmation">Confirma que desexa substituí-lo favorito \"%1$s\"\?</string>
<string name="replace_favorite_confirmation">Tes a certeza de querer substituí-lo favorito \"%1$s\"\?</string>
<string name="coords_search">Procura de coordenadas</string>
<string name="advanced_coords_search">Procura avanzada por coordenadas</string>
<string name="back_to_search">Voltar á procura</string>
@ -2113,7 +2113,7 @@ Lon %2$s</string>
<string name="quick_action_add_favorite">Engadir ós Favorito</string>
<string name="dialog_add_action_title">Engadir unha acción</string>
<string name="quick_actions_delete">Eliminar a acción</string>
<string name="quick_actions_delete_text">Confirma que desexa eliminar a acción «%s»?</string>
<string name="quick_actions_delete_text">Tes a certeza de querer eliminar a acción \"%s\"\?</string>
<string name="quick_favorites_show_favorites_dialog">Amosar diálogo dos Favoritos</string>
<string name="quick_action_add_marker_descr">Ó premer no botón de acción engádese unha marcaxe do mapa na posición central da pantalla.</string>
<string name="quick_action_take_audio_note_descr">Ó premer neste botón de acción engádese unha nota de son na posición central da pantalla.</string>
@ -2200,7 +2200,7 @@ Lon %2$s</string>
<string name="shared_string_slope">Costa</string>
<string name="add_new_folder">Engadir un cartafol novo</string>
<string name="points_delete_multiple_succesful">Punto(s) eliminado(s).</string>
<string name="points_delete_multiple">Vai eliminar %1$d punto(s). Confírmao?</string>
<string name="points_delete_multiple">Vas eliminar %1$d punto(s). Tes a certeza de querer facelo\?</string>
<string name="track_points_category_name">Puntos da rota, puntos de interese, funcións nomeadas</string>
<string name="route_points_category_name">Viraxes a pasar nesta rota</string>
<string name="max_speed">Velocidade máxima</string>
@ -3061,4 +3061,5 @@ Lon %2$s</string>
<string name="avoid_pt_types">Evitar tipos de transporte…</string>
<string name="routing_attr_avoid_sett_name">Evitar o pavemento empedrado e lastros</string>
<string name="routing_attr_avoid_sett_description">Evita as rúas empedradas e con lastros</string>
<string name="send_log">Enviar rexistro (log)</string>
</resources>

View file

@ -3021,4 +3021,5 @@
\n
\n • הצגת אזימוט במדידת מרחק
\n</string>
<string name="send_log">שליחת יומן</string>
</resources>

View file

@ -3572,4 +3572,7 @@
<string name="poi_health_specialty_radiotherapy_yes">Sugárkezelés</string>
<string name="poi_substation_inspection_gauge">Ellenőrző mérőműszer</string>
<string name="poi_substation_field_gathering">Kutakból jövő anyag gyűjtőhelye</string>
<string name="poi_climbing_crag_filter">Mászószikla</string>
<string name="poi_rescue_box">Hegyi mentőláda</string>
<string name="poi_climbing_crag">Igen</string>
</resources>

View file

@ -844,7 +844,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str
<string name="target_point">Célpont %1$s</string>
<string name="shared_string_target_points">Célpontok</string>
<string name="intermediate_point_too_far">%1$s köztes célpont túl messze van a legközelebbi úttól.</string>
<string name="arrived_at_intermediate_point">Megérkeztél a köztes célponthoz</string>
<string name="arrived_at_intermediate_point">Érkezés a köztes célponthoz</string>
<string name="context_menu_item_intermediate_point">Beállítás köztes célpontnak</string>
<string name="map_widget_intermediate_distance">Köztes célpont</string>
<string name="ending_point_too_far">A célpont közelében nem található út.</string>
@ -1465,7 +1465,7 @@ Proporcionális memória %4$s MB (Android korlát %5$s MB, Dalvik %6$s MB).</str
<string name="osmand_parking_time_left">maradt</string>
<string name="confirmation_to_clear_history">Törlöd az előzményeket?</string>
<string name="delay_to_start_navigation_descr">A hátralévő várakozási idő megadása az útvonaltervezés képernyőn.</string>
<string name="delay_to_start_navigation">Turn-by-turn navigáció indítása ez után…</string>
<string name="delay_to_start_navigation">Részletes navigáció indítása ez után…</string>
<string name="shared_string_go">Indítás</string>
<string name="parking_place_limited">A parkolási idő vége</string>
<string name="your_edits">A szerkesztéseid</string>
@ -1787,7 +1787,7 @@ Hosszúság: %2$s</string>
<string name="save_poi_without_poi_type_message">Biztosan elmented a POI-t típus nélkül?</string>
<string name="poi_context_menu_modify_osm_change">OSM-szerkesztés módosítása</string>
<string name="shared_string_card_was_hidden">Kártya el lett rejtve</string>
<string name="please_specify_poi_type_only_from_list">Kérlek add meg a helyes POI típust, vagy hagyd ki.</string>
<string name="please_specify_poi_type_only_from_list">Kérjük, helyes POI típust adjon meg, vagy hagyja ki ezt a lépést.</string>
<string name="access_from_map_description">A menü gomb a menü helyett a műszerfalat indítja</string>
<string name="access_from_map">Elérés a térképről</string>
<string name="copied_to_clipboard">Vágólapra másolva</string>
@ -1839,7 +1839,7 @@ Hosszúság: %2$s</string>
<string name="night">Éjjel</string>
<string name="select_month_and_country">Hónap és ország kiválasztása</string>
<string name="shared_string_remove">Eltávolítás</string>
<string name="storage_directory_readonly_desc">Átváltottam belső memóriára, mert a kiválasztott adattároló könyvtár csak olvasható. Kérlek, válassz írható tárolási könyvtárat.</string>
<string name="storage_directory_readonly_desc">Az alkalmazás átváltott belső memóriára, mert a kiválasztott adattároló könyvtár csak olvasható. Kérjük, válasszon írható tárolási könyvtárat.</string>
<string name="storage_directory_shared">Osztott memória</string>
<string name="shared_string_topbar">Felső sáv</string>
<string name="recalculate_route">Útvonal újraszámítása</string>
@ -1856,13 +1856,13 @@ Hosszúság: %2$s</string>
<string name="osm_live_month_cost_desc">Havi fizetés</string>
<string name="osm_live_active">Aktív</string>
<string name="osm_live_not_active">Inaktív</string>
<string name="osm_live_enter_email">Kérlek, érvényes email címet adj meg</string>
<string name="osm_live_enter_user_name">Kérlek, adj meg publikus nevet</string>
<string name="osm_live_enter_email">Kérjük, érvényes e-mail címet adjon meg</string>
<string name="osm_live_enter_user_name">Kérjük, nyilvános nevet adjon meg</string>
<string name="osm_live_thanks">Köszönjük az OsmAnd támogatását!
\nAz új funkciók aktiválásához az OsmAnd újraindítása szükséges.</string>
<string name="osm_live_region_desc">Az adományod egy részét a megadott régióban tevékenykedő OSM-szerkesztőknek továbbítjuk.</string>
<string name="osm_live_subscription_settings">Előfizetési beállítások</string>
<string name="osm_live_ask_for_purchase">Előbb kérlek vásárolj OsmAnd Live előfizetést</string>
<string name="osm_live_ask_for_purchase">Először kérjük, vásároljon OsmAnd Live előfizetést</string>
<string name="osm_live_header">Ez az előfizetés a világ bármely térképének óránkénti frissítését teszi lehetővé.
A bevételek egy része az OSM közösségnek jut vissza, és OSM szerkesztésenként kerül kifizetésre.
Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésüket, ez ennek a tökéletes módja.</string>
@ -1932,7 +1932,7 @@ Jelenleg csak {2} MB érhető el.</string>
<string name="rec_split_desc">Klipek elvágása, ha a felhasznált hely túllépi a tárolási méretet.</string>
<string name="rec_split_clip_length_desc">A felvett klipek maximális hossza.</string>
<string name="rec_split_storage_size_desc">Az összes klip által elfoglalható hely.</string>
<string name="no_map_markers_found">Kérlek, vegyél fel jelölőket a térképen</string>
<string name="no_map_markers_found">Kérjük, vegyen fel jelölőket a térképen</string>
<string name="no_waypoints_found">Nem találhatók útpontok</string>
<string name="map_widget_bearing">Relatív irány</string>
<string name="access_disable_offroute_recalc_descr">Ne tervezzen újra, amikor elhagyod a tervezett útvonalat.</string>
@ -2050,7 +2050,7 @@ Jelenleg csak {2} MB érhető el.</string>
<string name="save_filter">Szűrő mentése</string>
<string name="delete_filter">Szűrő törlése</string>
<string name="new_filter">Új szűrő</string>
<string name="new_filter_desc">Kérlek add meg az új szűrő nevét, ez hozzá lesz adva a „Kategóriák” fülhöz.</string>
<string name="new_filter_desc">Kérjük, adja meg az új szűrő nevét, ami hozzá fog adódni a „Kategóriák” fülhöz.</string>
<string name="lang_kab">kabil</string>
<string name="shared_string_continue">Folytatás</string>
<string name="gpx_logging_no_data">Nincs adat</string>
@ -2294,7 +2294,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="animate_my_location">Saját pozícióm animálása</string>
<string name="animate_my_location_desc">A saját pozíció mozgásának animálása navigáció közben.</string>
<string name="shared_string_overview">Áttekintés</string>
<string name="route_is_too_long_v2">Ha 10 percen belül nem kapsz eredményt erre a hosszú útvonalra, kérlek adj hozzá köztes célpontokat.</string>
<string name="route_is_too_long_v2">Hosszú távolságoknál: Ha 10 percen belül nem kap eredményt, adjon hozzá köztes célpontokat.</string>
<string name="osmand_extended_description_part1">OsmAnd (OSM Automated Navigation Directions) egy térkép- és navigációs alkalmazás, amellyel hozzáférhetsz az ingyenes, globális és kiváló minőségű OpenStreetMap (OSM) adataihoz.
\n
\nÉlvezd a hangalapú és vizuális navigációs szolgáltatást, tekints meg érdekes helyeket (POI-kat), hozz létre és kezelj GPX nyomvonalakat, szintvonalak és magasságinformációk használatával (egy plugin segítségével), válassz az autós, kerékpáros és gyalogos üzemmód közül, szerkessz OSM-et és használd ki a számos egyéb lehetőséget.</string>
@ -2731,7 +2731,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="start_search_from_city">Előbb a város kiválasztása</string>
<string name="shared_string_restore">Visszaállítás</string>
<string name="keep_passed_markers">Elhagyott jelölők megtartása a térképen</string>
<string name="ask_for_location_permission">A folytatáshoz kérlek engedélyezd a helymeghatározást az OsmAnd számára.</string>
<string name="ask_for_location_permission">A folytatáshoz engedélyezze a helymeghatározást az OsmAnd számára.</string>
<string name="thank_you_for_feedback">Köszönjük a visszajelzésed</string>
<string name="release_3_2_pre">• Pár eszközt érintő indításkori összeomlás javítása
\n
@ -2767,7 +2767,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="increase_search_radius_to">Keresési sugár növelése: %1$s</string>
<string name="point_deleted">%1$s pont törölve</string>
<string name="coord_input_save_as_track_descr">%1$s pontot hoztál létre. Adj meg egy fájlnevet és nyomj a „Mentés”-re.</string>
<string name="error_notification_desc">Kérlek, küldj egy képernyőképet erről a figyelmeztetésről a support@osmand.net-re</string>
<string name="error_notification_desc">Kérjük, küldjön egy képernyőképet erről a figyelmeztetésről a support@osmand.net-re</string>
<string name="mapillary_menu_title_pano">Csak 360°-os képek megjelenítése</string>
<string name="rendering_value_black_name">Fekete</string>
<string name="test_voice_desrc">Nyomj egy gombra és hallgasd meg a hangutasítást, hogy megtaláld a hiányzó, vagy hibás utasításokat.</string>
@ -2794,7 +2794,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="voice_announcements">Hangbemondások</string>
<string name="intermediate_destinations">Köztes célpontok</string>
<string name="arrive_at_time">Érkezés ekkor: %1$s</string>
<string name="powered_by_osmand">A motorháztető alatt: OsmAnd</string>
<string name="powered_by_osmand">Az OsmAndtól</string>
<string name="third_party_application">Harmadik féltől származó alkalmazás</string>
<string name="send_search_query_description">Elküldjük a keresésed: <b>„%1$s”</b>, valamint a tartózkodási helyed.<br/>
<br/> Nem gyűjtünk személyes adatokat, a keresési adatokat csak a kereső algoritmus fejlesztéséhez használjuk.<br/>
@ -2878,7 +2878,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="add_home">Otthon hozzáadása</string>
<string name="shared_string_swap">Felcserélés</string>
<string name="show_more">Továbbiak megjelenítése</string>
<string name="tracks_on_map">Nyomvonalak a térképen</string>
<string name="tracks_on_map">Megjelenített nyomvonalak</string>
<string name="route_class_stat_container">Útkategória</string>
<string name="step_by_step">Lépésről lépésre</string>
<string name="road_types">Úttípusok</string>
@ -2887,7 +2887,7 @@ Kérlek adj meg egy teljes kódot</string>
<string name="quick_action_show_hide_gpx_tracks_descr">A műveletgombra koppintás elrejti vagy megjeleníti a GPX nyomvonalakat a térképen</string>
<string name="quick_action_gpx_tracks_hide">GPX nyomvonalak elrejtése</string>
<string name="quick_action_gpx_tracks_show">GPX nyomvonalak megjelenítése</string>
<string name="add_destination_query">Először jelölj ki egy célpontot</string>
<string name="add_destination_query">Először jelöljön ki egy célpontot</string>
<string name="release_3_3">"• Új \'Navigáció\' képernyő: Új gomb az Otthon és Munkahely célpontokhoz, \'előző útvonal\' gyors gomb, az aktív GPX útvonalak és jelölők listája, keresési előzmények
\n
\n • Több információ az \'Útvonal adataiban\': úttípus, útburkolat, meredekség, simaság
@ -2929,4 +2929,60 @@ Kérlek adj meg egy teljes kódot</string>
<string name="public_transport_warning_title">A tömegközlekedési útvonaltervezés jelenleg bétatesztelési fázisban van, hibák és pontatlanságok előfordulhatnak.</string>
<string name="add_intermediate">Köztes pont megadása</string>
<string name="transfers_size">%1$d átszállás</string>
<string name="shared_string_degrees">Fok</string>
<string name="shared_string_milliradians">Milliradián</string>
<string name="angular_measeurement">Szögmérés mértékegysége</string>
<string name="angular_measeurement_descr">Az azimutmérés mértékegységének módosítása.</string>
<string name="quick_action_day_night_mode">%s mód</string>
<string name="save_poi_value_exceed_length">A „%s” címke címke legfeljebb 255 karakter hosszú lehet.
\nA folytatáshoz rövidítse le.</string>
<string name="save_poi_value_exceed_length_title">A „%s” érték hossza</string>
<string name="add_start_and_end_points">Kiindulási és célpont hozzáadása</string>
<string name="route_add_start_point">Kiindulási pont hozzáadása</string>
<string name="route_descr_select_start_point">Kiindulási pont kijelölése</string>
<string name="rendering_attr_surface_unpaved_name">Burkolatlan</string>
<string name="rendering_attr_surface_sand_name">Homok</string>
<string name="rendering_attr_surface_grass_name"></string>
<string name="rendering_attr_surface_grass_paver_name">Gyephézagos térkő</string>
<string name="rendering_attr_surface_ground_name">Talaj</string>
<string name="rendering_attr_surface_dirt_name">Föld</string>
<string name="rendering_attr_surface_mud_name">Sár</string>
<string name="rendering_attr_surface_ice_name">Jég</string>
<string name="rendering_attr_surface_salt_name"></string>
<string name="rendering_attr_surface_snow_name"></string>
<string name="rendering_attr_surface_asphalt_name">Aszfalt</string>
<string name="rendering_attr_surface_paved_name">Burkolt</string>
<string name="rendering_attr_surface_concrete_name">Beton</string>
<string name="rendering_attr_surface_sett_name">Macskakő</string>
<string name="rendering_attr_surface_cobblestone_name">Nagy kavics (görgeteg)</string>
<string name="rendering_attr_surface_paving_stones_name">Térkő</string>
<string name="rendering_attr_surface_pebblestone_name">Kavics</string>
<string name="rendering_attr_surface_stone_name"></string>
<string name="rendering_attr_surface_metal_name">Fém</string>
<string name="rendering_attr_surface_wood_name">Fa</string>
<string name="rendering_attr_surface_gravel_name">Zúzott kő</string>
<string name="rendering_attr_surface_fine_gravel_name">Murva</string>
<string name="rendering_attr_surface_compacted_name">Tömörített</string>
<string name="rendering_attr_smoothness_excellent_name">Kitűnő</string>
<string name="rendering_attr_smoothness_good_name"></string>
<string name="rendering_attr_smoothness_intermediate_name">Közepes</string>
<string name="rendering_attr_smoothness_bad_name">Rossz</string>
<string name="rendering_attr_smoothness_very_bad_name">Nagyon rossz</string>
<string name="rendering_attr_smoothness_horrible_name">Szörnyű</string>
<string name="rendering_attr_smoothness_very_horrible_name">Rettenetes</string>
<string name="rendering_attr_smoothness_impassable_name">Járhatatlan</string>
<string name="rendering_attr_highway_class_motorway_name">Autópálya</string>
<string name="rendering_attr_highway_class_state_road_name">Állami út</string>
<string name="rendering_attr_highway_class_road_name">Út</string>
<string name="rendering_attr_highway_class_street_name">Utca</string>
<string name="rendering_attr_highway_class_service_name">Szervizút</string>
<string name="rendering_attr_highway_class_footway_name">Gyalogút</string>
<string name="rendering_attr_highway_class_track_name">Mzg. vagy erdészeti út</string>
<string name="rendering_attr_highway_class_bridleway_name">Lovaglóút</string>
<string name="rendering_attr_highway_class_steps_name">Lépcső</string>
<string name="rendering_attr_highway_class_path_name">Ösvény</string>
<string name="rendering_attr_highway_class_cycleway_name">Kerékpárút</string>
<string name="rendering_attr_undefined_name">Meghatározatlan</string>
<string name="routing_attr_avoid_sett_name">Macskakő és kavicsburkolat elkerülése</string>
<string name="routing_attr_avoid_sett_description">Macskakő és kavicsburkolat elkerülése</string>
</resources>

View file

@ -3563,4 +3563,7 @@
<string name="poi_flare">Gaslogi;Gasbrennarar</string>
<string name="poi_change_delete">Eytt atriði</string>
<string name="poi_health_specialty_radiotherapy_yes">Geislameðferð</string>
<string name="poi_climbing_crag_filter">Klifursvæði</string>
<string name="poi_rescue_box">Björgunarkassi</string>
<string name="poi_climbing_crag"></string>
</resources>

View file

@ -3040,4 +3040,5 @@ Stendur fyrir svæði: %1$s x %2$s</string>
\n • Birting áttarhorns við mælingu vegalengda
\n
\n</string>
<string name="send_log">Senda atvikaskrá</string>
</resources>

File diff suppressed because it is too large Load diff

View file

@ -3028,4 +3028,5 @@
\n • Visning av asimut i måling av distanse
\n
\n</string>
<string name="send_log">Send logg</string>
</resources>

View file

@ -1307,7 +1307,7 @@ Wil je een nieuwe map maken op de toegestane locatie en de OsmAnd-bestanden daar
<string name="impassable_road">Blokkeer wegen…</string>
<string name="rendering_category_hide">Verberg</string>
<string name="lock_screen_request_explanation">%1$s heeft toestemming nodig om het scherm uit te kunnen schakelen (als onderdeel van de stroombesparende functie).</string>
<string name="home_button">Beginscherm</string>
<string name="home_button">Thuis</string>
<string name="search_for">Zoek naar</string>
<string name="coordinates">Coördinaten</string>
<string name="map_update">Updates beschikbaar voor %1$s kaart(en)</string>
@ -2920,4 +2920,5 @@ voor Gebied: %1$s x %2$s</string>
<string name="lang_gn_py">Guarani</string>
<string name="routing_attr_avoid_sett_name">Vermijd straatkeien en kasseien</string>
<string name="routing_attr_avoid_sett_description">Vermijd straatkeien en kasseien</string>
<string name="routing_attr_avoid_tram_name">Vermijd trams</string>
</resources>

View file

@ -3511,7 +3511,7 @@
<string name="poi_ruins">Ruiny</string>
<string name="poi_license_classes">Nauka jazdy</string>
<string name="poi_hill">Wzgórze</string>
<string name="poi_atm">ATM</string>
<string name="poi_atm">Bankomat</string>
<string name="poi_shoe_repair">Naprawa obuwia</string>
<string name="poi_bulk_purchase">Zakup hurtowy</string>
<string name="poi_substation_type">Rodzaj</string>
@ -3577,4 +3577,6 @@
<string name="poi_rtsa_scale_3b">3B</string>
<string name="poi_rtsa_scale_3b_asterisk">3B*</string>
<string name="poi_flare">Palnik gazowy</string>
<string name="poi_climbing_crag_filter">Wspinaczka na skały</string>
<string name="poi_climbing_crag">Tak</string>
</resources>

View file

@ -3033,4 +3033,5 @@ Reprezentuje obszar: %1$s x %2$s</string>
<string name="routing_attr_avoid_sett_description">Unikaj bruku i kostki brukowej</string>
<string name="routing_attr_avoid_share_taxi_name">Unikanie taksówek zbiorowych</string>
<string name="routing_attr_avoid_share_taxi_description">Unikanie taksówek zbiorowych</string>
<string name="send_log">Wyślij dziennik</string>
</resources>

View file

@ -3578,4 +3578,7 @@
<string name="poi_flare">Explosão de gás;Queimador de gás</string>
<string name="poi_change_delete">Objeto excluído</string>
<string name="poi_health_specialty_radiotherapy_yes">Radioterapia</string>
<string name="poi_rescue_box">Caixa de resgate</string>
<string name="poi_climbing_crag_filter">Penhasco de escalada</string>
<string name="poi_climbing_crag">Sim</string>
</resources>

View file

@ -3012,4 +3012,5 @@ Pôr do Sol: %2$s</string>
\n
\n  • Exibição do azimute na distância medida
\n</string>
<string name="send_log">Enviar log</string>
</resources>

File diff suppressed because it is too large Load diff

View file

@ -53,7 +53,7 @@
<string name="daynight">Modo Dia/Noite</string>
<string name="download_files_question">Gostaria de descarregar {0} ficheiros ({1} MB)\?</string>
<string name="items_were_selected">{0} objetos estão selecionados</string>
<string name="filter_existing_indexes">Filtrar baixados</string>
<string name="filter_existing_indexes">Descarregado</string>
<string name="shared_string_select_all">Marcar tudo</string>
<string name="shared_string_refresh">Atualizar</string>
<string name="general_settings_descr">Configure a exibição e configurações comuns para o app.</string>
@ -64,10 +64,10 @@
<string name="osmand_service_descr">Executar o serviço de segundo plano para usar OsmAnd enquanto o ecrã está desligado.</string>
<string name="fast_route_mode">Caminho mais rápido</string>
<string name="fast_route_mode_descr">Ativar para calcular a rota mais rápida ou desactivar para a rota de poupança de combustível.</string>
<string name="tiles_to_download_estimated_size">Zoom {0}: baixar {1} imagens ({2} MB )</string>
<string name="shared_string_download_map">Baixar mapa</string>
<string name="select_max_zoom_preload_area">Zoom máximo para baixar</string>
<string name="maps_could_not_be_downloaded">Não é possível fazer o download deste mapa</string>
<string name="tiles_to_download_estimated_size">Zoom {0}: descarregar {1} quadrículas ({2} MB )</string>
<string name="shared_string_download_map">Descarregar mapa</string>
<string name="select_max_zoom_preload_area">Zoom máximo para decarregar</string>
<string name="maps_could_not_be_downloaded">Não é possível descarregar este mapa</string>
<string name="continuous_rendering">Processamento contínuo</string>
<string name="continuous_rendering_descr">Mostrar processamento contínuo ao invés de imagem inteira de uma vez.</string>
<string name="rendering_exception">Não foi possível desenhar a área selecionada</string>
@ -168,7 +168,7 @@
<string name="route_tu">Fazer retorno e seguir em frente</string>
<string name="route_head"></string>
<string name="first_time_continue">Continuar</string>
<string name="first_time_download">Download de regiões</string>
<string name="first_time_download">Descarregar regiões</string>
<string name="first_time_msg">Obrigado por usar OsmAnd. Descarrege dados regionais para a utilização offline através de \'Configrações\' → \'Gerir ficheiros de mapas\' para visualizar mapas, localizar endereços, procurar POIs, encontrar transportes públicos e muito mais.</string>
<string name="search_poi_location">Aguardando o sinal…</string>
<string name="search_near_map">Procurar perto do atual centro do mapa</string>
@ -220,23 +220,23 @@
<string name="search_offline_address">Offline</string>
<string name="search_online_address">Internet</string>
<string name="max_level_download_tile">Nível de zoom máx</string>
<string name="max_level_download_tile_descr">Escolher um nível máximo de zoom para download</string>
<string name="route_general_information">Distância total = %1$s \n tempo de viagem, = %2$dh %3$dm.</string>
<string name="router_service_descr">Escolha o sistema de navegação</string>
<string name="max_level_download_tile_descr">Não navegar em quadrículas de mapa online para níveis de zoom além deste.</string>
<string name="route_general_information">Distância total %1$s, tempo de viagem %2$d h %3$d min.</string>
<string name="router_service_descr">Escolha um serviço de navegação online ou offline.</string>
<string name="router_service">Serviço de navegação</string>
<string name="sd_dir_not_accessible">Diretório do cartão SD inacessível</string>
<string name="download_question">Quer fazer o download {0} - {1} ?</string>
<string name="download_question_exist">Dados para {0} já existem ({1}). Você quer fazer atualizá-los ({2}) ?</string>
<string name="sd_dir_not_accessible">A pasta de armazenamento de dados no cartão de memória não está acessível!</string>
<string name="download_question">Quer descarregar {0} - {1} \?</string>
<string name="download_question_exist">Já existem dados offline para {0} ({1}). Actualizá-los ({2})\?</string>
<string name="address">Endereço</string>
<string name="shared_string_download_successful">Descarregado</string>
<string name="downloading_list_indexes">Baixando lista de regiões disponíveis…</string>
<string name="downloading_list_indexes">Descarregando lista de regiões disponíveis…</string>
<string name="list_index_files_was_not_loaded">Não foi possível obter uma lista de regiões em https://osmand.net.</string>
<string name="select_index_file_to_download">Nada foi encontrado. Se não conseguir encontrar a sua região, pode fazê-lo você mesmo (ver https://osmand.net).</string>
<string name="fav_points_edited">O favorito foi modificado</string>
<string name="fav_points_not_exist">Não existe nenhum favorito</string>
<string name="fav_points_not_exist">Não existe nenhum Favorito</string>
<string name="update_existing">Modificar</string>
<string name="only_show">Exibir rota</string>
<string name="follow">Iniciar navegação</string>
<string name="follow">Iniciar orientação</string>
<string name="recalculate_route_to_your_location">Meio de transporte:</string>
<string name="mark_final_location_first">Por favor, primeiro selecione um destino</string>
<string name="get_directions">Navegação</string>
@ -248,31 +248,31 @@
<string name="loading_poi_obj">Carregando Ponto de Interesse…</string>
<string name="auth_failed">Falha na autorização</string>
<string name="failed_op">Falha</string>
<string name="converting_names">Convertendo nomes em inglês…</string>
<string name="converting_names">Convertendo nomes locais/ingleses…</string>
<string name="loading_streets_buildings">Carregando ruas/prédios…</string>
<string name="loading_postcodes">Carregando códigos postais…</string>
<string name="loading_streets">Carregando ruas…</string>
<string name="loading_cities">Carregando cidades…</string>
<string name="poi">POI</string>
<string name="error_occurred_saving_gpx">Erro ao gravar GPX</string>
<string name="error_calculating_route">Erro de calculando a rota</string>
<string name="error_calculating_route_occured">Ocorreu um erro ao calcular a rota</string>
<string name="empty_route_calculated">Trajeto calculado vazio</string>
<string name="error_occurred_saving_gpx">Não foi possível gravar o ficheiro GPX</string>
<string name="error_calculating_route">Não foi possível calcular a rota</string>
<string name="error_calculating_route_occured">Não foi possível calcular a rota</string>
<string name="empty_route_calculated">A rota calculada está vazia</string>
<string name="new_route_calculated_dist">Nova rota calculada, distância</string>
<string name="arrived_at_destination">Você alcançou o seu destino</string>
<string name="invalid_locations">Locais inválidos!</string>
<string name="invalid_locations">Coordenadas inválidas</string>
<string name="go_back_to_osmand">Voltar ao mapa do OsmAnd</string>
<string name="shared_string_close">Fechar</string>
<string name="loading_data">Carregando dados…</string>
<string name="reading_indexes">Lendo dados locais…</string>
<string name="previous_run_crashed">Uma execução anterior da aplicação foi interrompida inesperadamente. O ficheiro de log encontra-se em {0}. Por favor, informe o problema e inclua o ficheiro de log.</string>
<string name="saving_gpx_tracks">Salvando trilhas GPX no cartão SD</string>
<string name="saving_gpx_tracks">Gravando o ficheiro GPX</string>
<string name="finished_task">Concluído</string>
<string name="use_online_routing_descr">Utilizar Internet para calcular a rota</string>
<string name="use_online_routing_descr">Utilize a Internet para calcular uma rota.</string>
<string name="use_online_routing">Utilizar navegação online</string>
<string name="user_password">Sua palavra-passe OSM</string>
<string name="osm_settings_descr">Definir os parâmetros de conexão OpenStreetMap</string>
<string name="data_settings_descr">Definir o idioma, atualizar os dados</string>
<string name="osm_settings_descr">Especifique as configurações de OpenStreetMap.org (OSM) necessárias para envios OSM.</string>
<string name="data_settings_descr">Especifique o idioma, descargar/enviar dados.</string>
<string name="data_settings">Dados</string>
<string name="osm_settings">OSM</string>
<string name="auto_zoom_map_descr">O nível de Zoom de acordo com a sua velocidade (enquanto o mapa é sincronizado com a posição atual).</string>
@ -293,26 +293,26 @@
<string name="user_name">Nome do usuário</string>
<string name="mark_point">Destino</string>
<string name="shared_string_add_to_favorites">Adicionar aos \'Favoritos\'</string>
<string name="use_english_names_descr">Escolher entre os nomes nativos e inglês</string>
<string name="use_english_names">Utilizar nomes em inglês</string>
<string name="app_settings">Configurações da aplicação</string>
<string name="use_english_names_descr">Escolher entre os nomes nativos e inglês.</string>
<string name="use_english_names">Usar nomes em inglês</string>
<string name="app_settings">Configurações do aplicativo</string>
<string name="search_address">Pesquisar endereço</string>
<string name="choose_building">Escolher edifício</string>
<string name="choose_street">Escolher rua</string>
<string name="choose_city">Escolher cidade</string>
<string name="choose_city">Escolha a cidade ou o código postal</string>
<string name="ChooseCountry">Escolher país</string>
<string name="show_view_angle">Mostrar ângulo de visão</string>
<string name="map_view_3d_descr">Ativar a visualização em 3D do mapa</string>
<string name="map_view_3d_descr">Ativar a visualização em 3D do mapa.</string>
<string name="map_view_3d">Visualização em 3D</string>
<string name="show_poi_over_map_description">Mostrar a camada superior últimamente selecionada de POI no mapa.</string>
<string name="show_poi_over_map">Mostrar camada superior de POI</string>
<string name="map_tile_source_descr">Escolha a fonte de imagens de mapa online ou offline</string>
<string name="map_tile_source_descr">Escolha a fonte de imagens de mapa online ou offline.</string>
<string name="map_tile_source">Fonte de imagens</string>
<string name="map_source">Origem do mapa</string>
<string name="use_internet">Utilizar Internet</string>
<string name="show_location">Ver localização</string>
<string name="use_internet">Usar a Internet</string>
<string name="show_location">Mostrar a sua posição</string>
<string name="show_gps_coordinates_text">Mostrar as coordenadas GPS no mapa</string>
<string name="use_internet_to_download_tile">Use a Internet para baixar as imagens que faltam</string>
<string name="use_internet_to_download_tile">Descarregar os blocos de mapas que faltam</string>
<string name="app_description">Aplicação de navegação</string>
<string name="shared_string_exit">Sair</string>
<string name="search_button">Pesquisar</string>
@ -326,9 +326,9 @@
<string name="choose_intersected_street">Escolher a rua transversal</string>
<string name="Closest_Amenities">Locais mais próximos</string>
<string name="app_mode_default">Explorar mapa</string>
<string name="app_mode_car">Carro</string>
<string name="app_mode_bicycle">Bicicleta</string>
<string name="app_mode_pedestrian">Pedestre</string>
<string name="app_mode_car">Condução</string>
<string name="app_mode_bicycle">Ciclismo</string>
<string name="app_mode_pedestrian">Caminhando</string>
<string name="position_on_map_center">Centro</string>
<string name="position_on_map_bottom">Embaixo</string>
<string name="navigate_point_top_text">Insira a latitude e longitude no formato selecionado (D - graus, M - minutos, S - segundos)</string>
@ -349,13 +349,13 @@
<string name="shared_string_apply">Aplicar</string>
<string name="shared_string_add">Adicionar</string>
<string name="shared_string_no">Não</string>
<string name="add_favorite_dialog_top_text">Digite o nome do favorito</string>
<string name="add_favorite_dialog_top_text">Digite o nome do Favorito</string>
<string name="add_favorite_dialog_default_favourite_name">Favorito</string>
<string name="add_favorite_dialog_favourite_added_template">O ponto \'\'{0}\'\' foi adicionado aos favoritos.</string>
<string name="favourites_context_menu_edit">Modificar favorito</string>
<string name="favourites_context_menu_delete">Apagar favorito</string>
<string name="favourites_remove_dialog_msg">Você quer mesmo apagar este favorito \'%s\'?</string>
<string name="favourites_remove_dialog_success">Ponto favorito {0} apagado com sucesso.</string>
<string name="add_favorite_dialog_favourite_added_template">Ponto Favorito \"{0}\" adicionado.</string>
<string name="favourites_context_menu_edit">Modificar Favorito</string>
<string name="favourites_context_menu_delete">Apagar Favorito</string>
<string name="favourites_remove_dialog_msg">Apagar ponto favorito \'%s\'\?</string>
<string name="favourites_remove_dialog_success">Ponto favorito {0} apagado.</string>
<string name="osb_comment_dialog_message">Mensagem</string>
<string name="osb_comment_dialog_author">Autor</string>
<string name="osb_comment_dialog_success">Comentário adicionado</string>
@ -363,14 +363,14 @@
<string name="poi_edit_title">Editar POI</string>
<string name="poi_create_title">Criar POI</string>
<string name="poi_error_poi_not_found">Nó não pode ser encontrado ou POI não é um único nó</string>
<string name="poi_remove_confirm_template">Você quer mesmo apagar {0} (comentário)?</string>
<string name="poi_remove_confirm_template">Apagar {0} (comentário)\?</string>
<string name="poi_remove_title">Apagar o POI</string>
<string name="shared_string_delete">Apagar</string>
<string name="poi_remove_success">POI apagado com sucesso</string>
<string name="poi_remove_success">POI apagado</string>
<string name="poi_action_add">Adicionar</string>
<string name="poi_action_change">Modificar</string>
<string name="poi_action_succeded_template">Ação {0} bem-sucedida.</string>
<string name="poi_error_unexpected_template">Ocorreu um erro inesperado durante a execução de ação {0}.</string>
<string name="poi_action_succeded_template">Ação {0} sucedida.</string>
<string name="poi_error_unexpected_template">Não foi possível executar a acção {0}.</string>
<string name="poi_error_io_error_template">Erro de entrada/saída na execução da acção {0}.</string>
<string name="poi_error_info_not_loaded">As informações sobre o objeto não foram carregadas</string>
<string name="poi_dialog_opening_hours">Aberto</string>
@ -400,26 +400,29 @@
<string name="basemap_was_selected_to_download">O mapa-base está selecionado para descarregar para que o aplicativo funcione.</string>
<string name="local_indexes_cat_tile">Quadrículas de mapa on-line e em cache</string>
<string name="local_indexes_cat_map">Mapas de padrão (vector)</string>
<string name="map_online_plugin_is_not_installed">Activar plugin de \'mapas on-line\' para seleccionar diferentes fontes de mapas</string>
<string name="map_online_plugin_is_not_installed">Activar complemento de \'mapas on-line\' para seleccionar diferentes fontes de mapas</string>
<string name="map_online_data">Mapas On-line e Mosaicos</string>
<string name="map_online_data_descr">Use mapas online (decarregar e cache tiles no cartão de memória).</string>
<string name="shared_string_online_maps">Mapas On-line</string>
<string name="online_map_settings_descr">Configurar fontes de mosaicos ou de mapas on-line.</string>
<string name="osmand_rastermaps_plugin_description">"Com este plugin, pode ter acesso a muitos tipos de mapas on-line (também chamada de quadrícula ou ladrilho), de quadrículas pré-definidas do OpenStreetMap (como Mapnik) para imagens de satélite e camadas especiais, como mapas aquáticos, climáticos, geológicos, camadas de sombra de relevo, etc.\n\nQuaisquer desses mapas podem ser usados como mapa principal (base) para ser mostrado no OsmAnd, ou como uma sobreposição, ou sub-camada para outro mapa base (como o mapa off-line normal de OsmAnd). Para fazer qualquer sub-camada do mapa mais visível, certos elementos do mapa vetorial do OsmAnd podem facilmente ser ocultados através do menu \'Configurar mapa\'.
\n\nQuadrículas de mapas podem ser obtidas diretamente através de fontes on-line ou podem ser preparados para uso off-line (e copiadas manualmente para o diretório de dados do OsmAnd) como um banco de dados sqlite, que pode ser produzido por uma variedade de ferramentas de terceiros para preparação de mapas. "</string>
<string name="osmand_rastermaps_plugin_description">Com este complemento, pode ter acesso a muitos tipos de mapas on-line (também chamada de quadrícula ou ladrilho), de quadrículas pré-definidas do OpenStreetMap (como Mapnik) para imagens de satélite e camadas especiais, como mapas aquáticos, climáticos, geológicos, camadas de sombra de relevo, etc.
\n
\nQuaisquer desses mapas podem ser usados como mapa principal (base) para ser mostrado no OsmAnd, ou como uma sobreposição, ou sub-camada para outro mapa base (como o mapa off-line normal de OsmAnd). Para fazer qualquer sub-camada do mapa mais visível, certos elementos do mapa vetorial do OsmAnd podem facilmente ser ocultados através do menu \'Configurar mapa\'.
\n
\nQuadrículas de mapas podem ser obtidas diretamente através de fontes on-line ou podem ser preparados para uso off-line (e copiadas manualmente para o diretório de dados do OsmAnd) como um banco de dados sqlite, que pode ser produzido por uma variedade de ferramentas de terceiros para preparação de mapas.</string>
<string name="osmand_background_plugin_description">Mostra as configurações para ativar o rastreamento em segundo plano e a navegação, despertando periodicamente o aparelho GPS (com o ecrã desligado).</string>
<string name="osmand_accessibility_description">Este plugin torna os recursos de acessibilidade do aparelho disponíveis diretamente no OsmAnd. Ele facilita, p. ex., o ajuste da velocidade de fala para vozes TTS, configurando a navegação no ecrã do teclado direcional, usando um trackball para controle de zoom, ou feedback texto-para-fala, por exemplo, para anunciar automaticamente a sua posição.</string>
<string name="osmand_development_plugin_description">Este plugin exibe configurações para recursos de desenvolvimento e depuração como testar ou simular roteamento, o desempenho de renderização do ecrã ou solicitação de voz. Essas configurações são destinadas a desenvolvedores e não são necessárias para o usuário geral.</string>
<string name="plugins_screen">Gerenciar plugins</string>
<string name="prefs_plugins_descr">Plugins activam as configurações avançadas e funcionalidades adicionais.</string>
<string name="prefs_plugins">Gerenciar plugins</string>
<string name="osmand_accessibility_description">Este complemento torna os recursos de acessibilidade do aparelho disponíveis diretamente no OsmAnd. Ele facilita, p. ex., o ajuste da velocidade de fala para vozes TTS, configurando a navegação no ecrã do teclado direcional, usando um trackball para controle de zoom, ou feedback texto-para-fala, por exemplo, para anunciar automaticamente a sua posição.</string>
<string name="osmand_development_plugin_description">Este complemento exibe configurações para recursos de desenvolvimento e depuração como testar ou simular roteamento, o desempenho de renderização do ecrã ou solicitação de voz. Essas configurações são destinadas a desenvolvedores e não são necessárias para o usuário geral.</string>
<string name="plugins_screen">Complementos</string>
<string name="prefs_plugins_descr">Complementos activam as configurações avançadas e funcionalidades adicionais.</string>
<string name="prefs_plugins">Complementos</string>
<string name="osm_editing_plugin_description">Este complemento do OsmAnd pode ser usado para fazer contribuições ao OSM como criar ou modificar POI, abertura ou comentários de erros do OSM e contribuir com ficheiros GPX gravados. OSM é um projeto de mapeamento mundial dirigido pela comunidade e de domínio público. Para mais detalhes, consulte https://openstreetmap.org. Participação ativa é apreciada e as contribuições podem ser feitas diretamente do OsmAnd, se você especificar suas credenciais pessoais de OSM no app.</string>
<string name="vector_maps_may_display_faster_on_some_devices">Mapas vectoriais são visualizados mais rápido. Podem não funcionar bem em alguns aparelhos.</string>
<string name="play_commands_of_currently_selected_voice">Selecione uma voz e teste reproduzindo os avisos</string>
<string name="debugging_and_development">Desenvolvimento OsmAnd</string>
<string name="native_rendering">Renderização nativa</string>
<string name="test_voice_prompts">Testar comandos de voz</string>
<string name="switch_to_raster_map_to_see">"Nenhum mapa vetorial presente para este local. Você pode baixar um em Configurações (\'Gerenciar ficheiros de mapas\') ou mudar para mapas online (activar mapas on-line do plugin para isso)."</string>
<string name="switch_to_raster_map_to_see">Nenhum mapa vetorial presente para este local. Você pode descarregar um em Configurações (\'Gerenciar ficheiros de mapas\') ou mudar para o complemento \"mapas online\".</string>
<string name="send_files_to_osm">Enviar ficheiros GPX para o OSM\?</string>
<string name="gpx_visibility_txt">Visibilidade</string>
<string name="gpx_tags_txt">Etiquetas</string>
@ -457,7 +460,7 @@
<string name="north_west">Noroeste</string>
<string name="north_north_west">norte-noroeste</string>
<string name="front">avançar</string>
<string name="front_right">Frente à direita</string>
<string name="front_right">frente à direita</string>
<string name="right">para a direita</string>
<string name="back_right">Trás direita</string>
<string name="back">Atrás</string>
@ -595,7 +598,7 @@
<string name="local_index_descr_title">Gerir ficheiros de mapas.</string>
<string name="local_index_mi_restore">Activar</string>
<string name="local_index_mi_backup">Desactivar</string>
<string name="shared_string_download">Download</string>
<string name="shared_string_download">Descarregamento</string>
<string name="local_index_poi_data">Dados POI</string>
<string name="local_index_address_data">Dados de Endereço</string>
<string name="local_index_transport_data">Dados de transporte público</string>
@ -674,7 +677,7 @@
<string name="application_dir">Local de armazenamento</string>
<string name="osmand_net_previously_installed">Todos os dados offline no aplicativo antigo instalado serão suportados pelo novo aplicativo, mas os pontos Favoritos devem ser exportados do aplicativo antigo e depois importados no novo aplicativo.</string>
<string name="build_installed">Build {0} foi instalado ({1}).</string>
<string name="downloading_build">Baixando construção…</string>
<string name="downloading_build">Descarregando construção…</string>
<string name="install_selected_build">Instalar OsmAnd - {0} de {1} {2} MB \?</string>
<string name="loading_builds_failed">A busca da lista de OsmAnd builds falhou</string>
<string name="loading_builds">Carregando OsmAnd builds…</string>
@ -716,7 +719,7 @@
<string name="osmand_parking_pm">PM</string>
<string name="osmand_parking_am">AM</string>
<string name="osmand_parking_position_name">Local de estacionamento</string>
<string name="osmand_parking_plugin_description">Este plugin grava onde o seu carro foi estacionado e quanto tempo de estacionamento resta (se houver um limite de tempo).
<string name="osmand_parking_plugin_description">Este complemento grava onde o seu carro foi estacionado e quanto tempo de estacionamento resta (se houver um limite de tempo).
\nA localização e o tempo ficam visíveis no painel de controle do OsmAnd e em um widget no ecrã do mapa. Um alarme pode ser adicionado ao calendário Android como lembrete.</string>
<string name="osmand_parking_plugin_name">Local de estacionamento</string>
<string name="context_menu_item_add_parking_point">Marcar como local de estacionamento</string>
@ -791,32 +794,32 @@
<string name="gps_wakeup_interval">GPS intervalo de despertar: %s</string>
<string name="int_continuosly">Contínuo</string>
<string name="email">e-mail</string>
<string name="osmand_long_description_1000_chars">"OsmAnd (Direções OSM automatizadas de navegação) é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados OpenStreetMap (OSM) globais. Todos os dados de mapas (mapas vectoriais ou imagens) podem ser armazenados no cartão de memória do telefone para uso off-line. OsmAnd também oferece roteamento off-line e on-line, incluindo a funcionalidade de roteamento curva-a-curva com orientação por voz.
<string name="osmand_long_description_1000_chars">OsmAnd (Direções OSM automatizadas de navegação)
\n
\nOsmAnd é uma aplicação de navegação livre, com acesso a uma ampla variedade de dados OpenStreetMap (OSM) globais. Todos os dados de mapas (mapas vectoriais ou imagens) podem ser armazenados no cartão de memória do telefone para uso off-line. OsmAnd também oferece roteamento off-line e on-line, incluindo a funcionalidade de roteamento curva-a-curva com orientação por voz.
\n
\nAlgumas das características principais:
\n- Completa funcionalidade offline (guarda os mapas obtidos, sejam eles vectoriais ou imagens, numa pasta seleccionável)
\n- Funcionalidade offline completa (guarda os mapas obtidos, sejam eles vectoriais ou imagens, numa pasta seleccionável)
\n- Mapas vectoriais compactados disponíveis para o mundo inteiro
\n
\n- Faça o download de mapas de países ou regiões directamente no aplicativo
\n- Sobreposição de camadas de mapas diversos, como GPX ou trilhas de navegação, Pontos de Interesse (POI), Favoritos, Curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável
\n- Descarregamento de mapas de países ou regiões directamente no aplicativo
\n- Sobreposição de mapas diversos, como GPX ou trajectos de navegação, Pontos de Interesse (POI), Favoritos, Curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável
\n- Pesquisa off-line para endereços e locais (POIs)
\n- Encaminhamento off-line para distâncias curtas (experimental)
\n- Modo de Carro, Bicicleta, e Pedestre
\n- Vista de dia/noite, com comutação automática (opcional)
\n- Zoom de mapa em função da velocidade (opcional)
\n- Alinhamento de mapa de acordo com bússola ou direção do movimento (opcional)
\n- Orientação de vias, aviso de limite de velocidade, vozes gravadas e TTS (opcional)
\n
\n- Encaminhamento off-line para distâncias médias
\n- Modo de Carro, Bicicleta, e Pedestre
\n- Vista de dia/noite, com comutação automática (opcional)
\n- Zoom de mapa em dependente da velocidade
\n- Alinhamento de mapa de acordo com bússola ou direção do movimento
\n- Orientação de faixas, aviso de limite de velocidade, vozes gravadas e TTS
\n
\nLimitações desta versão gratuita de OsmAnd:
\n- Número de downloads de mapa limitado
\n- Sem acesso a POIs Wikipedia off-line.
\n
\n
\nOsmAnd está a em desenvolvimento activo, mas o nosso projecto e o seu progresso ainda depende de contribuições financeiras para financiar o desenvolvimento e testes de novas funcionalidades. Por favor, considere a compra de OsmAnd+, ou ajude a financiar novas funcionalidades específicas ou através duma doação no osmand.net. "</string>
\n- Quantidade de descarregamentos de mapa limitado
\n- Sem acesso aos POIs Wikipedia off-line.
\n
\nOsmAnd está a em desenvolvimento activo, mas o nosso projecto e o seu progresso ainda depende de contribuições financeiras para o desenvolvimento e testes de novas funcionalidades. Por favor, considere a compra de OsmAnd+ ou ajude a financiar novas funcionalidades específicas ou através duma doação no osmand.net.</string>
<string name="rendering_attr_roadColors_description">Selecione um esquema de cores de estrada:</string>
<string name="rendering_attr_roadColors_name">Esquema de cores</string>
<string name="map_widget_show_destination_arrow">Ver direção para o destino</string>
<string name="enable_plugin_monitoring_services">Ativar plugin de \"gravação de viagem\" para usar serviços de registro de posição (registro GPX, rastreamento on-line)</string>
<string name="enable_plugin_monitoring_services">Ativar complemento de \"gravação de viagem\" para usar serviços de registro de posição (registro GPX, rastreamento on-line)</string>
<string name="non_optimal_route_calculation">Calcular rota possivelmente não-ideal em longas distâncias</string>
<string name="gps_not_available">Ative o GPS nas configurações</string>
<string name="map_widget_monitoring_services">Serviços de registro</string>
@ -856,7 +859,7 @@
<string name="background_service_is_enabled_question">O serviço de segundo plano OsmAnd ainda está em execução. Tambẽm pará-lo\?</string>
<string name="close_changeset">Fechar conjunto de alterações</string>
<string name="search_villages_and_postcodes">"Pesquisa mais povoações / código postal"</string>
<string name="dropbox_plugin_description">O plugin Dropbox permite sincronizar trilhos e anotações de vídeo/audio com a sua conta Dropbox.</string>
<string name="dropbox_plugin_description">O complemento Dropbox permite sincronizar trilhos e anotações de vídeo/audio com a sua conta Dropbox.</string>
<string name="av_def_action_video">Gravar vídeo</string>
<string name="av_def_action_audio">Gravar audio</string>
<string name="av_widget_action_descr">Selecione a ação de widget padrão.</string>
@ -890,10 +893,10 @@
<string name="precise_routing_mode_descr">Calcule rotas precisas sem falhas. Ainda com distância limitada e lenta.</string>
<string name="precise_routing_mode">Roteamento preciso (alfa)</string>
<string name="recording_context_menu_precord">Tire uma foto</string>
<string name="dropbox_plugin_name">Plugin Dropbox</string>
<string name="dropbox_plugin_name">Complemento Dropbox</string>
<string name="intermediate_points_change_order">Alterar ordem</string>
<string name="srtm_paid_version_msg">Por favor, considere comprar o plugin \'Curvas de Nível\' (Contour Lines) na loja do Market para apoiar o desenvolvimento.</string>
<string name="srtm_paid_version_title">Plugin curvas de nível</string>
<string name="srtm_paid_version_msg">Por favor, considere comprar o complemento \'Curvas de Nível\' (Contour Lines) para apoiar o desenvolvimento.</string>
<string name="srtm_paid_version_title">Complemento curvas de nível</string>
<string name="av_def_action_choose">Selecionar na altura</string>
<string name="av_video_format_descr">Selecione o formato de saída de vídeo.</string>
<string name="av_use_external_recorder_descr">Usar gravador do sistema para vídeo.</string>
@ -906,23 +909,23 @@
<string name="shared_string_control_stop">Parar</string>
<string name="shared_string_control_start">Iniciar</string>
<string name="map_widget_av_notes">Anotações de Áudio/vídeo</string>
<string name="osmand_srtm_short_description_80_chars">Plugin OsmAnd para curvas de nível off-line</string>
<string name="osmand_srtm_short_description_80_chars">Complemento OsmAnd para curvas de nível off-line</string>
<string name="map_widget_distancemeasurement">Medição da distância</string>
<string name="audionotes_location_not_defined">Local para associar com a anotação ainda não está definido. \"Usar posição…\" para atribuir uma anotação para o local especificado.</string>
<string name="map_widget_audionotes">Anotações de áudio</string>
<string name="audionotes_plugin_description">O plugin de anotações de áudio/vídeo fornece a funcionalidade para tomar notas de áudio/fotografia/vídeo durante uma viagem, usando um botão no ecrã do mapa ou diretamente do menu de contexto para qualquer posição no mapa.</string>
<string name="audionotes_plugin_description">O complemento de anotações de áudio/vídeo fornece a funcionalidade para tomar notas de áudio/fotografia/vídeo durante uma viagem, usando um botão no ecrã do mapa ou diretamente do menu de contexto para qualquer posição no mapa.</string>
<string name="audionotes_plugin_name">Anotações de audio/vídeo</string>
<string name="index_srtm_parts">Partes</string>
<string name="index_srtm_ele">Curvas de nível</string>
<string name="recording_photo_description">Foto %1$s de %2$s</string>
<string name="av_def_action_picture">Capture uma foto</string>
<string name="osmand_srtm_long_description_1000_chars">Este plugin disponibiliza \'Curvas de Nível\' e \'Sombreamento de relevo\', que podem ser aplicadas nos mapas standard do OsmAnd.
\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem.
\n
<string name="osmand_srtm_long_description_1000_chars">Este complemento disponibiliza \'Curvas de Nível\' e \'Sombreamento de relevo\', que podem ser aplicadas nos mapas standard do OsmAnd.
\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem.
\n
\nOs dados globais (entre as latitudes 70° norte e 70° sul) são baseados nas medições do SRTM (Shuttle Radar Topography Mission) e do ASTER (Advanced Spaceborn Thermal Emission and Reflection Radiometer), um instrumento de imagens no \'Terra\', o satélite principal do Sistema de Observação da Terra da NASA. O ASTER é um esforço conjunto da NASA, do Ministério da Economia, Comércio e Indústria do Japão e do Sistema Espacial Japonês (J-spacesystems).</string>
<string name="srtm_plugin_description">Este plugin disponibiliza \'Curvas de Nível\' e \'Sombreamento de relevo\', que podem ser aplicadas nos mapas standard do OsmAnd.
\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem.
\n
<string name="srtm_plugin_description">Este complemento disponibiliza \'Curvas de Nível\' e \'Sombreamento de relevo\', que podem ser aplicadas nos mapas standard do OsmAnd.
\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem.
\n
\nOs dados globais (entre as latitudes 70° norte e 70° sul) são baseados nas medições do SRTM (Shuttle Radar Topography Mission) e do ASTER (Advanced Spaceborn Thermal Emission and Reflection Radiometer), um instrumento de imagens no \'Terra\', o satélite principal do Sistema de Observação da Terra da NASA. O ASTER é um esforço conjunto da NASA, do Ministério da Economia, Comércio e Indústria do Japão e do Sistema Espacial Japonês (J-spacesystems).</string>
<string name="srtm_plugin_name">Curvas de Nível</string>
<string name="download_select_map_types">Outros mapas</string>
@ -948,7 +951,7 @@
<string name="shared_string_more_actions">Outras acções</string>
<string name="layer_hillshade">Camada de sombreamentos de relevo</string>
<string name="map_widget_gps_info">Informação de GPS</string>
<string name="download_using_mobile_internet">Não conectado ao Wi-Fi. Use a conexão atual com a Internet para fazer o download\?</string>
<string name="download_using_mobile_internet">Não conetado ao Wi-Fi. Use a conexão atual com a Internet para descarregar\?</string>
<string name="monitoring_settings_descr">Configure como gravar suas viagens.</string>
<string name="clear_destination">Apagar local de destino</string>
<string name="download_hillshade_maps">Sombras de Colinas</string>
@ -969,7 +972,7 @@
<string name="gpx_file_name">Nome do ficheiro GPX</string>
<string name="gpx_saved_sucessfully">Ficheiro GPX gravado para {0}</string>
<string name="osmand_distance_planning_plugin_name">Calculadora de Distância e Ferramenta de Planeamento</string>
<string name="osmand_distance_planning_plugin_description">Este plugin fornece um widget no ecrã do mapa que permite criar caminhos ao tocar no mapa, ou usar/modificar ficheiros GPX existentes, para planear uma viagem e medir a distância entre os pontos. Os resultados podem ser guardados como um ficheiro GPX, que pode ser usado posteriormente para orientação.</string>
<string name="osmand_distance_planning_plugin_description">Este complemento fornece um widget no ecrã do mapa que permite criar caminhos ao tocar no mapa, ou usar/modificar ficheiros GPX existentes, para planear uma viagem e medir a distância entre os pontos. Os resultados podem ser guardados como um ficheiro GPX, que pode ser usado posteriormente para orientação.</string>
<string name="driving_region_descr">Seleccione a região de condução: EUA, Europa, Reino Unido, Ásia e outros.</string>
<string name="driving_region">Região de condução</string>
<string name="driving_region_japan">Japão</string>
@ -1019,10 +1022,10 @@
<string name="monitoring_control_start">GPX</string>
<string name="osmand_play_title_30_chars">Mapas OsmAnd &amp; Navegação</string>
<string name="osmand_plus_play_title_30_chars">Mapas OsmAnd+ &amp; Navegação</string>
<string name="shared_string_downloading">Baixando</string>
<string name="shared_string_downloading">Descarregando</string>
<string name="osb_author_dialog_password">Password do OSM (opcional)</string>
<string name="av_camera_focus">Tipo de foco da câmera</string>
<string name="av_camera_focus_descr">Selecione o tipo de foco da câmera interna</string>
<string name="av_camera_focus_descr">Selecione o tipo de foco da câmera interna.</string>
<string name="av_camera_focus_auto">Auto foco</string>
<string name="av_camera_focus_hiperfocal">Foco hiperfocal</string>
<string name="av_camera_focus_edof">Profundidade de visão estendida</string>
@ -1030,7 +1033,7 @@
<string name="av_camera_focus_macro">Foco Macro (close-up)</string>
<string name="av_camera_focus_continuous">A câmera tenta focalizar continuamente</string>
<string name="av_photo_play_sound">Emita som ao tirar foto</string>
<string name="av_photo_play_sound_descr">Escolha se emitir som quando tirar fotos</string>
<string name="av_photo_play_sound_descr">Escolha se pretende reproduzir um som ao tirar fotografias.</string>
<string name="driving_region_canada">Canadá</string>
<string name="about_version">Versão:</string>
<string name="shared_string_about">Sobre</string>
@ -1052,7 +1055,12 @@
<string name="map_widget_fps_info">Depuração FPS</string>
<string name="map_magnifier">Lupa do mapa</string>
<string name="base_world_map">Mapa mundial</string>
<string name="osmand_plus_long_description_1000_chars">"→ → Osmand+ (OSM automatizados direções de navegação) ↵ ↵ → → OsmAnd+ é uma aplicação de navegação de código aberto, com acesso a uma ampla variedade de dados globais OpenStreetMap (OSM). Todos os dados cartográficos (mapas vectoriais ou de imagem) podem ser armazenados no cartão de memória do telefone para uso off-line. OsmAnd também oferece funcionalidade de roteamento off-line e on-line , incluindo orientação por voz curva-a-curva. ↵ ↵ → → OsmAnd + é a versão do aplicativo pago, ao comprá-lo você apoia o projecto, financia o desenvolvimento de novas funcionalidades, e recebe as últimas actualizações. ↵ ↵ → → Algumas das características principais: ↵ → → - funcionalidade off-line completa ( armazenar mapas vectoriais obtidos ou imagens numa pasta seleccionável) ↵ → → - mapas vectoriais compactos off-line disponíveis para todo o mundo ↵ → → - Download ilimitado de mapas de países ou regiões diretamente no aplicativo ↵ → → - Funcionalidade Wikipedia off-line (obter POIs Wikipedia) , ótimo para passeios ↵ → → - Sobreposição de várias camadas de mapas possíveis , como GPX ou trilhas de navegação, pontos de interesse, favoritos, curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável ↵ → → - Busca off-line de endereços e locais ( POIs) ↵ → → - Encaminhamento Off-line para distâncias curtas (experimental) ↵ → → - Modos de Carro, Bicicleta, e Pedestre↵ → → - Vista de mapa em modo dia / noite, com comutação automatizada (opcional)↵ → → - Zoom de mapa em função da velocidade (opcional)↵ → → - Alinhamento de mapa de acordo com a bússola ou direcção do movimento (opcional)↵ → → - Indicação de vias, aviso de limite de velocidade, vozes gravadas e TTS (opcional) "</string>
<string name="osmand_plus_long_description_1000_chars">Osmand+ (OSM automatizados direções de navegação)
\n
\n OsmAnd+ é uma aplicação de navegação de código aberto, com acesso a uma ampla variedade de dados globais OpenStreetMap (OSM). Todos os dados cartográficos (mapas vectoriais ou de imagem) podem ser armazenados no cartão de memória do telefone para uso off-line. OsmAnd também oferece funcionalidade de roteamento off-line e on-line , incluindo orientação por voz curva-a-curva.
\n
\n OsmAnd + é a versão do aplicativo pago, ao comprá-lo você apoia o projecto, financia o desenvolvimento de novas funcionalidades, e recebe as últimas actualizações. ↵ ↵ → → Algumas das características principais: ↵ → → - funcionalidade off-line completa ( armazenar mapas vectoriais obtidos ou imagens numa pasta seleccionável) ↵ → → - mapas vectoriais compactos off-line disponíveis para todo o mundo ↵ → → - Descarregamentos ilimitados de mapas de países ou regiões diretamente no aplicativo ↵ → → - Funcionalidade Wikipedia off-line (obter POIs Wikipedia) , ótimo para passeios ↵ → → - Sobreposição de várias camadas de mapas possíveis , como GPX ou trilhas de navegação, pontos de interesse, favoritos, curvas de nível, paragens de transportes públicos, mapas adicionais com transparência personalizável ↵ → → - Busca off-line de endereços e locais ( POIs) ↵ → → - Encaminhamento Off-line para distâncias curtas (experimental) ↵ → → - Modos de Carro, Bicicleta, e Pedestre↵ → → - Vista de mapa em modo dia / noite, com comutação automatizada (opcional)↵ → → - Zoom de mapa em função da velocidade (opcional)↵ → → - Alinhamento de mapa de acordo com a bússola ou direcção do movimento (opcional)↵ → → - Indicação de vias, aviso de limite de velocidade, vozes gravadas e TTS (opcional)
\n</string>
<string name="auto_zoom_none">Sem zoom automático</string>
<string name="auto_zoom_close">Aproximar</string>
<string name="auto_zoom_far">Visão intermédia</string>
@ -1123,9 +1131,9 @@
<string name="routing_attr_avoid_motorway_description">Evitar auto-estradas</string>
<string name="routing_attr_weight_name">Peso máximo</string>
<string name="routing_attr_weight_description">Especifique o limite de peso permitido para veículos em rotas.</string>
<string name="android_19_location_disabled">Desde a versão KitKat você não pode fazer o download e actualização de mapa no local de armazenamento anterior (%s). Você deseja alterar para um local com permissão e copiar todos os ficheiros para lá\?         
\n Nota: Os ficheiros antigos permanecerão intocados.         
\n Nota: não será possível compartilhar ficheiros entre OsmAnd e OsmAnd + .</string>
<string name="android_19_location_disabled">Desde a versão KitKat você não pode descarregar e atualizar de mapa no local de armazenamento anterior (%s). Você deseja alterar para um local com permissão e copiar todos os ficheiros para lá\?         
\n Nota 1: os ficheiros antigos permanecerão intocados (mas podem ser apagados manualmente).
\n Nota 2: não será possível compartilhar ficheiros entre OsmAnd e OsmAnd+ no novo armazenamento.</string>
<string name="copying_osmand_one_file_descr">Copiando o ficheiro (%s) para novo destino …</string>
<string name="copying_osmand_files_descr">Cópia de ficheiros Osmand para o novo destino (%s)…</string>
<string name="copying_osmand_files">Copiando ficheiros Osmand…</string>
@ -1245,7 +1253,7 @@
<string name="save_track_to_gpx_globally_descr">Posição geral de log para um ficheiro GPX pode ser ativada ou desativado usando o GPX gravação widget no ecrã do mapa.</string>
<string name="save_track_interval_globally">Intervalo de log</string>
<string name="rendering_attr_publicTransportMode_name">Rotas de ônibus, trólebus</string>
<string name="record_plugin_description">Este plugin ativa a funcionalidade para gravar e salvar os seus trajetos manualmente, tocando o widget de gravação GPX no ecrã do mapa, ou também fazendo automaticamente o registro de todas as suas rotas de navegação para um ficheiro GPX.
<string name="record_plugin_description">Este complemento ativa a funcionalidade para gravar e salvar os seus trajetos manualmente, tocando o widget de gravação GPX no ecrã do mapa, ou também fazendo automaticamente o registro de todas as suas rotas de navegação para um ficheiro GPX.
\n
\nTrajetos gravados podem ser compartilhadas com os seus amigos, ou serem usados para contribuições ao OSM. Atletas podem usar trajetos gravados para controlar os seus treinos. Algumas análises básicas do trajeto podem ser feitas diretamente no OsmAnd, como tempos de volta, velocidade média, etc. E, claro, trajetos também podem ser analisados mais tarde em ferramentas de terceiros.</string>
<string name="record_plugin_name">Gravação de viagem</string>
@ -1271,15 +1279,15 @@
<string name="routing_attr_no_new_routing_name">Evitar regras de roteamento da v1.9</string>
<string name="remove_the_tag">REMOVA A TAG</string>
<string name="routing_attr_no_new_routing_description">Não use as regras de roteamento introduzidas na v1.9.</string>
<string name="dash_download_msg_none">Baixar mapas offline\?</string>
<string name="dash_download_msg_none">Descarregar mapas offline\?</string>
<string name="dash_download_msg">Você baixou %1$s mapas</string>
<string name="dash_download_new_one">Baixe um novo mapa</string>
<string name="map_locale">Idioma do mapa</string>
<string name="navigate_point_zone">Zona</string>
<string name="download_tab_downloads">Todos os Downloads</string>
<string name="download_tab_downloads">Todos os descarregamentos</string>
<string name="download_tab_updates">Atualizações</string>
<string name="download_tab_local">Local</string>
<string name="no_internet_connection">Não é possível baixar, por favor, verifique sua conexão com a internet.</string>
<string name="no_internet_connection">Não é possível descarregar, por favor, verifique sua conexão com a internet.</string>
<string name="everything_up_to_date">Todos os ficheiros foram atualizados</string>
<string name="use_opengl_render">Use o renderizador OpenGL</string>
<string name="home_button">Início</string>
@ -1299,7 +1307,7 @@
<string name="rendering_category_routes">Rotas</string>
<string name="rendering_category_details">Detalhes</string>
<string name="map_widget_appearance_rem">Elementos restantes</string>
<string name="plugin_install_needs_network">Você precisa de uma conexão com a internet para instalar este plugin.</string>
<string name="plugin_install_needs_network">Você precisa estar conectado à Internet para instalar este complemento.</string>
<string name="welcome_select_region">Para refletir corretamente seus sinais e regras de trânsito, por favor, selecione a região que você dirige:</string>
<string name="rendering_attr_hideHouseNumbers_name">Números da casa</string>
<string name="application_dir_change_warning3">Copiar os ficheiros de dados OsmAnd para o novo destino\?</string>
@ -1322,9 +1330,9 @@
<string name="shared_string_search">Pesquisar</string>
<string name="shared_string_show_description">Mostrar descrição.</string>
<string name="shared_string_message">Mensagem</string>
<string name="agps_data_last_downloaded">A-GPS últimos dados baixados: %1$s</string>
<string name="agps_data_last_downloaded">A-GPS últimos dados descarregados: %1$s</string>
<string name="confirm_usage_speed_cameras">Em diversos países (Alemanha, França, Itália, etc.) o uso de alertas de radar é proibido por lei. OsmAnd não assume qualquer responsabilidade se você violar a lei. Por favor, toque em \"sim\" somente se você pode aceitar o uso deste recurso.</string>
<string name="welmode_download_maps">Baixar mapas</string>
<string name="welmode_download_maps">Descarregar mapas</string>
<string name="rendering_attr_pisteGrooming_name">Preparando pista</string>
<string name="days_behind">dias atrás</string>
<string name="watch">Ver</string>
@ -1334,7 +1342,7 @@
<string name="shared_string_go">Ir</string>
<string name="routing_settings_2">Configurações de navegação</string>
<string name="general_settings_2">"Configurações gerais "</string>
<string name="version_settings_descr">Baixar compilações noturnas.</string>
<string name="version_settings_descr">Descarregar compilações noturnas.</string>
<string name="proxy_pref_descr">Especifique um servidor proxy.</string>
<string name="dash_download_manage">Gerenciador</string>
<string name="rendering_category_transport">Transporte</string>
@ -1404,8 +1412,8 @@
<string name="rendering_attr_pisteRoutes_name">Pistas de esqui</string>
<string name="free">Livre %1$s</string>
<string name="device_memory">Memória do aparelho</string>
<string name="world_ski_missing">Para exibir mapas de esqui, o mapa offline especial precisa ser baixado</string>
<string name="nautical_maps_missing">Para exibir mapas náuticos, o mapa offline especial precisa ser baixado</string>
<string name="world_ski_missing">Para exibir mapas de esqui, o mapa offline especial precisa ser descarregado</string>
<string name="nautical_maps_missing">Para exibir mapas náuticos, o mapa offline especial precisa ser descarregado</string>
<string name="edit_group">Editar grupo</string>
<string name="parking_place">Vaga de estacionamento</string>
<string name="version_settings">Compilações</string>
@ -1524,7 +1532,7 @@
<string name="looking_up_address">Procurar endereço</string>
<string name="av_locations_descr">Ficheiro GPX com anotações de posições.</string>
<string name="av_locations">Localizações</string>
<string name="plugin_settings">Plugins</string>
<string name="plugin_settings">Complementos</string>
<string name="routing_attr_avoid_shuttle_train_name">Evitar de transporte de comboio</string>
<string name="routing_attr_avoid_shuttle_train_description">Evitar usar transporte de comboio</string>
<string name="traffic_warning_hazard">Perigo</string>
@ -1565,10 +1573,10 @@
<string name="dashboard_or_drawer_description">Há uma nova opção para controlar principalmente o aplicativo através do painel flexível (Dashboard) ou um menu estático. A sua escolha pode sempre ser alterada nas configurações do painel.</string>
<string name="dashboard_or_drawer_title">Dashboard ou menu de controle</string>
<string name="update">Actualizar em cada</string>
<string name="only_download_over_wifi">Apenas download com WiFi</string>
<string name="only_download_over_wifi">Apenas descarregar com Wi-Fi</string>
<string name="live_update">Actualização sincronizada</string>
<string name="update_now">Actualizar agora</string>
<string name="missing_write_external_storage_permission">App não tem permissão para usar o cartão SD</string>
<string name="missing_write_external_storage_permission">OsmAnd não tem permissão para usar o cartão de memória</string>
<string name="last_update">Última atualização: %s</string>
<string name="update_time">Horário de actualização</string>
<string name="last_map_change">Última alteração de mapa: %s</string>
@ -1595,7 +1603,17 @@
<string name="rendering_value_walkingRoutesOSMC_name">Cor pelo símbolo de caminhada de OSMC</string>
<string name="shared_string_logoff">Sair</string>
<string name="local_recordings_delete_all_confirm">Vai apagar %1$d anotação/anotações. Continuar\?</string>
<string name="plugin_touringview_descr">"Esta opção muda o estilo de mapa do Osmand para a \"visão Touring \', uma visão especial de alto detalhe, para viajantes e motoristas profissionais.\n\nEsta exibição fornece, em qualquer zoom de mapa, a quantidade máxima de informação de viagem disponível no mapa (particularmente estradas, trilhas, caminhos, e marcas de orientação).\n\nTambém separa claramente todos os tipos de estradas de forma inequívoca com um código de cores, que se revela útil para a condução de veículos grandes (por exemplo).\n\nOferece opções especiais de turismo, como mostrar ciclovias ou rotas alpinas de montanha.\n\nNão é necessário fazer download dum mapa especial, a exibição é feita a partir dos mapas padrão.\n\nEssa visão pode ser revertida, basta desactiva-la, ou alterar o estilo de mapa em \'Configurar mapa\'. "</string>
<string name="plugin_touringview_descr">Esta opção muda o estilo de mapa do Osmand para a \"visão Touring \', uma visão especial de alto detalhe, para viajantes e motoristas profissionais.
\n
\nEsta exibição fornece, em qualquer zoom de mapa, a quantidade máxima de informação de viagem disponível no mapa (particularmente estradas, trilhas, caminhos, e marcas de orientação).
\n
\nTambém separa claramente todos os tipos de estradas de forma inequívoca com um código de cores, que se revela útil para a condução de veículos grandes (por exemplo).
\n
\nOferece opções especiais de turismo, como mostrar ciclovias ou rotas alpinas de montanha.
\n
\nNão é necessário descarregar um mapa especial, a exibição é feita a partir dos mapas padrão.
\n
\nEssa visão pode ser revertida, basta desactiva-la, ou alterar o estilo de mapa em \'Configurar mapa\'.</string>
<string name="rendering_attr_roadStyle_description">Estilo de estrada</string>
<string name="error_avoid_specific_road">Nenhum desvio encontrado</string>
<string name="wake_on_voice_descr">Ligar o ecrã do aparelho (se estiver desligado) ao aproximar a uma curva.</string>
@ -1671,25 +1689,25 @@
<string name="save_poi_without_poi_type_message">Quer mesmo gravar POI sem o tipo de POI?</string>
<string name="versions_item">Versões</string>
<string name="feedback">Comentários</string>
<string name="contact_us">Contactar-nos</string>
<string name="contact_us">Contato</string>
<string name="map_legend">Legenda do mapa</string>
<string name="techical_articles_item">Artigos técnicos</string>
<string name="faq_item_description">Perguntas mais frequentes</string>
<string name="map_viewing_item">Vista de mapa</string>
<string name="search_on_the_map_item">Busca no mapa</string>
<string name="search_on_the_map_item">Pesquisar no mapa</string>
<string name="instalation_troubleshooting_item">Instalação e resolução de problemas</string>
<string name="faq_item">FAQ</string>
<string name="first_usage_item">Primeira utilização</string>
<string name="first_usage_item_description">Como descarregar mapas, definir configurações básicas</string>
<string name="navigation_item_description">Configuração da navegação</string>
<string name="first_usage_item_description">Como descarregar mapas, definir configurações básicas.</string>
<string name="navigation_item_description">Configuração da navegação.</string>
<string name="planning_trip_item">Planear uma viagem</string>
<string name="plugins_menu_group">Complementos</string>
<string name="features_menu_group">Funcionalidades</string>
<string name="help_us_to_improve_menu_group">Ajude-nos a melhorar OsmAnd</string>
<string name="help_us_to_improve_menu_group">Ajudar a melhorar OsmAnd</string>
<string name="enter_country_name">Inserir nome do país</string>
<string name="new_version">Nova versão</string>
<string name="begin_with_osmand_menu_group">Primeiros passos com OsmAnd</string>
<string name="application_dir_description">Escolha onde quer guardar os ficheiros de mapas.</string>
<string name="application_dir_description">Escolha onde pretende guardar os ficheiros de mapas e de outros dados.</string>
<string name="other_menu_group">Outros</string>
<string name="use_osm_live_routing_description">Ativar a navegação para mudanças do OsmAnd Live.</string>
<string name="use_osm_live_routing">Navegação OsmAnd Live</string>
@ -1697,7 +1715,7 @@
<string name="map_widget_magnetic_bearing">Rumo magnético</string>
<string name="access_autoannounce_period">Período do anúncio automático</string>
<string name="access_tree_list">Lista ramificada</string>
<string name="free_downloads_used_description">Mostra os carregamentos gratuitos utilizados</string>
<string name="free_downloads_used_description">Exibe a quantidade de descarregamentos gratuitos restantes.</string>
<string name="access_smart_autoannounce">Anúncio automático inteligente</string>
<string name="osm_live_month_cost">Custo mensal</string>
<string name="osm_live_month_cost_desc">Pagamento mensal</string>
@ -1767,10 +1785,10 @@
<string name="lang_eo">Esperanto</string>
<string name="free_downloads_used">Descargas gratuitas utilizados</string>
<string name="downloads">Descargas</string>
<string name="confirm_download_roadmaps">Tem a certeza que quer descarregar o mapa só de estradas, embora já tenha o mapa padrão (completo)?</string>
<string name="confirm_download_roadmaps">O mapa só de estradas não é necessário, desde que tem o mapa padrão (completo). Descarregar na mesma\?</string>
<string name="get_full_version">Versão completa</string>
<string name="later">Mais tarde</string>
<string name="buy">COMPRAR</string>
<string name="buy">Comprar</string>
<string name="downloading_number_of_files">A descarregar - %1$d ficheiros</string>
<string name="show_free_version_banner">Mostrar propaganda da versão gratuita</string>
<string name="downloads_left_template">Falta descarregar %1$s</string>
@ -1903,11 +1921,11 @@
<string name="sorted_by_distance">Ordenar por distância</string>
<string name="search_favorites">Favoritos de pesquisa</string>
<string name="hillshade_menu_download_descr">Para observar relief sombreamento de relevo no mapa, precisa de descarregar o mapa de sobreposições de sombreamento de relevo desta região.</string>
<string name="hillshade_purchase_header">Para ver relief sobreamento de relevo no mapa, precisa de comprar e instalar o plugin \'Contour Lines\'</string>
<string name="hillshade_purchase_header">Para ver relief sobreamento de relevo no mapa, precisa de comprar e instalar o complemento \'Contour Lines\'</string>
<string name="hide_from_zoom_level">Esconder do nível de zoom</string>
<string name="srtm_menu_download_descr">Descarregue o mapa de \'linha de contorno\' para esta região.</string>
<string name="shared_string_plugin">Plugin</string>
<string name="srtm_purchase_header">Para ver as linhas de contorno no mapa, precisa de comprar e instalar o plugin de \'Linhas de Contorno\'</string>
<string name="shared_string_plugin">Complemento</string>
<string name="srtm_purchase_header">Para ver as linhas de contorno no mapa, precisa de comprar e instalar o complemento de \'Linhas de Contorno\'</string>
<string name="srtm_color_scheme">Esquema de cores</string>
<string name="show_from_zoom_level">Mostrar a partir do nível de zoom</string>
<string name="routing_attr_allow_private_name">Permitir acesso privado</string>
@ -1937,7 +1955,7 @@
<string name="quick_action_add_destination_desc">Tocando no botão de ação irá adicionar um destino ao localização do centro do ecrã. Destinos definidos anteriormente tornam-se o último ponto intermediário.</string>
<string name="quick_action_replace_destination_desc">Tocando neste botão de ação torna o centro do ecrã o novo destino de rota, substituindo o destino selecionado anteriormente (se houver).</string>
<string name="quick_action_add_first_intermediate_desc">Tocando neste botão de ação torna o centro do ecrã o primeiro destino intermediário.</string>
<string name="no_overlay">Sem camada superior</string>
<string name="no_overlay">Sem sobreposição</string>
<string name="no_underlay">Sem subposição</string>
<string name="subscribe_email_error">Erro</string>
<string name="subscribe_email_desc">Subscreva à nossa lista de e-mail sobre descontos da aplicação e ganhe 3 mapas adicionais!</string>
@ -2073,7 +2091,7 @@
<string name="get_for">Comprar por %1$s</string>
<string name="get_for_month">Comprar por %1$s mês</string>
<string name="osm_live_banner_desc">Obter descarregamentos ilimitados de mapas e atualizações de mapas mais do que uma vez por mês: semanal, diário, ou a cada hora.</string>
<string name="osmand_plus_banner_desc">Descarregamentos ilimitados de mapas, atualizações, e plugin Wikipedia.</string>
<string name="osmand_plus_banner_desc">Descarregamentos ilimitados de mapas, atualizações e complemento Wikipedia.</string>
<string name="si_mi_meters">Milhas/metros</string>
<string name="search_map">À procura de mapas…</string>
<string name="first_usage_wizard_desc">Deixe OsmAnd determinar a sua localização e sugerir mapas para descarregar para essa região.</string>
@ -2118,7 +2136,7 @@
<string name="coord_input_save_as_track_descr">Você adicionou %1$s pontos. Digite um nome de ficheiro e toque em \"Gravar\".</string>
<string name="error_notification_desc">Por favor envie um screenshot da notificação para support@osmand.net</string>
<string name="quick_action_edit_actions">Editar ações</string>
<string name="get_osmand_live">Obter OsmAnd Live para desbloquear todos as funcionalidades: atualizações de mapas diários com downloads ilimitados, todos os plugins pagos e gratuitos, wikipedia, Wikivoyage e muito mais.</string>
<string name="get_osmand_live">Obter OsmAnd Live para desbloquear todos as funcionalidades: atualizações de mapas diários com descarregamentos ilimitados, todos os complementos pagos e gratuitos, wikipedia, Wikivoyage e muito mais.</string>
<string name="unirs_render_descr">A modificação do estilo padrão para aumentar o contraste de caminhos para pedestres e bicicletas. Usa codes do Mapnik legado.</string>
<string name="shared_string_bookmark">Marcador</string>
<string name="hide_full_description">Esconder descrição completa</string>
@ -2195,12 +2213,12 @@
<string name="show_images">Mostrar imagens</string>
<string name="purchase_cancelled_dialog_title">Você cancelou sua assinatura do OsmAnd Live</string>
<string name="purchase_cancelled_dialog_descr">Renovar assinatura para continuar a utilizar todas as funcionalidades:</string>
<string name="maps_you_need_descr">Com base nos artigos que você marcou, os mapas seguintes são recomendados para você fazer o download:</string>
<string name="maps_you_need_descr">Com base nos artigos que você marcou, os mapas seguintes são recomendados para você descarregar:</string>
<string name="maps_you_need">Mapas que você precisa</string>
<string name="osmand_team">Equipe do OsmAnd</string>
<string name="popular_destinations">Destinos populares</string>
<string name="paid_app">Aplicativo pago</string>
<string name="paid_plugin">Plugin pago</string>
<string name="paid_plugin">Complemento pago</string>
<string name="travel_card_update_descr">Há novos dados disponíveis da Wikivoyage, atualize-os para desfrutar.</string>
<string name="travel_card_download_descr">Descarregue guias de viagem da Wikivoyage para ver artigos sobre lugares ao redor do mundo sem uma conexão com a Internet.</string>
<string name="update_is_available">Atualização disponível</string>
@ -2223,7 +2241,7 @@
<string name="purchase_unlim_title">Comprar - %1$s</string>
<string name="purchase_subscription_title">Assinar - %1$s</string>
<string name="wikivoyage_offline">Wikivoyage offline</string>
<string name="unlimited_downloads">Downloads ilimitados</string>
<string name="unlimited_downloads">Descarregamentos ilimitados</string>
<string name="wikipedia_offline">A Wikipédia offline</string>
<string name="contour_lines_hillshade_maps">Linhas de contorno e mapas de sombreamento de relevo</string>
<string name="unlock_all_features">Desbloquear todas as características de OsmAnd</string>
@ -2453,8 +2471,8 @@
\nUm complemento de mapa especial para OsmAnd fornecerá todas as marcas de navegação náutica e símbolos cartográficos, para o interior assim como para navegação próxima à costa. A descrição de cada marca de navegação fornece os detalhes necessários para identificá-las e o seu significado (categoria, forma, cor, sequência, referência, etc.).
\n
\nPara retornar a um estilo convencional de mapa do OsmAnd, simplesmente desative este complemento ou altere o \'Estilo de mapa\' em \'Configurar mapa\' quando desejado.</string>
<string name="plugin_ski_descr">Este plugin para o OsmAnd coloca ao seu alcance detalhes de pistas de descida de esqui, de travessia, rotas de esqui alpino, teleféricos e elevadores de esqui. Rotas e pistas são mostradas com codificação de cores por dificuldade e retratadas em um estilo especial de mapa \'Inverno\' que assimila uma paisagem de inverno cor de neve.
\n
<string name="plugin_ski_descr">Este complemento para o OsmAnd coloca ao seu alcance detalhes de pistas de descida de esqui, de travessia, rotas de esqui alpino, teleféricos e elevadores de esqui. Rotas e pistas são mostradas com codificação de cores por dificuldade e retratadas em um estilo especial de mapa \'Inverno\' que assimila uma paisagem de inverno cor de neve.
\n
\nAtivando esta mudança na visão do estilo de mapa de \'Inverno e esqui\', mostrando todas as características da paisagem em condições invernais. Essa visão pode ser revertida desativando aqui ou alterando o \'Estilo de mapa\' em \'Configurar mapa\' quando desejado.</string>
<string name="navigate_point_olc_info_invalid">OLC inválido
\n</string>
@ -2544,7 +2562,7 @@
<string name="map_widget_intermediate_time">Hora intermediária</string>
<string name="osmand_extended_description_part1">OsmAnd (sigla em inglês de Direções de Navegação Automatizada do OSM) é um aplicativo de mapa e navegação com acesso a dados livres, mundiais e de alta qualidade do OpenStreetMap (OSM).
\n
\nPoderá usar o navegador visual e por voz, exibir POIs (pontos de interesse), criar e gerenciar trilhas GPX, usar (através de plugin) curvas de nível e dados de altitude, escolher entre os modos motorista, ciclista e pedestre, editar o OSM e muito mais.</string>
\nPoderá usar o navegador visual e por voz, exibir POIs (pontos de interesse), criar e gerenciar trilhas GPX, usar (através de complemento) curvas de nível e dados de altitude, escolher entre os modos motorista, ciclista e pedestre, editar o OSM e muito mais.</string>
<string name="osmand_extended_description_part2">Navegação GPS
\n• Escolha entre modos off-line (sem tarifa de roaming quando estiver no exterior) ou on-line (mais rápido)
\n• Orientação por voz passo-a-passo lhe guia ao longo do caminho (vozes gravadas e sintetizadas)
@ -2558,21 +2576,22 @@
\n• Grave ou carregue uma trilha GPX e siga-a
\n</string>
<string name="osmand_extended_description_part3">Mapa
\n• Exibe POIs (ponto de interesse) perto de você
\n• Exibe POIs (ponto de interesse) perto de si
\n• Ajusta o mapa na sua direção de movimento (ou bússola)
\n• Mostra a sua posição e direção para onde está olhando
\n• Compartilhe sua posição para que seus amigos possam encontrá-lo
\n• Mantém seus lugares mais importantes em \'Favoritos\'
\n• Permite-lhe escolher como exibir nomes no mapa: em inglês, local ou escrita fonética
\n• Exibe mapas on-line especializados, vista de satélite (do Bing), camadas diferentes como trilhas GPX de navegação/turismo e camadas adicionais com transparência personalizável</string>
\n• Exibe mapas on-line especializados, vista de satélite (do Bing), sobreposições diferentes como trajectos GPX de navegação/turismo e camadas adicionais com transparência personalizável
\n</string>
<string name="osmand_extended_description_part4">Esqui
\n O plugin de mapas de ski OsmAnd Ski permite que você veja pistas de ski com nível de complexidade e algumas informações adicionais, como localização de elevadores e outras facilidades.</string>
\n O complemento de mapas de ski OsmAnd Ski permite que você veja pistas de ski com nível de complexidade e algumas informações adicionais, como localização de elevadores e outras facilidades.</string>
<string name="osmand_extended_description_part5">Ciclismo
\n • Encontre caminhos de bicicleta no mapa
\n • Navegação por GPS no modo ciclismo constrói a sua rota utilizando caminhos de bicicleta
\n • Ver a sua velocidade e altitude
\n • Opção de gravação GPX permite-lhe gravar a sua viagem e compartilhá-la
\n • Através de plugin adicionais, você pode ativar curvas de nível e sombreamento de relevo</string>
\n • Através de complementos adicionais, você pode ativar curvas de nível e sombreamento de relevo</string>
<string name="osmand_extended_description_part6">Passeio, caminhada, turismo pela cidade
\n• O mapa mostra caminhos para passeios e caminhadas
\n• A Wikipédia no seu idioma preferido pode dizer muito durante um turismo pela cidade
@ -2592,7 +2611,7 @@
\n• Oriente Médio: **
\n• África: **
\n• Antártida: *
\nA maioria dos países ao redor do globo é disponível para download!
\nA maioria dos países ao redor do globo é disponível para descarregar!
\nObtenha um navegador confiável em seu país - seja a França, Alemanha, México, Reino Unido, Espanha, Holanda, EUA, Rússia, Brasil ou qualquer outro.</string>
<string name="osmand_plus_extended_description_part1">OsmAnd+ (OSM Automated Navigation Directions) é um aplicativo de mapa e navegação com acesso a dados do OpenStreetMap (OSM) livre, em todo o mundo e de alta qualidade.
\nDesfrute da navegação visual ou por voz, exibindo POIs (pontos de interesse), criando e gerenciando trilhas GPX, usando informação de altitude e curvas de nível, escolher entre modos dirigir, andar de bicicleta e pedestres, editar o OSM e muito mais.
@ -2630,9 +2649,9 @@
\n• Visualização de caminhos a pé, pistas de caminhadas e ciclovias, ideal para atividades ao ar livre
\n• Roteamento e modos de exibição especiais para bicicleta e pedestres
\n• Paradas de transporte público opcionais (autocarro, eléctrico, comboio) incluindo nomes de linhas
\n• Gravação opcional de viagem para ficheiro GPX local ou serviço on-line
\n• Gravação opcional de viagem para ficheiro GPX local ou serviço on-line
\n• Exibição opcional de velocidade e altitudes
\n• Exibição de curvas de nível e sombreamento de relevo (via plugin adicional)</string>
\n• Exibição de curvas de nível e sombreamento de relevo (via complemento adicional)</string>
<string name="osmand_plus_extended_description_part7">Contribuia diretamente para o OSM
\n• Avisar erros de dados
\n• Fazer upload de trilhas GPX para o OSM diretamente do app
@ -2665,14 +2684,14 @@
<string name="shared_string_others">Outros</string>
<string name="shared_string_release">Lançado</string>
<string name="voices">Instruções de voz</string>
<string name="favourites_context_menu_add">Adicionar favorito</string>
<string name="favourites_context_menu_add">Adicionar Favorito</string>
<string name="poi_action_delete">apagar</string>
<string name="poi_dialog_reopen">Reabrir</string>
<string name="av_camera_pic_size">Tamanho da foto</string>
<string name="av_camera_pic_size_descr">Selecionar tamanho de imagem da foto</string>
<string name="av_camera_pic_size_descr">Selecionar tamanho de imagem da foto.</string>
<string name="get_plugin">Obter</string>
<string name="use_fast_recalculation">Recálculo de rota inteligente</string>
<string name="use_fast_recalculation_desc">Recalcular apenas a parte inicial da rota para viagens longas</string>
<string name="use_fast_recalculation_desc">Recalcular apenas a parte inicial da rota para viagens longas.</string>
<string name="do_you_like_osmand">Está a gostar do OsmAnd\?</string>
<string name="we_really_care_about_your_opinion">A sua opinião e o seu comentário são importantes para nós.</string>
<string name="rate_this_app">Avalie este app</string>
@ -2708,16 +2727,16 @@
<string name="saved_at_time">Gravado em: %1$s</string>
<string name="poi_deleted_localy">POI será excluído quando você enviar suas alterações</string>
<string name="show_gpx">Mostrar dados do GPX</string>
<string name="count_of_lines">Número de linhas</string>
<string name="count_of_lines">Contagem de linhas</string>
<string name="are_you_sure">Tem certeza\?</string>
<string name="unsaved_changes_will_be_lost">Quaisquer alterações não gravadas serão perdidas. Continuar\?</string>
<string name="show_free_version_banner_description">Mesmo se você tem a versão paga você ainda pode ver o banner da versão gratuita</string>
<string name="activate_seamarks_plugin">Favor ativar o plugin \'Mapa náutico\'</string>
<string name="activate_srtm_plugin">Favor ativar o plugin \'Curvas de nível\'</string>
<string name="show_free_version_banner_description">Exibe o banner da versão gratuita mesmo na versão paga.</string>
<string name="activate_seamarks_plugin">Favor ativar o complemento \'Mapa náutico\'</string>
<string name="activate_srtm_plugin">Favor ativar o complemento \'Curvas de nível\'</string>
<string name="value_downloaded_of_max">%1$.1f de %2$.1f MB</string>
<string name="file_size_in_mb">%.1f MB</string>
<string name="update_all">Atualizar tudo (%1$s MB)</string>
<string name="save_poi_too_many_uppercase">Nome contém muitas letras maiúsculas. Você quer continuar\?</string>
<string name="save_poi_too_many_uppercase">O nome contém demasiadas letras maiúsculas. Continuar\?</string>
<string name="configure_screen_quick_action">Ação rápida</string>
<string name="quick_action_item_action">Ação %d</string>
<string name="quick_action_item_screen">Ecrã %d</string>
@ -2730,13 +2749,13 @@
<string name="quick_action_take_photo_note">Nova notificação de foto</string>
<string name="quick_action_add_osm_bug">Adicionar notificação OSM</string>
<string name="quick_action_navigation_voice">Ligar/desligar voz</string>
<string name="quick_action_navigation_voice_off">Voz desligada</string>
<string name="quick_action_navigation_voice_on">Voz ligada</string>
<string name="quick_action_navigation_voice_off">Voz Desmuda</string>
<string name="quick_action_navigation_voice_on">Voz muda</string>
<string name="quick_action_add_gpx">Adicionar ponto de rota GPX</string>
<string name="quick_action_add_parking">Marcar estacionamento</string>
<string name="quick_action_new_action">Adicionar ação</string>
<string name="quick_action_edit_action">Editar ação</string>
<string name="quick_action_add_favorite">Adicionar favorito</string>
<string name="quick_action_add_favorite">Adicionar Favorito</string>
<string name="dialog_add_action_title">Adicionar ação</string>
<string name="quick_actions_delete">Apagar ação</string>
<string name="quick_actions_delete_text">Tem certeza de que deseja apagar a ação \"%s\"\?</string>
@ -2754,7 +2773,7 @@
<string name="quick_action_interim_dialog">Mostrar um diálogo intermediário</string>
<string name="favorite_autofill_toast_text">" está gravado no "</string>
<string name="favorite_empty_place_name">Lugar</string>
<string name="quick_action_duplicates">Nome de ação rápida especificada já em uso foi mudado para %1$s para evitar a duplicação.</string>
<string name="quick_action_duplicates">Nome de ação rápida especificada já está em uso, foi mudado para %1$s para evitar uma duplicação.</string>
<string name="quick_action_duplicate">Nome de ação rápida duplicado</string>
<string name="quick_action_showhide_favorites_descr">Tocar neste botão de ação mostra ou esconde os pontos favoritos no mapa.</string>
<string name="quick_action_showhide_poi_descr">Tocar neste botão de ação mostra ou esconde POIs no mapa.</string>
@ -2769,12 +2788,12 @@
<string name="quick_action_add_configure_map">Configurar mapa</string>
<string name="quick_action_add_navigation">Navegação</string>
<string name="quick_action_fav_name_descr">Deixe em branco para automaticamente usar o endereço ou nome de lugar.</string>
<string name="quick_action_bug_descr">Esta mensagem será autocompletada no campo de comentário.</string>
<string name="quick_action_bug_descr">Esta mensagem está incluída no campo de comentário.</string>
<string name="quick_action_bug_message">Mensagem</string>
<string name="quick_action_category_descr">Selecione a categoria para gravar o favorito.</string>
<string name="quick_action_gpx_category_descr">Selecione uma categoria opcional.</string>
<string name="quick_action_poi_list">Lista de POIs</string>
<string name="quick_action_sh_poi_descr">Você pode adicionar uma ou mais categorias de POI para exibir no mapa.</string>
<string name="quick_action_sh_poi_descr">Adicione uma ou mais categorias de POI para mostrar no mapa.</string>
<string name="quick_action_page_list_descr">Tocar no botão de ação irá percorrer a lista abaixo.</string>
<string name="quick_action_map_style_action">Adicionar um estilo de mapa</string>
<string name="quick_action_empty_param_error">Parâmetros não podem ficar em branco</string>
@ -2989,4 +3008,6 @@
<string name="route_steepness_stat_container">Inclinação</string>
<string name="routing_attr_avoid_sett_name">Evitar paralelepípedo</string>
<string name="routing_attr_avoid_sett_description">Evitar paralelepípedo</string>
<string name="send_log">Enviar log</string>
<string name="sit_on_the_stop">Embarque na parada</string>
</resources>

File diff suppressed because it is too large Load diff

View file

@ -3457,5 +3457,7 @@
<string name="poi_flare">Газовый факел</string>
<string name="poi_rescue_box">Спасательный ящик</string>
<string name="poi_climbing_crag_filter">Место для скалолазания</string>
<string name="poi_climbing_crag">Да</string>
</resources>

View file

@ -1221,7 +1221,7 @@
<string name="osmand_plus_play_title_30_chars">OsmAnd+ карты и навигация</string>
<string name="use_kalman_filter_compass_descr">Уменьшает \"шум\" компаса, но добавляет инерцию.</string>
<string name="use_kalman_filter_compass">Использовать фильтр Калмана</string>
<string name="cancel_navigation">Прекратить навигацию</string>
<string name="cancel_navigation">Остановить навигацию</string>
<string name="use_magnetic_sensor">Использовать датчик магнитного поля</string>
<string name="delete_point">Удалить точку</string>
<string name="plugin_distance_point_time">время</string>
@ -2049,7 +2049,7 @@
<string name="rec_split">Разбиение на клипы</string>
<string name="rec_split_title">Использовать разбиение на клипы</string>
<string name="rec_split_desc">Циклическая перезапись клипов при превышении заданного объема хранилища.</string>
<string name="switch_start_finish">Поменять местами пункт отправления и пункт назначения</string>
<string name="switch_start_finish">Обратить пункты старта и назначения</string>
<string name="shared_string_remove">Удалить</string>
<string name="rendering_attr_hideUnderground_name">Подземные объекты</string>
<string name="data_is_not_available">Данные недоступны</string>
@ -2335,7 +2335,7 @@
<string name="edit_line">Редактировать линию</string>
<string name="add_point_before">Добавить точку перед</string>
<string name="add_point_after">Добавить точку после</string>
<string name="shared_string_options">Параметры</string>
<string name="shared_string_options">Опции</string>
<string name="measurement_tool_snap_to_road_descr">OsmAnd соединит точки с маршрутом для выбранного профиля.</string>
<string name="measurement_tool_save_as_new_track_descr">Сохранить точки, как точки маршрута или как линию.</string>
<string name="choose_navigation_type">Выберите профиль навигации</string>
@ -2670,7 +2670,7 @@
<string name="map_import_error">Ошибка импорта карты</string>
<string name="map_imported_successfully">Карта импортирована</string>
<string name="transport_nearby_routes_within">Маршруты рядом с</string>
<string name="transport_nearby_routes">Рядом</string>
<string name="transport_nearby_routes">В пределах</string>
<string name="enter_lon">Введите долготу</string>
<string name="enter_lat">Введите широту</string>
<string name="enter_lat_and_lon">Введите широту и долготу</string>
@ -2903,7 +2903,7 @@
<string name="add_destination_query">Сначала добавьте пункт назначения</string>
<string name="shared_string_swap">Поменять</string>
<string name="show_more">Показать больше</string>
<string name="tracks_on_map">Треки на карте</string>
<string name="tracks_on_map">Отображаемые треки</string>
<string name="quick_action_show_hide_gpx_tracks">Показать/скрыть GPX треки</string>
<string name="quick_action_gpx_tracks_hide">Скрыть GPX треки</string>
<string name="quick_action_gpx_tracks_show">Показать GPX треки</string>
@ -3015,4 +3015,5 @@
\n• Отображение азимута в инструменте \"Измерить расстояние\"
\n
\n</string>
<string name="send_log">Отправить log</string>
</resources>

View file

@ -3576,4 +3576,7 @@
<string name="poi_flare">Frama de gas;Tortza de brusiadura</string>
<string name="poi_change_delete">Ogetu iscantzelladu</string>
<string name="poi_health_specialty_radiotherapy_yes">Radioterapia</string>
<string name="poi_climbing_crag_filter">Falèsia</string>
<string name="poi_rescue_box">Iscàtula de sarvatàgiu</string>
<string name="poi_climbing_crag">Eja</string>
</resources>

View file

@ -3016,4 +3016,5 @@ Pro praghere iscrie su còdighe intreu</string>
\n • Ammustra s\'azimuth in Medi sa distàntzia
\n
\n</string>
<string name="send_log">Imbia su registru</string>
</resources>

View file

@ -1839,7 +1839,7 @@ Dĺžka %2$s</string>
<string name="last_map_change">Posledná zmena mapy: %s</string>
<string name="hourly">Každú hodinu</string>
<string name="daily">Každý deň</string>
<string name="weekly">Raz za týždeň</string>
<string name="weekly">Každý týždeň</string>
<string name="morning">Ráno</string>
<string name="night">V noci</string>
<string name="shared_string_type">Typ</string>
@ -1857,7 +1857,7 @@ Dĺžka %2$s</string>
<string name="rendering_attr_hideIcons_name">Ikony bodov záujmu (POI)</string>
<string name="number_of_contributors">Počet prispievateľov</string>
<string name="number_of_edits">Počet zmien</string>
<string name="reports_for">Výkaz pre</string>
<string name="reports_for">Prehľad za</string>
<string name="data_is_not_available">Údaje nie sú k dispozícii</string>
<string name="shared_string_status">Stav</string>
<string name="shared_string_save_changes">Uložiť zmeny</string>
@ -1895,12 +1895,12 @@ Dĺžka %2$s</string>
<string name="number_of_recipients">Počet príjemcov</string>
<string name="osm_user_stat">Počet úprav %1$s, pozícia %2$s, celkový počet úprav %3$s</string>
<string name="osm_editors_ranking">Pozícia medzi editormi OSM</string>
<string name="osm_live_subscription">Predplatné v OsmAnd Live</string>
<string name="osm_live_subscription">Predplatné OsmAnd Live</string>
<string name="osm_live_subscribe_btn">Registrovať</string>
<string name="osm_live_email_desc">Potrebné pre poskytnutie Vám informácií o príspevkoch.</string>
<string name="osm_live_user_public_name">Verejné meno</string>
<string name="osm_live_hide_user_name">Nezobrazovať moje meno v hláseniach</string>
<string name="osm_live_support_region">Región podpory</string>
<string name="osm_live_hide_user_name">Nezobrazovať moje meno v prehľadoch</string>
<string name="osm_live_support_region">Podporovaný región</string>
<string name="osm_live_month_cost">Mesačná cena</string>
<string name="osm_live_month_cost_desc">Mesačná platba</string>
<string name="osm_live_active">Aktívne</string>
@ -1924,9 +1924,9 @@ Dĺžka %2$s</string>
<string name="shared_string_move_down">Posunúť ↓</string>
<string name="no_map_markers_found">Prosím pridajte mapové značky pomocou mapy</string>
<string name="no_waypoints_found">Nenašli sa žiadne body cesty</string>
<string name="report">Hlásenie</string>
<string name="report">Prehľad</string>
<string name="storage_permission_restart_is_required">Aplikácia teraz má povolenie zapisovať do externého úložiska, ale je potrebný reštart aplikácie.</string>
<string name="full_report">Plné hlásenie</string>
<string name="full_report">Podrobný prehľad</string>
<string name="open_street_map_login_and_pass">Meno a heslo pre OpenStreetMap</string>
<string name="file_name_containes_illegal_char">Názov súboru obsahuje nepovolený znak</string>
<string name="rendering_value_thin_name">Tenké</string>
@ -3015,4 +3015,5 @@ Zodpovedá oblasti: %1$s x %2$s</string>
\n
\n • Zobrazenie azimutu v meraní vzdialenosti
\n</string>
<string name="send_log">Odoslať záznam</string>
</resources>

View file

@ -1500,7 +1500,7 @@ Sorazmerna velikost pomnilnika je %4$s MB (omejitev na androidu je %5$s MB, na d
<string name="agps_info">Podrobnosti A-GPS</string>
<string name="shared_string_manage">Upravljaj</string>
<string name="shared_string_edit">Uredi</string>
<string name="shared_string_search">Poišči</string>
<string name="shared_string_search">Iskanje</string>
<string name="shared_string_show_description">Pokaži opis.</string>
<string name="agps_data_last_downloaded">Zadnja osvežitev podatkov A-GPS: %1$s</string>
<string name="confirm_usage_speed_cameras">V mnogih državah (na primer v Nemčiji, Franciji, Italiji in drugih) je uporaba kamer za merjenje hitrosti prepovedana z zakonom. Razvijalci programa ne sprejemamo odgovornosti za tako rabo. Potrdite uporabo le, če ste res prepričani v svoje ravnanje.</string>
@ -3016,4 +3016,5 @@ Koda predstavlja območje: %1$s x %2$s</string>
\n• Prikaz azimuta pri merjenju razdalje
\n
\n</string>
<string name="send_log">Pošlji dnevnik</string>
</resources>

View file

@ -3566,4 +3566,7 @@
<string name="poi_flare">Газовий факел</string>
<string name="poi_change_delete">Видалений об\'єкт</string>
<string name="poi_health_specialty_radiotherapy_yes">Променева терапія</string>
<string name="poi_climbing_crag_filter">Місце для скелелазіння</string>
<string name="poi_rescue_box">Рятувальна коробка</string>
<string name="poi_climbing_crag">Так</string>
</resources>

View file

@ -3019,4 +3019,5 @@
<string name="run_full_osmand_msg">Ви використовуєте {0} мапу, надану OsmAnd. Хочете запустити повну версію OsmAnd\?</string>
<string name="routing_attr_avoid_sett_name">Уникати мостові та бруківку</string>
<string name="routing_attr_avoid_sett_description">Уникати мостові та бруківку</string>
<string name="send_log">Надіслати журнал</string>
</resources>

View file

@ -56,4 +56,12 @@
<string name="poi_park_ride_train">火车</string>
<string name="poi_park_ride_bus">公交</string>
<string name="poi_park_ride_metro">地铁</string>
<string name="poi_highway_crossing_type">类型</string>
<string name="poi_parking_type">类型</string>
<string name="poi_payment_transport_type">支付类型(交通)</string>
<string name="poi_cafeteria">自助餐厅</string>
<string name="poi_water_purification">水净化</string>
<string name="poi_transportation">交通</string>
<string name="poi_public_transport">公共交通</string>
<string name="poi_education">教育</string>
</resources>

View file

@ -876,14 +876,14 @@
<string name="shared_string_remove">移除</string>
<string name="shared_string_read_more">阅读更多</string>
<string name="add_time_span">增加时间跨度</string>
<string name="road_blocked">道路</string>
<string name="road_blocked">道路被阻</string>
<string name="shared_string_select">选择</string>
<string name="rendering_attr_hideIcons_name">隐藏 POI 图标</string>
<string name="item_removed">项目已移除</string>
<string name="n_items_removed">项目已移除</string>
<string name="shared_string_undo_all">全部撤销</string>
<string name="shared_string_type">类型</string>
<string name="starting_point">起始</string>
<string name="starting_point">起始点</string>
<string name="shared_string_not_selected">未选取</string>
<string name="rec_split_storage_size">存储大小</string>
<string name="available_maps">可用地图</string>
@ -1300,8 +1300,8 @@
<string name="profile_settings">选择设置对应场景</string>
<string name="routing_attr_allow_private_name">允许私有访问</string>
<string name="routing_attr_weight_name">重量限制</string>
<string name="routing_attr_avoid_stairs_name">阶梯</string>
<string name="routing_attr_avoid_stairs_description">阶梯</string>
<string name="routing_attr_avoid_stairs_name">阶梯</string>
<string name="routing_attr_avoid_stairs_description">阶梯</string>
<string name="routing_attr_avoid_borders_name">避开边界穿越</string>
<string name="routing_attr_avoid_borders_description">避免穿越边境线进入其它国家</string>
<string name="routing_attr_weight_description">指定路线上允许的车辆重量</string>

View file

@ -3559,4 +3559,25 @@
<string name="poi_generator_source_biomass">能源:生物能</string>
<string name="poi_health_specialty_radiotheraphy_yes">放射治療</string>
<string name="poi_hazard">危險</string>
<string name="poi_rtsa_scale_filter">難度分類</string>
<string name="poi_health_specialty_radiotherapy_yes">放射治療</string>
<string name="poi_rtsa_scale_nc">н/к</string>
<string name="poi_rtsa_scale_nc_asterisk">н/к*</string>
<string name="poi_rtsa_scale_1a">1А</string>
<string name="poi_rtsa_scale_1a_asterisk">1А*</string>
<string name="poi_rtsa_scale_1b"></string>
<string name="poi_rtsa_scale_1b_asterisk">1Б*</string>
<string name="poi_rtsa_scale_2a">2А</string>
<string name="poi_rtsa_scale_2a_asterisk">2А*</string>
<string name="poi_rtsa_scale_2b"></string>
<string name="poi_rtsa_scale_2b_asterisk">2Б*</string>
<string name="poi_rtsa_scale_3a">3А</string>
<string name="poi_rtsa_scale_3a_asterisk">3А*</string>
<string name="poi_rtsa_scale_3b"></string>
<string name="poi_rtsa_scale_3b_asterisk">3Б*</string>
<string name="poi_flare">燃燒塔</string>
<string name="poi_change_delete">已刪除的物件</string>
<string name="poi_climbing_crag_filter">攀岩</string>
<string name="poi_rescue_box">急救箱</string>
<string name="poi_climbing_crag"></string>
</resources>

View file

@ -268,7 +268,7 @@
<string name="oclock">點鐘</string>
<string name="towards"></string>
<string name="accuracy">精確性</string>
<string name="altitude">海拔高度</string>
<string name="altitude">高度</string>
<string name="no_info">沒有數據</string>
<string name="direction_style_sidewise">橫向 (8 個扇區)</string>
<string name="direction_style_clockwise">順時鐘 (12 個扇區)</string>
@ -704,7 +704,7 @@
<string name="fav_points_not_exist">沒有我的收藏標點存在</string>
<string name="update_existing">取代</string>
<string name="only_show">顯示路線</string>
<string name="follow">開始導航</string>
<string name="follow">開始指引</string>
<string name="mark_final_location_first">請先選擇目的地</string>
<string name="get_directions">導引</string>
<string name="opening_hours">營業時間</string>
@ -1499,7 +1499,7 @@
<string name="action_delete">刪除動作</string>
<string name="osmand_parking_overdue">已過時</string>
<string name="delay_to_start_navigation_descr">在路線規劃螢幕上,指示剩餘等待時間。</string>
<string name="delay_to_start_navigation">導航後開始轉向建議…</string>
<string name="delay_to_start_navigation">指引後開始轉向建議…</string>
<string name="shared_string_go">執行</string>
<string name="confirmation_to_clear_history">清除過去的記錄嗎?</string>
<string name="local_osm_changes_upload_all_confirm">您要上傳 %1$d 以更改 OSM。您確定嗎</string>
@ -2387,7 +2387,7 @@
<string name="change_color">更改顏色</string>
<string name="edit_name">編輯名稱</string>
<string name="save_poi_too_many_uppercase">名稱中包含太多的大寫字母。要繼續嗎?</string>
<string name="route_is_too_long_v2">如果在十分鐘內沒有沒有找到路線,請增加中轉地點</string>
<string name="route_is_too_long_v2">對於較長的距離如果在10分鐘之內沒有找到路線請新增中轉目的地</string>
<string name="display_zoom_level">顯示縮放級別:%1$s</string>
<string name="srtm_color_scheme">色調配置</string>
<string name="show_from_zoom_level">由縮放級別來顯示</string>
@ -2903,15 +2903,119 @@
<string name="previous_route">前一個路線</string>
<string name="shared_string_swap">切換</string>
<string name="show_more">顯示更多</string>
<string name="tracks_on_map">在地圖上追蹤</string>
<string name="tracks_on_map">顯示軌跡</string>
<string name="time_of_day">一天中的時間</string>
<string name="by_transport_type">由 %1$s</string>
<string name="step_by_step">按步驟</string>
<string name="road_types">道路類型</string>
<string name="exit_at">出口於</string>
<string name="sit_on_the_stop">坐在站點上</string>
<string name="sit_on_the_stop">站點的座位</string>
<string name="quick_action_show_hide_gpx_tracks">顯示/隱藏 GPX 軌跡</string>
<string name="quick_action_show_hide_gpx_tracks_descr">點選此動作按鈕在地圖上顯示或隱藏選定的 GPX 軌跡</string>
<string name="quick_action_gpx_tracks_hide">隱藏 GPX 軌跡</string>
<string name="quick_action_gpx_tracks_show">顯示 GPX 軌跡</string>
<string name="send_log">傳送紀錄檔</string>
<string name="routing_attr_avoid_tram_name">避免電車</string>
<string name="routing_attr_avoid_tram_description">避免電車</string>
<string name="routing_attr_avoid_bus_name">避免巴士</string>
<string name="routing_attr_avoid_bus_description">避免巴士與無軌電車</string>
<string name="routing_attr_avoid_share_taxi_name">避免共享計程車</string>
<string name="routing_attr_avoid_share_taxi_description">避免共享計程車</string>
<string name="routing_attr_avoid_train_name">避免火車</string>
<string name="routing_attr_avoid_train_description">避免火車</string>
<string name="routing_attr_avoid_subway_name">避免捷運</string>
<string name="routing_attr_avoid_subway_description">避免捷運與輕軌運輸</string>
<string name="routing_attr_avoid_ferry_name">避免渡輪</string>
<string name="routing_attr_avoid_ferry_description">避免渡輪</string>
<string name="release_3_3_7">• 在大眾運輸工具間轉乘時顯示時間
\n
\n • 修正路線詳細資訊的使用者介面
\n
\n • 修復在方向選單與路徑詳細資訊中的暗色主題
\n
\n • 在測量距離中顯示方位角
\n
\n</string>
<string name="shared_string_degrees"></string>
<string name="shared_string_milliradians">毫弧度</string>
<string name="angular_measeurement">角度測量單位</string>
<string name="angular_measeurement_descr">變更測量的方位角。</string>
<string name="avoid_pt_types_descr">選取要避免在導航中使用的大眾運輸類型:</string>
<string name="quick_action_day_night_mode">%s 模式</string>
<string name="avoid_pt_types">避免運輸類型……</string>
<string name="shared_string_walk">步行</string>
<string name="save_poi_value_exceed_length">標籤「%s」的最大長度為 255 個字元。
\n請縮短以繼續。</string>
<string name="save_poi_value_exceed_length_title">「%s」值的長度</string>
<string name="public_transport_warning_descr_blog">在我們的部落格上取得更多關於 OsmAnd 如何計算路徑的資訊。</string>
<string name="public_transport_warning_title">大眾運輸導航目前正在測試階段,可能會有錯誤與不準確的地方。</string>
<string name="add_intermediate">加入中繼點</string>
<string name="transfers_size">%1$d 次轉乘</string>
<string name="add_start_and_end_points">新增起始與結束點</string>
<string name="route_add_start_point">新增起始點</string>
<string name="route_descr_select_start_point">選取起始點</string>
<string name="rendering_attr_surface_unpaved_name">無鋪面</string>
<string name="rendering_attr_surface_sand_name"></string>
<string name="rendering_attr_surface_grass_name"></string>
<string name="rendering_attr_surface_grass_paver_name">草與透氣磚鋪面</string>
<string name="rendering_attr_surface_ground_name">地面</string>
<string name="rendering_attr_surface_dirt_name"></string>
<string name="rendering_attr_surface_mud_name"></string>
<string name="rendering_attr_surface_ice_name"></string>
<string name="rendering_attr_surface_salt_name"></string>
<string name="rendering_attr_surface_snow_name"></string>
<string name="rendering_attr_surface_asphalt_name">柏油</string>
<string name="rendering_attr_surface_paved_name">有鋪面</string>
<string name="rendering_attr_surface_concrete_name">混凝土</string>
<string name="rendering_attr_surface_sett_name">枕木</string>
<string name="rendering_attr_surface_cobblestone_name">鵝卵石</string>
<string name="rendering_attr_surface_paving_stones_name">鋪路石</string>
<string name="rendering_attr_surface_pebblestone_name">礫石</string>
<string name="rendering_attr_surface_stone_name">石頭</string>
<string name="rendering_attr_surface_metal_name">金屬</string>
<string name="rendering_attr_surface_wood_name">木頭</string>
<string name="rendering_attr_surface_gravel_name">碎石</string>
<string name="rendering_attr_surface_fine_gravel_name">細石</string>
<string name="rendering_attr_surface_compacted_name">壓實</string>
<string name="rendering_attr_smoothness_excellent_name">優秀</string>
<string name="rendering_attr_smoothness_good_name"></string>
<string name="rendering_attr_smoothness_intermediate_name">中等</string>
<string name="rendering_attr_smoothness_bad_name"></string>
<string name="rendering_attr_smoothness_very_bad_name">非常差</string>
<string name="rendering_attr_smoothness_horrible_name">可怕</string>
<string name="rendering_attr_smoothness_very_horrible_name">非常可怕</string>
<string name="rendering_attr_smoothness_impassable_name">無法通行</string>
<string name="rendering_attr_highway_class_motorway_name">高速公路</string>
<string name="rendering_attr_highway_class_state_road_name">州級公路</string>
<string name="rendering_attr_highway_class_road_name">道路</string>
<string name="rendering_attr_highway_class_street_name">街道</string>
<string name="rendering_attr_highway_class_service_name">服務</string>
<string name="rendering_attr_highway_class_footway_name">人行道</string>
<string name="rendering_attr_highway_class_track_name">小徑</string>
<string name="rendering_attr_highway_class_bridleway_name">馬道</string>
<string name="rendering_attr_highway_class_steps_name">臺階</string>
<string name="rendering_attr_highway_class_path_name">路徑</string>
<string name="rendering_attr_highway_class_cycleway_name">自行車道</string>
<string name="rendering_attr_undefined_name">未定義</string>
<string name="release_3_3">• 新的「方向」畫面:顯示家裡與工作目的地按鈕、「前一條路徑」快捷鍵、作用中的 GPX 軌跡與標記清單、搜尋歷史
\n
\n • 「路徑詳細資訊」下的額外資訊:道路類型、表面、坡度、平滑度
\n
\n • 大眾運輸導航現在支援所有類型的運輸工具:捷運、巴士、電車等等
\n
\n • 新的顯示/隱藏軌跡的快速動作與日/夜模式
\n
\n • 修復德國、南非與魁北克被顯示為淹沒的區域
\n
\n • 對 KML 與 KMZ 匯入的額外支援
\n
\n • 在開啟某些大眾運輸站點時當機的問題
\n
\n • 從免費版中移除 Facebook 與 Firebase 分析OsmAnd+ 則從未包含其在內)
\n
\n</string>
<string name="use_osm_live_public_transport_description">為 OsmAnd Live 變更啟用大眾運輸。</string>
<string name="use_osm_live_public_transport">OsmAnd Live 大眾運輸</string>
<string name="routing_attr_avoid_sett_name">避免鵝卵石與枕木</string>
<string name="routing_attr_avoid_sett_description">避免鵝卵石與枕木</string>
</resources>

View file

@ -113,6 +113,7 @@
<string name="poi_denotation">Denotation</string>
<string name="poi_park_ride">Park and ride</string>
<string name="poi_rtsa_scale_filter">Difficulty category</string>
<string name="poi_climbing_crag_filter">Climbing crag</string>
<!-- categories -->
<string name="poi_shop">Store</string>
@ -3936,5 +3937,6 @@
<string name="poi_change_delete">Deleted object</string>
<string name="poi_rescue_box">Rescue box</string>
<string name="poi_climbing_crag">Yes</string>
</resources>

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