This commit is contained in:
GaidamakUA 2015-10-01 10:54:32 +03:00
commit dcd8662a1b
19 changed files with 1330 additions and 67 deletions

View file

@ -139,7 +139,7 @@ public class MapPoiTypes {
}
public Map<String, PoiType> getAllTranslatedNames() {
Map<String, PoiType> translation = new HashMap<>();
Map<String, PoiType> translation = new HashMap<String, PoiType>();
for(PoiCategory pc : categories) {
for(PoiType pt : pc.getPoiTypes()) {
if(pt.isReference()) {

View file

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text="World Regions"
android:textSize="@dimen/default_list_text_size"/>
<ListView
android:id="@+id/list_world_regions"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:groupIndicator="@android:color/transparent"
android:isScrollContainer="false"
android:scrollbars="none"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text="World Map"
android:textSize="@dimen/default_list_text_size"/>
<ListView
android:id="@+id/list_world_map"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:groupIndicator="@android:color/transparent"
android:isScrollContainer="false"
android:scrollbars="none"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="16dp"
android:text="Voice Promts"
android:textSize="@dimen/default_list_text_size"/>
<ListView
android:id="@+id/list_voice_promts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:groupIndicator="@android:color/transparent"
android:isScrollContainer="false"
android:scrollbars="none"/>
</LinearLayout>
</ScrollView>
</LinearLayout>

View file

@ -891,15 +891,15 @@
<string name="poi_tree">Arbre</string>
<string name="poi_highway_crossing">Pas de vianants</string>
<string name="poi_icn_ref">Xarxa de nodes d\'una ruta ciclista internacional</string>
<string name="poi_ncn_ref">Xarxa de nodes d\'una ruta ciclista nacional</string>
<string name="poi_rcn_ref">Xarxa de nodes d\'una ruta ciclista regional</string>
<string name="poi_lcn_ref">Xarxa de nodes d\'una ruta ciclista local</string>
<string name="poi_icn_ref">Xarxa internacional de rutes ciclistes</string>
<string name="poi_ncn_ref">Xarxa nacional de rutes ciclistes</string>
<string name="poi_rcn_ref">Xarxa regional de rutes ciclistes</string>
<string name="poi_lcn_ref">Xarxa local de rutes ciclistes</string>
<string name="poi_iwn_ref">Xarxa de nodes d\'una ruta senderista internacional</string>
<string name="poi_nwn_ref">Xarxa de nodes d\'una ruta senderista nacional</string>
<string name="poi_rwn_ref">Xarxa de nodes d\'una ruta senderista regional</string>
<string name="poi_lwn_ref">Xarxa de nodes d\'una ruta senderista local</string>
<string name="poi_iwn_ref">Xarxa internacional de rutes de senderisme</string>
<string name="poi_nwn_ref">Xarxa nacional de rutes de senderisme</string>
<string name="poi_rwn_ref">Xarxa regional de rutes de senderisme</string>
<string name="poi_lwn_ref">Xarxa local de rutes de senderisme</string>
<string name="poi_opening_hours">Horari de servei</string>
<string name="poi_collection_times">Horari de recollida</string>
@ -961,8 +961,8 @@
<string name="poi_animal_shelter_dog_cat">Refugi per a gossos i gats</string>
<string name="poi_animal_shelter_bird">Refugi per a ocells</string>
<string name="poi_recycling_centre">Deixalleria</string>
<string name="poi_recycling_container">Contenidor</string>
<string name="poi_recycling_centre">Tipus: deixalleria</string>
<string name="poi_recycling_container">Tipus: contenidor</string>
<string name="poi_recycling_glass">Vidre</string>
<string name="poi_recycling_paper">Paper</string>
<string name="poi_recycling_clothes">Roba</string>
@ -1040,7 +1040,7 @@
<string name="poi_recycling_diapers">Bolquers</string>
<string name="poi_supervised_yes">Supervisat</string>
<string name="poi_supervised_no">No supervisat</string>
<string name="poi_crossing_traffic_signals">Encreuament senyalitzat</string>
<string name="poi_crossing_traffic_signals">Amb llums de parada</string>
<string name="poi_crossing_uncontrolled">Encreuament no controlat</string>
<string name="poi_crossing_unmarked">Encreuament no senyalitzat</string>
@ -1050,7 +1050,7 @@
<string name="poi_mill_pond">Bassa del molí</string>
<string name="poi_twitter">Twitter</string>
<string name="poi_skype">Skype</string>
<string name="poi_youtube">Youtube</string>
<string name="poi_youtube">YouTube</string>
<string name="poi_instagram">Instagram</string>
<string name="poi_vk">VKontakte</string>
<string name="poi_google_plus">Google+</string>
@ -1170,11 +1170,38 @@
<string name="poi_ele">Alçada sobre el nivell del mar</string>
<string name="poi_wholesale">Venda majorista</string>
<string name="poi_content_water">Aigua (contingut)</string>
<string name="poi_content_water">Contingut: aigua</string>
<string name="poi_doors">Portes</string>
<string name="poi_ford_stepping_stones">Pas sobre pedres</string>
<string name="poi_lighting_tower">Torre d\'il·luminació</string>
<string name="poi_greenfield">Zona de desenvolupament urbà</string>
<string name="poi_content_wine">Vi (contingut)</string>
<string name="poi_content_sewage">Aigües residuals (contingut)</string>
<string name="poi_content_wine">Contingut: vi</string>
<string name="poi_content_sewage">Contingut: aigües residuals</string>
<string name="poi_description_payment">Descripció de pagament</string>
<string name="poi_payment_gift_card_yes">S\'accepta targes de regal</string>
<string name="poi_payment_gift_card_no">No s\'accepta targes de regal</string>
<string name="poi_paediatrics">Pediatria</string>
<string name="poi_internet_access_yes">Accés a Internet: sí</string>
<string name="poi_internet_access_no">Accés a Internet: no</string>
<string name="poi_wheelchair_no">Cadira de rodes: no permesa</string>
<string name="poi_wheelchair_limited">Cadira de rodes: restringida</string>
<string name="poi_content_fuel">Contingut: carburant</string>
<string name="poi_content_gas">Contingut: gas</string>
<string name="poi_content_biomass">Contingut: biomassa</string>
<string name="poi_content_wastewater">Contingut: aigües residuals</string>
<string name="poi_content_beer">Contingut: cervesa</string>
<string name="poi_content_salt">Contingut: sal</string>
<string name="poi_content_grain">Contingut: gra</string>
<string name="poi_nudism_yes">Nudisme: permès</string>
<string name="poi_nudism_no">Nudisme: prohibit</string>
<string name="poi_nudism_obligatory">Nudisme: obligatori</string>
<string name="poi_population">Població</string>
<string name="poi_bicycle_parking_building">Edifici especial</string>
<string name="poi_bicycle_parking_bollard">Pilona</string>
<string name="poi_bicycle_parking_informal">Informal</string>
</resources>

View file

@ -2134,4 +2134,21 @@ Per retornar a l\'estil habitual dels mapes d\'OsmAnd, només cal desactivar aqu
<string name="shared_string_trip_recording">Enregistrament de trajectes</string>
<string name="shared_string_navigation">Navegació</string>
<string name="osmand_running_in_background">Execució en procés de fons</string>
<string name="favorite_category_add_new">Afegeix nova categoria</string>
<string name="favorite_category_select">Selecciona categoria</string>
<string name="default_speed_system_descr">Defineix el sistema de mesura de velocitat</string>
<string name="default_speed_system">Mesura de velocitat</string>
<string name="nm">mm</string>
<string name="si_nm">Milles marines</string>
<string name="si_kmh">Quilòmetres per hora</string>
<string name="si_mph">Milles per hora</string>
<string name="si_m_s">Metres per segon</string>
<string name="si_min_km">Minuts per quilòmetre</string>
<string name="si_min_m">Minuts per milla</string>
<string name="si_nm_h">Millesmarines per hora (nusos)</string>
<string name="nm_h">mmh</string>
<string name="min_mile">min/m</string>
<string name="min_km">min/km</string>
<string name="m_s">m/s</string>
</resources>

View file

@ -955,7 +955,7 @@
<string name="poi_access_private">Adgang privat</string>
<string name="poi_access_no">Ingen adgang</string>
<string name="poi_access_destination">Adgang destination</string>
<string name="poi_access_permissive">Adgang tolerant</string>
<string name="poi_access_permissive">Adgang med tilladelse</string>
<string name="poi_access_customers">Kundenadgang</string>
<string name="poi_access_delivery">Adgang for levering</string>
<string name="poi_access_agricultural">Adgang for landbrug</string>
@ -1229,7 +1229,7 @@
<string name="poi_nudism_no">Naturisme: forbudt</string>
<string name="poi_nudism_obligatory">Naturisme: obligatorisk</string>
<string name="poi_nudism_customary">Naturisme: sædvane</string>
<string name="poi_nudism_permissive">Naturisme: liberalt</string>
<string name="poi_nudism_permissive">Naturisme: med tilladelse</string>
<string name="poi_height">Højde</string>
<string name="poi_ele">Højde over havoverfladen</string>
@ -1381,7 +1381,7 @@
<string name="poi_piste_grooming_backcountry">Pistepreparering: offpiste</string>
<string name="poi_piste_grooming_scooter">Pistepreparering: snescooter</string>
<string name="poi_piste_grooming_skating">Pistepreparering: skating</string>
<string name="poi_piste_grooming_no">Pistepreparering: ingen</string>
<string name="poi_piste_grooming_no">Pistepreparering: nej</string>
<string name="poi_piste_grooming_mogul">Pistepreparering: pukkelpist</string>
<string name="poi_garden_type_residential">Havetype: beboelse</string>
@ -1593,4 +1593,94 @@
<string name="poi_internet_access_fee_yes">Internetadgang - gebyr</string>
<string name="poi_internet_access_fee_no">Internetadgang - inget gebyr</string>
</resources>
<string name="poi_diet_vegetarian_only">Kun vegetarkost</string>
<string name="poi_diet_vegetarian_yes">Vegetarkost</string>
<string name="poi_diet_vegetarian_no">Vegetarkost: nej</string>
<string name="poi_diet_vegetarian_few">Vegetarkost: kun få</string>
<string name="poi_diet_vegan_only">Kun veganerkost</string>
<string name="poi_diet_vegan_yes">Veganerkost</string>
<string name="poi_diet_vegan_no">Veganerkost: nej</string>
<string name="poi_diet_gluten_free_only">Kun glutenfri kost</string>
<string name="poi_diet_gluten_free_yes">Glutenfri kost</string>
<string name="poi_diet_gluten_free_no">Glutenfri kost: nej</string>
<string name="poi_diet_kosher_only">Kun kosher kost</string>
<string name="poi_diet_kosher_yes">Kosher kost</string>
<string name="poi_diet_kosher_no">Kosher kost: nej</string>
<string name="poi_diet_halal_only">Kun halal kost</string>
<string name="poi_diet_halal_yes">Halal kost</string>
<string name="poi_diet_halal_no">Halal kost: nej</string>
<string name="poi_diet_lactose_free_only">Kun laktosefri kost</string>
<string name="poi_diet_lactose_free_yes">Laktosefri kost</string>
<string name="poi_diet_lactose_free_no">Laktosefri kost: nej</string>
<string name="poi_diet_pescetarian_yes">pesco-vegetarkost</string>
<string name="poi_drive_in_yes">Drive-in: ja</string>
<string name="poi_drive_in_no">Drive-in: nej</string>
<string name="poi_drive_through_yes">Drive-through: ja</string>
<string name="poi_drive_through_no">Drive-through: nej</string>
<string name="poi_brewery_additional">Bryggeriet navn</string>
<string name="poi_microbrewery_yes">Mikrobryggeri</string>
<string name="poi_microbrewery_no">Ingen mikrobryggeri</string>
<string name="poi_takeaway_yes">Takeway</string>
<string name="poi_takeaway_no">Ingen takeaway</string>
<string name="poi_takeaway_only">Kun takeaway</string>
<string name="poi_delivery_yes">Levering</string>
<string name="poi_delivery_no">Ingen levering</string>
<string name="poi_delivery_only">Kun levering</string>
<string name="poi_outdoor_seating_yes">Udendørsservering</string>
<string name="poi_outdoor_seating_no">Ingen udendørsservering</string>
<string name="poi_outdoor_seating_terrace">Udendørsservering: terrasse</string>
<string name="poi_outdoor_seating_sidewalk">Udendørsservering: fortov</string>
<string name="poi_outdoor_seating_pedestrian_zone">Udendørsservering: gågade</string>
<string name="poi_outdoor_seating_garden">Udendørsservering: have</string>
<string name="poi_outdoor_seating_patio">Udendørsservering: gårdhave</string>
<string name="poi_cocktails_yes">Cocktails</string>
<string name="poi_second_hand_yes">Brugte varer</string>
<string name="poi_second_hand_no">Ingen brugte varer</string>
<string name="poi_second_hand_only">Kun brugte varer</string>
<string name="poi_service_parts">Dele</string>
<string name="poi_service_dealer">Forhandler</string>
<string name="poi_service_repair">Reparation</string>
<string name="poi_service_repair_no">Ingen reparation</string>
<string name="poi_service_electrical">Reparation af elektriske køretøjer</string>
<string name="poi_motorcycle_repair">Motorcykel reparation</string>
<string name="poi_self_service_yes">Selvbetjening</string>
<string name="poi_self_service_no">Ingen selvbetjening</string>
<string name="poi_automated_yes">Automatiseret</string>
<string name="poi_automated_no">Ikke automatiseret</string>
<string name="poi_full_service_yes">Fuld service</string>
<string name="poi_brushless_yes">Børsteløs</string>
<string name="poi_brushless_no">Børsteløs: nej</string>
<string name="poi_aeroway_fuel">Fly tankstation</string>
<string name="poi_public_bath">Offentligt bad</string>
<string name="poi_male_yes">Mand</string>
<string name="poi_male_no">Forbudt for mænd</string>
<string name="poi_female_yes">Kvinde</string>
<string name="poi_female_no">Forbudt for kvinder</string>
<string name="poi_indoor_yes">Indendørs</string>
<string name="poi_indoor_no">Udendørs</string>
<string name="poi_toilets_yes">Med toiletter</string>
<string name="poi_toilets_no">Uden toiletter</string>
<string name="poi_toilets_wheelchair_yes">Adgang til toiletter for kørestole: ja</string>
<string name="poi_toilets_wheelchair_no">Adgang til toiletter for kørestole: nej</string>
<string name="poi_toilets_access_customers">Toiletadgang: kunder</string>
<string name="poi_toilets_access_permissive">Toiletadgang: med tilladelse</string>
<string name="poi_toilets_access_community">Toiletadgang: fællesskab</string>
<string name="poi_toilets_access_public">Toiletadgang: offentlig</string>
<string name="poi_diaper_yes">Puslebord</string>
<string name="poi_diaper_no">Ingen puslebord</string>
<string name="poi_diaper_room">Puslerum</string>
<string name="poi_events_venue">begivenheder mødested</string>
</resources>

View file

@ -1553,4 +1553,110 @@
<string name="poi_internet_access_fee_yes">Acceso a Internet tarifado</string>
<string name="poi_internet_access_fee_no">Acceso a Internet sin cargo</string>
<string name="poi_payment_routex_yes">Acepta tarjetas de combustible Routex</string>
<string name="poi_payment_routex_no">No acepta tarjetas de combustible Routex</string>
<string name="poi_payment_ep_quick_yes">Acepta tarjetas Quick</string>
<string name="poi_payment_ep_quick_no">No acepta tarjetas Quick</string>
<string name="poi_payment_svg_yes">Acepta SVG</string>
<string name="poi_payment_svg_no">No acepta SVG</string>
<string name="poi_payment_pikepass_designated">Acepta PIKEPASS (designado)</string>
<string name="poi_payment_ep_cash_yes">Acepta tarjeta de dinero (Geldkarte)</string>
<string name="poi_payment_ep_cash_no">No acepta tarjeta de dinero (Geldkarte)</string>
<string name="poi_payment_ep_minicash_yes">Acepta MiniCash</string>
<string name="poi_payment_ep_minicash_no">No acepta MiniCash</string>
<string name="poi_payment_ep_moneo_yes">Acepta Moneo</string>
<string name="poi_payment_ep_moneo_no">No acepta Moneo</string>
<string name="poi_payment_meal_voucher_yes">Acepta vales de comida</string>
<string name="poi_payment_meal_voucher_no">No acepta vales de comida</string>
<string name="poi_payment_golden_crown_yes">Acepta tarjetas Golden Crown</string>
<string name="poi_payment_golden_crown_no">No acepta tarjetas Golden Crown</string>
<string name="poi_payment_mtsmoney_yes">Acepta MTS-Money</string>
<string name="poi_payment_mtsmoney_no">No acepta MTS-Money</string>
<string name="poi_events_venue">Lugar de eventos</string>
<string name="poi_diet_vegetarian_only">Sólo dieta vegetariana</string>
<string name="poi_diet_vegetarian_yes">Dieta vegetariana</string>
<string name="poi_diet_vegetarian_no">Sin dieta vegetariana</string>
<string name="poi_diet_vegetarian_few">Poca dieta vegetariana</string>
<string name="poi_diet_vegan_only">Sólo dieta vegana</string>
<string name="poi_diet_vegan_yes">Dieta vegana</string>
<string name="poi_diet_vegan_no">Sin dieta vegana</string>
<string name="poi_diet_gluten_free_only">Sólo dieta libre de gluten</string>
<string name="poi_diet_gluten_free_yes">Dieta libre de gluten</string>
<string name="poi_diet_gluten_free_no">Sin dieta libre de gluten</string>
<string name="poi_diet_kosher_only">Sólo dieta kosher</string>
<string name="poi_diet_kosher_yes">Dieta kosher</string>
<string name="poi_diet_kosher_no">Sin dieta kosher</string>
<string name="poi_diet_halal_only">Sólo dieta halal</string>
<string name="poi_diet_halal_yes">Dieta halal</string>
<string name="poi_diet_halal_no">Sin dieta halal</string>
<string name="poi_diet_lactose_free_only">Sólo dieta libre de lactosa</string>
<string name="poi_diet_lactose_free_yes">Dieta libre de lactosa</string>
<string name="poi_diet_lactose_free_no">Sin dieta libre de lactosa</string>
<string name="poi_diet_pescetarian_yes">Dieta pescetariana</string>
<string name="poi_drive_in_yes">Conducir dentro: si</string>
<string name="poi_drive_in_no">Conducir dentro: no</string>
<string name="poi_drive_through_yes">Autoservicio: si</string>
<string name="poi_drive_through_no">Autoservicio: no</string>
<string name="poi_brewery_additional">Nombre de cervecería</string>
<string name="poi_microbrewery_yes">Micro-cervecería</string>
<string name="poi_microbrewery_no">Sin micro-cervecería</string>
<string name="poi_takeaway_yes">Servicio de comida para llevar</string>
<string name="poi_takeaway_no">Sin servicio de comida para llevar</string>
<string name="poi_takeaway_only">Sólo servicio de comida para llevar</string>
<string name="poi_delivery_no">Sin delivery</string>
<string name="poi_delivery_yes">Con delivery</string>
<string name="poi_delivery_only">Sólo delivery</string>
<string name="poi_outdoor_seating_yes">Con asientos exteriores</string>
<string name="poi_outdoor_seating_no">Sin asientos exteriores</string>
<string name="poi_outdoor_seating_terrace">Asientos exteriores: terraza</string>
<string name="poi_outdoor_seating_sidewalk">Asientos exteriores: vereda</string>
<string name="poi_outdoor_seating_pedestrian_zone">Asientos exteriores: zona peatonal</string>
<string name="poi_outdoor_seating_garden">Asientos exteriores: jardín</string>
<string name="poi_outdoor_seating_patio">Asientos exteriores: patio</string>
<string name="poi_cocktails_yes">Con cócteles</string>
<string name="poi_second_hand_yes">Con artículos de segunda mano</string>
<string name="poi_second_hand_no">Sin artículos de segunda mano</string>
<string name="poi_second_hand_only">Sólo artículos de segunda mano</string>
<string name="poi_service_parts">Partes</string>
<string name="poi_service_dealer">Repartidor</string>
<string name="poi_service_repair">Reparación</string>
<string name="poi_service_repair_no">Sin reparación</string>
<string name="poi_service_electrical">Reparación de vehículos eléctricos</string>
<string name="poi_motorcycle_repair">Reparación de motocicletas</string>
<string name="poi_self_service_yes">Con autoservicio</string>
<string name="poi_self_service_no">Sin autoservicio</string>
<string name="poi_automated_yes">Automatizado</string>
<string name="poi_automated_no">No automatizado</string>
<string name="poi_full_service_yes">Servicio completo</string>
<string name="poi_aeroway_fuel">Estación de combustible para aviones</string>
<string name="poi_public_bath">Baño público</string>
<string name="poi_male_yes">Masculino</string>
<string name="poi_male_no">Prohibido para hombres</string>
<string name="poi_female_yes">Femenino</string>
<string name="poi_female_no">Prohibido para mujeres</string>
<string name="poi_indoor_yes">Cubierto (puertas adentro)</string>
<string name="poi_indoor_no">Al aire libre</string>
<string name="poi_toilets_yes">Con baños</string>
<string name="poi_toilets_no">Sin baños</string>
<string name="poi_toilets_wheelchair_yes">Acceso a los baños para sillas de rueda</string>
<string name="poi_toilets_wheelchair_no">Sin acceso a los baños para sillas de rueda</string>
<string name="poi_toilets_access_customers">Acceso a los baños: clientes</string>
<string name="poi_toilets_access_permissive">Acceso a los baños: permisivo</string>
<string name="poi_toilets_access_community">Acceso a los baños: comunidad</string>
<string name="poi_toilets_access_public">Acceso a los baños: público</string>
<string name="poi_diaper_yes">Con cambiador de pañales</string>
<string name="poi_diaper_no">Sin cambiador de pañales</string>
<string name="poi_diaper_room">Habitación para cambio de pañales</string>
</resources>

View file

@ -1557,4 +1557,110 @@
<string name="poi_internet_access_fee_yes">Acceso a Internet tarifado</string>
<string name="poi_internet_access_fee_no">Acceso a Internet sin cargo</string>
<string name="poi_payment_pikepass_designated">Acepta PIKEPASS (designado)</string>
<string name="poi_payment_routex_yes">Acepta tarjetas de combustible Routex</string>
<string name="poi_payment_routex_no">No acepta tarjetas de combustible Routex</string>
<string name="poi_payment_ep_quick_yes">Acepta tarjetas Quick</string>
<string name="poi_payment_ep_quick_no">No acepta tarjetas Quick</string>
<string name="poi_payment_ep_cash_yes">Acepta tarjeta de dinero (Geldkarte)</string>
<string name="poi_payment_ep_cash_no">No acepta tarjeta de dinero (Geldkarte)</string>
<string name="poi_payment_ep_minicash_yes">Acepta MiniCash</string>
<string name="poi_payment_ep_minicash_no">No acepta MiniCash</string>
<string name="poi_payment_ep_moneo_yes">Acepta Moneo</string>
<string name="poi_payment_ep_moneo_no">No acepta Moneo</string>
<string name="poi_payment_svg_yes">Acepta SVG</string>
<string name="poi_payment_svg_no">No acepta SVG</string>
<string name="poi_payment_meal_voucher_yes">Acepta vales de comida</string>
<string name="poi_payment_meal_voucher_no">No acepta vales de comida</string>
<string name="poi_payment_golden_crown_yes">Acepta tarjetas Golden Crown</string>
<string name="poi_payment_golden_crown_no">No acepta tarjetas Golden Crown</string>
<string name="poi_payment_mtsmoney_yes">Acepta MTS-Money</string>
<string name="poi_payment_mtsmoney_no">No acepta MTS-Money</string>
<string name="poi_events_venue">Lugar de eventos</string>
<string name="poi_diet_vegetarian_only">Sólo dieta vegetariana</string>
<string name="poi_diet_vegetarian_yes">Dieta vegetariana</string>
<string name="poi_diet_vegetarian_no">Sin dieta vegetariana</string>
<string name="poi_diet_vegetarian_few">Poca dieta vegetariana</string>
<string name="poi_diet_vegan_only">Sólo dieta vegana</string>
<string name="poi_diet_vegan_yes">Dieta vegana</string>
<string name="poi_diet_vegan_no">Sin dieta vegana</string>
<string name="poi_diet_gluten_free_only">Sólo dieta libre de gluten</string>
<string name="poi_diet_gluten_free_yes">Dieta libre de gluten</string>
<string name="poi_diet_gluten_free_no">Sin dieta libre de gluten</string>
<string name="poi_diet_kosher_only">Sólo dieta kosher</string>
<string name="poi_diet_kosher_yes">Dieta kosher</string>
<string name="poi_diet_kosher_no">Sin dieta kosher</string>
<string name="poi_diet_halal_only">Sólo dieta halal</string>
<string name="poi_diet_halal_yes">Dieta halal</string>
<string name="poi_diet_halal_no">Sin dieta halal</string>
<string name="poi_diet_lactose_free_only">Sólo dieta libre de lactosa</string>
<string name="poi_diet_lactose_free_yes">Dieta libre de lactosa</string>
<string name="poi_diet_lactose_free_no">Sin dieta libre de lactosa</string>
<string name="poi_diet_pescetarian_yes">Dieta pescetariana</string>
<string name="poi_drive_in_yes">Conducir dentro: si</string>
<string name="poi_drive_in_no">Conducir dentro: no</string>
<string name="poi_drive_through_yes">Autoservicio: si</string>
<string name="poi_drive_through_no">Autoservicio: no</string>
<string name="poi_brewery_additional">Nombre de cervecería</string>
<string name="poi_microbrewery_yes">Micro-cervecería</string>
<string name="poi_microbrewery_no">Sin micro-cervecería</string>
<string name="poi_takeaway_yes">Servicio de comida para llevar</string>
<string name="poi_takeaway_no">Sin servicio de comida para llevar</string>
<string name="poi_takeaway_only">Sólo servicio de comida para llevar</string>
<string name="poi_delivery_yes">Con delivery</string>
<string name="poi_delivery_no">Sin delivery</string>
<string name="poi_delivery_only">Sólo delivery</string>
<string name="poi_outdoor_seating_yes">Con asientos exteriores</string>
<string name="poi_outdoor_seating_no">Sin asientos exteriores</string>
<string name="poi_outdoor_seating_terrace">Asientos exteriores: terraza</string>
<string name="poi_outdoor_seating_sidewalk">Asientos exteriores: vereda</string>
<string name="poi_outdoor_seating_pedestrian_zone">Asientos exteriores: zona peatonal</string>
<string name="poi_outdoor_seating_garden">Asientos exteriores: jardín</string>
<string name="poi_outdoor_seating_patio">Asientos exteriores: patio</string>
<string name="poi_cocktails_yes">Con cócteles</string>
<string name="poi_second_hand_yes">Con artículos de segunda mano</string>
<string name="poi_second_hand_no">Sin artículos de segunda mano</string>
<string name="poi_second_hand_only">Sólo artículos de segunda mano</string>
<string name="poi_service_parts">Partes</string>
<string name="poi_service_dealer">Repartidor</string>
<string name="poi_service_repair">Reparación</string>
<string name="poi_service_repair_no">Sin reparación</string>
<string name="poi_service_electrical">Reparación de vehículos eléctricos</string>
<string name="poi_motorcycle_repair">Reparación de motocicletas</string>
<string name="poi_self_service_yes">Con autoservicio</string>
<string name="poi_self_service_no">Sin autoservicio</string>
<string name="poi_automated_yes">Automatizado</string>
<string name="poi_automated_no">No automatizado</string>
<string name="poi_full_service_yes">Servicio completo</string>
<string name="poi_aeroway_fuel">Estación de combustible para aviones</string>
<string name="poi_public_bath">Baño público</string>
<string name="poi_male_yes">Masculino</string>
<string name="poi_male_no">Prohibido para hombres</string>
<string name="poi_female_yes">Femenino</string>
<string name="poi_female_no">Prohibido para mujeres</string>
<string name="poi_indoor_yes">Cubierto (puertas adentro)</string>
<string name="poi_indoor_no">Al aire libre</string>
<string name="poi_toilets_yes">Con baños</string>
<string name="poi_toilets_no">Sin baños</string>
<string name="poi_toilets_wheelchair_yes">Acceso a los baños para sillas de rueda</string>
<string name="poi_toilets_wheelchair_no">Sin acceso a los baños para sillas de rueda</string>
<string name="poi_toilets_access_customers">Acceso a los baños: clientes</string>
<string name="poi_toilets_access_permissive">Acceso a los baños: permisivo</string>
<string name="poi_toilets_access_community">Acceso a los baños: comunidad</string>
<string name="poi_toilets_access_public">Acceso a los baños: público</string>
<string name="poi_diaper_yes">Con cambiador de pañales</string>
<string name="poi_diaper_no">Sin cambiador de pañales</string>
<string name="poi_diaper_room">Habitación para cambio de pañales</string>
</resources>

View file

@ -845,7 +845,7 @@
<string name="use_short_object_names">Usa i nomi degli oggetti</string>
<string name="accessibility_preferences_descr">Preferenze relative all\'accessibilità</string>
<string name="accessibility_preferences">Accessibilità</string>
<string name="index_name_north_america">Nord America - Messico</string>
<string name="index_name_north_america">Nord America</string>
<string name="index_name_us">Nord America - Stati Uniti</string>
<string name="index_name_central_america">America Centrale</string>
<string name="index_name_south_america">Sud America</string>
@ -2033,7 +2033,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="shared_string_manage">Gestisci</string>
<string name="shared_string_edit">Modifica</string>
<string name="filter_poi_hint">Filtra per nome</string>
<string name="search_poi_category_hint">Digita per cercare fra tutti i PDI</string>
<string name="search_poi_category_hint">Scrivi per cercare fra tutti i PDI</string>
<string name="index_name_netherlands">Europa - Paesi Bassi</string>
<string name="copying_osmand_file_failed">Copia dei file fallita</string>
<string name="storage_directory_external">Memoria esterna</string>
@ -2127,7 +2127,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="we_really_care">Ci teniamo molto</string>
<string name="rate_this_app">Valuta questa app</string>
<string name="user_hates_app_get_feedback">Dicci perché.</string>
<string name="rate_this_app_long">Per favore dai a OsmAnd la tua valutazione su Google Play</string>
<string name="rate_this_app_long">Dai a OsmAnd un punteggio su Google Play</string>
<string name="user_hates_app_get_feedback_long">Dicci cosa cambieresti in questa app.</string>
<string name="download_live_updates">Aggiornamenti automatici</string>
<string name="failed_to_upload">Caricamento fallito</string>

View file

@ -11,4 +11,5 @@
<string name="recording_camera_not_available">کامێرا له به رده ست نيه</string>
<string name="application_dir_change_warning3">Vai vēlaties, lai OsmAnd kopē uz jauno vietu arī savus datu failus?</string>
<string name="specified_directiory_not_writeable">Norādītajā direktorijā nevar veidot Kartes</string>
</resources>
<string name="favorite_category_add_new">Nu Texe</string>
</resources>

View file

@ -887,15 +887,15 @@
<string name="poi_crane">Guindaste</string>
<string name="poi_tourism_attraction">Atração turística</string>
<string name="poi_tree">Árvore</string>
<string name="poi_icn_ref">Ponto de rede cicloviária internacional</string>
<string name="poi_ncn_ref">Ponto de rede cicloviária nacional</string>
<string name="poi_rcn_ref">Ponto de rede cicloviária regional</string>
<string name="poi_lcn_ref">Ponto de rede cicloviária local</string>
<string name="poi_icn_ref">Rede de rota cicloviária internacional</string>
<string name="poi_ncn_ref">Rede de rota cicloviária nacional</string>
<string name="poi_rcn_ref">Rede de rota cicloviária regional</string>
<string name="poi_lcn_ref">Rede de rota cicloviária local</string>
<string name="poi_iwn_ref">Ponto de rede de caminhada internacional</string>
<string name="poi_nwn_ref">Ponto de rede de caminhada nacional</string>
<string name="poi_rwn_ref">Ponto de rede de caminhada regional</string>
<string name="poi_lwn_ref">Ponto de rede de caminhada local</string>
<string name="poi_iwn_ref">Rede de rota internacional de caminhada</string>
<string name="poi_nwn_ref">Rede de rota nacional de caminhada</string>
<string name="poi_rwn_ref">Rede de rota regional de caminhada</string>
<string name="poi_lwn_ref">Rede de rota local de caminhada</string>
<string name="poi_opening_hours">Horário de funcionamento</string>
<string name="poi_description">Descrição</string>
@ -926,10 +926,10 @@
<string name="poi_fee_yes">Taxa</string>
<string name="poi_abandoned_poi">Objeto abandonado</string>
<string name="poi_route_hiking_iwn_poi">Rota de caminhada internacional</string>
<string name="poi_route_hiking_nwn_poi">Rota de caminhada nacional</string>
<string name="poi_route_hiking_rwn_poi">Rota de caminhada regional</string>
<string name="poi_route_hiking_lwn_poi">Rota de caminhada local</string>
<string name="poi_route_hiking_iwn_poi">Rota internacional de caminhada</string>
<string name="poi_route_hiking_nwn_poi">Rota nacional de caminhada</string>
<string name="poi_route_hiking_rwn_poi">Rota regional de caminhada</string>
<string name="poi_route_hiking_lwn_poi">Rota local de caminhada</string>
<string name="poi_route_hiking_ref_poi">Referência de rota de caminhada</string>
<string name="poi_traffic_enforcement">Fiscalização de trânsito</string>
@ -939,7 +939,7 @@
<string name="poi_access_no">Acesso proibido</string>
<string name="poi_access_destination">Acesso de destino</string>
<string name="poi_access_permissive">Acesso autorizado</string>
<string name="poi_access_customers">Acesso para clientes</string>
<string name="poi_access_customers">Acesso para cliente</string>
<string name="poi_access_delivery">Acesso para entrega</string>
<string name="poi_access_agricultural">Acesso agrícola</string>
@ -1141,22 +1141,22 @@
<string name="poi_wheelchair">Cadeirante</string>
<string name="poi_bunker_silo">Silo de abrigo</string>
<string name="poi_content_silage">Silagem (conteúdo)</string>
<string name="poi_content_water">Água (conteúdo)</string>
<string name="poi_content_slurry">Chorume (conteúdo)</string>
<string name="poi_content_oil">Óleo (conteúdo)</string>
<string name="poi_content_fuel">Combustível (conteúdo)</string>
<string name="poi_content_manure">Estrume (conteúdo)</string>
<string name="poi_content_wine">Vinho (conteúdo)</string>
<string name="poi_content_sewage">Esgoto (conteúdo)</string>
<string name="poi_content_gas">Gás (conteúdo)</string>
<string name="poi_content_biomass">Biomassa (conteúdo)</string>
<string name="poi_content_wastewater">Águas residuais (conteúdo)</string>
<string name="poi_content_crop">Colheita (conteúdo)</string>
<string name="poi_content_fodder">Forragens (conteúdo)</string>
<string name="poi_content_beer">Cerveja (conteúdo)</string>
<string name="poi_content_salt">Sal (conteúdo)</string>
<string name="poi_content_grain">Grão (conteúdo)</string>
<string name="poi_content_silage">Conteúdo: silagem</string>
<string name="poi_content_water">Conteúdo: água</string>
<string name="poi_content_slurry">Conteúdo: chorume</string>
<string name="poi_content_oil">Conteúdo: óleo</string>
<string name="poi_content_fuel">Conteúdo: combustível</string>
<string name="poi_content_manure">Conteúdo: estrume</string>
<string name="poi_content_wine">Conteúdo: vinho</string>
<string name="poi_content_sewage">Conteúdo: esgoto</string>
<string name="poi_content_gas">Conteúdo: gás</string>
<string name="poi_content_biomass">Conteúdo: biomassa</string>
<string name="poi_content_wastewater">Conteúdo: águas residuais</string>
<string name="poi_content_crop">Conteúdo: colheita</string>
<string name="poi_content_fodder">Conteúdo: forragens</string>
<string name="poi_content_beer">Conteúdo: cerveja</string>
<string name="poi_content_salt">Conteúdo: sal</string>
<string name="poi_content_grain">Conteúdo: grão</string>
<string name="poi_wholesale">Atacado</string>
@ -1213,7 +1213,7 @@
<string name="poi_trees_coca">Coca</string>
<string name="poi_trees_meadow_orchard">Prado com pomar</string>
<string name="poi_height">Altura</string>
<string name="poi_ele">Altura acima do nível do mar</string>
<string name="poi_ele">Elevação acima do nível do mar</string>
<string name="poi_aerialway_pylon">Torre de teleférico</string>
<string name="poi_power_tower">Torre de transmissão</string>
@ -1346,4 +1346,9 @@
<string name="poi_level">Nível</string>
<string name="poi_bird_hide">Observatório de aves</string>
<string name="poi_internet_access_yes">Com acesso à Internet</string>
<string name="poi_internet_access_no">Sem acesso à Internet</string>
<string name="poi_wheelchair_no">Cadeira de rodas: não permitido</string>
<string name="poi_wheelchair_limited">Cadeira de rodas: limitado</string>
</resources>

View file

@ -1028,8 +1028,6 @@
<string name="poi_generator_source_oil">Источник энергии: мазут</string>
<string name="poi_generator_source_diesel">Источник энергии: дизельное топливо</string>
<string name="poi_car_wash_self_service">Самообслуживание</string>
<string name="poi_int_name">Интернациональное название</string>
<string name="poi_nat_name">Общенациональное название</string>
<string name="poi_reg_name">Региональное название</string>
@ -1404,4 +1402,93 @@
<string name="poi_internet_access_fee_yes">Взимается плата за интернет</string>
<string name="poi_internet_access_fee_no">Плата за интернет не взимается</string>
<string name="poi_events_venue">Место проведения мероприятий</string>
<string name="poi_diet_vegetarian_only">Только вегетарианское питание</string>
<string name="poi_diet_vegetarian_yes">Вегетарианское питание</string>
<string name="poi_diet_vegetarian_no">Вегетарианское питание не предлагается</string>
<string name="poi_diet_vegetarian_few">Вегетарианское питание: небольшой выбор</string>
<string name="poi_diet_vegan_only">Только веганское питание</string>
<string name="poi_diet_vegan_yes">Веганское питание</string>
<string name="poi_diet_vegan_no">Веганское питание не предлагается</string>
<string name="poi_diet_gluten_free_only">Только безглютеновое питание</string>
<string name="poi_diet_gluten_free_yes">Безглютеновое питание</string>
<string name="poi_diet_gluten_free_no">Безглютеновое питание не предлагается</string>
<string name="poi_diet_kosher_only">Только кошерное питание</string>
<string name="poi_diet_kosher_yes">Кошерное питание</string>
<string name="poi_diet_kosher_no">Кошерное питание не предлагается</string>
<string name="poi_diet_halal_only">Только халяльная пища</string>
<string name="poi_diet_halal_yes">Халяльная пища</string>
<string name="poi_diet_halal_no">Халяльная пища не предлагается</string>
<string name="poi_diet_lactose_free_only">Только безлактозные продукты</string>
<string name="poi_diet_lactose_free_yes">Безлактозные продукты</string>
<string name="poi_diet_lactose_free_no">Безлактозные продукты не предлагаются</string>
<string name="poi_diet_pescetarian_yes">Пескетарианская диета</string>
<string name="poi_drive_in_yes">Обслуживание клиентов сидящих в автомобиле</string>
<string name="poi_drive_in_no">Клиенты, сидящие в автомобиле, не обслуживаются</string>
<string name="poi_drive_through_yes">Обслуживание клиентов сидящих в автомобиле</string>
<string name="poi_drive_through_no">Клиенты, сидящие в автомобиле, не обслуживаются</string>
<string name="poi_brewery_additional">Пивоварня поставщик</string>
<string name="poi_microbrewery_yes">Собственная пивоварня</string>
<string name="poi_microbrewery_no">Нет собственной пивоварни</string>
<string name="poi_takeaway_yes">На вынос</string>
<string name="poi_takeaway_no">На вынос: нет</string>
<string name="poi_takeaway_only">Только на вынос</string>
<string name="poi_delivery_yes">С доставкой</string>
<string name="poi_delivery_no">Без доставки</string>
<string name="poi_delivery_only">Только с доставкой</string>
<string name="poi_outdoor_seating_yes">Места на открытом воздухе</string>
<string name="poi_outdoor_seating_no">Нет мест на открытом воздухе</string>
<string name="poi_outdoor_seating_terrace">Места на открытом воздухе: терраса</string>
<string name="poi_outdoor_seating_sidewalk">Места на открытом воздухе: тротуар</string>
<string name="poi_outdoor_seating_pedestrian_zone">Места на открытом воздухе: пешеходная зона</string>
<string name="poi_outdoor_seating_garden">Места на открытом воздухе: сад</string>
<string name="poi_outdoor_seating_patio">Места на открытом воздухе: патио</string>
<string name="poi_cocktails_yes">Коктейли</string>
<string name="poi_second_hand_yes">Подержанный товар</string>
<string name="poi_second_hand_no">Подержанный товар отсутствует</string>
<string name="poi_second_hand_only">Только подержанный товар</string>
<string name="poi_service_parts">Запчасти</string>
<string name="poi_service_dealer">Дилер</string>
<string name="poi_service_repair">Ремонт</string>
<string name="poi_service_repair_no">Ремонт не производится</string>
<string name="poi_service_electrical">Ремонт электротранспорта</string>
<string name="poi_motorcycle_repair">Ремонт мотоциклов</string>
<string name="poi_self_service_yes">Самообслуживание</string>
<string name="poi_self_service_no">Самообслуживание: нет</string>
<string name="poi_automated_yes">Автоматизация</string>
<string name="poi_automated_no">Без автоматизации</string>
<string name="poi_full_service_yes">Полный комплекс услуг</string>
<string name="poi_brushless_yes">Бесконтактная</string>
<string name="poi_brushless_no">Контактная</string>
<string name="poi_aeroway_fuel">Заправочная станция для воздушного транспорта</string>
<string name="poi_public_bath">Общественная баня</string>
<string name="poi_male_yes">Для мужчин</string>
<string name="poi_male_no">Не для мужчин</string>
<string name="poi_female_yes">Для женщин</string>
<string name="poi_female_no">Не для женщин</string>
<string name="poi_indoor_yes">Внутри помещения</string>
<string name="poi_indoor_no">Снаружи</string>
<string name="poi_toilets_yes">С туалетом</string>
<string name="poi_toilets_no">Без туалета</string>
<string name="poi_toilets_wheelchair_yes">Доступ в туалет для инвалидных колясок: да</string>
<string name="poi_toilets_wheelchair_no">Доступ в туалет для инвалидных колясок: нет</string>
<string name="poi_toilets_access_customers">Доступ в туалет: только для посетителей</string>
<string name="poi_toilets_access_permissive">Доступ в туалет: с разрешения владельца</string>
<string name="poi_toilets_access_public">Доступ в туалет: общественный</string>
<string name="poi_diaper_yes">Пеленальный столик</string>
<string name="poi_diaper_no">Пеленальный столик отсутствует</string>
<string name="poi_diaper_room">Пеленальная комната</string>
</resources>

View file

@ -2101,4 +2101,6 @@
<string name="unsaved_changes_will_be_lost">Все несохраненные изменения будут потеряны. Продолжить?</string>
<string name="simulate_your_location_descr">Моделировать используя записанный GPX или рассчитанный маршрут</string>
<string name="simulate_your_location_stop_descr">Остановить моделирование</string>
<string name="favorite_category_add_new">Добавить новую</string>
<string name="favorite_category_select">Выберите категорию</string>
</resources>

View file

@ -1239,8 +1239,6 @@
<string name="poi_generator_source_oil">Energy source: oil</string>
<string name="poi_generator_source_diesel">Energy source: diesel</string>
<string name="poi_car_wash_self_service">Self service</string>
<string name="poi_int_name">International name</string>
<string name="poi_nat_name">National name</string>
<string name="poi_reg_name">Regional name</string>
@ -1553,4 +1551,94 @@
<string name="poi_internet_access_fee_yes">Internet access - fee charged</string>
<string name="poi_internet_access_fee_no">Internet access - no fee</string>
<string name="poi_events_venue">Events venue</string>
<string name="poi_diet_vegetarian_only">Only vegetarian diet</string>
<string name="poi_diet_vegetarian_yes">Vegetarian diet</string>
<string name="poi_diet_vegetarian_no">Vegetarian diet: no</string>
<string name="poi_diet_vegetarian_few">Vegetarian diet: few</string>
<string name="poi_diet_vegan_only">Only vegan diet</string>
<string name="poi_diet_vegan_yes">Vegan diet</string>
<string name="poi_diet_vegan_no">Vegan diet: no</string>
<string name="poi_diet_gluten_free_only">Only gluten-free diet</string>
<string name="poi_diet_gluten_free_yes">Gluten-free diet</string>
<string name="poi_diet_gluten_free_no">Gluten-free diet: no</string>
<string name="poi_diet_kosher_only">Only kosher diet</string>
<string name="poi_diet_kosher_yes">Kosher diet</string>
<string name="poi_diet_kosher_no">Kosher diet: no</string>
<string name="poi_diet_halal_only">Only halal diet</string>
<string name="poi_diet_halal_yes">Halal diet</string>
<string name="poi_diet_halal_no">Halal diet: no</string>
<string name="poi_diet_lactose_free_only">Only lactose-free diet</string>
<string name="poi_diet_lactose_free_yes">Lactose-free diet</string>
<string name="poi_diet_lactose_free_no">Lactose-free diet: no</string>
<string name="poi_diet_pescetarian_yes">Pescetarian diet</string>
<string name="poi_drive_in_yes">Drive-in: yes</string>
<string name="poi_drive_in_no">Drive-in: no</string>
<string name="poi_drive_through_yes">Drive-through: yes</string>
<string name="poi_drive_through_no">Drive-through: yes</string>
<string name="poi_brewery_additional">Brewery name</string>
<string name="poi_microbrewery_yes">Microbrewery</string>
<string name="poi_microbrewery_no">No microbrewery</string>
<string name="poi_takeaway_yes">Takeway</string>
<string name="poi_takeaway_no">No takeway</string>
<string name="poi_takeaway_only">Takeway only</string>
<string name="poi_delivery_yes">Delivery</string>
<string name="poi_delivery_no">No delivery</string>
<string name="poi_delivery_only">Delivery only</string>
<string name="poi_outdoor_seating_yes">Outdoor seating</string>
<string name="poi_outdoor_seating_no">No outdoor seating</string>
<string name="poi_outdoor_seating_terrace">Outdoor seating: terrace</string>
<string name="poi_outdoor_seating_sidewalk">Outdoor seating: sidewalk</string>
<string name="poi_outdoor_seating_pedestrian_zone">Outdoor seating: pedestrian zone</string>
<string name="poi_outdoor_seating_garden">Outdoor seating: garden</string>
<string name="poi_outdoor_seating_patio">Outdoor seating: patio</string>
<string name="poi_cocktails_yes">Cocktails</string>
<string name="poi_second_hand_yes">Second-hand goods</string>
<string name="poi_second_hand_no">No second-hand goods</string>
<string name="poi_second_hand_only">Second-hand goods only</string>
<string name="poi_service_parts">Parts</string>
<string name="poi_service_dealer">Dealer</string>
<string name="poi_service_repair">Repair</string>
<string name="poi_service_repair_no">No repair</string>
<string name="poi_service_electrical">Repair of electrical vehicles</string>
<string name="poi_motorcycle_repair">Motorcycle repair</string>
<string name="poi_self_service_yes">Self-service</string>
<string name="poi_self_service_no">No self-service</string>
<string name="poi_automated_yes">Automated</string>
<string name="poi_automated_no">Not automated</string>
<string name="poi_full_service_yes">Full service</string>
<string name="poi_brushless_yes">Brushless</string>
<string name="poi_brushless_no">Brushless: no</string>
<string name="poi_aeroway_fuel">Aircraft fuel station</string>
<string name="poi_public_bath">Public bath</string>
<string name="poi_male_yes">Male</string>
<string name="poi_male_no">Forbidden for men</string>
<string name="poi_female_yes">Female</string>
<string name="poi_female_no">Forbidden for female</string>
<string name="poi_indoor_yes">Indoor</string>
<string name="poi_indoor_no">Outdoor</string>
<string name="poi_toilets_yes">With toilets</string>
<string name="poi_toilets_no">Without toilets</string>
<string name="poi_toilets_wheelchair_yes">Access to the toilets for wheelchairs: yes</string>
<string name="poi_toilets_wheelchair_no">Access to the toilets for wheelchairs: no</string>
<string name="poi_toilets_access_customers">Toilets access: customers</string>
<string name="poi_toilets_access_permissive">Toilets access: permissive</string>
<string name="poi_toilets_access_community">Toilets access: community</string>
<string name="poi_toilets_access_public">Toilets access: public</string>
<string name="poi_diaper_yes">Diaper changing table</string>
<string name="poi_diaper_no">No diaper changing table</string>
<string name="poi_diaper_room">Diaper changing room</string>
</resources>

View file

@ -10,6 +10,7 @@ import net.osmand.plus.download.DownloadActivityType;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@ -34,12 +35,12 @@ public class WorldRegion {
private LatLon bboxTopLeft;
private LatLon bboxBottomRight;
private LinkedList<DownloadActivityType> resourceTypes;
private List<DownloadActivityType> resourceTypes;
// Hierarchy
private WorldRegion superregion;
private LinkedList<WorldRegion> subregions;
private LinkedList<WorldRegion> flattenedSubregions;
private List<WorldRegion> subregions;
private List<WorldRegion> flattenedSubregions;
private boolean purchased;
private boolean isInPurchasedArea;
@ -64,19 +65,23 @@ public class WorldRegion {
return bboxBottomRight;
}
public LinkedList<DownloadActivityType> getResourceTypes() {
public List<DownloadActivityType> getResourceTypes() {
return resourceTypes;
}
public void setResourceTypes(List<DownloadActivityType> resourceTypes) {
this.resourceTypes = resourceTypes;
}
public WorldRegion getSuperregion() {
return superregion;
}
public LinkedList<WorldRegion> getSubregions() {
public List<WorldRegion> getSubregions() {
return subregions;
}
public LinkedList<WorldRegion> getFlattenedSubregions() {
public List<WorldRegion> getFlattenedSubregions() {
return flattenedSubregions;
}

View file

@ -118,6 +118,10 @@ public class BaseDownloadActivity extends ActionBarProgressActivity {
}
public void onCategorizationFinished() {
}
public boolean startDownload(IndexItem item) {
if (downloadListIndexThread.getCurrentRunningTask() != null && getEntriesToDownload().get(item) == null) {
downloadQueue.add(item);

View file

@ -32,6 +32,7 @@ import net.osmand.plus.activities.OsmandBaseExpandableListAdapter;
import net.osmand.plus.activities.OsmandExpandableListFragment;
import net.osmand.plus.activities.TabActivity;
import net.osmand.plus.base.BasicProgressAsyncTask;
import net.osmand.plus.download.items.DownloadItemsFragment;
import net.osmand.plus.download.newimplementation.IndexItemCategoryWithSubcat;
import net.osmand.plus.download.newimplementation.NewLocalIndexesFragment;
import net.osmand.plus.srtmplugin.SRTMPlugin;
@ -117,8 +118,10 @@ public class DownloadActivity extends BaseDownloadActivity {
mTabs.add(new TabActivity.TabItem(R.string.download_tab_updates,
getString(R.string.download_tab_updates), UpdatesIndexFragment.class));
// mTabs.add(new TabActivity.TabItem(R.string.download_tab_local,
// getString(R.string.download_tab_local), NewLocalIndexesFragment.class));
mTabs.add(new TabActivity.TabItem(R.string.download_tab_local,
getString(R.string.download_tab_local), NewLocalIndexesFragment.class));
getString(R.string.download_tab_local), DownloadItemsFragment.class));
viewPager.setAdapter(new TabActivity.OsmandFragmentPagerAdapter(getSupportFragmentManager(), mTabs));
mSlidingTabLayout.setViewPager(viewPager);
@ -324,6 +327,18 @@ public class DownloadActivity extends BaseDownloadActivity {
}
}
@Override
public void onCategorizationFinished() {
for (WeakReference<Fragment> ref : fragSet) {
Fragment f = ref.get();
if (f instanceof DownloadItemsFragment) {
if (f.isAdded()) {
((DownloadItemsFragment) f).onCategorizationFinished();
}
}
}
}
public void downloadListUpdated() {
for (WeakReference<Fragment> ref : fragSet) {
Fragment f = ref.get();

View file

@ -25,6 +25,7 @@ import net.osmand.plus.Version;
import net.osmand.plus.base.BasicProgressAsyncTask;
import net.osmand.plus.download.DownloadFileHelper.DownloadFileShowWarning;
import net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetIndexItem;
import net.osmand.plus.download.items.ItemsListBuilder;
import net.osmand.plus.download.newimplementation.IndexItemCategoryWithSubcat;
import net.osmand.plus.helpers.DatabaseHelper;
import net.osmand.plus.resources.ResourceManager;
@ -411,11 +412,17 @@ public class DownloadIndexesThread {
@Override
protected IndexFileList doInBackground(Void... params) {
return DownloadOsmandIndexesHelper.getIndexesList(ctx);
IndexFileList indexFileList = DownloadOsmandIndexesHelper.getIndexesList(ctx);
indexFiles = indexFileList;
if (indexFileList != null) {
ItemsListBuilder builder = new ItemsListBuilder(app, app.getWorldRegion());
builder.invalidate();
builder.build();
}
return indexFileList;
}
protected void onPostExecute(IndexFileList result) {
indexFiles = result;
if (indexFiles != null && uiActivity != null) {
prepareFilesToUpdate();
boolean basemapExists = uiActivity.getMyApplication().getResourceManager().containsBasemap();
@ -445,6 +452,7 @@ public class DownloadIndexesThread {
uiActivity.updateProgress(false);
runCategorization(uiActivity.getDownloadType());
runCategorization(); // for new implementation
uiActivity.onCategorizationFinished();
}
}

View file

@ -0,0 +1,254 @@
package net.osmand.plus.download.items;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.MenuItemCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import net.osmand.PlatformUtil;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.WorldRegion;
import net.osmand.plus.download.DownloadActivity;
import org.apache.commons.logging.Log;
import java.text.MessageFormat;
import java.util.Locale;
public class DownloadItemsFragment extends Fragment {
private static final Log LOG = PlatformUtil.getLog(DownloadItemsFragment.class);
private static final MessageFormat formatGb = new MessageFormat("{0, number,<b>#.##</b>} GB", Locale.US);
public static final int RELOAD_ID = 0;
private ItemsListBuilder builder;
private WorldRegionsAdapter worldRegionsAdapter;
private WorldMapAdapter worldMapAdapter;
private VoicePromtsAdapter voicePromtsAdapter;
private ListView worldRegionsListView;
private ListView worldMapListView;
private ListView voicePromtsListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.download_index_fragment, container, false);
builder = new ItemsListBuilder(getMyApplication(), getMyApplication().getWorldRegion());
boolean hasBuilt = builder.build();
worldRegionsListView = (ListView) view.findViewById(R.id.list_world_regions);
worldRegionsAdapter = new WorldRegionsAdapter(getActivity(), getMyApplication());
worldRegionsListView.setAdapter(worldRegionsAdapter);
if (hasBuilt) {
fillWorldRegionsAdapter();
}
worldMapListView = (ListView) view.findViewById(R.id.list_world_map);
worldMapAdapter = new WorldMapAdapter(getActivity(), getMyApplication());
worldMapListView.setAdapter(worldMapAdapter);
if (hasBuilt) {
fillWorldMapAdapter();
}
voicePromtsListView = (ListView) view.findViewById(R.id.list_voice_promts);
voicePromtsAdapter = new VoicePromtsAdapter(getActivity(), getMyApplication());
voicePromtsListView.setAdapter(voicePromtsAdapter);
if (hasBuilt) {
fillVoicePromtsAdapter();
}
return view;
}
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
listView.requestLayout();
}
public OsmandApplication getMyApplication() {
return (OsmandApplication)getActivity().getApplication();
}
private void fillWorldRegionsAdapter() {
if (worldRegionsAdapter != null) {
worldRegionsAdapter.clear();
worldRegionsAdapter.addAll(builder.getRegionsFromAllItems());
setListViewHeightBasedOnChildren(worldRegionsListView);
}
}
private void fillWorldMapAdapter() {
if (worldMapAdapter != null) {
worldMapAdapter.clear();
worldMapAdapter.addAll(builder.getRegionMapItems());
setListViewHeightBasedOnChildren(worldMapListView);
}
}
private void fillVoicePromtsAdapter() {
if (voicePromtsAdapter != null) {
voicePromtsAdapter.clear();
//voicePromtsAdapter.addAll(cats);
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
MenuItem item = menu.add(0, RELOAD_ID, 0, R.string.shared_string_refresh);
item.setIcon(R.drawable.ic_action_refresh_dark);
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == RELOAD_ID) {
// re-create the thread
DownloadActivity.downloadListIndexThread.runReloadIndexFiles();
return true;
}
return super.onOptionsItemSelected(item);
}
private DownloadActivity getDownloadActivity() {
return (DownloadActivity) getActivity();
}
public void onCategorizationFinished() {
if (builder.build()) {
fillWorldRegionsAdapter();
fillWorldMapAdapter();
fillVoicePromtsAdapter();
}
}
private static class WorldRegionsAdapter extends ArrayAdapter<WorldRegion> {
private final OsmandApplication osmandApplication;
public WorldRegionsAdapter(Context context, OsmandApplication osmandApplication) {
super(context, R.layout.simple_list_menu_item);
this.osmandApplication = osmandApplication;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_list_menu_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Drawable iconLeft = osmandApplication.getIconsCache()
.getContentIcon(R.drawable.ic_world_globe_dark);
viewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, null, null, null);
viewHolder.textView.setText(getItem(position).getName());
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
private static class WorldMapAdapter extends ArrayAdapter<ItemsListBuilder.ResourceItem> {
private final OsmandApplication osmandApplication;
public WorldMapAdapter(Context context, OsmandApplication osmandApplication) {
super(context, R.layout.simple_list_menu_item);
this.osmandApplication = osmandApplication;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_list_menu_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Drawable iconLeft = osmandApplication.getIconsCache()
.getContentIcon(R.drawable.ic_world_globe_dark);
viewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, null, null, null);
viewHolder.textView.setText(getItem(position).getTitle());
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
private static class VoicePromtsAdapter extends ArrayAdapter {
private final OsmandApplication osmandApplication;
public VoicePromtsAdapter(Context context, OsmandApplication osmandApplication) {
super(context, R.layout.simple_list_menu_item);
this.osmandApplication = osmandApplication;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.simple_list_menu_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.textView = (TextView) convertView.findViewById(R.id.title);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Drawable iconLeft = osmandApplication.getIconsCache()
.getContentIcon(R.drawable.ic_world_globe_dark);
viewHolder.textView.setCompoundDrawablesWithIntrinsicBounds(iconLeft, null, null, null);
viewHolder.textView.setText(getItem(position).toString());
return convertView;
}
private static class ViewHolder {
TextView textView;
}
}
}

View file

@ -0,0 +1,377 @@
package net.osmand.plus.download.items;
import android.content.Context;
import net.osmand.PlatformUtil;
import net.osmand.map.OsmandRegions;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.WorldRegion;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.DownloadActivityType;
import net.osmand.plus.download.IndexItem;
import net.osmand.util.Algorithms;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class ItemsListBuilder {
public class ResourceItem {
private String resourceId;
private String title;
private long contentSize;
private long containerSize;
private boolean disabled;
private IndexItem indexItem;
private WorldRegion worldRegion;
public IndexItem getIndexItem() {
return indexItem;
}
public WorldRegion getWorldRegion() {
return worldRegion;
}
public String getResourceId() {
return resourceId;
}
public void setResourceId(String resourceId) {
this.resourceId = resourceId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public long getContentSize() {
return contentSize;
}
public void setContentSize(long contentSize) {
this.contentSize = contentSize;
}
public long getContainerSize() {
return containerSize;
}
public void setContainerSize(long containerSize) {
this.containerSize = containerSize;
}
public boolean isDisabled() {
return disabled;
}
public void setDisabled(boolean disabled) {
this.disabled = disabled;
}
public ResourceItem(IndexItem indexItem, WorldRegion worldRegion) {
this.indexItem = indexItem;
this.worldRegion = worldRegion;
}
}
class ResourceItemComparator implements Comparator {
@Override
public int compare(Object obj1, Object obj2) {
String str1;
String str2;
if (obj1 instanceof WorldRegion) {
str1 = ((WorldRegion)obj1).getName();
} else {
ResourceItem item = (ResourceItem)obj1;
str1 = item.title + item.getIndexItem().getType().getTag();
}
if (obj2 instanceof WorldRegion) {
str2 = ((WorldRegion)obj2).getName();
} else {
ResourceItem item = (ResourceItem)obj2;
str2 = item.title + item.getIndexItem().getType().getTag();
}
return str1.compareTo(str2);
}
}
private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(ItemsListBuilder.class);
private static Map<WorldRegion, Map<String, IndexItem>> resourcesByRegions =
new HashMap<>();
private static List<WorldRegion> searchableWorldwideRegionItems = new LinkedList<>();
private List<ResourceItem> regionMapItems;
private List allResourceItems;
private List<WorldRegion> allSubregionItems;
private OsmandApplication app;
private WorldRegion region;
private boolean invalidated;
private boolean srtmDisabled;
private boolean hasSrtm;
public List<ResourceItem> getRegionMapItems() {
return regionMapItems;
}
public List getAllResourceItems() {
return allResourceItems;
}
public List<WorldRegion> getRegionsFromAllItems() {
List<WorldRegion> list = new LinkedList<>();
for (Object obj : allResourceItems) {
if (obj instanceof WorldRegion) {
list.add((WorldRegion)obj);
}
}
return list;
}
public ItemsListBuilder(OsmandApplication app) {
this.app = app;
regionMapItems = new LinkedList();
allResourceItems = new LinkedList();
allSubregionItems = new LinkedList<>();
}
public ItemsListBuilder(OsmandApplication app, WorldRegion region) {
this(app);
this.region = region;
}
public boolean build() {
return obtainDataAndItems();
}
private boolean obtainDataAndItems() {
if (invalidated) {
resourcesByRegions.clear();
}
if (resourcesByRegions.isEmpty()) {
if (!prepareData()) {
return false;
}
}
collectSubregionsDataAndItems();
collectResourcesDataAndItems();
LOG.warn("getRegionMapItems >>>");
for (ResourceItem resourceItem : getRegionMapItems()) {
LOG.warn("resId=" + resourceItem.getIndexItem().getFileName() + " title=" + resourceItem.getTitle());
}
LOG.warn("getAllResourceItems >>>");
for (Object obj : getAllResourceItems()) {
if (obj instanceof WorldRegion) {
WorldRegion item = (WorldRegion)obj;
LOG.warn("W resId=" + item.getRegionId() + " title=" + item.getName());
} else if (obj instanceof ResourceItem) {
ResourceItem resourceItem = (ResourceItem)obj;
LOG.warn("R resId=" + resourceItem.getIndexItem().getFileName() + " title=" + resourceItem.getTitle());
}
}
invalidated = false;
return true;
}
public void invalidate() {
invalidated = true;
}
private boolean prepareData() {
List<IndexItem> resourcesInRepository = DownloadActivity.downloadListIndexThread.getCachedIndexFiles();
if (resourcesInRepository == null) {
return false;
}
boolean doInit = resourcesByRegions.isEmpty();
boolean initSearchableRegions = searchableWorldwideRegionItems.isEmpty() || doInit;
if (initSearchableRegions) {
searchableWorldwideRegionItems.clear();
}
List<WorldRegion> mergedRegions = app.getWorldRegion().getFlattenedSubregions();
mergedRegions.add(app.getWorldRegion());
for(WorldRegion region : mergedRegions)
{
if (initSearchableRegions) {
searchableWorldwideRegionItems.add(region);
}
String downloadsIdPrefix = region.getDownloadsIdPrefix().toLowerCase();
Map<String, IndexItem> regionResources = new HashMap<>();
if (!doInit)
{
regionResources.putAll(resourcesByRegions.get(region));
}
if (doInit)
{
List<DownloadActivityType> typesArray = new LinkedList<>();
boolean hasSrtm = false;
for (IndexItem resource : resourcesInRepository)
{
if (!resource.getFileName().startsWith(downloadsIdPrefix))
continue;
if (resource.getType() == DownloadActivityType.SRTM_COUNTRY_FILE) {
hasSrtm = true;
}
typesArray.add(resource.getType());
regionResources.put(resource.getFileName(), resource);
}
if (region.getSuperregion() != null && hasSrtm && region.getSuperregion().getSuperregion() != app.getWorldRegion())
{
if (!region.getSuperregion().getResourceTypes().contains(DownloadActivityType.SRTM_COUNTRY_FILE))
{
region.getSuperregion().getResourceTypes().add(DownloadActivityType.SRTM_COUNTRY_FILE);
Collections.sort(region.getSuperregion().getResourceTypes(), new Comparator<DownloadActivityType>() {
@Override
public int compare(DownloadActivityType dat1, DownloadActivityType dat2) {
return dat1.getTag().compareTo(dat2.getTag());
}
});
}
}
Collections.sort(typesArray, new Comparator<DownloadActivityType>() {
@Override
public int compare(DownloadActivityType dat1, DownloadActivityType dat2) {
return dat1.getTag().compareTo(dat2.getTag());
}
});
region.setResourceTypes(typesArray);
}
resourcesByRegions.put(region, regionResources);
}
return true;
}
private void collectSubregionsDataAndItems() {
srtmDisabled = false; //todo: check if srtm plugin disabled
hasSrtm = false;
// Collect all regions (and their parents) that have at least one
// resource available in repository or locally.
allResourceItems.clear();
allSubregionItems.clear();
regionMapItems.clear();
for (WorldRegion subregion : region.getFlattenedSubregions())
{
if (subregion.getSuperregion() == region)
{
if (subregion.getFlattenedSubregions().size() > 0) {
allSubregionItems.add(subregion);
} else {
collectSubregionItems(subregion);
}
}
}
}
private void collectSubregionItems(WorldRegion region) {
Map<String, IndexItem> regionResources = resourcesByRegions.get(region);
List<ResourceItem> regionMapArray = new LinkedList<>();
List allResourcesArray = new LinkedList();
Context context = app.getApplicationContext();
OsmandRegions osmandRegions = app.getRegions();
for (IndexItem indexItem : regionResources.values()) {
String name = indexItem.getVisibleName(context, osmandRegions);
if (Algorithms.isEmpty(name)) {
continue;
}
ResourceItem resItem = new ResourceItem(indexItem, region);
resItem.setResourceId(indexItem.getFileName());
resItem.setTitle(name);
resItem.setContentSize(indexItem.getContentSize());
resItem.setContainerSize(indexItem.getSize());
if (region != this.region && srtmDisabled)
{
if (hasSrtm && indexItem.getType() == DownloadActivityType.SRTM_COUNTRY_FILE)
continue;
if (indexItem.getType() == DownloadActivityType.SRTM_COUNTRY_FILE)
{
resItem.setTitle("srtm_disabled"); // todo: constant
resItem.setContentSize(0);
resItem.setContainerSize(0);
}
if (!hasSrtm && indexItem.getType() == DownloadActivityType.SRTM_COUNTRY_FILE)
hasSrtm = true;
}
if (region == this.region) {
regionMapArray.add(resItem);
} else {
allResourcesArray.add(resItem);
}
}
regionMapItems.addAll(regionMapArray);
if (allResourcesArray.size() > 1) {
allSubregionItems.add(region);
} else {
allResourceItems.addAll(allResourcesArray);
}
}
private void collectResourcesDataAndItems() {
collectSubregionItems(region);
allResourceItems.addAll(allSubregionItems);
Collections.sort(allResourceItems, new ResourceItemComparator());
Collections.sort(regionMapItems, new ResourceItemComparator());
/*
* todo: remove seamarks if plugin is off
if (![[OAIAPHelper sharedInstance] productPurchased:kInAppId_Addon_Nautical]) {
for (ResourceItem *item in _regionMapItems)
if (item.resourceId.compare(QString(kWorldSeamarksKey)) == 0) {
[_regionMapItems removeObject:item];
break;
}
}
*/
}
}