Merge branch 'master' into track_appearance_fixes

This commit is contained in:
Vitaliy 2020-07-27 12:53:10 +03:00
commit 36b3fd4b56
40 changed files with 1352 additions and 334 deletions

View file

@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M16,6L14,6L14,2H16V6Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M16,6L16,13.5858L18.2929,11.2929L19.7071,12.7071L15,17.4142L10.2929,12.7071L11.7071,11.2929L14,13.5858V6H12L10,4H4C2.8954,4 2,4.8954 2,6V18C2,19.1046 2.8954,20 4,20H20C21.1046,20 22,19.1046 22,18V8C22,6.8954 21.1046,6 20,6L16,6Z"
android:fillColor="#ffffff"/>
</vector>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:minHeight="@dimen/bottom_sheet_list_item_height"
android:paddingBottom="@dimen/content_padding_half"
android:paddingTop="@dimen/content_padding_half"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingStart="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon"
android:layout_width="@dimen/standard_icon_size"
android:layout_height="@dimen/standard_icon_size"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/bottom_sheet_icon_margin_large"
android:layout_marginRight="@dimen/bottom_sheet_icon_margin_large"
tools:src="@drawable/ic_action_info_dark" />
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
android:textAppearance="@style/TextAppearance.ListItemTitle"
tools:text="Title" />
</LinearLayout>

View file

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingTop="@dimen/bottom_sheet_title_padding_top"
android:paddingBottom="@dimen/bottom_sheet_title_padding_bottom"
android:text="@string/plan_route_open_existing_track"
android:textAppearance="@style/TextAppearance.ListItemCategoryTitle" />
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingTop="@dimen/bottom_sheet_title_padding_top"
android:paddingBottom="@dimen/bottom_sheet_title_padding_bottom"
android:text="@string/plan_route_select_track_file_for_open"
android:textColor="?android:textColorPrimary"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_regular" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/folder_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingStart="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:clipToPadding="false"
android:orientation="horizontal"
tools:itemCount="3"
tools:orientation="horizontal"
tools:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/point_editor_icon_category_item" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gpx_track_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:itemCount="1"
tools:listitem="@layout/gpx_track_select_item">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:osmand="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingStart="@dimen/content_padding"
android:paddingLeft="@dimen/content_padding"
android:paddingEnd="@dimen/content_padding"
android:paddingRight="@dimen/content_padding"
android:paddingTop="@dimen/bottom_sheet_title_padding_top"
android:paddingBottom="@dimen/bottom_sheet_title_padding_bottom">
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/last_edited"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/plan_route_last_edited"
android:textColor="?attr/active_color_basic"
android:textSize="@dimen/default_desc_text_size"
osmand:typeface="@string/font_roboto_regular" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/gpx_track_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:itemCount="1"
tools:listitem="@layout/gpx_track_select_item">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>

View file

@ -71,7 +71,7 @@
android:layout_marginStart="@dimen/measurement_tool_text_button_padding"
android:layout_toEndOf="@id/main_icon"
android:layout_toRightOf="@id/main_icon"
android:textAppearance="@style/TextAppearance.ListItemTitle"
android:textAppearance="@style/TextAppearance.ListItemCategoryTitle"
tools:text="724 m,"/>
<TextView
@ -81,8 +81,7 @@
android:layout_marginTop="@dimen/measurement_tool_button_padding"
android:layout_toEndOf="@id/measurement_distance_text_view"
android:layout_toRightOf="@id/measurement_distance_text_view"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_list_text_size"
android:textAppearance="@style/TextAppearance.ListItemCategoryTitle"
tools:text="points: 3"/>
<TextView
@ -93,7 +92,7 @@
android:layout_alignStart="@+id/measurement_distance_text_view"
android:layout_alignLeft="@+id/measurement_distance_text_view"
android:maxLines="1"
android:textColor="@color/color_distance"
android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"
tools:text=" 700 m" />
@ -221,8 +220,8 @@
android:text="@string/shared_string_add"
android:textColor="@color/color_white"
android:textAllCaps="false"
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
</FrameLayout>
</LinearLayout>
@ -251,8 +250,8 @@
android:text="@string/shared_string_apply"
android:textColor="@color/color_white"
android:textAllCaps="false"
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
<net.osmand.plus.widgets.TextViewEx
android:id="@+id/cancel_move_point_button"
@ -307,8 +306,8 @@
android:text="@string/shared_string_apply"
android:textColor="?attr/color_dialog_buttons"
android:textAllCaps="false"
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
<Button
android:id="@+id/add_point_before_after_button"
@ -325,8 +324,8 @@
android:text="@string/shared_string_add"
android:textColor="@color/color_white"
android:textAllCaps="false"
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
android:paddingEnd="@dimen/measurement_tool_button_padding"
android:paddingStart="@dimen/measurement_tool_button_padding" />
</LinearLayout>
</LinearLayout>

View file

@ -1,10 +1,10 @@
<?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: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:minHeight="@dimen/settings_divider_margin_start"
android:minHeight="@dimen/favorites_list_item_height"
android:background="?attr/selectableItemBackground"
android:orientation="horizontal">
@ -29,9 +29,8 @@
android:layout_marginEnd="@dimen/list_content_padding"
android:layout_marginRight="@dimen/list_content_padding"
android:layout_weight="1"
android:orientation="vertical"
android:paddingTop="@dimen/content_padding_small"
android:paddingBottom="@dimen/content_padding_small">
android:layout_gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/name"

View file

@ -3822,4 +3822,10 @@
<string name="shared_string_custom">تخصيص</string>
<string name="gpx_direction_arrows">اتجاه الأسهم</string>
<string name="track_coloring_solid">صلب</string>
<string name="plan_route_last_edited">التعديل الأخير</string>
<string name="plan_route_import_track">استيراد المسار</string>
<string name="plan_route_open_existing_track">فتح المسار الموجود</string>
<string name="plan_route_create_new_route">إنشاء مسار جديد</string>
<string name="plan_route_select_track_file_for_open">حدد ملف المسار للفتح.</string>
<string name="shared_string_done">تم</string>
</resources>

View file

@ -1192,7 +1192,7 @@
<string name="poi_pump_no">sen pumpilo</string>
<string name="poi_pump_yes">jes</string>
<string name="poi_water_characteristic_mineral">minerala</string>
<string name="poi_water_characteristic_mud">Akvospeco: sediment-riĉa</string>
<string name="poi_water_characteristic_mud">sediment-riĉa</string>
<string name="poi_water_characteristic_sulfuric">sulfat(VI)-oza</string>
<string name="poi_water_point">Akvoĉerpejo</string>
<string name="poi_information_guidepost">Vojmontrilo</string>
@ -1859,7 +1859,7 @@
<string name="poi_fuel_100ll">benzino 100-oktannombra plumba</string>
<string name="poi_fuel_autogas">naftogaso likva (LPG) por aviadiloj</string>
<string name="poi_fuel_jeta1">Jet A-1 brulaĵo</string>
<string name="poi_fuel_adblue">AdBlue (akvosolvaĵo de ureo) aldonaĵo</string>
<string name="poi_fuel_adblue">AdBlue (akvosolvaĵo de ureo)</string>
<string name="poi_fuel_wood">Brulaĵo: ligno</string>
<string name="poi_fuel_charcoal">Brulaĵo: lignokarbo</string>
<string name="poi_fuel_coal">Brulaĵo: karbo</string>
@ -3029,7 +3029,7 @@
<string name="poi_dish">Manĝaĵo</string>
<string name="poi_waterway_fuel">Benzinejo por boatoj</string>
<string name="poi_feeding_place">Bestonutrejo</string>
<string name="poi_party">Provizadoj por aranĝoj</string>
<string name="poi_party">Okazaĵaj-provizoj-vendejo</string>
<string name="poi_electrical">Elektraĵ-vendejo</string>
<string name="poi_locksmith">Seruristejo</string>
<string name="poi_lighting">Prilumigad-aparata vendejo</string>
@ -3780,7 +3780,7 @@
<string name="poi_memorial_ghost_bike">Fantombiciklo</string>
<string name="poi_paintball">Farbopafado</string>
<string name="poi_mountain_rescue">Stacio de montara savservo</string>
<string name="poi_shop_security">Vendejo de sekuriloj</string>
<string name="poi_shop_security">Sekuril-vendejo</string>
<string name="poi_bowling_alley">Kegloludejo</string>
<string name="poi_piste_ref">Referencnumero de skivojo</string>
<string name="poi_resort_hunting">bazo de ĉasistoj</string>

View file

@ -3820,4 +3820,22 @@
<string name="app_mode_wheelchair_forward">Rulseĝo (klinita)</string>
<string name="app_mode_go_cart">Gokarto</string>
<string name="osm_edit_closed_note">Fermita OSMrimarko</string>
<string name="add_hidden_group_info">La aldonita punkto ne estos videbla sur la mapo, ĉar la elektita grupo estas kaŝita, vi povas trovi ĝin en “%s”.</string>
<string name="set_working_days_to_continue">Necesas enigi tagojn de malfermo por pluigi</string>
<string name="route_between_points">Kurso inter punktoj</string>
<string name="plan_a_route">Plani kurson</string>
<string name="add_to_a_track">Aldoni al spuro</string>
<string name="track_show_start_finish_icons">Montri markojn de komenco/fino</string>
<string name="select_track_width">Elekti larĝon</string>
<string name="plan_route_last_edited">Antaŭaj</string>
<string name="gpx_split_interval_descr">Elektu tempon/distancon je kiu markoj sur la spuro estos montrataj.</string>
<string name="gpx_split_interval_none_descr">Elektu preferatan manieron de divido: laŭ tempo aŭ laŭ distanco.</string>
<string name="shared_string_custom">Propra</string>
<string name="gpx_direction_arrows">Sagetoj de direkto</string>
<string name="track_coloring_solid">Plena</string>
<string name="plan_route_import_track">Enporti spuron</string>
<string name="plan_route_open_existing_track">Malfermi ekzistan spuron</string>
<string name="plan_route_create_new_route">Krei novan kurson</string>
<string name="plan_route_select_track_file_for_open">Elekti dosieron de spuro por malfermi.</string>
<string name="shared_string_done">Farita</string>
</resources>

View file

@ -69,7 +69,7 @@
<string name="poi_bed">Colchonería;Muebles de dormitorio</string>
<string name="poi_boutique">Boutique de moda</string>
<string name="poi_carpet">Alfombras</string>
<string name="poi_charity">Negocio benéfico</string>
<string name="poi_charity">Tienda de caridad</string>
<string name="poi_chemist">Higiene personal y del hogar</string>
<string name="poi_clothes">Tienda de ropa</string>
<string name="poi_clothes_children">Infantil</string>
@ -1175,7 +1175,7 @@
<string name="poi_pump_powered">Automática</string>
<string name="poi_pump_no">Sin bomba</string>
<string name="poi_water_characteristic_mineral">Mineralizada</string>
<string name="poi_water_characteristic_mud">Característica del agua: lodosa</string>
<string name="poi_water_characteristic_mud">Lodazal</string>
<string name="poi_water_characteristic_sulfuric">Sulfúrica</string>
<string name="poi_water_point">Toma de agua</string>
<string name="poi_species">Especie</string>
@ -1868,7 +1868,7 @@
<string name="poi_fuel_100ll">100LL (con plomo, para aviones)</string>
<string name="poi_fuel_autogas">Autogas (Etanol libre de plomo)</string>
<string name="poi_fuel_jeta1">Jet A-1 (diésel)</string>
<string name="poi_fuel_adblue">AdBlue</string>
<string name="poi_fuel_adblue">Aditivo para escapes de Diesel (AdBlue)</string>
<string name="poi_fuel_wood">Combustible: madera</string>
<string name="poi_fuel_charcoal">Combustible: carbón vegetal</string>
<string name="poi_fuel_coal">Combustible: carbón</string>

View file

@ -3095,10 +3095,10 @@
<string name="routing_profile_geocoding">Geocodificación</string>
<string name="routing_profile_straightline">Línea recta</string>
<string name="routing_profile_broutrer">BRouter (sin conexión)</string>
<string name="osmand_default_routing">Enrutamiento de OsmAnd</string>
<string name="custom_routing">Perfil de enrutamiento personalizado</string>
<string name="special_routing_type">Enrutamiento especial</string>
<string name="third_party_routing_type">Enrutamiento de terceros</string>
<string name="osmand_default_routing">Navegación de OsmAnd</string>
<string name="custom_routing">Perfil de navegación personalizado</string>
<string name="special_routing_type">Navegación especial</string>
<string name="third_party_routing_type">Navegación de terceros</string>
<string name="application_profiles_descr">Perfiles que serán visibles en la aplicación.</string>
<string name="application_profiles">Perfiles de la aplicación</string>
<string name="zoom_by_wunderlinq_descr">Cambia el zoom del mapa desplazando la rueda hacia arriba y abajo. La tecla «Escape» retrocede a la aplicación WunderLINQ.</string>
@ -3346,13 +3346,13 @@
\n
\n • Arreglos en el modo nocturno
\n
\n • Se corrigieron algunos problemas de enrutamiento en todo el mundo
\n • Se corrigieron algunos problemas de navegación en todo el mundo
\n
\n • Se ha actualizado el mapa base con más detalles en la red de caminos.
\n
\n • Se corrigieron las zonas inundadas en todo el mundo
\n
\n • Enrutamiento de esquí: perfil de elevación y complejidad de la ruta añadidos a los detalles de la ruta
\n • Navegación de esquí: perfil de elevación y complejidad de la ruta añadidos a los detalles de la ruta
\n
\n • Otras correcciones de errores
\n
@ -3534,7 +3534,7 @@
\nEl complemento permanecerá en el dispositivo después de desinstalar OsmAnd.</string>
<string name="shared_string_menu">Menú</string>
<string name="ltr_or_rtl_triple_combine_via_dash">%1$s → %2$s → %3$s</string>
<string name="shared_string_routing">Enrutamiento</string>
<string name="shared_string_routing">Navegación</string>
<string name="shared_string_include_data">Incluir datos adicionales</string>
<string name="import_profile_dialog_description">El perfil importado contiene datos adicionales. Pulsa en «Importar» para importar sólo datos de perfil o marca datos adicionales.</string>
<string name="export_profile_dialog_description">Puedes marcar datos adicionales para exportar junto con el perfil.</string>
@ -3829,4 +3829,12 @@
<string name="route_between_points">Ruta entre puntos</string>
<string name="plan_a_route">Crear una ruta</string>
<string name="add_to_a_track">Añadir a una traza</string>
<string name="add_hidden_group_info">El punto añadido no será visible en el mapa, ya que el grupo elegido está oculto, se puede encontrar en «%s».</string>
<string name="track_show_start_finish_icons">Mostrar los iconos de inicio y fin</string>
<string name="select_track_width">Elegir la anchura</string>
<string name="gpx_split_interval_descr">Marca el intervalo en el que se mostrarán las marcas con distancia o tiempo en la traza.</string>
<string name="gpx_split_interval_none_descr">Marca la opción de división deseada: por tiempo o por distancia.</string>
<string name="shared_string_custom">Personalizado</string>
<string name="gpx_direction_arrows">Flechas de dirección</string>
<string name="track_coloring_solid">Sólido</string>
</resources>

View file

@ -69,7 +69,7 @@
<string name="poi_bed">Colchonería;Muebles de dormitorio</string>
<string name="poi_boutique">Boutique de moda</string>
<string name="poi_carpet">Alfombras</string>
<string name="poi_charity">Negocio benéfico</string>
<string name="poi_charity">Tienda de caridad</string>
<string name="poi_chemist">Higiene personal y del hogar</string>
<string name="poi_clothes">Tienda de ropa</string>
<string name="poi_clothes_children">Infantil</string>
@ -1175,7 +1175,7 @@
<string name="poi_pump_powered">Automática</string>
<string name="poi_pump_no">Sin bomba</string>
<string name="poi_water_characteristic_mineral">Mineralizada</string>
<string name="poi_water_characteristic_mud">Característica del agua: lodosa</string>
<string name="poi_water_characteristic_mud">Lodazal</string>
<string name="poi_water_characteristic_sulfuric">Sulfúrica</string>
<string name="poi_water_point">Toma de agua</string>
<string name="poi_species">Especie</string>
@ -1868,7 +1868,7 @@
<string name="poi_fuel_100ll">100LL (con plomo, para aviones)</string>
<string name="poi_fuel_autogas">Autogas (Etanol libre de plomo)</string>
<string name="poi_fuel_jeta1">Jet A-1 (diésel)</string>
<string name="poi_fuel_adblue">AdBlue</string>
<string name="poi_fuel_adblue">Aditivo para escapes de Diesel (AdBlue)</string>
<string name="poi_fuel_wood">Combustible: madera</string>
<string name="poi_fuel_charcoal">Combustible: carbón vegetal</string>
<string name="poi_fuel_coal">Combustible: carbón</string>

View file

@ -2078,7 +2078,7 @@
<string name="shared_string_record">Grabar</string>
<string name="gpx_logging_no_data">Sin datos</string>
<string name="trip_rec_notification_settings">Activar la grabación rápida</string>
<string name="trip_rec_notification_settings_desc">Muestra una notificación del sistema que permite la grabación del viaje.</string>
<string name="trip_rec_notification_settings_desc">Muestra una notificación del sistema que permite iniciar la grabación del viaje.</string>
<string name="shared_string_notifications">Notificaciones</string>
<string name="gpx_no_tracks_title">Sin archivos GPX aún</string>
<string name="gpx_no_tracks_title_folder">También puedes añadir archivos GPX a la carpeta</string>
@ -2644,7 +2644,7 @@
<string name="av_locations_all_desc">Archivo GPX con coordenadas y datos de todas las notas.</string>
<string name="shared_string_actions">Acciones</string>
<string name="shared_string_marker">Marcador</string>
<string name="osm_recipient_stat">\'%1$s ediciones, suman %2$s mBTC\'</string>
<string name="osm_recipient_stat">%1$s ediciones, suman %2$s mBTC</string>
<string name="osm_recipients_label">Destinatarios de OSM</string>
<string name="total_donations">Total de donaciones</string>
<string name="shared_string_without_name">Sin nombre</string>
@ -3095,10 +3095,10 @@
<string name="routing_profile_geocoding">Geocodificación</string>
<string name="routing_profile_straightline">Línea recta</string>
<string name="routing_profile_broutrer">BRouter (sin conexión)</string>
<string name="osmand_default_routing">Enrutamiento de OsmAnd</string>
<string name="custom_routing">Perfil de enrutamiento personalizado</string>
<string name="special_routing_type">Enrutamiento especial</string>
<string name="third_party_routing_type">Enrutamiento de terceros</string>
<string name="osmand_default_routing">Navegación de OsmAnd</string>
<string name="custom_routing">Perfil de navegación personalizado</string>
<string name="special_routing_type">Navegación especial</string>
<string name="third_party_routing_type">Navegación de terceros</string>
<string name="application_profiles_descr">Perfiles que serán visibles en la aplicación.</string>
<string name="application_profiles">Perfiles de la aplicación</string>
<string name="zoom_by_wunderlinq_descr">Cambia el zoom del mapa desplazando la rueda hacia arriba y abajo. La tecla «Escape» retrocede a la aplicación WunderLINQ.</string>
@ -3346,16 +3346,16 @@
\n
\n • Arreglos en el modo nocturno
\n
\n • Se corrigieron algunos problemas de enrutamiento en todo el mundo
\n • Se corrigieron algunos problemas de navegación en todo el mundo
\n
\n • Se ha actualizado el mapa base con más detalles en la red de caminos.
\n
\n • Se corrigieron las zonas inundadas en todo el mundo
\n
\n • Enrutamiento de esquí: perfil de elevación y complejidad de la ruta añadidos a los detalles de la ruta
\n
\n • Otras correcciones de errores
\n • Navegación de esquí: perfil de elevación y complejidad de la ruta añadidos a los detalles de la ruta
\n
\n • Otras correcciones de errores
\n
\n</string>
<string name="apply_preference_to_all_profiles">Puedes aplicar este cambio a todos los perfiles o sólo al marcado.</string>
<string name="shared_preference">Compartido</string>
@ -3534,7 +3534,7 @@
\nEl complemento permanecerá en el dispositivo después de desinstalar OsmAnd.</string>
<string name="shared_string_menu">Menú</string>
<string name="ltr_or_rtl_triple_combine_via_dash">%1$s → %2$s → %3$s</string>
<string name="shared_string_routing">Enrutamiento</string>
<string name="shared_string_routing">Navegación</string>
<string name="shared_string_include_data">Incluir datos adicionales</string>
<string name="import_profile_dialog_description">El perfil importado contiene datos adicionales. Pulsa en «Importar» para importar sólo datos de perfil o marca datos adicionales.</string>
<string name="export_profile_dialog_description">Puedes marcar datos adicionales para exportar junto con el perfil.</string>
@ -3818,4 +3818,20 @@
<string name="lenght_limit_description">Proporciona la longitud del vehículo, se pueden aplicar algunas restricciones de rutas para vehículos largos.</string>
<string name="app_mode_motor_scooter">Motoneta (motor)</string>
<string name="app_mode_enduro_motorcycle">Motocicleta de enduro</string>
<string name="track_show_start_finish_icons">Mostrar los iconos de inicio y fin</string>
<string name="track_coloring_solid">Sólido</string>
<string name="shared_string_custom">Personalizado</string>
<string name="set_working_days_to_continue">Debes definir los días laborales para continuar</string>
<string name="select_track_width">Elegir la anchura</string>
<string name="route_between_points">Ruta entre puntos</string>
<string name="plan_a_route">Crear una ruta</string>
<string name="osm_edit_closed_note">Nota de OSM cerrada</string>
<string name="gpx_split_interval_none_descr">Marca la opción de división deseada: por tiempo o por distancia.</string>
<string name="gpx_split_interval_descr">Marca el intervalo en el que se mostrarán las marcas con distancia o tiempo en la traza.</string>
<string name="gpx_direction_arrows">Flechas de dirección</string>
<string name="app_mode_wheelchair_forward">Silla de ruedas (hacia adelante)</string>
<string name="app_mode_wheelchair">Silla de ruedas</string>
<string name="app_mode_go_cart">Go-kart</string>
<string name="add_to_a_track">Añadir a una traza</string>
<string name="add_hidden_group_info">El punto añadido no será visible en el mapa, ya que el grupo elegido está oculto, se puede encontrar en «%s».</string>
</resources>

View file

@ -1451,4 +1451,5 @@
<string name="poi_access_caravan">دسترسی کاروان</string>
<string name="poi_access_bus">دسترسی اتوبوس</string>
<string name="poi_climbing_crag">بله</string>
<string name="poi_protected_area">منطقهٔ حفاظت‌شده</string>
</resources>

View file

@ -1739,7 +1739,7 @@
<string name="poi_pharmacy_dispensing">Dispensa receitas médicas</string>
<string name="poi_scout_camp">Campamento de exploradores</string>
<string name="poi_backcountry">Acampada libre</string>
<string name="poi_drive_in">Conducir por dentro</string>
<string name="poi_drive_in">Compra dende o coche</string>
<string name="poi_drive_through">Servizo no automóbil</string>
<string name="poi_microbrewery">Cervexaría artesanal</string>
<string name="poi_seasonal">Estacional</string>
@ -1996,7 +1996,7 @@
<string name="poi_animal_shelter_fish">Peixes</string>
<string name="poi_backrest_no">Respaldo: non</string>
<string name="poi_deadlock">Sen saída</string>
<string name="poi_water_characteristic_mud">Trazos da auga: lama</string>
<string name="poi_water_characteristic_mud">Lama</string>
<string name="poi_information_trail_blaze">Marcaxe do camiño</string>
<string name="poi_information_route_marker">Marcaxe de ruta</string>
<string name="poi_toll_hgv_yes">Portaxe ou peaxe para camións</string>
@ -2382,7 +2382,7 @@
<string name="poi_fuel_100ll">Combustíbel 100LL</string>
<string name="poi_fuel_autogas">Autogas</string>
<string name="poi_fuel_jeta1">Combustíbel Jet A-1</string>
<string name="poi_fuel_adblue">Combustíbel AdBlue</string>
<string name="poi_fuel_adblue">Aditivo para escapes de diesel</string>
<string name="poi_fuel_wood">Combustíbel: madeira</string>
<string name="poi_fuel_charcoal">Combustíbel: carbón vexetal</string>
<string name="poi_fuel_coal">Combustíbel: carbón</string>

View file

@ -3851,4 +3851,12 @@ Lon %2$s</string>
<string name="route_between_points">Ruta entre puntos</string>
<string name="plan_a_route">Planificar unha ruta</string>
<string name="add_to_a_track">Engadir a unha pista</string>
<string name="add_hidden_group_info">O punto engadido non será visíbel no mapa, xa que o grupo escollido está agochado, pódese atopar en \"%s\".</string>
<string name="track_show_start_finish_icons">Amosar iconas de comezo e final</string>
<string name="select_track_width">Seleccionar largura</string>
<string name="gpx_split_interval_descr">Selecciona o intre no cal as marcas con distancia ou tempo na pista serán amosadas.</string>
<string name="gpx_split_interval_none_descr">Selecciona a opción de división desexada: por tempo ou por distancia.</string>
<string name="shared_string_custom">Personalizado</string>
<string name="gpx_direction_arrows">Frechas de dirección</string>
<string name="track_coloring_solid">Sólido</string>
</resources>

View file

@ -2984,7 +2984,7 @@
\n</string>
<string name="use_osm_live_public_transport_description">Attiva le modifiche al trasporto pubblico in tempo reale con OsmAnd Live.</string>
<string name="by_transport_type">In %1$s</string>
<string name="exit_at">Scendi a</string>
<string name="exit_at">Esci a</string>
<string name="sit_on_the_stop">Sali alla fermata</string>
<string name="shared_string_swap">Inverti</string>
<string name="quick_action_show_hide_gpx_tracks_descr">Questo pulsante mostra o nasconde le tracce GPX selezionate sulla mappa</string>
@ -3765,7 +3765,7 @@
<string name="lang_lmo">Lombardo</string>
<string name="custom_color">Colori personalizzati</string>
<string name="search_poi_types">Cerca in base al PDI</string>
<string name="export_import_quick_actions_with_profiles_promo">Puoi Esportare o importare le azioni veloci con i profili dell\'applicazione.</string>
<string name="export_import_quick_actions_with_profiles_promo">Puoi esportare o importare le azioni veloci con i profili dell\'applicazione.</string>
<string name="shared_string_delete_all_q">Cancellare tutto\?</string>
<string name="delete_all_actions_message_q">Sei sicuro di volere cancellare definitivamente %d le azioni rapide\?</string>
<string name="screen_timeout">Tempo del blocco schermo</string>
@ -3778,13 +3778,13 @@
<string name="shared_string_night_map">Mappa notturna</string>
<string name="shared_string_tones">toni</string>
<string name="add_online_source">Aggiungi sorgente online</string>
<string name="clear_tiles_warning">Applicando questi cambiamenti i dati memorizzati nella cache verranno cancellati per questa sorgente di mattonelle</string>
<string name="clear_tiles_warning">Applicando questi cambiamenti, i dati memorizzati nella cache verranno cancellati per questa sorgente di mattonelle</string>
<string name="vessel_height_warning_link">Imposta l\'altezza dell\'imbarcazione</string>
<string name="vessel_height_warning">Puoi mpostare l\'altezza dell\'imbarcazione per evitare ponti bassi. Ricorda che, se il ponte è mobile, useremo la sua altezza da aperto.</string>
<string name="vessel_height_limit_description">Imposta l\'altezza dell\'imbarcazione per evitare ponti bassi. Ricorda che, se il ponte è mobile, useremo la sua altezza da aperto.</string>
<string name="vessel_width_limit_description">Imposta la larghezza della\"imbarcazione per evitare i ponti stretti</string>
<string name="quick_action_showhide_mapillary_title">Mostra/nascondi Mapillary</string>
<string name="quick_action_mapillary_hide">Nascondi Mapilly</string>
<string name="quick_action_mapillary_hide">Nascondi Mapillary</string>
<string name="quick_action_mapillary_show">Mostra Mapillary</string>
<string name="quick_action_showhide_mapillary_descr">Un pulsante per visualizzare nella mappa o nascondere il livello Mapillary .</string>
<string name="lenght_limit_description">Fornisci la lunghezza del tuo veicolo, alcune restrizioni di percorso potrebbero essere applicate per veicoli.</string>
@ -3800,10 +3800,10 @@
\nScegliendo %2$s. Tutti i dati relativi agli autovelox: avvisi, notifiche, PDI saranno cancellati fino a che OsmAnd non sarà completamente reinstallato.</string>
<string name="keep_active">Mantieni attivo</string>
<string name="shared_string_uninstall">Disinstalla</string>
<string name="speed_cameras_alert">Gli avvisi sulla presenza di autovelox in alcuni paesi è proibita dalla legge.</string>
<string name="speed_cameras_alert">Gli avvisi sulla presenza di autovelox in alcuni paesi sono proibiti dalla legge.</string>
<string name="routing_attr_length_description">Specifica la lunghezza del veicolo permessa nei percorsi.</string>
<string name="routing_attr_length_name">Lunghezza massima</string>
<string name="shared_string_bearing">Bussola</string>
<string name="shared_string_bearing">Direzione</string>
<string name="item_deleted">%1$s cancellato</string>
<string name="speed_cameras_restart_descr">Il riavvio è necessario per cancellare completamente i dati degli autovelox.</string>
<string name="shared_string_uninstall_and_restart">Disinstalla e Riavvia</string>
@ -3821,5 +3821,23 @@
<string name="app_mode_wheelchair">Sedia a rotelle</string>
<string name="app_mode_go_cart">Go-kart</string>
<string name="osm_edit_closed_note">Chiudi la nota OSM</string>
<string name="app_mode_wheelchair_forward">Sedia a rotelle</string>
<string name="app_mode_wheelchair_forward">Sedia a rotelle in avanti</string>
<string name="add_hidden_group_info">Il punto aggiunto non sarà visibile sulla mappa, dato che il gruppo selezionato è nascosto, puoi trovarlo in \"%s\".</string>
<string name="route_between_points">Percorso tra i punti</string>
<string name="track_show_start_finish_icons">Mostra le icone di inizio e fine</string>
<string name="shared_string_custom">Personalizzato</string>
<string name="track_coloring_solid">Solido</string>
<string name="set_working_days_to_continue">Devi impostare i giorni lavorativi per continuare</string>
<string name="plan_a_route">Pianifica un percorso</string>
<string name="add_to_a_track">Aggiungi ad una Traccia</string>
<string name="gpx_split_interval_descr">Seleziona l\'intervallo a cui i segnaposti con distanza o orario sulla traccia verranno mostrati.</string>
<string name="gpx_split_interval_none_descr">Seleziona l\'opzione desiderata per la divisione: per tempo o per distanza.</string>
<string name="gpx_direction_arrows">Frecce delle direzioni</string>
<string name="select_track_width">Seleziona larghezza</string>
<string name="plan_route_last_edited">Ultima modificata</string>
<string name="plan_route_import_track">Importa una traccia</string>
<string name="plan_route_open_existing_track">Apri una traccia esistente</string>
<string name="plan_route_create_new_route">Crea un nuovo percorso</string>
<string name="plan_route_select_track_file_for_open">Scegli il file di una traccia da aprire.</string>
<string name="shared_string_done">Fatto</string>
</resources>

View file

@ -594,7 +594,7 @@
<string name="choose_available_region">Izvēlieties reģionu</string>
<string name="choose_intersected_street">Izvēlēties krustojumu</string>
<string name="Closest_Amenities">Tuvākie pakalpojumi</string>
<string name="app_mode_default">Atvērt karti</string>
<string name="app_mode_default">Skatīt karti</string>
<string name="app_mode_car">Auto</string>
<string name="app_mode_bicycle">Velobraucējs</string>
<string name="app_mode_pedestrian">Gājējs</string>
@ -1014,7 +1014,7 @@
<string name="app_modes_choose">Lietotāja režīmi</string>
<string name="app_modes_choose_descr">Izvēlētos lietotāja režīmus varēs lietot aplikācijā</string>
<string name="app_mode_hiking">Iet kājām</string>
<string name="app_mode_boat">Ūdens transports</string>
<string name="app_mode_boat">Peldlīdzekļi</string>
<string name="local_osm_changes_delete_all_confirm">Tiks izdzēsti %1$d osm labojumi. Vai turpināt?</string>
<string name="auto_zoom_none">Nav automātiskais mērogs</string>
<string name="index_name_openmaps">OpenMaps Eiropa</string>
@ -1037,7 +1037,7 @@
<string name="av_photo_play_sound">Atskaņot skaņu fotografējot</string>
<string name="av_photo_play_sound_descr">Izvēlieties vai atskaņot skaņu, nospiežot fotografēšanas pogu</string>
<string name="amenity_type_seamark">Bojas</string>
<string name="app_mode_aircraft">Aviācija</string>
<string name="app_mode_aircraft">Lidošana</string>
<string name="local_index_tile_data_expire">Derīgums (minūtēs): %1$s</string>
<string name="local_index_tile_data_name">Attēlu dati: %1$s</string>
<string name="edit_tilesource_successfully">Attēlu avots %1$s ir saglabāts</string>
@ -1220,7 +1220,7 @@
<string name="index_tours">Braucieni</string>
<string name="shared_string_all">Visi</string>
<string name="shared_string_waypoints">Ceļapunkti</string>
<string name="rendering_value_browse_map_name">Atvērt karti</string>
<string name="rendering_value_browse_map_name">Skatīt karti</string>
<string name="rendering_value_car_name">Auto</string>
<string name="rendering_value_bicycle_name">Velobraucējs</string>
<string name="rendering_value_pedestrian_name">Gājējs</string>
@ -1311,7 +1311,7 @@
<string name="map_widget_right">Labā puse</string>
<string name="map_widget_left">Kreisā puse</string>
<string name="shared_string_show">Rādīt</string>
<string name="configure_map">Kartes detaļas</string>
<string name="configure_map">Kartes detalizācija</string>
<string name="anonymous_user">Anonīms lietotājs</string>
<string name="anonymous_user_hint">Anonīms lietotājs nevar:
- izveidot grupas
@ -1642,7 +1642,7 @@
<string name="shared_string_qr_code">QR-kods</string>
<string name="map_downloaded">Karte ir lejupielādēta</string>
<string name="map_downloaded_descr">%1$s karte ir lejupielādēta un gatava lietošanai.</string>
<string name="go_to_map">Atvērt karti</string>
<string name="go_to_map">Kartes pārlūks</string>
<string name="simulate_initial_startup_descr">Liek aplikācijai palaisties kā pirmo reizi pēc instalācijas, saglabājot visus iestatījumus.</string>
<string name="simulate_initial_startup">Simulēt pirmo palaišanu</string>
<string name="share_geo">ģeo:</string>
@ -2480,7 +2480,7 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="measurement_tool_snap_to_road_descr">OsmAnd apvienos punktus ar maršrutiem izvēlētajam profilam.</string>
<string name="measurement_tool_save_as_new_track_descr">Saglabā punktus kā maršruta punktus vai kā līniju.</string>
<string name="measurement_tool_action_bar">Pārlūkojiet karti un pievienojiet punktus</string>
<string name="measurement_tool">Mērīt attālumu</string>
<string name="measurement_tool">Attāluma mērīšana</string>
<string name="tap_on_map_to_hide_interface_descr">Pieskāriens uz kartes ieslēdz pogas un logrīkus.</string>
<string name="tap_on_map_to_hide_interface">Pilnekrāna režīms</string>
<string name="mark_passed">Atzīmēt izietos</string>
@ -2596,9 +2596,9 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="app_mode_offroad">Bezceļa</string>
<string name="edit_profile_setup_title">Profila iestatīšana</string>
<string name="edit_profile_setup_subtitle">Katram profilam ir atsevišķi iestatījumi</string>
<string name="edit_profile_setup_map_subtitle">Iestatiet noklusētās kartes opcijas profilam</string>
<string name="edit_profile_screen_options_subtitle">Iestatiet noklusētās ekrāna opcijas profilam</string>
<string name="edit_profile_nav_settings_subtitle">Iestatiet noklusētos navigācijas iestatījumus profilam</string>
<string name="edit_profile_setup_map_subtitle">izvēlieties kartes iestatījumus profilam</string>
<string name="edit_profile_screen_options_subtitle">Izvēlieties ekrāna iestatījumus profilam</string>
<string name="edit_profile_nav_settings_subtitle">Izvēlieties navigācijas iestatījumus profilam</string>
<string name="routing_attr_max_num_changes_description">Norādiet maksimālo daudzumu izmaiņām</string>
<string name="routing_attr_max_num_changes_name">Izmaiņu daudzums</string>
<string name="turn_screen_on_router">Pamodināt pagriezienos</string>
@ -2820,19 +2820,19 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="settings_derived_routing_mode_string">Lietotāja režīms, iegūts no: %s</string>
<string name="routing_profile_ski">Slēpes</string>
<string name="profile_type_descr_string">Veids: %s</string>
<string name="profile_type_base_string">Pamata profils</string>
<string name="profile_type_base_string">Bāzes profils</string>
<string name="profile_alert_need_routing_type_title">Izvēlieties navigācijas veidu</string>
<string name="profile_alert_need_routing_type_msg">Lūdzu izvēlieties navigācijas veidu jaunajam lietotnes profilam</string>
<string name="profile_alert_need_profile_name_title">Ievadiet profila vārdu</string>
<string name="profile_alert_need_profile_name_msg">Profila vārds nedrīkst būt tukšs!</string>
<string name="profile_alert_duplicate_name_title">Dublikāts</string>
<string name="profile_alert_duplicate_name_msg">Šāds profils jau eksistē</string>
<string name="profile_alert_cant_delete_base">Jūs nevarat izdzēst OsmAnd pamata profilus</string>
<string name="profile_alert_cant_delete_base">Jūs nevarat dzēst OsmAnd bāzes profilus</string>
<string name="profile_alert_need_save_title">Saglabāt izmaiņas</string>
<string name="profile_alert_need_save_msg">Pirms turpināšanas vispirms saglabājiet izmaiņas profilā</string>
<string name="profile_alert_delete_title">Izdzēst profilu</string>
<string name="profile_alert_delete_msg">Vai esiet pārliecināts, ka vēlaties izdzēst %s profilu</string>
<string name="select_base_profile_dialog_title">Atzīmējiet pamata profilu</string>
<string name="select_base_profile_dialog_title">Izvēlieties sākuma profilu</string>
<string name="select_base_profile_dialog_message">Balstiet savu profilu uz vienu no noklusētajiem profiliem, kas definēs tādus pamata iestatījumus kā logrīku redzamību un attāluma vai ātruma mērvienības. Šie ir noklusētie lietotnes profili, kopā ar lietotāja veidotajiem profiliem tie var tikt paplašināti uz:</string>
<string name="select_nav_profile_dialog_title">Izvēlieties navigācijas veidu</string>
<string name="base_profile_descr_car">"Auto, kravas auto, motocikls"</string>
@ -2861,7 +2861,7 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="gpx_join_gaps">Savienot pārrāvumus</string>
<string name="app_mode_camper">Treileris</string>
<string name="app_mode_campervan">Autofurgons</string>
<string name="temporary_conditional_routing">Ņemt vērā īslaicīgus ierobežojumus</string>
<string name="temporary_conditional_routing">Ņemt vērā īslaicīgos ierobežojumus</string>
<string name="shared_string_default">Standarta</string>
<string name="app_mode_pickup_truck">Pikaps</string>
<string name="day">Diena</string>
@ -3186,7 +3186,7 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="switch_profile">Mainīt profilu</string>
<string name="language_and_output">Valoda un izvade</string>
<string name="reset_to_default">Atiestatīt uz noklusējumiem</string>
<string name="manage_profiles_descr">Veidot, importēt un labot profilus</string>
<string name="manage_profiles_descr">Veidot, importēt un rediģēt profilus</string>
<string name="manage_profiles">Pārvaldīt lietotnes profilus…</string>
<string name="osmand_settings_descr">Ietekmē visu aplikāciju</string>
<string name="osmand_settings">OsmAnd iestatījumi</string>
@ -3285,4 +3285,10 @@ No Afganistānas līdz Zimbabvei, no Austrālijas līdz ASV, Argentīna, Brazīl
<string name="profile_import_descr">Pievienot profilu, atverot tā failu ar OsmAnd.</string>
<string name="file_import_error">%1$s importēšanas kļūda: %2$s</string>
<string name="file_imported_successfully">%1$s importēti.</string>
<string name="shared_string_revert">Atjaunot</string>
<string name="reorder_profiles">Rediģēt profilu sarakstu</string>
<string name="edit_profiles">Rediģēt profilus</string>
<string name="edit_profiles_descr">"OsmAnd pamata profilus nevar izdzēst, bet atspējot (no iepriekšējā ekrāna) vai pārkārtot uz leju."</string>
<string name="selected_profile">Izvēlētais profils</string>
<string name="shared_string_nothing_selected">Nekas nav izvēlēts</string>
</resources>

View file

@ -66,7 +66,7 @@
<string name="poi_bed">Loja de roupa de cama</string>
<string name="poi_boutique">Butique</string>
<string name="poi_carpet">Loja de tapetes</string>
<string name="poi_charity">Brechó beneficente</string>
<string name="poi_charity">Loja de caridade</string>
<string name="poi_chemist">Drogaria</string>
<string name="poi_clothes">Loja de roupas</string>
<string name="poi_clothes_children">Vestuário infantil</string>
@ -1171,7 +1171,7 @@
<string name="poi_pump_powered">Elétrica</string>
<string name="poi_pump_no">Sem bomba</string>
<string name="poi_water_characteristic_mineral">Mineral</string>
<string name="poi_water_characteristic_mud">Característica d\'água: barrenta</string>
<string name="poi_water_characteristic_mud">Lama</string>
<string name="poi_water_characteristic_sulfuric">Sulfurosa</string>
<string name="poi_water_point">Ponto de água</string>
<string name="poi_cooling_tower">Torre de resfriamento</string>
@ -1881,7 +1881,7 @@
<string name="poi_fuel_100ll">Combustível 100LL</string>
<string name="poi_fuel_autogas">Autogás (GPL)</string>
<string name="poi_fuel_jeta1">Combustível Jet A-1</string>
<string name="poi_fuel_adblue">Combustível AdBlue</string>
<string name="poi_fuel_adblue">Fluido de escape diesel</string>
<string name="poi_crop_grass">Cultivo: grama</string>
<string name="poi_crop_corn">Cultivo: milho</string>
<string name="poi_crop_cereal">Cultivo: cereais</string>

View file

@ -286,7 +286,7 @@
<string name="poi_fee">Taxa</string>
<string name="poi_smoking">Fumar</string>
<string name="poi_delivery">Entrega</string>
<string name="poi_drive_in">Drive - in</string>
<string name="poi_drive_in">Drive-in</string>
<string name="poi_drive_through">Drive - through</string>
<string name="poi_takeaway">Serviço de take-away</string>
<string name="poi_cocktails">Cocktails</string>
@ -1386,7 +1386,7 @@
<string name="poi_pump_no">Sem bomba</string>
<string name="poi_pump_yes">Sim</string>
<string name="poi_water_characteristic_mineral">Mineral</string>
<string name="poi_water_characteristic_mud">Característica d\'água: barrenta</string>
<string name="poi_water_characteristic_mud">Lama</string>
<string name="poi_water_characteristic_sulfuric">Sulfurosa</string>
<string name="poi_water_point">Ponto de água</string>
<string name="poi_information_guidepost">Poste com direções</string>
@ -1785,7 +1785,7 @@
<string name="poi_memorial_koshinto">Koshinto</string>
<string name="poi_memorial_blue_plaque">Placa azul</string>
<string name="poi_memorial_jizo">Jizo</string>
<string name="poi_memorial_cross">Cruzeiro</string>
<string name="poi_memorial_cross">Em forma cruzada</string>
<string name="poi_memorial_vehicle">Veículo</string>
<string name="poi_memorial_stolperstein">Stolpersteine</string>
<string name="poi_memorial_obelisk">Obelisco</string>
@ -2069,7 +2069,7 @@
<string name="poi_fuel_100ll">Combustível 100LL</string>
<string name="poi_fuel_autogas">Autogás (GPL)</string>
<string name="poi_fuel_jeta1">Combustível Jet A-1</string>
<string name="poi_fuel_adblue">Combustível AdBlue</string>
<string name="poi_fuel_adblue">Fluido de escape diesel</string>
<string name="poi_fuel_wood">Combustível: madeira</string>
<string name="poi_fuel_charcoal">Combustível: carvão vegetal</string>
<string name="poi_fuel_coal">Combustível: carvão</string>
@ -3814,4 +3814,7 @@
<string name="poi_traffic_signals_vibration_no">Vibração: não</string>
<string name="poi_traffic_signals_arrow">Seta</string>
<string name="poi_traffic_signals_vibration">Vibração</string>
<string name="poi_city_block">Quarteirão</string>
<string name="poi_borough">Bairro</string>
<string name="poi_give_box">Give-box</string>
</resources>

View file

@ -41,15 +41,15 @@
<string name="reading_cached_tiles">Lendo cache de imagens…</string>
<string name="version_index_is_big_for_memory">O índice \'\'{0}\'\' não coube na memória</string>
<string name="version_index_is_not_supported">A versão do índice \'\'{0}\'\' não é suportada</string>
<string name="voice_is_not_available_msg">Não existe orientação vocal disponível, aceda a \"Definições\" → \"Definições de navegação\" → \"Orientação vocal\" e selecione ou descarregue um pacote de instruções vocais.</string>
<string name="voice_is_not_available_title">Nenhum dado de voz especificado</string>
<string name="voice_is_not_available_msg">Não existe orientação vocal disponível, aceda a \"Definições\" → \"Definições de navegação\", selecione o perfil → \"Orientação vocal\" e selecione ou descarregue um pacote de instruções vocais.</string>
<string name="voice_is_not_available_title">Selecione um pacote de avisos de voz</string>
<string name="trace_rendering_descr">Mostrar o desempenho da renderização.</string>
<string name="trace_rendering">Mostrar velocidade de renderização</string>
<string name="daynight_mode_day">Dia</string>
<string name="daynight_mode_night">Noite</string>
<string name="daynight_mode_auto">Nascer/Pôr-do-Sol</string>
<string name="daynight_mode_sensor">Sensor de luz</string>
<string name="daynight_descr">Selecione a lógica para alternar entre o modo nocturno e diurno.</string>
<string name="daynight_descr">Ajuste alternar entre o modo noturno e diurno.</string>
<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>
@ -66,17 +66,17 @@
<string name="fast_route_mode_descr">Ativar para calcular a rota mais rápida ou desativar para a rota de poupança de combustível.</string>
<string name="tiles_to_download_estimated_size">Ampliação {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="select_max_zoom_preload_area">Ampliação máxima a pré-carregar</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>
<string name="rendering_exception">Não foi possível desenhar a área selecionada.</string>
<string name="rendering_out_of_memory">Não há memória suficiente para mostrar a área selecionada</string>
<string name="show_point_options">Usar localização…</string>
<string name="renderer_load_sucess">O motor de renderização foi carregado</string>
<string name="renderer_load_exception">Não foi possível carregar o renderizador</string>
<string name="renderer_load_exception">Não foi possível carregar o renderizador.</string>
<string name="renderers">Renderizadores de vetor</string>
<string name="renderers_descr">Escolha a aparência dos mapas vetoriais.</string>
<string name="renderers_descr">Escolha a aparência de renderização</string>
<string name="poi_context_menu_website">Veja o site do POI</string>
<string name="poi_context_menu_call">Mostrar o número de telefone do POI</string>
<string name="website">Site</string>
@ -94,7 +94,7 @@
<string name="gpx_option_reverse_route">Caminho reverso</string>
<string name="gpx_files_not_found">Nenhum ficheiro GPX encontrado na pasta tracks</string>
<string name="layer_gpx_layer">Ficheiros GPX…</string>
<string name="error_reading_gpx">Não foi possível ler dados GPX</string>
<string name="error_reading_gpx">Não foi possível ler os dados de GPX.</string>
<string name="vector_data">Mapas vetoriais offline</string>
<string name="transport_context_menu">Procurar transporte na paragem</string>
<string name="poi_context_menu_modify">Modificar POI</string>
@ -102,7 +102,7 @@
<string name="rotate_map_compass_opt">Direção da bússola</string>
<string name="rotate_map_bearing_opt">Direção de movimento</string>
<string name="rotate_map_none_opt">Sem rotação (norte sempre para cima)</string>
<string name="rotate_map_to_bearing_descr">Selecione como o mapa deve ser girado.</string>
<string name="rotate_map_to_bearing_descr">Alinhamento do mapa:</string>
<string name="rotate_map_to_bearing">Rotação do mapa</string>
<string name="show_route">Mostrar rota</string>
<string name="fav_imported_sucessfully">Favoritos importados</string>
@ -110,7 +110,7 @@
<string name="fav_saved_sucessfully">Favoritos guardados em {0}</string>
<string name="no_fav_to_save">Nenhum ponto favorito para guardar</string>
<string name="shared_string_import">Importar</string>
<string name="error_occurred_loading_gpx">Erro ao carregar o ficheiro GPX</string>
<string name="error_occurred_loading_gpx">Não foi possível carregar o GPX.</string>
<string name="send_report">Enviar o relatório</string>
<string name="none_region_found">Não foi possível encontrar mapas descarregados no cartão de memória.</string>
<string name="poi_namefinder_query_empty">Digite para encontrar um POI</string>
@ -123,7 +123,7 @@
<string name="layer_poi">Sobreposição de POI…</string>
<string name="layer_map">Fonte dos mapas…</string>
<string name="menu_layers">Camada de mapa</string>
<string name="context_menu_item_search_poi">Encontre um Ponto de Interesse</string>
<string name="context_menu_item_search_poi">Busca por POI</string>
<string name="use_trackball_descr">Utilize um aparelho trackball para mover o mapa.</string>
<string name="use_trackball">Use o cursor</string>
<string name="background_service_wait_int_descr">Definir o tempo limite para determinar a localização.</string>
@ -134,9 +134,9 @@
<string name="gps_provider">GPS</string>
<string name="int_seconds">segundos</string>
<string name="int_min">min.</string>
<string name="background_service_int_descr">Escolha um intervalo de atualização da sua posição no serviço em segundo plano.</string>
<string name="background_service_int_descr">Intervalo de ativar usado pelo serviço de fundo:</string>
<string name="background_service_int">Intervalo de posição GPS</string>
<string name="background_service_provider_descr">Escolha um provedor de localização para o serviço em segundo plano.</string>
<string name="background_service_provider_descr">Método de localização utilizado pelo serviço de fundo:</string>
<string name="background_service_provider">Provedor de localização</string>
<string name="background_router_service_descr">Rastreia a sua posição enquanto o ecrã está desligado.</string>
<string name="background_router_service">Executar OsmAnd em segundo plano</string>
@ -153,7 +153,7 @@
<string name="voice_data_initializing">Inicializando dados de voz…</string>
<string name="voice_data_not_supported">Os dados de voz utilizam uma versão não suportada</string>
<string name="voice_data_corrupted">Dados de voz corrompidos</string>
<string name="voice_data_unavailable">Dados de voz selecionados não estão acessíveis</string>
<string name="voice_data_unavailable">O pacote de avisos de voz selecionado não está acessível</string>
<string name="sd_unmounted">O cartão de memória está inacessível.
\nSerá impossível ver mapas ou procurar coisas.</string>
<string name="sd_mounted_ro">Cartão de memória está disponível só para leitura.
@ -178,7 +178,7 @@
<string name="map_orientation_landscape">Paisagem</string>
<string name="map_screen_orientation">Orientação do mapa</string>
<string name="map_screen_orientation_descr">Retrato, paisagem ou aparelho.</string>
<string name="opening_hours_not_supported">O formato do horário de abertura não pode ser alterado</string>
<string name="opening_hours_not_supported">Não é possível alterar o formato do horário de abertura.</string>
<string name="add_new_rule">Adicionar uma nova regra</string>
<string name="transport_Routes">Rotas</string>
<string name="transport_Stop">Paragem</string>
@ -197,8 +197,8 @@
<string name="show_transport_over_map">Mostrar paragens de transportes públicos</string>
<string name="hello">Aplicação de navegação OsmAnd</string>
<string name="update_poi_success">Atualização dos dados de POI ({0} foram carregados)</string>
<string name="update_poi_error_local">Não foi possível atualizar a lista de POIs locais</string>
<string name="update_poi_error_loading">Não foi possível carregar dados do servidor</string>
<string name="update_poi_error_local">Não foi possível atualizar a lista de POIs locais.</string>
<string name="update_poi_error_loading">Não foi possível carregar dados do servidor.</string>
<string name="update_poi_no_offline_poi_index">Não há dados offline para esta região</string>
<string name="update_poi_is_not_available_for_zoom">A ampliação permite-lhe atualizar os POIs</string>
<string name="context_menu_item_update_poi">Atualizar pontos de interesse</string>
@ -222,9 +222,9 @@
<string name="max_level_download_tile">Nível de zoom máx</string>
<string name="max_level_download_tile_descr">Não navegar em mapas on-line para níveis de ampliação 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_descr">Serviço de navegação on-line ou off-line.</string>
<string name="router_service">Serviço de navegação</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="sd_dir_not_accessible">A pasta de armazenamento não está acessível no cartão de memória!</string>
<string name="download_question">Quer descarregar {0} - {1} \?</string>
<string name="download_question_exist">Já existem dados offline para {0} ({1}). Atualizá-los ({2})\?</string>
<string name="address">Endereço</string>
@ -238,7 +238,7 @@
<string name="only_show">Mostrar rota</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="mark_final_location_first">Por favor, define o destino primeiro</string>
<string name="get_directions">Navegação</string>
<string name="gps_status_app_not_found">A aplicação do estado do GPS não está instalada. Pesquisar na loja de aplicações\?</string>
<string name="opening_hours">Horas de abertura</string>
@ -254,14 +254,14 @@
<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">Não foi possível guardar 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="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">Chegou ao seu destino</string>
<string name="arrived_at_destination">Chegou.</string>
<string name="invalid_locations">Coordenadas inválidas</string>
<string name="go_back_to_osmand">Voltar ao mapa do OsmAnd</string>
<string name="go_back_to_osmand">Voltar ao mapa</string>
<string name="shared_string_close">Fechar</string>
<string name="loading_data">Carregando dados…</string>
<string name="reading_indexes">Lendo dados locais…</string>
@ -271,7 +271,7 @@
<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">A sua palavra-passe no OSM</string>
<string name="osm_settings_descr">Especifique as configurações de OpenStreetMap.org (OSM) necessárias para envios OSM.</string>
<string name="osm_settings_descr">Especifique as configurações de OpenStreetMap.org (OSM) necessárias para envios ao OSM.</string>
<string name="data_settings_descr">Especifique o idioma, descarregar/enviar dados.</string>
<string name="data_settings">Dados</string>
<string name="osm_settings">OSM</string>
@ -283,7 +283,7 @@
<string name="shared_string_settings">Configurações</string>
<string name="save_current_track_descr">Guardar agora o trilho atual num ficheiro GPX.</string>
<string name="save_current_track">Guardar o trilho atual</string>
<string name="save_track_interval_descr">Escolher o intervaloentre posições nas trilhas durante a navegação.</string>
<string name="save_track_interval_descr">Escolher o intervalo entre posições nas trilhas durante a navegação</string>
<string name="save_track_interval">Intervalo de gravação durante a navegação</string>
<string name="save_track_to_gpx_descrp">O trilho GPX é guardado automaticamente na pasta \'tracks\' durante a navegação.</string>
<string name="save_track_to_gpx">Gravar trilha durante a navegação</string>
@ -304,7 +304,7 @@
<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">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_description">Mostrar a sobreposição ultimamente selecionada do POI.</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">Fonte de imagens</string>
@ -322,9 +322,9 @@
<string name="incremental_search_city">Pesquisa progressiva de cidade. Para encontrar cidades/código postal, insira pelo menos os três primeiros caracteres</string>
<string name="incremental_search_street">Pesquisa progressiva das ruas</string>
<string name="incremental_search_building">Pesquisa progressiva dos edificios</string>
<string name="choose_available_region">Escolher uma região na lista</string>
<string name="choose_intersected_street">Escolher a rua transversal</string>
<string name="Closest_Amenities">Locais mais próximos</string>
<string name="choose_available_region">Selecione a região da lista</string>
<string name="choose_intersected_street">Selecione a rua transversal</string>
<string name="Closest_Amenities">Comodidades mais próximas</string>
<string name="app_mode_default">Explorar mapa</string>
<string name="app_mode_car">Condução</string>
<string name="app_mode_bicycle">Ciclismo</string>
@ -335,7 +335,7 @@
<string name="navigate_point_latitude">Latitude</string>
<string name="navigate_point_longitude">Longitude</string>
<string name="shared_string_show_on_map">Mostrar no mapa</string>
<string name="search_address_top_text">Escolher endereço</string>
<string name="search_address_top_text">Endereço</string>
<string name="search_address_region">Região</string>
<string name="search_address_city">Cidade</string>
<string name="search_address_street">Rua</string>
@ -359,14 +359,14 @@
<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>
<string name="osb_comment_dialog_error">Não foi possível adicionar um comentário</string>
<string name="osb_comment_dialog_error">Não foi possível adicionar um comentário.</string>
<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">Eliminar {0} (comentário)\?</string>
<string name="poi_remove_title">Eliminar POI</string>
<string name="shared_string_delete">Apagar</string>
<string name="poi_remove_success">POI eliminado</string>
<string name="poi_remove_success">Eliminado</string>
<string name="poi_action_add">Adicionar</string>
<string name="poi_action_change">Modificar</string>
<string name="poi_action_succeded_template">Ação {0} sucedida.</string>
@ -381,9 +381,9 @@
<string name="shared_string_clear">Apagar</string>
<string name="filter_current_poiButton">Filtro</string>
<string name="edit_filter_save_as_menu_item">Guardar como</string>
<string name="edit_filter_delete_dialog_title">Eliminar o filtro selecionado\?</string>
<string name="edit_filter_delete_dialog_title">Eliminar este filtro\?</string>
<string name="edit_filter_delete_message">Filtro %1$s eliminado</string>
<string name="edit_filter_create_message">Filtro %1$s foi criado</string>
<string name="edit_filter_create_message">Filtro \'%1$s\' foi criado</string>
<string name="local_index_routing_data">Informação de Percurso</string>
<string name="navigate_point_format">Format</string>
<string name="poi_search_desc">Pesquisar POI (ponto de interesse)</string>
@ -394,7 +394,7 @@
<string name="offline_navigation_not_available">Navegação OsmAnd offline está temporariamente indisponível.</string>
<string name="left_side_navigation">Circulação pela esquerda</string>
<string name="left_side_navigation_descr">Para países onde as pessoas conduzem do lado esquerdo da estrada.</string>
<string name="unknown_from_location">O ponto de partida ainda não foi determinado</string>
<string name="unknown_from_location">O ponto de partida ainda não foi determinado.</string>
<string name="modify_transparency">Definir a transparência (0 - transparente, 255 - opaco)</string>
<string name="confirm_interrupt_download">Cancelar o descarregamento\?</string>
<string name="basemap_was_selected_to_download">O mapa base, necessário para fornecer funcionalidade básica, está na fila de descarregamentos.</string>
@ -615,7 +615,7 @@
<string name="installing_new_resources">Preparando novos dados…</string>
<string name="internet_connection_required_for_online_route">A navegação online não funciona offline.</string>
<string name="tts_language_not_supported_title">Idioma não suportado</string>
<string name="tts_language_not_supported">O idioma selecionado não é suportado pelo mecanismo Android TTS (texto para voz) instalado. Quer procurar outro mecanismo TTS na loja de aplicações\? Caso contrário, será usado o idioma predefinido do TTS.</string>
<string name="tts_language_not_supported">O idioma selecionado não é suportado pelo motor TTS (text-to-speech) do Android instalado, o TTS predefinido do seu idioma será utilizado no seu lugar. Procure por outro motor TTS no mercado\?</string>
<string name="tts_missing_language_data_title">Faltam dados de voz TTS</string>
<string name="tts_missing_language_data">Ir ao mercado para descarregar o idioma selecionado\?</string>
<string name="gpx_option_destination_point">Usar destino atual</string>
@ -623,22 +623,22 @@
<string name="switch_to_vector_map_to_see">Mapa vetorial Offline disponível para esta localização.
\n\t\n\t Para usar, ative \'Menu\' -&gt; \'Definir Vista\' -&gt; \'Origem de Mapa…\' -&gt; \'Mapas Vetoriais Offline\'.</string>
<string name="choose_audio_stream">Saída para orientação por voz</string>
<string name="choose_audio_stream_descr">Selecione o narrador para reproduzir as instruções de voz.</string>
<string name="voice_stream_voice_call">Áudio de chamada telefônica (para interromper os aparelhos de som BT do carro)</string>
<string name="choose_audio_stream_descr">Selecione o altifalante para orientação por voz.</string>
<string name="voice_stream_voice_call">Áudio de chamada telefónica (para interromper os aparelhos de som Bluetooth do carro)</string>
<string name="voice_stream_notification">Áudio de Notificação</string>
<string name="voice_stream_music">Áudio de Media/GPS</string>
<string name="voice_stream_music">Áudio de mídia/navegação</string>
<string name="warning_tile_layer_not_downloadable">A aplicação não conseguiu descarregar a camada do mapa %1$s, se a tornar a instalar pode resolver o problema.</string>
<string name="overlay_transparency_descr">Modificar a transparência da sobreposição.</string>
<string name="overlay_transparency_descr">Ajustar a transparência da sobreposição.</string>
<string name="overlay_transparency">Transparência da Sobreposição</string>
<string name="map_transparency_descr">Modificar a transparência do mapa base.</string>
<string name="map_transparency_descr">Ajustar a transparência do mapa base.</string>
<string name="map_transparency">Transparência do mapa base</string>
<string name="layer_underlay">Mapa de camada inferior…</string>
<string name="map_underlay">Mapa de camada inferior</string>
<string name="map_underlay_descr">Escolha a mapa da camada inferior.</string>
<string name="map_underlay_descr">Escolha o mapa da sub-camada</string>
<string name="layer_overlay">Mapa da camada superior…</string>
<string name="shared_string_none">Nenhum</string>
<string name="map_overlay">Mapa da camada superior</string>
<string name="map_overlay_descr">Escolha o mapa da camada superior.</string>
<string name="map_overlay_descr">Escolha o mapa da sobreposição</string>
<string name="tile_source_already_installed">Mapa previamente instalado, as \"Configurações\" serão atualizadas.</string>
<string name="select_tile_source_to_install">Selecione (telhas de) mapas para instalar ou atualizar.</string>
<string name="internet_not_available">Não é possível executar a operação sem uma conexão com a Internet.</string>
@ -649,7 +649,7 @@
<string name="error_doing_search">Não foi possível executar a pesquisa offline.</string>
<string name="search_osm_offline">Pesquisa por localização geográfica</string>
<string name="system_locale">Sistema</string>
<string name="preferred_locale_descr">Selecione o idioma de visualização (surte efeito só de pois de reiniciar o OsmAnd).</string>
<string name="preferred_locale_descr">Idioma de exibição da aplicação (usado após OsmAnd ser reiniciado).</string>
<string name="preferred_locale">Linguagem</string>
<string name="shared_string_next">Próximo</string>
<string name="shared_string_previous">Anterior</string>
@ -673,7 +673,7 @@
<string name="osmand_routing_experimental">Navegação OsmAnd off-line ainda é uma função experimental e não funciona em distâncias superiores a cerca de 20 km.
\n
\nO serviço de navegação está temporariamente mudado para CloudMade on-line.</string>
<string name="specified_dir_doesnt_exist">Não é possível encontrar a pasta especificada.</string>
<string name="specified_dir_doesnt_exist">Não foi possível encontrar a pasta especificada.</string>
<string name="application_dir">Local de armazenamento</string>
<string name="osmand_net_previously_installed">Todos os dados offline na aplicação instalada antiga serão suportados pela nova aplicação, mas os pontos Favoritos devem ser exportados da aplicação antiga e depois importados na nova aplicação.</string>
<string name="build_installed">Build {0} foi instalado ({1}).</string>
@ -681,11 +681,11 @@
<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>
<string name="select_build_to_install">Selecione uma compilação OsmAnd para instalar</string>
<string name="select_build_to_install">Selecione a compilação OsmAnd para instalar</string>
<string name="contribution_activity">Instalar versão</string>
<string name="navigate_point_format_D">DDD.DD</string>
<string name="navigate_point_format_DM">DDD MM.MM</string>
<string name="navigate_point_format_DMS">DDD MM SS.SS</string>
<string name="navigate_point_format_D">GGG.GGGGG</string>
<string name="navigate_point_format_DM">GGG MM.MMM</string>
<string name="navigate_point_format_DMS">GGG MM SS.S</string>
<string name="rendering_attr_noPolygons_description">Fazer todas as características de terreno no mapa transparente.</string>
<string name="rendering_attr_noPolygons_name">Polígonos</string>
<string name="rendering_attr_appMode_name">Modo de Visualização</string>
@ -763,8 +763,8 @@
<string name="bg_service_interval">Definir intervalo para ativar:</string>
<string name="screen_is_locked">Toque no ícone de cadeado para desbloquear</string>
<string name="bg_service_screen_unlock">Desbloquear</string>
<string name="bg_service_sleep_mode_off">Desligar
modo oculto</string>
<string name="bg_service_sleep_mode_off">Executar
\n a app em segundo plano</string>
<string name="bg_service_sleep_mode_on">Parar
\n modo segundo plano</string>
<string name="show_warnings_title">Mostrar alertas…</string>
@ -865,7 +865,7 @@
<string name="av_video_format">Formato de saída de vídeo</string>
<string name="av_use_external_recorder">Usar gravador externo</string>
<string name="av_settings_descr">Definir configurações de áudio e vídeo.</string>
<string name="av_settings">"Definições de áudio e vídeo " </string>
<string name="av_settings">Definições de áudio e vídeo</string>
<string name="recording_error">A gravação falhou</string>
<string name="recording_camera_not_available">Câmara não disponível</string>
<string name="recording_is_recorded">Áudio/vídeo está a ser gravado. Para parar toque no AV widget.</string>
@ -920,10 +920,11 @@
<string name="osmand_srtm_long_description_1000_chars">Este suplemento disponibiliza \'Curvas de Nível\' e \'Sombras 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
\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 suplemento disponibiliza \'Curvas de Nível\' e \'Sombras de relevo\', que podem ser aplicadas nos mapas padrão do OsmAnd.
\nEstas funcionalidades podem ser apreciadas por atletas, caminhantes, e qualquer pessoa interessada na informação de relevo de uma paisagem.
\n
\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>
@ -1020,18 +1021,18 @@
<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">A descarregar</string>
<string name="shared_string_downloading">A descarregar</string>
<string name="osb_author_dialog_password">Palavra-passe no OSM (opcional)</string>
<string name="av_camera_focus">Tipo de focagem da câmara</string>
<string name="av_camera_focus_descr">Selecione o tipo de focagem da câmara interna.</string>
<string name="av_camera_focus_auto">Auto foco</string>
<string name="av_camera_focus_descr">Modo de focagem da câmara:</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>
<string name="av_camera_focus_infinity">Foco está definido no infinito</string>
<string name="av_camera_focus_infinity">O foco está definido como infinito</string>
<string name="av_camera_focus_macro">Foco Macro (close-up)</string>
<string name="av_camera_focus_continuous">A câmara tenta focar continuadamente</string>
<string name="av_photo_play_sound">Emita som ao tirar foto</string>
<string name="av_photo_play_sound_descr">Escolha se pretende reproduzir um som ao tirar fotografias.</string>
<string name="av_photo_play_sound">Reproduzir o som do obturador da câmara</string>
<string name="av_photo_play_sound_descr">Definir som ou silêncio para o obturador de fotos.</string>
<string name="driving_region_canada">Canadá</string>
<string name="about_version">Versão:</string>
<string name="shared_string_about">Sobre</string>
@ -1138,7 +1139,7 @@
<string name="routing_attr_avoid_toll_name">Sem estradas com portagem</string>
<string name="routing_attr_avoid_toll_description">Evita estradas com portagem</string>
<string name="routing_attr_avoid_unpaved_name">Sem estradas não pavimentadas</string>
<string name="routing_attr_avoid_unpaved_description">Evita estradas não pavimentadas.</string>
<string name="routing_attr_avoid_unpaved_description">Evita estradas não pavimentadas</string>
<string name="routing_attr_avoid_ferries_name">Sem balsas</string>
<string name="routing_attr_avoid_ferries_description">Evita balsas</string>
<string name="routing_attr_avoid_motorway_name">Sem autoestradas</string>
@ -1237,7 +1238,7 @@
<string name="delay_navigation_start">Iniciar a orientação passo a passo automaticamente</string>
<string name="shared_string_selected_lowercase">selecionado</string>
<string name="gpx_split_interval">Intervalo de divisão</string>
<string name="gpx_info_waypoints">"ponto de rota: %1$s "</string>
<string name="gpx_info_waypoints">Ponto de rota: %1$s</string>
<string name="gpx_info_distance">Distância: %1$s (%2$s pontos ) </string>
<string name="gpx_info_start_time">Hora de início: %1$tF, %1$tT </string>
<string name="gpx_info_end_time">Hora de fim: %1$tF, %1$tT </string>
@ -1269,7 +1270,6 @@
<string name="rendering_attr_publicTransportMode_name">Rotas de autocarros e tróleibus</string>
<string name="record_plugin_description">Este suplemento ativa a funcionalidade para gravar e guardar os seus trajetos manualmente, tocando no widget de gravação GPX no ecrã do mapa, ou fazendo também automaticamente o registo de todas as suas rotas de navegação para um ficheiro GPX.
\n
\n
\nOs trajetos gravados podem ser partilhados com os seus amigos, ou serem usados para contribuições no OpenStreetMap. Os atletas podem usar trajetos gravados para controlar os seus treinos. Podem ser feitas algumas análises básicas do trajeto diretamente no OsmAnd, como tempos de volta, velocidade média, etc. E claro, os trajetos também podem ser analisados mais tarde em ferramentas externas.</string>
<string name="record_plugin_name">Gravação de viagem</string>
<string name="int_hour">h</string>
@ -1322,7 +1322,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">Tem de estar conectado à Internet para instalar este suplemento.</string>
<string name="plugin_install_needs_network">Tem de estar on-line para instalar esta extensão.</string>
<string name="welcome_select_region">Para refletir corretamente seus sinais e regras de trânsito, por favor, selecione a região onde conduz:</string>
<string name="rendering_attr_hideHouseNumbers_name">Números de porta</string>
<string name="application_dir_change_warning3">Mover os ficheiros de dados OsmAnd para o novo destino\?</string>
@ -1427,8 +1427,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 mostrar mapas de esqui, tem de descarregar o mapa offline especial</string>
<string name="nautical_maps_missing">Para mostrar mapas náuticos, tem de descarregar o mapa offline especial</string>
<string name="world_ski_missing">Para mostrar mapas de esqui, tem de descarregar o mapa off-line especial.</string>
<string name="nautical_maps_missing">Para mostrar mapas náuticos, tem de descarregar o mapa off-line especial.</string>
<string name="edit_group">Editar grupo</string>
<string name="parking_place">Vaga de estacionamento</string>
<string name="version_settings">Compilações</string>
@ -1547,7 +1547,7 @@
<string name="av_locations_descr">Ficheiro GPX com posições.</string>
<string name="av_locations">Localizações</string>
<string name="plugin_settings">Extensões</string>
<string name="routing_attr_avoid_shuttle_train_name">Evitar transporte de comboio</string>
<string name="routing_attr_avoid_shuttle_train_name">Sem 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>
<string name="rendering_value_boldOutline_name">Contorno em negrito</string>
@ -1642,7 +1642,7 @@
<string name="anonymous_user">Utilizador anónimo</string>
<string name="logged_as">Ligado como %1$s</string>
<string name="shared_string_not_selected">Não selecionado</string>
<string name="select_month_and_country">Escolha Mês e País</string>
<string name="select_month_and_country">Mês e país:</string>
<string name="updates_size">Tamanho das atualizações</string>
<string name="poi_context_menu_modify_osm_change">Modificar edição OSM</string>
<string name="use_dashboard_btn">Usar painel de controlo</string>
@ -1696,7 +1696,7 @@
<string name="osm_live_user_public_name">Nome público</string>
<string name="osm_live_hide_user_name">Não mostrar o meu nome nos relatórios</string>
<string name="osm_live_support_region">Região de suporte</string>
<string name="file_name_containes_illegal_char">Nome do ficheiro contém um carácter inválido</string>
<string name="file_name_containes_illegal_char">O nome do ficheiro contém um carácter inválido</string>
<string name="reports_for">Relatório para</string>
<string name="number_of_contributors">Número de colaboradores</string>
<string name="number_of_edits">Número de edições</string>
@ -2511,7 +2511,7 @@
<string name="index_tours">Excursões</string>
<string name="shared_string_all">Todos</string>
<string name="download_additional_maps">Descarregar mapas que faltam %1$s (%2$d MB)\?</string>
<string name="rendering_value_browse_map_name">"Explorar o mapa "</string>
<string name="rendering_value_browse_map_name">Explorar o mapa</string>
<string name="rendering_value_car_name">Carro</string>
<string name="rendering_value_bicycle_name">Bicicleta</string>
<string name="rendering_value_pedestrian_name">A pé</string>
@ -2555,7 +2555,7 @@
<string name="lang_sr_latn">Sérvio (latino)</string>
<string name="lang_zh_cn">Chinês (simplificado)</string>
<string name="lang_zh_hk">Chinês (Hong Kong)</string>
<string name="lang_zh_tw">"Chinês (tradicional) "</string>
<string name="lang_zh_tw">Chinês (tradicional)</string>
<string name="routing_attr_avoid_stairs_name">Sem escadas</string>
<string name="routing_attr_avoid_stairs_description">Evita escadas</string>
<string name="routing_attr_avoid_borders_name">Sem passagens por fronteiras</string>
@ -2634,12 +2634,12 @@
\n
\nAlgumas das características principais:</string>
<string name="osmand_plus_extended_description_part2">Navegação
\n• Funciona on-line (rápido) ou off-line (sem custos de roaming quando estiver no estrangeiro).
\n• Orientação por voz passo a passo (vozes gravadas e sintetizadas).
\n• Orientação de trajetos opcionais, visualização do nome da rua e tempo estimado de chegada.
\n• Suporta pontos intermediários do seu itinerário.
\n• Correção automática da rota sempre que sair da rota.
\n• Procure lugares por endereço, pelo tipo (por exemplo: restaurante, hotel, posto de gasolina, museu...) ou por coordenadas geográficas.</string>
\n• Funciona on-line (rápido) ou off-line (sem custos de roaming quando estiver no estrangeiro)
\n• Orientação por voz passo a passo (vozes gravadas e sintetizadas)
\n• Orientação de trajetos opcionais, visualização do nome da rua e tempo estimado de chegada
\n• Suporta pontos intermediários do seu itinerário
\n• Correção automática da rota sempre que sair da rota
\n• Procure lugares por endereço, pelo tipo (por exemplo: restaurante, hotel, posto de gasolina, museu...) ou por coordenadas geográficas</string>
<string name="osmand_plus_extended_description_part3">Visualização de mapa
\n • Veja a sua posição e orientação.
\n • Oriente opcionalmente o ecrã de acordo com a bússola ou a direção do seu movimento.
@ -2649,13 +2649,13 @@
\n • Veja opcionalmente nomes de lugares em inglês, na língua local ou grafia fonética.
\n</string>
<string name="osmand_plus_extended_description_part4">Use dados do OpenStretMap e da Wikipédia
\n • Informações de alta qualidade dos melhores projetos colaborativos do mundo.
\n • Dados do OSM disponíveis por país ou região.
\n • POIs da Wikipédia, ótimo para passeios turísticos.
\n • Descarregamentos grátis ilimitados, diretamente da aplicação.
\n • Mapas offline vetoriais compactos e atualizados mensalmente
\n
\n • Escolha entre região completa ou apenas a rede rodoviária (exemplo: o Japão inteiro tem 700 MB e a rede rodoviária tem apenas 200 MB).</string>
\n • Informações de alta qualidade dos melhores projetos colaborativos do mundo
\n • Dados do OSM disponíveis por país ou região
\n • POIs da Wikipédia, ótimo para passeios turísticos
\n • Descarregamentos grátis ilimitados, diretamente da aplicação
\n • Mapas off-line vetoriais compactos e atualizados mensalmente
\n
\n • Escolha entre região completa ou apenas a rede rodoviária (exemplo: o Japão inteiro tem 700 MB e a rede rodoviária tem apenas 200 MB)</string>
<string name="osmand_plus_extended_description_part5">Recursos de segurança
\n• Mudança da visualização automática para dia/noite opcional
\n• Visualização do limite de velocidade (opcional), com lembrete se o ultrapassar
@ -2700,22 +2700,22 @@
<string name="index_name_netherlands">Europa - Países Baixos</string>
<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="voices">Avisos de voz</string>
<string name="favourites_context_menu_add">Adicionar Favorito</string>
<string name="poi_action_delete">eliminar</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">Definir o tamanho da imagem da câmara</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="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="we_really_care_about_your_opinion">A sua opinião e o seu feedback são importantes.</string>
<string name="rate_this_app">Avalie esta aplicação</string>
<string name="rate_this_app_long">Por favor, avalie o OsmAnd no Google Play</string>
<string name="user_hates_app_get_feedback">Diga-nos porquê.</string>
<string name="user_hates_app_get_feedback_long">Por favor, diga-nos o que gostaria de alterar nesta aplicação.</string>
<string name="failed_to_upload">Falha no envio</string>
<string name="user_hates_app_get_feedback_long">Por favor, envie-nos as suas sugestões.</string>
<string name="failed_to_upload">Não foi possível enviar</string>
<string name="delete_change">Eliminar alteração</string>
<string name="successfully_uploaded_pattern">Enviado {0}/{1}</string>
<string name="try_again">Tentar novamente</string>
@ -2778,22 +2778,22 @@
<string name="quick_actions_delete_text">Tem a certeza de que quer eliminar a ação \"%s\"\?</string>
<string name="quick_favorites_show_favorites_dialog">Mostrar diálogo Favoritos</string>
<string name="quick_favorites_name_preset">Nome do preset</string>
<string name="quick_action_add_marker_descr">Tocar no botão de ação adicionará um marcador de mapa no local do centro do ecrã.</string>
<string name="quick_action_add_gpx_descr">Tocar no botão de ação adicionará um ponto de rota GPX no local do centro do ecrã.</string>
<string name="quick_action_take_audio_note_descr">Tocar no botão de ação adicionará uma notificação de áudio no local do centro do ecrã.</string>
<string name="quick_action_take_video_note_descr">Tocar no botão de ação adicionará uma notificação de vídeo no local do centro do ecrã.</string>
<string name="quick_action_take_photo_note_descr">Tocar no botão de ação adicionará uma notificação de foto no local do centro do ecrã.</string>
<string name="quick_action_add_osm_bug_descr">Tocar no botão de ação adicionará uma notificação OSM no local do centro do ecrã.</string>
<string name="quick_action_add_poi_descr">Tocar no botão de ação adicionará um POI no local do centro do ecrã.</string>
<string name="quick_action_navigation_voice_descr">Tocar no botão de ação irá ativar ou desativar a orientação por voz durante a navegação.</string>
<string name="quick_action_add_parking_descr">Tocar no botão de ação adicionará um lugar de estacionamento no local do centro do ecrã.</string>
<string name="quick_action_add_marker_descr">O botão é para adicionar um marcador de mapa no local do centro do ecrã.</string>
<string name="quick_action_add_gpx_descr">Um botão para adicionar um ponto de rota GPX no local do centro do ecrã.</string>
<string name="quick_action_take_audio_note_descr">Um botão para adicionar uma notificação de áudio no local do centro do ecrã.</string>
<string name="quick_action_take_video_note_descr">Um botão para adicionar uma notificação de vídeo no local do centro do ecrã.</string>
<string name="quick_action_take_photo_note_descr">Um botão para adicionar uma notificação de foto no local do centro do ecrã.</string>
<string name="quick_action_add_osm_bug_descr">Um botão para adicionar uma notificação OSM no local do centro do ecrã.</string>
<string name="quick_action_add_poi_descr">Um botão para adicionar um POI no local do centro do ecrã.</string>
<string name="quick_action_navigation_voice_descr">Um botão para ativar ou desativar a orientação por voz durante a navegação.</string>
<string name="quick_action_add_parking_descr">Um botão para adicionar um lugar de estacionamento no local do centro do ecrã.</string>
<string name="quick_action_interim_dialog">Mostrar um diálogo intermediário</string>
<string name="favorite_autofill_toast_text">" está guardado em "</string>
<string name="favorite_autofill_toast_text">" gravado para "</string>
<string name="favorite_empty_place_name">Lugar</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_duplicates">Ação rápida renomeada para %1$s para evitar 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>
<string name="quick_action_showhide_favorites_descr">Uma alternância para mostrar ou ocultar os pontos favoritos no mapa.</string>
<string name="quick_action_showhide_poi_descr">Uma alternância para mostrar ou ocultar PIs no mapa.</string>
<string name="quick_action_showhide_favorites_title">Mostrar/esconder favoritos</string>
<string name="quick_action_favorites_show">Mostrar Favoritos</string>
<string name="quick_action_favorites_hide">Esconder favoritos</string>
@ -2807,19 +2807,19 @@
<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 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 onde guardar o favorito.</string>
<string name="quick_action_gpx_category_descr">Selecione uma categoria opcional.</string>
<string name="quick_action_category_descr">Categoria para a qual gravar o Favorito:</string>
<string name="quick_action_gpx_category_descr">Escolhe uma categoria opcional.</string>
<string name="quick_action_poi_list">Lista de POIs</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_page_list_descr">Um botão para 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>
<string name="quick_action_map_styles">Estilos de mapa</string>
<string name="quick_action_map_overlay">Mudar camada superior de mapa</string>
<string name="quick_action_map_overlay_title">Camada superior de mapa</string>
<string name="quick_action_map_overlay_action">Adicionar sobreposição</string>
<string name="quick_action_map_overlay_switch">A camada superior de mapa foi alterada para \"%s\".</string>
<string name="quick_action_map_underlay_switch">A camada inferior de mapa foi alterada para \"%s\".</string>
<string name="quick_action_map_overlay_switch">A sobreposição de mapa foi alterada para \"%s\".</string>
<string name="quick_action_map_underlay_switch">A sub-camada de mapa foi alterada para \"%s\".</string>
<string name="quick_action_map_underlay">Mudar camada inferior de mapa</string>
<string name="quick_action_map_underlay_title">Camadas inferiores de mapa</string>
<string name="quick_action_map_underlay_action">Adicionar camada inferior</string>
@ -2830,19 +2830,19 @@
<string name="quick_action_btn_tutorial_title">Mudar posição do botão</string>
<string name="quick_action_btn_tutorial_descr">Segure e arraste o botão para mudar a sua posição no ecrã.</string>
<string name="shared_string_action_name">Nome da ação</string>
<string name="mappilary_no_internet_desc">Tem de estar conectado à Internet para ver as fotos do Mapillary.</string>
<string name="mappilary_no_internet_desc">As fotos do Mapillary só estão disponíveis on-line.</string>
<string name="retry">Repetir</string>
<string name="add_route_points">Adicionar Pontos de Rota</string>
<string name="add_waypoint">Adicionar Ponto de Passagem</string>
<string name="add_line">Adicionar Linha</string>
<string name="save_gpx_waypoint">Guardar ponto de passagem GPX</string>
<string name="save_route_point">Guardar ponto de rota</string>
<string name="save_route_point">Gravar ponto de rota</string>
<string name="waypoint_one">Ponto de Passagem 1</string>
<string name="route_point_one">Ponto de Rota 1</string>
<string name="empty_state_my_tracks">Adicione ficheiros GPX</string>
<string name="empty_state_my_tracks_desc">Importe ficheiros GPX ou grave trilhas.</string>
<string name="empty_state_favourites">Adicione Favoritos</string>
<string name="empty_state_favourites_desc">Importe Favoritos ou adicione novos marcando pontos do mapa.</string>
<string name="empty_state_favourites_desc">Importe Favoritos ou adicione-os marcando pontos do mapa.</string>
<string name="import_track">Importar ficheiro GPX</string>
<string name="import_track_desc">Ficheiro %1$s não possui pontos de rota, importe-o como uma trilha\?</string>
<string name="move_point">Mover Ponto</string>
@ -2853,7 +2853,7 @@
<string name="winter_and_ski_renderer">Inverno e esqui</string>
<string name="touring_view_renderer">Vista de turismo</string>
<string name="nautical_renderer">Náutico</string>
<string name="copy_location_name">Copiar nome de Ponto/POI</string>
<string name="copy_location_name">Copiar local/nome de POI</string>
<string name="toast_empty_name_error">Local sem nome</string>
<string name="tunnel_warning">Túnel à frente</string>
<string name="show_tunnels">Túneis</string>
@ -2865,17 +2865,17 @@
<string name="wiki_article_search_text">Procurando o artigo wiki correspondente</string>
<string name="wiki_article_not_found">Artigo não encontrado</string>
<string name="how_to_open_wiki_title">Como se abre artigos da Wikipédia\?</string>
<string name="test_voice_desrc">Toque num botão e ouça a correspondente voz de comando para identificar os comandos faltantes ou com falha.</string>
<string name="test_voice_desrc">Toque num botão e ouça a mensagem de voz dele correspondente para ouvir se está ausente ou avariado</string>
<string name="powered_by_osmand">Por OsmAnd</string>
<string name="navigate_point_olc">Código de localização aberto</string>
<string name="osm_live_subscriptions">Assinaturas</string>
<string name="mapillary_menu_title_pano">Mostrar apenas imagens de 360°</string>
<string name="shared_string_launch">Lançar</string>
<string name="lang_gn_py">Guarani</string>
<string name="quick_action_switch_day_night_descr">Tocar neste botão de ação alterna entre os modos Dia e Noite para OsmAnd</string>
<string name="quick_action_switch_day_mode">Modo de Dia</string>
<string name="quick_action_switch_night_mode">Modo Nocturno</string>
<string name="quick_action_day_night_switch_mode">Mudar de modo Dia/Nocturno</string>
<string name="quick_action_switch_day_night_descr">Uma alternância para alternar entre os modos Dia e Noite para OsmAnd.</string>
<string name="quick_action_switch_day_mode">Modo de dia</string>
<string name="quick_action_switch_night_mode">Modo noturno</string>
<string name="quick_action_day_night_switch_mode">Mudar modo de dia/noturno</string>
<string name="run_full_osmand_msg">Está a usar o mapa {0} que funciona com o OsmAnd. Quer abrir a versão completa do OsmAnd\?</string>
<string name="run_full_osmand_header">Lançar OsmAnd\?</string>
<string name="cubic_m"></string>
@ -3021,8 +3021,8 @@
<string name="routeInfo_surface_name">Superfície</string>
<string name="routeInfo_smoothness_name">Lisura</string>
<string name="routeInfo_steepness_name">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="routing_attr_avoid_sett_name">Sem paralelepípedos ou pavimentos</string>
<string name="routing_attr_avoid_sett_description">Evita paralelepípedo e pavimentos</string>
<string name="send_log">Enviar registo</string>
<string name="sit_on_the_stop">Embarque na paragem</string>
<string name="files_moved">%1$d ficheiros movidos (%2$s).</string>
@ -3088,12 +3088,12 @@
<string name="select_base_profile_dialog_title">Selecionar o perfil para começar</string>
<string name="select_base_profile_dialog_message">Basê seu perfil personalizado num dos perfis de app predefinido, para definir a configuração básica, como a visibilidade predefinida de widgets e unidades de velocidade e distância. Estes são os perfis de app predefinidos, juntamente com exemplos de perfis personalizados para os quais eles podem ser estendidos:</string>
<string name="select_nav_profile_dialog_title">Selecione o tipo de navegação</string>
<string name="base_profile_descr_car">Carro, caminhão, motocicleta</string>
<string name="base_profile_descr_car">Carro, camião, motocicleta</string>
<string name="base_profile_descr_bicycle">Mountain bike, ciclomotor, cavalo</string>
<string name="base_profile_descr_pedestrian">Andar, caminhar, correr</string>
<string name="base_profile_descr_public_transport">Categorias de transportes públicos</string>
<string name="base_profile_descr_boat">Navio, remar, navegar</string>
<string name="base_profile_descr_aircraft">Avião, asa-Delta</string>
<string name="base_profile_descr_aircraft">Avião, asa-delta</string>
<string name="routing_profile_geocoding">Geocodificação</string>
<string name="routing_profile_straightline">Linha reta</string>
<string name="routing_profile_broutrer">BRouter (offline)</string>
@ -3105,7 +3105,7 @@
<string name="application_profiles">Perfis de app</string>
<string name="zoom_by_wunderlinq_descr">Alterar o zoom do mapa deslocando a roda para cima e para baixo. Escapar devolve-o à aplicação WunderLINQ.</string>
<string name="zoom_by_wunderlinq">Usar WunderLINQ para controle</string>
<string name="quick_action_need_to_add_item_to_list">Você deve adicionar pelo menos um Item para listar nas Configurações de Ação Rápida</string>
<string name="quick_action_need_to_add_item_to_list">Adicione pelo menos um item à lista nas configurações de \'Ação rápida\'</string>
<string name="routing_attr_piste_type_downhill_name">Esqui alpino/downhill</string>
<string name="routing_attr_piste_type_downhill_description">Pistas para esqui alpino ou downhill e acesso a teleféricos de esqui.</string>
<string name="routing_attr_piste_type_nordic_name">Cross Country/esqui nórdico</string>
@ -3127,7 +3127,7 @@
<string name="routing_attr_difficulty_preference_name">Dificuldade preferida</string>
<string name="routing_attr_difficulty_preference_description">Preferir rotas desta dificuldade, embora o roteamento sobre pistas mais difíceis ou mais fáceis ainda seja possível se for mais curto.</string>
<string name="routing_attr_freeride_policy_name">Fora de pista</string>
<string name="routing_attr_freeride_policy_description">Freerides e fora da pista são rotas e passagens não oficiais. Tipicamente sem serem preparados, sem maquiagem pelos funcionários e não verificados à noite. Entrar por conta e risco próprios.</string>
<string name="routing_attr_freeride_policy_description">\'Freerides\' e \'fora da pista\' são rotas e passagens não oficiais. Tipicamente sem serem preparados, sem manutenção e não verificados à noite. Entre por conta e risco próprios.</string>
<string name="process_downloading_service">Serviço de descarregamento OsmAnd</string>
<string name="shared_string_color_magenta">Magenta</string>
<string name="shared_string_icon">Ícone</string>
@ -3723,7 +3723,7 @@
<string name="turn_screen_on_power_button_descr">Pressionando o botão de ligar o aparelho ligará o ecrã com OsmAnd acima do ecrã de bloqueio.</string>
<string name="turn_screen_on_power_button">Botão de ligar</string>
<string name="turn_screen_on_proximity_sensor">Sensor de proximidade</string>
<string name="turn_screen_on_wake_time_descr">Selecione o tempo limite do ecrã após acordar. (\"%1$s\" não aplica tempo limite).</string>
<string name="turn_screen_on_wake_time_descr">Selecione o tempo limite do ecrã após acordar. (\"%1$s\" não aplica tempo limite.)</string>
<string name="keep_screen_on">Manter o ecrã ligado</string>
<string name="keep_screen_off">Manter o ecrã desligado</string>
<string name="screen_timeout_descr">Se \"%1$s\" está ativado, o tempo da atividade vai depender dele.</string>
@ -3832,4 +3832,12 @@
<string name="route_between_points">Rota entre pontos</string>
<string name="plan_a_route">Planejar uma rota</string>
<string name="add_to_a_track">Adicionar ao trilho</string>
<string name="add_hidden_group_info">O ponto adicionado não será visível no mapa, já que o grupo selecionado está escondido, pode encontrá-lo em \"%s\".</string>
<string name="track_show_start_finish_icons">Mostrar ícones de início e fim</string>
<string name="select_track_width">Selecione a largura</string>
<string name="gpx_split_interval_descr">Selecione o intervalo em que as marcas com distância ou tempo no trilho serão exibidas.</string>
<string name="gpx_split_interval_none_descr">Selecione a opção de divisão desejada: por tempo ou por distância.</string>
<string name="shared_string_custom">Personalizado</string>
<string name="gpx_direction_arrows">Setas de direção</string>
<string name="track_coloring_solid">Sólido</string>
</resources>

View file

@ -626,7 +626,7 @@
<string name="poi_nature_reserve">Заповедник</string>
<string name="poi_strait">Пролив</string>
<string name="poi_island">Остров</string>
<string name="poi_islet">Остров (небольшой)</string>
<string name="poi_islet">Островок</string>
<string name="poi_anchorage">Якорная стоянка</string>
<string name="poi_anchor_berth">Якорный причал</string>
<string name="poi_beacon">Бакен</string>

View file

@ -227,7 +227,7 @@
<string name="subcategories">Подкатегории</string>
<string name="selected_categories">Выбранные категории</string>
<string name="create_custom_poi">Создать настраиваемый фильтр</string>
<string name="custom_search">Настроить поиск</string>
<string name="custom_search">Настраиваемый поиск</string>
<string name="shared_string_filters">Фильтры</string>
<string name="apply_filters">Применить фильтры</string>
<string name="save_filter">Сохранить фильтр</string>
@ -2366,7 +2366,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>
@ -3831,4 +3831,10 @@
<string name="select_track_width">Выберите ширину</string>
<string name="gpx_direction_arrows">Стрелки направления</string>
<string name="track_coloring_solid">Сплошной</string>
<string name="plan_route_last_edited">Последнее изменение</string>
<string name="plan_route_import_track">Импортировать трек</string>
<string name="plan_route_open_existing_track">Открыть существующий трек</string>
<string name="plan_route_create_new_route">Создать новый маршрут</string>
<string name="plan_route_select_track_file_for_open">Выберите файл трека для открытия.</string>
<string name="shared_string_done">Готово</string>
</resources>

View file

@ -3822,4 +3822,12 @@
<string name="route_between_points">Trasa medzi bodmi</string>
<string name="plan_a_route">Naplánovať trasu</string>
<string name="add_to_a_track">Pridať do stopy</string>
<string name="add_hidden_group_info">Pridaný bod nebude viditeľný na mape, pretože zvolená skupina je skrytá. Môžete ho nájsť v \"%s\".</string>
<string name="track_show_start_finish_icons">Zobraziť ikony štartu a cieľa</string>
<string name="select_track_width">Zvoľte šírku</string>
<string name="gpx_split_interval_descr">Zvoľte interval, po ktorom budú na stope zobrazené značky so vzdialenosťou alebo časom.</string>
<string name="gpx_split_interval_none_descr">Zvoľte spôsob rozdeľovania: podľa času alebo podľa vzdialenosti.</string>
<string name="shared_string_custom">Vlastné</string>
<string name="gpx_direction_arrows">Smerové šípky</string>
<string name="track_coloring_solid">Plné</string>
</resources>

View file

@ -27,7 +27,7 @@
<string name="poi_fee">Накнада</string>
<string name="poi_smoking">Пушење</string>
<string name="poi_delivery">Достава</string>
<string name="poi_drive_in">Драјв ин</string>
<string name="poi_drive_in">Драјв-ин</string>
<string name="poi_takeaway">За понети</string>
<string name="poi_cocktails">Коктели</string>
<string name="poi_microbrewery">Микропивара</string>
@ -1034,7 +1034,7 @@
<string name="poi_pump_no">Без пумпе</string>
<string name="poi_pump_yes">Да</string>
<string name="poi_water_characteristic_mineral">Минерална</string>
<string name="poi_water_characteristic_mud">Карактеристика воде: муљ</string>
<string name="poi_water_characteristic_mud">Блато</string>
<string name="poi_water_characteristic_sulfuric">Сумпорна</string>
<string name="poi_information_map">Карта</string>
<string name="poi_information_office">Канцеларија</string>
@ -1337,7 +1337,7 @@
<string name="poi_memorial_stele">Стела</string>
<string name="poi_memorial_bust">Биста</string>
<string name="poi_memorial_koshinto">Кошинто</string>
<string name="poi_memorial_cross">Крст</string>
<string name="poi_memorial_cross">Крстолик</string>
<string name="poi_memorial_vehicle">Возило</string>
<string name="poi_memorial_stolperstein">Камен спотицања</string>
<string name="poi_memorial_obelisk">Обелиск</string>
@ -2097,7 +2097,7 @@
<string name="poi_fuel_100ll">100ЛЛ гориво</string>
<string name="poi_fuel_autogas">Аутогас</string>
<string name="poi_fuel_jeta1">Авионско А-1 гориво</string>
<string name="poi_fuel_adblue">Едблу гориво</string>
<string name="poi_fuel_adblue">Адитив дизел гасова</string>
<string name="poi_fuel_wood">Гориво: дрво</string>
<string name="poi_fuel_charcoal">Гориво: ћумур</string>
<string name="poi_fuel_coal">Гориво: угаљ</string>

View file

@ -3821,4 +3821,12 @@
<string name="route_between_points">Рута између тачака</string>
<string name="plan_a_route">Планирај руту</string>
<string name="add_to_a_track">Додајте стази</string>
<string name="select_track_width">Изаберите ширину</string>
<string name="gpx_split_interval_descr">Изаберите интервал на коме ће се приказивати ознаке са раздаљином или временом на стази.</string>
<string name="gpx_split_interval_none_descr">Изаберите жељену опцију поделе: по времену или по удаљености.</string>
<string name="shared_string_custom">Прилагођен</string>
<string name="gpx_direction_arrows">Стрелице смера</string>
<string name="track_coloring_solid">Чврст</string>
<string name="add_hidden_group_info">Додата тачка неће бити видљива на мапи, пошто је одабрана група сакривена, можете је пронаћи у „%s“.</string>
<string name="track_show_start_finish_icons">Прикажи почетно крајне иконе</string>
</resources>

View file

@ -70,7 +70,7 @@
<string name="int_continuosly">连续</string>
<string name="screen_is_locked">要解锁屏幕按锁图标</string>
<string name="map_widget_config">配置屏幕</string>
<string name="map_widget_lock_screen"></string>
<string name="map_widget_lock_screen"></string>
<string name="map_widget_back_to_loc">我在哪里</string>
<string name="map_widget_compass">指南针</string>
<string name="map_widget_reset">重置为默认</string>
@ -81,8 +81,8 @@
<string name="map_widget_altitude">海拔</string>
<string name="map_widget_time">剩余时间</string>
<string name="map_widget_next_turn">下一个转弯</string>
<string name="bg_service_screen_lock"></string>
<string name="bg_service_screen_unlock">解锁屏幕</string>
<string name="bg_service_screen_lock"></string>
<string name="bg_service_screen_unlock">解锁</string>
<string name="bg_service_screen_lock_toast">屏幕被锁定</string>
<string name="show_cameras">高速摄像机</string>
<string name="show_traffic_warnings">交通警示</string>
@ -125,17 +125,17 @@
<string name="north"></string>
<string name="north_north_east">北北东</string>
<string name="north_east">东北</string>
<string name="east_north_east"> - 北 - </string>
<string name="east_north_east"></string>
<string name="east"></string>
<string name="east_south_east"> - 南 - </string>
<string name="east_south_east"></string>
<string name="south_east">东南</string>
<string name="south_south_east"> - 南 - </string>
<string name="south_south_east"></string>
<string name="south"></string>
<string name="south_south_west"> - 南 - 西</string>
<string name="south_south_west">西</string>
<string name="south_west">西南</string>
<string name="west_south_west">西 - 南 - 西</string>
<string name="west_south_west">西西</string>
<string name="west">西部</string>
<string name="west_north_west">西 - 北西</string>
<string name="west_north_west">西北西</string>
<string name="north_west">西北</string>
<string name="north_north_west">北北西</string>
<string name="front"></string>
@ -237,7 +237,7 @@
<string name="amenity_type_sustenance">营养</string>
<string name="amenity_type_tourism">旅游</string>
<string name="amenity_type_transportation">运输</string>
<string name="shared_string_io_error">I / O错误发生</string>
<string name="shared_string_io_error">I/O错误</string>
<string name="km">千米</string>
<string name="km_h">公里/小时</string>
<string name="m"></string>
@ -286,9 +286,9 @@
<string name="transport_search_before">此前路线</string>
<string name="transport_finish_search">完成搜索</string>
<string name="shared_string_ok">确定</string>
<string name="favorite"/>
<string name="favorite">收藏</string>
<string name="shared_string_clear_all">全部清除</string>
<string name="shared_string_download_successful">下载成功</string>
<string name="shared_string_download_successful">下载</string>
<string name="update_existing">更换</string>
<string name="only_show">显示路线</string>
<string name="follow">开始导航</string>
@ -306,7 +306,7 @@
<string name="use_online_routing">使用在线导航</string>
<string name="osm_settings_descr">指定Openstreetmap.orgOSMOSM提交所需的设置</string>
<string name="data_settings">数据</string>
<string name="osm_settings">OSM编辑</string>
<string name="osm_settings">OpenStreetMap 编辑</string>
<string name="save_current_track">保存当前轨迹</string>
<string name="save_track_to_gpx">导航时自动记录轨迹</string>
<string name="map_view_3d_descr">启用3D的地图视图</string>
@ -324,7 +324,7 @@
<string name="position_on_map_bottom">底部</string>
<string name="navigate_point_latitude">纬度</string>
<string name="navigate_point_longitude">经度</string>
<string name="search_address_top_text">选择地址</string>
<string name="search_address_top_text">地址</string>
<string name="search_address_region">地区</string>
<string name="search_address_city">城市</string>
<string name="search_address_street">街道</string>
@ -420,7 +420,7 @@
<string name="choose_osmand_theme_descr">选择应用程序主题</string>
<string name="choose_osmand_theme">应用程序主题</string>
<string name="accessibility_options">可用性选项</string>
<string name="select_address_activity">选择地址</string>
<string name="select_address_activity">指定地址</string>
<string name="favourites_list_activity">选择收藏</string>
<string name="local_openstreetmap_act_title">OSM 改动</string>
<string name="shared_string_more_actions">更多动作</string>
@ -451,7 +451,7 @@
<string name="osmand_srtm_short_description_80_chars">OsmAnd 的离线等高线插件</string>
<string name="map_widget_distancemeasurement">距离测量</string>
<string name="index_srtm_ele">等高线</string>
<string name="srtm_plugin_name">等高线插件</string>
<string name="srtm_plugin_name">等高线</string>
<string name="download_roads_only_maps">仅包含道路的地图</string>
<string name="rendering_attr_noAdminboundaries_description">不显示区域(行政区划级别5-9)的边界。</string>
<string name="rendering_attr_showRoadMaps_description">选择何时显示仅包含道路的地图:</string>
@ -768,7 +768,7 @@
<string name="search_POI_level_btn">搜索更多</string>
<string name="choose_available_region">从列表中选择区域</string>
<string name="navigate_point_top_text">用选中的格式输入纬度和经度(D - 度M - 分S - 秒)</string>
<string name="navigate_point_format_D">DDD.DD</string>
<string name="navigate_point_format_D">DDD.DDDDD</string>
<string name="navigate_point_format_DM">DDD MM.MM</string>
<string name="navigate_point_format_DMS">DDD MM SS.SS</string>
<string name="shared_string_show_on_map">在地图上显示</string>
@ -784,7 +784,7 @@
<string name="osb_author_dialog_password">OSM 密码 (可选)</string>
<string name="osb_comment_dialog_message">消息</string>
<string name="osb_comment_dialog_author">作者名称</string>
<string name="osb_comment_dialog_success">评论添加成功</string>
<string name="osb_comment_dialog_success">评论添加</string>
<string name="osb_comment_dialog_error">发生异常:备注未能添加</string>
<string name="poi_edit_title">编辑兴趣点</string>
<string name="poi_create_title">创建兴趣点</string>
@ -802,7 +802,7 @@
<string name="edit_filter_delete_dialog_title">是否删除选中的过滤器?</string>
<string name="edit_filter_delete_message">过滤器 %1$s 已被删除</string>
<string name="edit_filter_create_message">过滤器 %1$s 已创建</string>
<string name="av_camera_focus_auto">自动</string>
<string name="av_camera_focus_auto">自动</string>
<string name="clear_intermediate_points">清除中途点</string>
<string name="keep_intermediate_points">保持中途点</string>
<string name="new_directions_point_dialog">您已经有中途点集了。</string>
@ -820,8 +820,8 @@
<string name="no_map_markers_found">请通过地图添加地图标记</string>
<string name="no_waypoints_found">未发现路径点</string>
<string name="report">报告</string>
<string name="shared_string_move_up">上移</string>
<string name="shared_string_move_down">下移</string>
<string name="shared_string_move_up">上移</string>
<string name="shared_string_move_down">下移</string>
<string name="finish_navigation">导航完成</string>
<string name="avoid_road">避开道路</string>
<string name="storage_directory_shared">共享内存</string>
@ -933,7 +933,7 @@
<string name="osm_edit_created_poi">已创建 OSM 兴趣点</string>
<string name="shared_string_qr_code">QR码</string>
<string name="map_downloaded">地图已下载</string>
<string name="go_to_map">返回地图</string>
<string name="go_to_map">显示地图</string>
<string name="simulate_initial_startup">模拟首次启动应用</string>
<string name="share_geo">地理:</string>
<string name="share_menu_location">分享位置</string>
@ -957,14 +957,14 @@
<string name="si_min_km">分钟/公里</string>
<string name="si_min_m">分钟/英里</string>
<string name="si_nm_h">海里/小时 (节)</string>
<string name="nm_h">浬里/时</string>
<string name="min_mile"/>
<string name="nm_h"></string>
<string name="min_mile">分钟每米</string>
<string name="min_km">分/公里</string>
<string name="m_s">米/秒</string>
<string name="shared_string_navigation">导航</string>
<string name="osmand_running_in_background">在后台运行</string>
<string name="gps_wake_up_timer">GPS 唤醒间隔</string>
<string name="favourites_edit_dialog_title">我的最爱信息</string>
<string name="favourites_edit_dialog_title">收藏信息</string>
<string name="simulate_your_location_stop_descr">停止模拟您的位置。</string>
<string name="simulate_your_location_descr">使用计算得到的路线或者一条 GPX 记录模拟您的位置。</string>
<string name="looking_up_address">查询地址</string>
@ -1006,7 +1006,7 @@
<string name="lang_nb">书面挪威语</string>
<string name="lang_es_ar">阿根廷西班牙语</string>
<string name="lang_te">泰卢固语</string>
<string name="lang_nn">新挪威语 (尼诺斯克语)</string>
<string name="lang_nn">新挪威语</string>
<string name="lang_ms">马来西亚语</string>
<string name="lang_ht">海地语</string>
<string name="lang_gl">加利西亚语</string>
@ -1073,8 +1073,8 @@
<string name="shared_string_selected">已选择</string>
<string name="shared_string_selected_lowercase">已选择</string>
<string name="shared_string_never">总不</string>
<string name="shared_string_and"/>
<string name="shared_string_or"/>
<string name="shared_string_and">与</string>
<string name="shared_string_or">或</string>
<string name="shared_string_select_on_map">在地图上选择</string>
<string name="shared_string_deselect">取消选中</string>
<string name="shared_string_deselect_all">全部取消</string>
@ -1481,9 +1481,9 @@
<string name="app_mode_train">火车</string>
<string name="current_track">当前轨迹</string>
<string name="move_marker_bottom_sheet_title">移动地图要更改标记的位置</string>
<string name="access_direction_audio_feedback">方向的音频反馈</string>
<string name="access_direction_audio_feedback">音频方向</string>
<string name="access_direction_audio_feedback_descr">通过声音指示目标点方向。</string>
<string name="access_direction_haptic_feedback">方向触觉反馈</string>
<string name="access_direction_haptic_feedback">触觉方向</string>
<string name="access_direction_haptic_feedback_descr">由振动指示目标点方向。</string>
<string name="use_osm_live_routing_description">启用导航时由 OsmAnd 实时服务提供的更新。</string>
<string name="access_no_destination">未设置目的地</string>
@ -1513,7 +1513,7 @@
<string name="access_sort">排序</string>
<string name="number_of_gpx_files_selected_pattern">已选择 %s GPX 文件</string>
<string name="rendering_value_fine_name">精细</string>
<string name="rendering_value_thin_name"></string>
<string name="rendering_value_thin_name"></string>
<string name="rendering_value_medium_name">中等</string>
<string name="rendering_value_bold_name">加粗</string>
<string name="anonymous_user_hint">匿名用户不能:
@ -1680,7 +1680,7 @@
<string name="rendering_attr_tramRoutes_name">有轨电车线路</string>
<string name="rendering_attr_shareTaxiRoutes_name">分享出租车线路</string>
<string name="rendering_attr_trolleybusRoutes_name">无轨电车线路</string>
<string name="rendering_category_transport"/>
<string name="rendering_category_transport">运输</string>
<string name="map_widget_appearance_rem">剩余的元素</string>
<string name="search_radius_proximity">之间</string>
<string name="speed_limit_exceed_message">选择速限容许余裕界限,超过时您将会收到语音警告。</string>
@ -1694,7 +1694,7 @@
<string name="traffic_warning_calming">交通稳静化</string>
<string name="traffic_warning_speed_camera">测速摄像机</string>
<string name="traffic_warning">交通警告</string>
<string name="speak_favorites">附近的收藏夹</string>
<string name="speak_favorites">收藏附近</string>
<string name="speak_poi">附近的 POI</string>
<string name="way_alarms">交通警告</string>
<string name="sleep_mode_stop_dialog">停止 GPS 背景模式吗?</string>
@ -1849,7 +1849,7 @@
<string name="lang_lv">拉脱维亚语</string>
<string name="lang_lt">立陶宛语</string>
<string name="lang_mr">马拉地语</string>
<string name="lang_no">挪威语</string>
<string name="lang_no">书面挪威语</string>
<string name="lang_fa">波斯语</string>
<string name="lang_pl">波兰语</string>
<string name="lang_pt">葡萄牙语</string>
@ -1893,7 +1893,7 @@
<string name="disable_complex_routing_descr">汽车导航时禁用双阶段路线</string>
<string name="disable_complex_routing">禁用复杂路线</string>
<string name="amenity_type_seamark">航标</string>
<string name="app_modes_choose_descr">在应用程序中选择使用的配置文件</string>
<string name="app_modes_choose_descr">选择显示的配置文件</string>
<string name="app_modes_choose">应用程序配置文件</string>
<string name="app_mode_hiking">徒步</string>
<string name="app_mode_motorcycle">摩托车</string>
@ -1920,7 +1920,7 @@
<string name="use_magnetic_sensor_descr">使用磁传感器来确定罗盘值而不是方向传感器。</string>
<string name="use_magnetic_sensor">使用磁传感器</string>
<string name="osmand_background_plugin_description">透过周期性的唤醒 GPS 设备,在背景模式下(屏幕关闭)显示设置,以启用追踪与导航。</string>
<string name="av_def_action_choose">在请求时选择</string>
<string name="av_def_action_choose">根据要求?</string>
<string name="av_use_external_recorder">使用系统录音机</string>
<string name="recording_playing">从已指定的录音开始播放音频。
\n%1$s</string>
@ -2248,7 +2248,7 @@
<string name="weekly">每周</string>
<string name="morning">早上</string>
<string name="night">晚上</string>
<string name="select_month_and_country">选择月份和国家</string>
<string name="select_month_and_country">月份和国家</string>
<string name="number_of_contributors">贡献者人数</string>
<string name="number_of_edits">编辑次数</string>
<string name="reports_for">报告</string>
@ -2592,7 +2592,7 @@
<string name="quick_action_edit_actions">编辑活动</string>
<string name="coord_input_save_as_track_descr">你增加了%1$s 个目标。输入文件名后点击\"保存\"。</string>
<string name="ask_for_location_permission">请在允许OsmAnd获取定位信息后继续。</string>
<string name="routeInfo_smoothness_name">光滑</string>
<string name="routeInfo_smoothness_name">平顺</string>
<string name="routeInfo_steepness_name">坡度</string>
<string name="unirs_render_descr">更改默认风格以突出显示人行道和非机动车道使用旧版Mapnik配色。</string>
<string name="run_full_osmand_msg">你正在使用基于 OsmAnd 的 {0}。是否启动完整版 OsmAnd</string>
@ -2865,7 +2865,7 @@
<string name="mercator_projection">正轴等角圆柱投影</string>
<string name="storage_format">储存格式</string>
<string name="shared_string_delete_all_q">删除所有\?</string>
<string name="uninstall_speed_cameras">卸载测速摄像</string>
<string name="uninstall_speed_cameras">卸载测速摄像</string>
<string name="shared_string_legal">合法</string>
<string name="speed_camera_pois">测速摄像兴趣点</string>
<string name="shared_string_uninstall">卸载</string>
@ -2920,4 +2920,193 @@
<string name="base_profile_descr_public_transport">公共交通类型</string>
<string name="rendering_attr_showLez_description">在地图上显示低排放区。不影响路线规划。</string>
<string name="rendering_attr_showLez_name">显示低排放区</string>
<string name="rendering_attr_ice_road_name">冰路</string>
<string name="voice_announces">语音提示</string>
<string name="discard_changes">放弃更改</string>
<string name="switch_profile">切换配置文件</string>
<string name="routing_attr_difficulty_preference_name">偏好难度</string>
<string name="rendering_attr_highway_class_track_grade5_name">等级 5</string>
<string name="rendering_attr_highway_class_track_grade4_name">等级 4</string>
<string name="rendering_attr_highway_class_track_grade3_name">等级 3</string>
<string name="rendering_attr_highway_class_track_grade2_name">等级 2</string>
<string name="rendering_attr_highway_class_track_grade1_name">等级 1</string>
<string name="app_mode_personal_transporter">个人运输工具</string>
<string name="new_profile">新配置文件</string>
<string name="collected_data">已搜集资料</string>
<string name="routing_attr_piste_type_skitour_name">滑雪旅游</string>
<string name="application_profiles">应用程序配置文件</string>
<string name="third_party_routing_type">第三方路线规划</string>
<string name="special_routing_type">特殊路线规划</string>
<string name="osmand_default_routing">OsmAnd 路线规划</string>
<string name="routing_profile_straightline">直线</string>
<string name="base_profile_descr_aircraft">飞机、滑翔</string>
<string name="profile_alert_delete_title">删除配置文件</string>
<string name="profile_alert_duplicate_name_title">重复的名称</string>
<string name="profile_type_base_string">基本配置文件</string>
<string name="settings_routing_mode_string">模式:%s</string>
<string name="select_icon_profile_dialog_title">选择图标</string>
<string name="profile_name_hint">配置文件名称</string>
<string name="downloaded_maps">已下载地图</string>
<string name="download_maps_travel">旅行指南</string>
<string name="shared_string_travel_guides">旅游指南</string>
<string name="wikivoyage_travel_guide">旅行指南</string>
<string name="shared_string_gpx_files">GPX 文件</string>
<string name="map_widget_intermediate_time">中转时间</string>
<string name="update_is_available">有更新可用</string>
<string name="purchase_dialog_title">选择规划</string>
<string name="images_cache">图片缓存</string>
<string name="article_removed">已删除文章</string>
<string name="saved_articles">已存书签文章</string>
<string name="group_deleted">群组已删除</string>
<string name="rendering_attr_whiteWaterSports_name">激流运动</string>
<string name="touring_view_renderer">旅游风景</string>
<string name="osm_recipients_label">OSM 收件人</string>
<string name="rename_marker">重命名标记</string>
<string name="mark_passed">已经过标记</string>
<string name="round_trip">往返行程</string>
<string name="route_is_calculated">路线已计算</string>
<string name="rendering_value_darkyellow_name">暗黄色</string>
<string name="plan_route">规划路线</string>
<string name="hide_passed">隐藏已经过</string>
<string name="show_passed">显示已经过</string>
<string name="add_line">添加线路</string>
<string name="edit_line">编辑线路</string>
<string name="waypoint_one">航点 1</string>
<string name="add_waypoint">添加航点</string>
<string name="shared_string_preparing">正在准备</string>
<string name="index_name_antarctica">南极洲</string>
<string name="shared_string_routing">路线</string>
<string name="routing_profile_direct_to">点对点</string>
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="monitoring_notification">通知</string>
<string name="app_mode_osm">OSM</string>
<string name="accessibility_announce">公告</string>
<string name="personal_category_name">个人</string>
<string name="shared_string_revert">还原</string>
<string name="shared_preference">共享</string>
<string name="shared_string_maps">地图</string>
<string name="shared_sting_tiles">图块</string>
<string name="rendering_attr_piste_difficulty_aerialway_name">空中航线</string>
<string name="rendering_attr_piste_difficulty_undefined_name">未定义</string>
<string name="rendering_attr_piste_difficulty_extreme_name">极端</string>
<string name="rendering_attr_piste_difficulty_freeride_name">自由滑雪</string>
<string name="rendering_attr_piste_difficulty_expert_name">专家</string>
<string name="rendering_attr_piste_difficulty_advanced_name">高级</string>
<string name="rendering_attr_piste_difficulty_intermediate_name">中等</string>
<string name="rendering_attr_piste_difficulty_easy_name">简单</string>
<string name="rendering_attr_piste_difficulty_novice_name">新手</string>
<string name="rendering_attr_piste_type_nordic_name">北欧风</string>
<string name="rendering_attr_piste_type_downhill_name">下坡</string>
<string name="route_way">道路</string>
<string name="transfers">转移</string>
<string name="lang_gn_py">瓜拉尼语</string>
<string name="shared_string_launch">启动</string>
<string name="shared_string_view">查看</string>
<string name="shared_string_do"></string>
<string name="shared_string_contents">内容</string>
<string name="shared_string_read">读取</string>
<string name="shared_string_explore">探索</string>
<string name="shared_string_result">结果</string>
<string name="shared_string_always">总是</string>
<string name="shared_string_resume">恢复</string>
<string name="favorites_item">收藏</string>
<string name="lang_yo">约鲁巴语</string>
<string name="lang_uz">乌兹别克语</string>
<string name="lang_ur">乌尔都语</string>
<string name="lang_tt">鞑靼语</string>
<string name="lang_tg">塔吉克语</string>
<string name="lang_sco">苏格兰语</string>
<string name="lang_scn">西西里语</string>
<string name="lang_pnb">旁遮普语</string>
<string name="lang_ne">尼泊尔语</string>
<string name="lang_nap">那不勒斯语</string>
<string name="lang_my">缅甸语</string>
<string name="lang_mn">蒙古语</string>
<string name="lang_min">米南卡保语</string>
<string name="lang_mg">马达加斯加语</string>
<string name="lang_ky">柯尔克孜语</string>
<string name="lang_kk">哈萨克语</string>
<string name="lang_jv">爪哇语</string>
<string name="lang_gu">古吉拉特语</string>
<string name="lang_cv">楚瓦什语</string>
<string name="lang_ce">车臣语</string>
<string name="lang_bar">巴伐利亚语</string>
<string name="lang_ba">巴什基尔语</string>
<string name="lang_an">阿拉贡语</string>
<string name="lang_lmo">伦巴第语</string>
<string name="rendering_attr_piste_type_skitour_name">滑雪旅行</string>
<string name="shared_string_divider">分隔符</string>
<string name="shared_string_hidden">已隐藏</string>
<string name="shared_string_items">项目</string>
<string name="shared_string_hillshade">地形阴影</string>
<string name="download_slope_maps">坡度</string>
<string name="shared_string_importing">正在导入</string>
<string name="shared_string_profiles">个人资料</string>
<string name="dd_ddddd_format">度度.度度度度度°</string>
<string name="dd_mm_mmmm_format">度度°分分.分分分分\'</string>
<string name="dd_mm_mmm_format">度度°分分.分分分\'</string>
<string name="rendering_attr_piste_type_connection_name">连接</string>
<string name="rendering_attr_piste_type_hike_name">远足</string>
<string name="rendering_attr_piste_type_sleigh_name">雪橇</string>
<string name="analytics_pref_title">分析</string>
<string name="shared_string_example">示例</string>
<string name="years_5"></string>
<string name="years_2_4"></string>
<string name="year"></string>
<string name="months_5"></string>
<string name="months_2_4"></string>
<string name="month"></string>
<string name="weeks_5"></string>
<string name="weeks_2_4"></string>
<string name="week"></string>
<string name="days_5"></string>
<string name="days_2_4"></string>
<string name="app_mode_wagon">旅行车</string>
<string name="app_mode_camper">露营车</string>
<string name="rendering_attr_tracktype_grade5_name">松软</string>
<string name="sett_generic_ext_input">键盘</string>
<string name="sett_no_ext_input"></string>
<string name="app_mode_offroad">越野</string>
<string name="app_mode_scooter">踏板车</string>
<string name="app_mode_monowheel">单轮</string>
<string name="app_mode_ufo">UFO</string>
<string name="shared_string_icon">图标</string>
<string name="routing_attr_freeride_policy_name">越野滑雪</string>
<string name="routing_attr_piste_type_sled_name">雪橇</string>
<string name="routing_profile_geocoding">地理编码</string>
<string name="button_rate">评分</string>
<string name="shared_string_swap">切换</string>
<string name="dd_dddddd_format">度度.度度度度度度°</string>
<string name="dd_mm_ss_format">度度°分分′秒秒″</string>
<string name="nautical_renderer">航海</string>
<string name="day_off_label">关闭</string>
<string name="lang_lo">老挝语</string>
<string name="shared_string_markers">标记</string>
<string name="shared_string_finish">完成</string>
<string name="date_added">新增</string>
<string name="shared_string_groups">群组</string>
<string name="shared_string_list">列表</string>
<string name="line">线路</string>
<string name="screen_timeout_descr">若“%1$s”开启活动时间将取决于它。</string>
<string name="default_screen_timeout">默认屏幕超时</string>
<string name="shared_string_tones">色调</string>
<string name="shared_string_meters"></string>
<string name="shared_string_night_map">夜晚地图</string>
<string name="clear_tiles_warning">应用这些更改将清除此图块源的缓存数据</string>
<string name="routing_attr_length_description">指定路线上允许的车辆长度。</string>
<string name="routing_attr_length_name">长度限制</string>
<string name="shared_string_bearing">方向</string>
<string name="app_mode_wheelchair_forward">轮椅向前</string>
<string name="add_to_a_track">添加到轨迹</string>
<string name="track_show_start_finish_icons">显示开始于结束图标</string>
<string name="select_track_width">选择宽度</string>
<string name="screen_timeout">屏幕超时</string>
<string name="app_mode_enduro_motorcycle">耐力赛摩托车</string>
<string name="app_mode_motor_scooter">小型摩托车</string>
<string name="app_mode_go_cart">卡丁车</string>
<string name="nothing_found_in_radius">找不到任何内容:</string>
<string name="keep_active">保持活跃</string>
<string name="gpx_direction_arrows">方向箭头</string>
<string name="shared_string_custom">自定义</string>
<string name="rendering_value_thick_name"></string>
</resources>

View file

@ -1178,7 +1178,7 @@
<string name="poi_pump_powered">動力泵浦</string>
<string name="poi_pump_no">無泵浦</string>
<string name="poi_water_characteristic_mineral">礦泉水</string>
<string name="poi_water_characteristic_mud">水的特質:泥漿</string>
<string name="poi_water_characteristic_mud">泥漿</string>
<string name="poi_water_characteristic_sulfuric">硫酸</string>
<string name="poi_water_point">供水點</string>
<string name="poi_cuisine">美食</string>
@ -1868,7 +1868,7 @@
<string name="poi_fuel_100ll">100LL 燃料</string>
<string name="poi_fuel_autogas">液化石油氣</string>
<string name="poi_fuel_jeta1">Jet A-1 燃料</string>
<string name="poi_fuel_adblue">AdBlue 燃料</string>
<string name="poi_fuel_adblue">柴油排氣液</string>
<string name="poi_fuel_wood">燃料:木材</string>
<string name="poi_fuel_charcoal">燃料:木炭</string>
<string name="poi_fuel_coal">燃料:煤</string>

View file

@ -2891,7 +2891,7 @@
<string name="quick_action_day_night_switch_mode">切換日間/夜間模式</string>
<string name="routeInfo_roadClass_name">道路類型</string>
<string name="routeInfo_surface_name">路面</string>
<string name="routeInfo_smoothness_name">光滑</string>
<string name="routeInfo_smoothness_name">平順</string>
<string name="routeInfo_steepness_name">坡度</string>
<string name="add_home">新增住家</string>
<string name="add_work">新增工作地點</string>

View file

@ -268,6 +268,9 @@
<dimen name="bottom_sheet_list_item_height">48dp</dimen>
<dimen name="bottom_sheet_large_list_item_height">64dp</dimen>
<dimen name="bottom_sheet_icon_margin">24dp</dimen>
<dimen name="bottom_sheet_title_padding_top">10dp</dimen>
<dimen name="bottom_sheet_title_padding_bottom">6dp</dimen>
<dimen name="bottom_sheet_icon_margin_large">32dp</dimen>
<dimen name="bottom_sheet_divider_margin_top">7dp</dimen>
<dimen name="bottom_sheet_divider_margin_bottom">8dp</dimen>
<dimen name="bottom_sheet_divider_margin_start">64dp</dimen>

View file

@ -11,6 +11,12 @@
Thx - Hardy
-->
<string name="shared_string_done">Done</string>
<string name="plan_route_select_track_file_for_open">Select a track file for open.</string>
<string name="plan_route_create_new_route">Create new route</string>
<string name="plan_route_open_existing_track">Open existing track</string>
<string name="plan_route_import_track">Import track</string>
<string name="plan_route_last_edited">Last edited</string>
<string name="track_coloring_solid">Solid</string>
<string name="gpx_direction_arrows">Direction arrows</string>
<string name="shared_string_custom">Custom</string>

View file

@ -184,7 +184,7 @@ public class UiUtilities {
return tintDrawable(AppCompatResources.getDrawable(context, resId), color);
}
public static Drawable tintDrawable(Drawable drawable, int color) {
public static Drawable tintDrawable(Drawable drawable, @ColorInt int color) {
Drawable coloredDrawable = null;
if (drawable != null) {
coloredDrawable = DrawableCompat.wrap(drawable);

View file

@ -15,11 +15,13 @@ import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities;
import net.osmand.IndexConstants;
import net.osmand.plus.GPXDatabase;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GpxDbHelper;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
import net.osmand.util.Algorithms;
import java.io.File;
@ -29,20 +31,27 @@ import java.util.List;
public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackViewHolder> {
private LayoutInflater themedInflater;
private List<GpxUiHelper.GPXInfo> gpxInfoList;
private OsmandApplication app;
private LayoutInflater themedInflater;
private UiUtilities iconsCache;
private List<GPXInfo> gpxInfoList;
private boolean showCurrentGpx;
private OnItemClickListener onItemClickListener;
private UiUtilities iconsCache;
GpxTrackAdapter(Context ctx, List<GpxUiHelper.GPXInfo> gpxInfoList, boolean showCurrentGpx) {
this.showCurrentGpx = showCurrentGpx;
public GpxTrackAdapter(Context ctx, List<GPXInfo> gpxInfoList, boolean showCurrentGpx) {
app = (OsmandApplication) ctx.getApplicationContext();
boolean nightMode = app.getDaynightHelper().isNightModeForMapControls();
themedInflater = UiUtilities.getInflater(ctx, nightMode);
this.gpxInfoList = gpxInfoList;
themedInflater = UiUtilities.getInflater(ctx, app.getDaynightHelper().isNightModeForMapControls());
iconsCache = app.getUIUtilities();
this.gpxInfoList = gpxInfoList;
this.showCurrentGpx = showCurrentGpx;
}
public void setGpxInfoList(List<GPXInfo> gpxInfoList) {
this.gpxInfoList = gpxInfoList;
}
public void setShowCurrentGpx(boolean showCurrentGpx) {
this.showCurrentGpx = showCurrentGpx;
}
@NonNull
@ -67,14 +76,16 @@ public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackV
holder.icon.setImageDrawable(iconsCache.getThemedIcon(R.drawable.ic_action_polygom_dark));
}
final int adapterPosition = holder.getAdapterPosition();
GpxUiHelper.GPXInfo info = gpxInfoList.get(adapterPosition);
GPXDatabase.GpxDataItem dataItem = getDataItem(info);
GPXInfo info = gpxInfoList.get(adapterPosition);
GpxDataItem dataItem = getDataItem(info);
String itemTitle = GpxUiHelper.getGpxTitle(info.getFileName());
updateGpxInfoView(holder, itemTitle, info, dataItem, currentlyRecordingTrack, app);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(adapterPosition);
if (onItemClickListener != null) {
onItemClickListener.onItemClick(adapterPosition);
}
}
});
}
@ -84,8 +95,8 @@ public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackV
return gpxInfoList.size();
}
private void updateGpxInfoView(TrackViewHolder holder, String itemTitle, GpxUiHelper.GPXInfo info,
GPXDatabase.GpxDataItem dataItem, boolean currentlyRecordingTrack,
private void updateGpxInfoView(TrackViewHolder holder, String itemTitle, GPXInfo info,
GpxDataItem dataItem, boolean currentlyRecordingTrack,
OsmandApplication app) {
holder.name.setText(itemTitle.replace("/", "").trim());
GPXUtilities.GPXTrackAnalysis analysis = null;
@ -121,7 +132,7 @@ public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackV
}
}
private GPXDatabase.GpxDataItem getDataItem(final GpxUiHelper.GPXInfo info) {
private GpxDataItem getDataItem(final GPXInfo info) {
GpxDbHelper.GpxDataItemCallback gpxDataItemCallback = new GpxDbHelper.GpxDataItemCallback() {
@Override
public boolean isCancelled() {
@ -129,7 +140,7 @@ public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackV
}
@Override
public void onGpxDataItemReady(GPXDatabase.GpxDataItem item) {
public void onGpxDataItemReady(GpxDataItem item) {
if (item != null && gpxInfoList != null && info != null) {
notifyItemChanged(gpxInfoList.indexOf(info));
}
@ -139,7 +150,7 @@ public class GpxTrackAdapter extends RecyclerView.Adapter<GpxTrackAdapter.TrackV
, gpxDataItemCallback);
}
void setAdapterListener(OnItemClickListener onItemClickListener) {
public void setAdapterListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}

View file

@ -40,6 +40,7 @@ import net.osmand.plus.activities.ActivityResultListener;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.TrackActivity;
import net.osmand.plus.dialogs.ImportGpxBottomSheetDialogFragment;
import net.osmand.plus.measurementtool.MeasurementToolFragment;
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.settings.backend.SettingsHelper;
import net.osmand.plus.settings.backend.SettingsHelper.CheckDuplicatesListener;
@ -142,13 +143,17 @@ public class ImportHelper {
}
public boolean handleGpxImport(final Uri contentUri, final boolean useImportDir) {
return handleGpxImport(contentUri, useImportDir, true);
}
public boolean handleGpxImport(final Uri contentUri, final boolean useImportDir, boolean showInDetailsActivity) {
String name = getNameFromContentUri(app, contentUri);
boolean isOsmandSubdir = Algorithms.isSubDirectory(app.getAppPath(IndexConstants.GPX_INDEX_DIR), new File(contentUri.getPath()));
if (!isOsmandSubdir && name != null) {
String nameLC = name.toLowerCase();
if (nameLC.endsWith(GPX_FILE_EXT)) {
name = name.substring(0, name.length() - GPX_FILE_EXT.length()) + GPX_FILE_EXT;
handleGpxImport(contentUri, name, true, useImportDir);
handleGpxImport(contentUri, name, true, useImportDir, showInDetailsActivity);
return true;
} else if (nameLC.endsWith(KML_SUFFIX)) {
name = name.substring(0, name.length() - KML_SUFFIX.length()) + KML_SUFFIX;
@ -229,7 +234,8 @@ public class ImportHelper {
}
@SuppressLint("StaticFieldLeak")
private void handleGpxImport(final Uri gpxFile, final String fileName, final boolean save, final boolean useImportDir) {
private void handleGpxImport(final Uri gpxFile, final String fileName, final boolean save, final boolean useImportDir,
final boolean showInDetailsActivity) {
new AsyncTask<Void, Void, GPXFile>() {
ProgressDialog progress = null;
@ -264,7 +270,7 @@ public class ImportHelper {
if (AndroidUtils.isActivityNotDestroyed(activity)) {
progress.dismiss();
}
handleResult(result, fileName, save, useImportDir, false);
handleResult(result, fileName, save, useImportDir, false, showInDetailsActivity);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@ -941,8 +947,13 @@ public class ImportHelper {
executeImportTask(renderingImportTask);
}
private void handleResult(GPXFile result, String name, boolean save,
boolean useImportDir, boolean forceImportFavourites) {
handleResult(result, name, save, useImportDir, forceImportFavourites, true);
}
private void handleResult(final GPXFile result, final String name, final boolean save,
final boolean useImportDir, boolean forceImportFavourites) {
final boolean useImportDir, boolean forceImportFavourites, boolean showInDetailsActivity) {
if (result != null) {
if (result.error != null) {
Toast.makeText(activity, result.error.getMessage(), Toast.LENGTH_LONG).show();
@ -951,8 +962,9 @@ public class ImportHelper {
}
} else {
if (save) {
new SaveAsyncTask(result, name, useImportDir).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
new SaveAsyncTask(result, name, useImportDir, showInDetailsActivity)
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else if (showInDetailsActivity) {
showGpxInDetailsActivity(result);
}
if (gpxImportCompleteListener != null) {
@ -1057,11 +1069,13 @@ public class ImportHelper {
private final GPXFile result;
private final String name;
private final boolean useImportDir;
private boolean showInDetailsActivity;
private SaveAsyncTask(GPXFile result, final String name, boolean useImportDir) {
private SaveAsyncTask(GPXFile result, final String name, boolean useImportDir, boolean showInDetailsActivity) {
this.result = result;
this.name = name;
this.useImportDir = useImportDir;
this.showInDetailsActivity = showInDetailsActivity;
}
@Override
@ -1071,12 +1085,24 @@ public class ImportHelper {
@Override
protected void onPostExecute(final String warning) {
if(Algorithms.isEmpty(warning)) {
showGpxInDetailsActivity(result);
if (Algorithms.isEmpty(warning)) {
if (showInDetailsActivity) {
showGpxInDetailsActivity(result);
} else {
showPlanRouteFragment();
}
} else {
Toast.makeText(activity, warning, Toast.LENGTH_LONG).show();
}
}
private void showPlanRouteFragment() {
MeasurementToolFragment fragment = (MeasurementToolFragment) activity.getSupportFragmentManager()
.findFragmentByTag(MeasurementToolFragment.TAG);
if (fragment != null && !fragment.isDetached() && !fragment.isRemoving()) {
fragment.addNewGpxData(result);
}
}
}
private MapActivity getMapActivity() {

View file

@ -50,6 +50,7 @@ import net.osmand.GPXUtilities.TrkSegment;
import net.osmand.GPXUtilities.WptPt;
import net.osmand.IndexConstants;
import net.osmand.data.LatLon;
import net.osmand.data.QuadRect;
import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
@ -79,6 +80,8 @@ import net.osmand.plus.views.MapControlsLayer;
import net.osmand.plus.views.controls.ReorderItemTouchHelperCallback;
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory;
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarController;
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarControllerType;
import net.osmand.plus.views.mapwidgets.MapInfoWidgetsFactory.TopToolbarView;
import java.io.File;
import java.text.MessageFormat;
@ -89,6 +92,8 @@ import java.util.List;
import java.util.Locale;
import static net.osmand.IndexConstants.GPX_FILE_EXT;
import static net.osmand.plus.measurementtool.SelectFileBottomSheet.SelectFileListener;
import static net.osmand.plus.measurementtool.StartPlanRouteBottomSheet.StartPlanRouteListener;
public class MeasurementToolFragment extends BaseOsmAndFragment {
@ -117,6 +122,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
private boolean wasCollapseButtonVisible;
private boolean progressBarVisible;
private boolean pointsListOpened;
private boolean planRouteMode = false;
private Boolean saved;
private boolean portrait;
private boolean nightMode;
@ -140,6 +146,10 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
this.initialPoint = initialPoint;
}
public void setPlanRouteMode(boolean planRouteMode) {
this.planRouteMode = planRouteMode;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -198,7 +208,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
hidePointsListFragment();
}
editingCtx.getCommandManager().resetMeasurementLayer(measurementLayer);
nightMode = mapActivity.getMyApplication().getDaynightHelper().isNightModeForMapControls();
portrait = AndroidUiHelper.isOrientationPortrait(mapActivity);
@ -318,17 +327,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
@Override
public void onClick(View view) {
editingCtx.getCommandManager().undo();
if (editingCtx.getCommandManager().canUndo()) {
enable(undoBtn);
} else {
disable(undoBtn);
}
updateUndoRedoButton(editingCtx.getCommandManager().canUndo(), undoBtn);
hidePointsListIfNoPoints();
if (editingCtx.getPointsCount() > 0) {
enable(upDownBtn);
}
adapter.notifyDataSetChanged();
enable(redoBtn);
updateUndoRedoButton(true, redoBtn);
updateText();
}
});
@ -339,17 +344,13 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
@Override
public void onClick(View view) {
editingCtx.getCommandManager().redo();
if (editingCtx.getCommandManager().canRedo()) {
enable(redoBtn);
} else {
disable(redoBtn);
}
updateUndoRedoButton(editingCtx.getCommandManager().canRedo(), redoBtn);
hidePointsListIfNoPoints();
if (editingCtx.getPointsCount() > 0) {
enable(upDownBtn);
}
adapter.notifyDataSetChanged();
enable(undoBtn);
updateUndoRedoButton(true, undoBtn);
updateText();
}
});
@ -385,8 +386,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
String azimuthStr = OsmAndFormatter.getFormattedAzimuth(bearing, getMyApplication());
distanceToCenterTv.setText(String.format("%1$s • %2$s", distStr, azimuthStr));
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(
distanceToCenterTv, 12, 18, 2, TypedValue.COMPLEX_UNIT_SP
);
distanceToCenterTv, 14, 18, 2,
TypedValue.COMPLEX_UNIT_SP);
}
});
@ -401,16 +402,16 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
});
if (!editingCtx.getCommandManager().canUndo()) {
disable(undoBtn);
updateUndoRedoButton(false, undoBtn);
}
if (!editingCtx.getCommandManager().canRedo()) {
disable(redoBtn);
updateUndoRedoButton(false, redoBtn);
}
if (editingCtx.getPointsCount() < 1) {
disable(upDownBtn);
}
toolBarController = new MeasurementToolBarController(newGpxData);
toolBarController = new MeasurementToolBarController();
if (editingCtx.getSelectedPointPosition() != -1) {
int navigationIconResId = AndroidUtils.getNavigationIconResId(mapActivity);
toolBarController.setBackBtnIconIds(navigationIconResId, navigationIconResId);
@ -427,7 +428,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
toolBarController.setTitle(getString(R.string.edit_line));
}
} else {
toolBarController.setTitle(getString(R.string.measurement_tool_action_bar));
toolBarController.setTitle(getString(R.string.plan_route));
}
toolBarController.setOnBackButtonClickListener(new View.OnClickListener() {
@Override
@ -451,7 +452,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
} else {
if (newGpxData == null) {
final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR);
String fileName = getSuggestedName(dir);
String fileName = getSuggestedName(dir) + GPX_FILE_EXT;
saveNewGpx(dir, fileName, true, SaveType.ROUTE_POINT, true);
} else {
addToGpx(mapActivity);
@ -485,6 +486,17 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
pointsRv.setLayoutManager(new LinearLayoutManager(getContext()));
pointsRv.setAdapter(adapter);
initMeasurementMode(newGpxData);
if (planRouteMode) {
StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(),
createStartPlanRouteListener());
}
return view;
}
private void initMeasurementMode(NewGpxData newGpxData) {
editingCtx.getCommandManager().resetMeasurementLayer(getMapActivity().getMapLayers().getMeasurementToolLayer());
enterMeasurementMode();
showSnapToRoadControls();
@ -503,8 +515,6 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
if (saved == null) {
saved = newGpxData != null && (newGpxData.getActionType() == ActionType.ADD_ROUTE_POINTS || newGpxData.getActionType() == ActionType.EDIT_SEGMENT);
}
return view;
}
@Override
@ -675,7 +685,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
if (pointsListOpened) {
hidePointsList();
}
disable(redoBtn, upDownBtn);
updateUndoRedoButton(false, redoBtn);
disable(upDownBtn);
updateText();
saved = false;
}
@ -765,11 +776,77 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
};
}
private StartPlanRouteListener createStartPlanRouteListener() {
return new StartPlanRouteListener() {
@Override
public void openExistingTrackOnClick() {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
SelectFileBottomSheet.showInstance(mapActivity.getSupportFragmentManager(),
createSelectFileListener());
}
}
@Override
public void openLastEditTrackOnClick(GPXFile gpxFile) {
addNewGpxData(gpxFile);
}
@Override
public void dismissButtonOnClick() {
quit(true);
}
};
}
private SelectFileListener createSelectFileListener() {
return new SelectFileListener() {
@Override
public void selectFileOnCLick(GPXFile gpxFile) {
addNewGpxData(gpxFile);
}
@Override
public void dismissButtonOnClick() {
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
StartPlanRouteBottomSheet.showInstance(mapActivity.getSupportFragmentManager(),
createStartPlanRouteListener());
}
}
};
}
public void addNewGpxData(GPXFile gpxFile) {
QuadRect rect = gpxFile.getRect();
TrkSegment segment = getTrkSegment(gpxFile);
NewGpxData newGpxData = new NewGpxData(gpxFile, rect, ActionType.EDIT_SEGMENT, segment);
editingCtx.setNewGpxData(newGpxData);
initMeasurementMode(newGpxData);
QuadRect qr = newGpxData.getRect();
MapActivity mapActivity = getMapActivity();
if (mapActivity != null) {
mapActivity.getMapView().fitRectToMap(qr.left, qr.right, qr.top, qr.bottom,
(int) qr.width(), (int) qr.height(), 0);
}
}
private TrkSegment getTrkSegment(GPXFile gpxFile) {
for (GPXUtilities.Track t : gpxFile.tracks) {
for (TrkSegment s : t.segments) {
if (s.points.size() > 0) {
return s;
}
}
}
return null;
}
private void removePoint(MeasurementToolLayer layer, int position) {
editingCtx.getCommandManager().execute(new RemovePointCommand(layer, position));
adapter.notifyDataSetChanged();
enable(undoBtn);
disable(redoBtn);
updateUndoRedoButton(true, undoBtn);
updateUndoRedoButton(false, redoBtn);
updateText();
saved = false;
hidePointsListIfNoPoints();
@ -831,7 +908,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
if (toPosition >= 0 && fromPosition >= 0 && toPosition != fromPosition) {
editingCtx.getCommandManager().execute(new ReorderPointCommand(measurementLayer, fromPosition, toPosition));
adapter.notifyDataSetChanged();
disable(redoBtn);
updateUndoRedoButton(false, redoBtn);
updateText();
mapActivity.refreshMap();
saved = false;
@ -1117,8 +1194,9 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
}
private void doAddOrMovePointCommonStuff() {
enable(undoBtn, upDownBtn);
disable(redoBtn);
enable(upDownBtn);
updateUndoRedoButton(true, undoBtn);
updateUndoRedoButton(false, redoBtn);
updateText();
adapter.notifyDataSetChanged();
saved = false;
@ -1489,6 +1567,8 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
}
}
});
snackbar.getView().<TextView>findViewById(com.google.android.material.R.id.snackbar_action)
.setAllCaps(false);
UiUtilities.setupSnackbar(snackbar, nightMode);
snackbar.show();
dismiss(mapActivity);
@ -1505,18 +1585,24 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
private void enable(View... views) {
for (View view : views) {
view.setEnabled(true);
view.setAlpha(1);
}
private void updateUndoRedoButton(boolean enable, View view) {
view.setEnabled(enable);
int color = enable
? nightMode ? R.color.icon_color_active_dark : R.color.icon_color_active_light
: nightMode ? R.color.icon_color_secondary_dark : R.color.icon_color_secondary_light;
ImageView imageView = ((ImageView) view);
imageView.setImageDrawable(UiUtilities.tintDrawable(imageView.getDrawable(),
ContextCompat.getColor(view.getContext(), color)));
}
private void disable(View... views) {
for (View view : views) {
view.setEnabled(false);
view.setAlpha(.5f);
}
private void enable(View view) {
view.setEnabled(true);
view.setAlpha(1);
}
private void disable(View view) {
view.setEnabled(false);
view.setAlpha(.5f);
}
private void updateText() {
@ -1537,11 +1623,9 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
final File dir = mapActivity.getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR);
toolBarController.setTitle(getSuggestedName(dir));
toolBarController.setDescription(getString(R.string.plan_route));
toolBarController.setSaveViewVisible(true);
} else {
toolBarController.setTitle(getString(R.string.measurement_tool_action_bar));
toolBarController.setTitle(getString(R.string.plan_route));
toolBarController.setDescription(null);
toolBarController.setSaveViewVisible(false);
}
mapActivity.showTopToolbar(toolBarController);
}
@ -1690,7 +1774,7 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
} else {
visibleSnapToRoadIcon(false);
}
if (editingCtx.getNewGpxData() != null) {
if (editingCtx.getNewGpxData() != null && !planRouteMode) {
GPXFile gpx = editingCtx.getNewGpxData().getGpxFile();
Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization().getTrackActivity());
newIntent.putExtra(TrackActivity.TRACK_FILE_NAME, gpx.path);
@ -1717,7 +1801,9 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
}
public static boolean showInstance(FragmentManager fragmentManager) {
return showFragment(new MeasurementToolFragment(), fragmentManager);
MeasurementToolFragment fragment = new MeasurementToolFragment();
fragment.setPlanRouteMode(true);
return showFragment(fragment, fragmentManager);
}
private static boolean showFragment(MeasurementToolFragment fragment, FragmentManager fragmentManager) {
@ -1734,29 +1820,44 @@ public class MeasurementToolFragment extends BaseOsmAndFragment {
private class MeasurementToolBarController extends TopToolbarController {
MeasurementToolBarController(NewGpxData newGpxData) {
super(MapInfoWidgetsFactory.TopToolbarControllerType.MEASUREMENT_TOOL);
MeasurementToolBarController() {
super(TopToolbarControllerType.MEASUREMENT_TOOL);
setBackBtnIconClrIds(0, 0);
setTitleTextClrIds(R.color.text_color_tab_active_light, R.color.text_color_tab_active_dark);
setDescrTextClrIds(R.color.text_color_tab_active_light, R.color.text_color_tab_active_dark);
setBgIds(R.drawable.gradient_toolbar, R.drawable.gradient_toolbar,
R.drawable.gradient_toolbar, R.drawable.gradient_toolbar);
setCloseBtnVisible(false);
if (newGpxData != null) {
setSaveViewVisible(true);
}
setSaveViewVisible(true);
setSingleLineTitle(false);
setSaveViewTextId(R.string.shared_string_done);
}
@Override
public void updateToolbar(MapInfoWidgetsFactory.TopToolbarView view) {
public void updateToolbar(TopToolbarView view) {
super.updateToolbar(view);
setupDoneButton(view);
View shadow = view.getShadowView();
if (shadow != null) {
shadow.setVisibility(View.GONE);
}
}
private void setupDoneButton(TopToolbarView view) {
TextView done = view.getSaveView();
Context ctx = done.getContext();
done.setAllCaps(false);
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) done.getLayoutParams();
layoutParams.height = ctx.getResources().getDimensionPixelSize(R.dimen.measurement_tool_button_height);
layoutParams.leftMargin = ctx.getResources().getDimensionPixelSize(R.dimen.context_menu_padding_margin_large);
layoutParams.rightMargin = ctx.getResources().getDimensionPixelSize(R.dimen.context_menu_padding_margin_large);
int paddingH = ctx.getResources().getDimensionPixelSize(R.dimen.context_menu_padding_margin_large);
int paddingV = ctx.getResources().getDimensionPixelSize(R.dimen.context_menu_padding_margin_small);
done.setPadding(paddingH, paddingV, paddingH, paddingV);
AndroidUtils.setBackground(ctx, done, nightMode, R.drawable.dlg_btn_stroked_light,
R.drawable.dlg_btn_stroked_dark);
}
@Override
public int getStatusBarColor(Context context, boolean night) {
return NO_COLOR;

View file

@ -0,0 +1,171 @@
package net.osmand.plus.measurementtool;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.IndexConstants;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
import net.osmand.plus.helpers.GpxTrackAdapter;
import net.osmand.plus.helpers.GpxTrackAdapter.OnItemClickListener;
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter;
import net.osmand.plus.mapcontextmenu.other.HorizontalSelectionAdapter.HorizontalSelectionAdapterListener;
import net.osmand.util.Algorithms;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static net.osmand.plus.helpers.GpxUiHelper.getSortedGPXFilesInfo;
public class SelectFileBottomSheet extends MenuBottomSheetDialogFragment {
public static final String TAG = SelectFileBottomSheet.class.getSimpleName();
public static final int BOTTOM_SHEET_HEIGHT_DP = 427;
protected View mainView;
protected GpxTrackAdapter adapter;
private SelectFileListener listener;
private Map<String, List<GPXInfo>> gpxInfoMap;
public void setListener(SelectFileListener listener) {
this.listener = listener;
}
@Override
public void createMenuItems(Bundle savedInstanceState) {
final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
Context context = requireContext();
OsmandApplication app = requiredMyApplication();
mainView = View.inflate(new ContextThemeWrapper(context, themeRes),
R.layout.bottom_sheet_plan_route_select_file, null);
final RecyclerView filesRecyclerView = mainView.findViewById(R.id.gpx_track_list);
filesRecyclerView.setLayoutManager(new LinearLayoutManager(context));
List<File> dirs = new ArrayList<>();
final File gpxDir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
collectDirs(gpxDir, dirs);
List<String> dirItems = new ArrayList<>();
for (File dir : dirs) {
dirItems.add(dir.getName());
}
String allFilesFolder = context.getString(R.string.shared_string_all);
dirItems.add(0, allFilesFolder);
final List<GPXInfo> allGpxList = getSortedGPXFilesInfo(gpxDir, null, false);
gpxInfoMap = new HashMap<>();
gpxInfoMap.put(allFilesFolder, allGpxList);
for (GPXInfo gpxInfo : allGpxList) {
String folderName = getFolderName(gpxInfo);
List<GPXInfo> gpxList = gpxInfoMap.get(folderName);
if (gpxList == null) {
gpxList = new ArrayList<>();
gpxInfoMap.put(folderName, gpxList);
}
gpxList.add(gpxInfo);
}
adapter = new GpxTrackAdapter(requireContext(), allGpxList, false);
adapter.setAdapterListener(new OnItemClickListener() {
@Override
public void onItemClick(int position) {
if (position != RecyclerView.NO_POSITION && position < allGpxList.size()) {
String fileName = allGpxList.get(position).getFileName();
GPXFile gpxFile = GPXUtilities.loadGPXFile(new File(gpxDir, fileName));
if (listener != null) {
listener.selectFileOnCLick(gpxFile);
}
}
dismiss();
}
});
filesRecyclerView.setAdapter(adapter);
final RecyclerView foldersRecyclerView = mainView.findViewById(R.id.folder_list);
foldersRecyclerView.setLayoutManager(new LinearLayoutManager(context,
RecyclerView.HORIZONTAL, false));
final HorizontalSelectionAdapter folderAdapter = new HorizontalSelectionAdapter(app, nightMode);
folderAdapter.setItems(dirItems);
folderAdapter.setSelectedItem(allFilesFolder);
foldersRecyclerView.setAdapter(folderAdapter);
folderAdapter.setListener(new HorizontalSelectionAdapterListener() {
@Override
public void onItemSelected(String item) {
List<GPXInfo> gpxInfoList = gpxInfoMap.get(item);
adapter.setGpxInfoList(gpxInfoList != null ? gpxInfoList : new ArrayList<GPXInfo>());
adapter.notifyDataSetChanged();
folderAdapter.notifyDataSetChanged();
}
});
items.add(new BaseBottomSheetItem.Builder().setCustomView(mainView).create());
}
private String getFolderName(GPXInfo gpxInfo) {
int fileNameStartIndex = gpxInfo.getFileName().lastIndexOf(File.separator);
return fileNameStartIndex != -1
? gpxInfo.getFileName().substring(0, fileNameStartIndex)
: IndexConstants.GPX_INDEX_DIR.substring(0, IndexConstants.GPX_INDEX_DIR.length() - 1);
}
private void collectDirs(File dir, List<File> dirs) {
File[] listFiles = dir.listFiles();
if (listFiles != null) {
Arrays.sort(listFiles);
for (File f : listFiles) {
if (f.isDirectory()) {
dirs.add(f);
collectDirs(f, dirs);
}
}
}
}
@Override
protected int getCustomHeight() {
return AndroidUtils.dpToPx(mainView.getContext(), BOTTOM_SHEET_HEIGHT_DP);
}
public static void showInstance(FragmentManager fragmentManager, SelectFileListener listener) {
if (!fragmentManager.isStateSaved()) {
SelectFileBottomSheet fragment = new SelectFileBottomSheet();
fragment.setUsedOnMap(true);
fragment.setRetainInstance(true);
fragment.setListener(listener);
fragment.show(fragmentManager, SelectFileBottomSheet.TAG);
}
}
@Override
protected int getDismissButtonTextId() {
return R.string.shared_string_cancel;
}
@Override
protected void onDismissButtonClickAction() {
if (listener != null) {
listener.dismissButtonOnClick();
}
}
interface SelectFileListener {
void selectFileOnCLick(GPXFile gpxFile);
void dismissButtonOnClick();
}
}

View file

@ -0,0 +1,229 @@
package net.osmand.plus.measurementtool;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.IndexConstants;
import net.osmand.PlatformUtil;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.base.MenuBottomSheetDialogFragment;
import net.osmand.plus.base.bottomsheetmenu.BaseBottomSheetItem;
import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemWithDescription;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerHalfItem;
import net.osmand.plus.base.bottomsheetmenu.simpleitems.TitleItem;
import net.osmand.plus.helpers.GpxTrackAdapter;
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
import net.osmand.plus.helpers.ImportHelper;
import org.apache.commons.logging.Log;
import java.io.File;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import static net.osmand.plus.helpers.GpxUiHelper.getSortedGPXFilesInfo;
public class StartPlanRouteBottomSheet extends MenuBottomSheetDialogFragment {
public static final String TAG = StartPlanRouteBottomSheet.class.getSimpleName();
private static final Log LOG = PlatformUtil.getLog(StartPlanRouteBottomSheet.class);
public static final int BOTTOM_SHEET_HEIGHT_DP = 427;
private static final int OPEN_GPX_DOCUMENT_REQUEST = 1001;
protected View mainView;
protected GpxTrackAdapter adapter;
private StartPlanRouteListener listener;
private ImportHelper importHelper;
public void setListener(StartPlanRouteListener listener) {
this.listener = listener;
}
@Override
public void createMenuItems(Bundle savedInstanceState) {
importHelper = new ImportHelper((AppCompatActivity) getActivity(), getMyApplication(), null);
final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme;
mainView = View.inflate(new ContextThemeWrapper(getContext(), themeRes),
R.layout.bottom_sheet_plan_route_start, null);
items.add(new TitleItem(getString(R.string.plan_route)));
BaseBottomSheetItem createNewRouteItem = new BottomSheetItemWithDescription.Builder()
.setIcon(getContentIcon(R.drawable.ic_notification_track))
.setTitle(getString(R.string.plan_route_create_new_route))
.setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
})
.create();
items.add(createNewRouteItem);
BaseBottomSheetItem openExistingTrackItem = new BottomSheetItemWithDescription.Builder()
.setIcon(getContentIcon(R.drawable.ic_action_folder))
.setTitle(getString(R.string.plan_route_open_existing_track))
.setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.openExistingTrackOnClick();
}
dismiss();
}
})
.create();
items.add(openExistingTrackItem);
BaseBottomSheetItem importTrackItem = new BottomSheetItemWithDescription.Builder()
.setIcon(getContentIcon(R.drawable.ic_action_phone))
.setTitle(getString(R.string.plan_route_import_track))
.setLayoutId(R.layout.bottom_sheet_item_simple_pad_32dp)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
importTrack();
}
})
.create();
items.add(importTrackItem);
items.add(new DividerHalfItem(getContext()));
final RecyclerView recyclerView = mainView.findViewById(R.id.gpx_track_list);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
OsmandApplication app = getMyApplication();
if (app == null) {
return;
}
File gpxDir = app.getAppPath(IndexConstants.GPX_INDEX_DIR);
List<GPXInfo> gpxList = getSortedGPXFilesInfo(gpxDir, null, false);
Collections.sort(gpxList, new Comparator<GPXInfo>() {
@Override
public int compare(GPXInfo lhs, GPXInfo rhs) {
return lhs.getLastModified() > rhs.getLastModified()
? -1 : (lhs.getLastModified() == rhs.getLastModified() ? 0 : 1);
}
});
final List<GPXInfo> gpxTopList = gpxList.subList(0, Math.min(5, gpxList.size()));
adapter = new GpxTrackAdapter(requireContext(), gpxList, false);
adapter.setAdapterListener(new GpxTrackAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
StartPlanRouteBottomSheet.this.onItemClick(position, gpxTopList);
}
});
recyclerView.setAdapter(adapter);
items.add(new BaseBottomSheetItem.Builder().setCustomView(mainView).create());
}
@Override
protected int getCustomHeight() {
return AndroidUtils.dpToPx(mainView.getContext(), BOTTOM_SHEET_HEIGHT_DP);
}
private void onItemClick(int position, List<GPXInfo> gpxInfoList) {
if (position != RecyclerView.NO_POSITION && position < gpxInfoList.size()) {
OsmandApplication app = requiredMyApplication();
String fileName = gpxInfoList.get(position).getFileName();
GPXFile gpxFile = GPXUtilities.loadGPXFile(new File(app.getAppPath(IndexConstants.GPX_INDEX_DIR), fileName));
if (listener != null) {
listener.openLastEditTrackOnClick(gpxFile);
}
}
dismiss();
}
private void importTrack() {
Intent intent = new Intent();
String action;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
action = Intent.ACTION_OPEN_DOCUMENT;
} else {
action = Intent.ACTION_GET_CONTENT;
}
intent.setAction(action);
intent.setType("*/*");
try {
startActivityForResult(intent, OPEN_GPX_DOCUMENT_REQUEST);
} catch (ActivityNotFoundException e) {
LOG.error(e.getMessage(), e);
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == OPEN_GPX_DOCUMENT_REQUEST && resultCode == Activity.RESULT_OK) {
if (data != null) {
Uri uri = data.getData();
importHelper.setGpxImportCompleteListener(new ImportHelper.OnGpxImportCompleteListener() {
@Override
public void onComplete(boolean success) {
finishImport(success);
importHelper.setGpxImportCompleteListener(null);
}
});
importHelper.handleGpxImport(uri, false, false);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
void finishImport(boolean success) {
if (success) {
dismiss();
}
}
public static void showInstance(FragmentManager fragmentManager, StartPlanRouteListener listener) {
if (!fragmentManager.isStateSaved()) {
StartPlanRouteBottomSheet fragment = new StartPlanRouteBottomSheet();
fragment.setUsedOnMap(true);
fragment.setRetainInstance(true);
fragment.setListener(listener);
fragment.show(fragmentManager, StartPlanRouteBottomSheet.TAG);
}
}
@Override
protected int getDismissButtonTextId() {
return R.string.shared_string_cancel;
}
@Override
protected void onDismissButtonClickAction() {
if (listener != null) {
listener.dismissButtonOnClick();
}
}
interface StartPlanRouteListener {
void openExistingTrackOnClick();
void openLastEditTrackOnClick(GPXFile gpxFile);
void dismissButtonOnClick();
}
}

View file

@ -474,7 +474,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
}
((FavoritesActivity) getActivity()).updateListViewFooter(footerView);
// TODO Rewrite without ContextMenuAdapter
// To do Rewrite without ContextMenuAdapter
optionsMenuAdapter = new ContextMenuAdapter(app);
ItemClickListener listener = new ContextMenuAdapter.ItemClickListener() {
@Override
@ -746,7 +746,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
private void collectDirs(File dir, List<File> dirs, File exclDir) {
File[] listFiles = dir.listFiles();
if (listFiles != null) {
Arrays.sort(listFiles);
for (File f : listFiles) {
if (f.isDirectory()) {
if (!exclDir.equals(f)) {
@ -922,7 +921,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
for (GpxInfo v : values) {
allGpxAdapter.addLocalIndexInfo(v);
}
allGpxAdapter.sort();
// disable sort
// allGpxAdapter.sort();
allGpxAdapter.notifyDataSetChanged();
}
@ -933,7 +933,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
for (GpxInfo v : result) {
allGpxAdapter.addLocalIndexInfo(v);
}
allGpxAdapter.sort();
// disable sort
// allGpxAdapter.sort();
allGpxAdapter.refreshSelected();
allGpxAdapter.notifyDataSetChanged();
onPostExecute(result);
@ -957,7 +958,18 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
if (listFiles == null) {
return new File[0];
}
Arrays.sort(listFiles);
// This file could be sorted in different way for folders
// now folders are also sorted by last modified date
Arrays.sort(listFiles, new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
// here we could guess date from file name '2017-08-30 ...' - first part date
if (f1.lastModified() == f2.lastModified()) {
return -f1.getName().compareTo(f2.getName());
}
return -Long.compare(f1.lastModified(), f2.lastModified());
}
});
return listFiles;
}
@ -1115,6 +1127,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
data.get(category.get(found)).add(info);
}
// disable sort
public void sort() {
Collections.sort(category, new Comparator<String>() {
@Override
@ -1622,7 +1635,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
for (GpxInfo i : ((List<GpxInfo>) results.values)) {
allGpxAdapter.addLocalIndexInfo(i);
}
allGpxAdapter.sort();
// disable sort
// allGpxAdapter.sort();
allGpxAdapter.refreshSelected();
}
allGpxAdapter.notifyDataSetChanged();

View file

@ -31,6 +31,7 @@ import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.osmedit.AddPOIAction;
import java.util.List;
@ -232,6 +233,10 @@ public class CreateEditActionDialog extends DialogFragment
@Override
public void onClick(View view) {
if (action instanceof AddPOIAction) {
saveFirstTagWithEmptyValue();
}
if (action.fillParams(((ViewGroup) root.findViewById(R.id.container)).getChildAt(0), (MapActivity) getActivity())) {
if (quickActionRegistry.isNameUnique(action, getContext())) {
@ -272,6 +277,10 @@ public class CreateEditActionDialog extends DialogFragment
Toast.makeText(getContext(), R.string.quick_action_empty_param_error, Toast.LENGTH_SHORT).show();
}
}
private void saveFirstTagWithEmptyValue() {
((ViewGroup) root.findViewById(R.id.container)).getChildAt(0).requestFocus();
}
});
}

View file

@ -253,10 +253,10 @@ public class RouteProvider {
}
if (OSMAND_ROUTER_V2.equals(file.author)) {
route = parseOsmAndGPXRoute(points, file);
addMissingTurns = false;
addMissingTurns = route.isEmpty();
} else if (file.isCloudmadeRouteFile() || OSMAND_ROUTER.equals(file.author)) {
directions = parseOsmAndGPXRoute(points, file, OSMAND_ROUTER.equals(file.author), builder.leftSide, 10);
if (OSMAND_ROUTER.equals(file.author)) {
if (OSMAND_ROUTER.equals(file.author) && file.hasRtePt()) {
// For files generated by OSMAND_ROUTER use directions contained unaltered
addMissingTurns = false;
}