commit
206f22f465
17 changed files with 676 additions and 396 deletions
|
@ -1317,7 +1317,13 @@ public class SearchCoreFactory {
|
|||
|| !phrase.isSearchTypeAllowed(ObjectType.HOUSE)) {
|
||||
continue;
|
||||
}
|
||||
if(interpolation) {
|
||||
res.localeName = lw;
|
||||
res.location = b.getLocation(b.interpolation(lw));
|
||||
} else {
|
||||
res.localeName = b.getName(phrase.getSettings().getLang(), phrase.getSettings().isTransliterate());
|
||||
res.location = b.getLocation();
|
||||
}
|
||||
res.otherNames = b.getAllNames(true);
|
||||
res.object = b;
|
||||
res.file = file;
|
||||
|
@ -1328,12 +1334,6 @@ public class SearchCoreFactory {
|
|||
res.relatedObject = s;
|
||||
res.localeRelatedObjectName = s.getName(phrase.getSettings().getLang(), phrase.getSettings().isTransliterate());
|
||||
res.objectType = ObjectType.HOUSE;
|
||||
if(interpolation) {
|
||||
res.location = b.getLocation(b.interpolation(lw));
|
||||
res.localeName = lw;
|
||||
} else {
|
||||
res.location = b.getLocation();
|
||||
}
|
||||
res.preferredZoom = 17;
|
||||
|
||||
resultMatcher.publish(res);
|
||||
|
|
|
@ -3126,7 +3126,7 @@
|
|||
<string name="cancel_subscription">Cancelar suscripción</string>
|
||||
<string name="price_and_discount">%1$s • Ahorra %2$s</string>
|
||||
<string name="configure_profile_info">Ajustes para el perfil:</string>
|
||||
<string name="utm_format_descr">OsmAnd utiliza el formato UTM Estándar, similar pero no idéntico al formato UTM NATO.</string>
|
||||
<string name="utm_format_descr">OsmAnd usa el formato UTM Estándar, similar pero no idéntico al formato UTM de la OTAN.</string>
|
||||
<string name="shared_string_example">Ejemplo</string>
|
||||
<string name="navigate_point_format_utm">UTM Estándar</string>
|
||||
<string name="navigate_point_format_olc">Código de Ubicación Abierto</string>
|
||||
|
|
|
@ -3125,7 +3125,7 @@
|
|||
<string name="cancel_subscription">Cancelar suscripción</string>
|
||||
<string name="price_and_discount">%1$s • Ahorra %2$s</string>
|
||||
<string name="configure_profile_info">Ajustes para el perfil:</string>
|
||||
<string name="utm_format_descr">OsmAnd utiliza el formato UTM Estándar, similar pero no idéntico al formato UTM NATO.</string>
|
||||
<string name="utm_format_descr">OsmAnd usa el formato UTM Estándar, similar pero no idéntico al formato UTM de la OTAN.</string>
|
||||
<string name="shared_string_example">Ejemplo</string>
|
||||
<string name="navigate_point_format_utm">UTM Estándar</string>
|
||||
<string name="navigate_point_format_olc">Código de Ubicación Abierto</string>
|
||||
|
|
|
@ -301,8 +301,8 @@
|
|||
<string name="error_reading_gpx">Impossible de lire les données GPX.</string>
|
||||
<string name="vector_data">Cartes vectorielles OSM</string>
|
||||
<string name="transport_context_menu">Recherche de transport pour cet arrêt</string>
|
||||
<string name="poi_context_menu_modify">Modifier point d\'intérêt</string>
|
||||
<string name="poi_context_menu_delete">Supprimer point d\'intérêt</string>
|
||||
<string name="poi_context_menu_modify">Modifier le point d\'intérêt</string>
|
||||
<string name="poi_context_menu_delete">Supprimer le point d\'intérêt</string>
|
||||
<string name="rotate_map_compass_opt">D\'après la boussole</string>
|
||||
<string name="rotate_map_bearing_opt">Dans la direction du déplacement</string>
|
||||
<string name="rotate_map_none_opt">Aucune rotation (nord toujours en haut)</string>
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
<string name="poi_cheese">Queijaria</string>
|
||||
<string name="poi_chocolate">Loja de chocolates</string>
|
||||
<string name="poi_coffee">Loja de cafés</string>
|
||||
<string name="poi_convenience">Loja de conveniência</string>
|
||||
<string name="poi_convenience">Loja de conveniência/minimercado</string>
|
||||
<string name="poi_mall">Centro comercial</string>
|
||||
<string name="poi_beverages">Loja de bebidas</string>
|
||||
<string name="poi_butcher">Talho</string>
|
||||
|
@ -247,7 +247,7 @@
|
|||
<string name="poi_clothes_type">Tipo</string>
|
||||
<string name="poi_shoes_type">Tipo</string>
|
||||
<string name="poi_fire_hydrant_type">Tipo</string>
|
||||
<string name="poi_fire_hydrant_position">Posição</string>
|
||||
<string name="poi_fire_hydrant_position">Localização</string>
|
||||
<string name="poi_water_source">Fonte de água</string>
|
||||
<string name="poi_payment_toll_type">Forma de pagamento</string>
|
||||
<string name="poi_traffic_signals_sound">Som</string>
|
||||
|
@ -284,9 +284,9 @@
|
|||
<string name="poi_fee">Pago</string>
|
||||
<string name="poi_smoking">Fumar</string>
|
||||
<string name="poi_delivery">Entrega ao domicílio</string>
|
||||
<string name="poi_drive_in">Serviço ao volante</string>
|
||||
<string name="poi_drive_through">Serviço ao volante</string>
|
||||
<string name="poi_takeaway">Serviço de take-away</string>
|
||||
<string name="poi_drive_in">Serviço no carro parado</string>
|
||||
<string name="poi_drive_through">Serviço a conduzir</string>
|
||||
<string name="poi_takeaway">Comida para levar</string>
|
||||
<string name="poi_cocktails">Cocktails</string>
|
||||
<string name="poi_microbrewery">Microcervejaria</string>
|
||||
<string name="poi_beauty_salon_service">Serviço</string>
|
||||
|
@ -967,7 +967,7 @@
|
|||
<string name="poi_craft_computer">Montagem de computadores</string>
|
||||
<string name="poi_beauty">Salão de beleza</string>
|
||||
<string name="poi_beauty_salon_nails">Manicura</string>
|
||||
<string name="poi_hairdresser">Cabeleireiro</string>
|
||||
<string name="poi_hairdresser">Cabeleireiro/a</string>
|
||||
<string name="poi_massage">Salão de massagens</string>
|
||||
<string name="poi_tattoo">Estúdio de tatuagem</string>
|
||||
<string name="poi_dry_cleaning">Limpeza de roupa a seco</string>
|
||||
|
@ -1257,7 +1257,7 @@
|
|||
<string name="poi_seasonal_autumn">Outono</string>
|
||||
<string name="poi_seasonal_winter">Inverno</string>
|
||||
<string name="poi_crossing_traffic_signals">Com semáforos</string>
|
||||
<string name="poi_crossing_uncontrolled">Não controlado (sem semáforo e barreira)</string>
|
||||
<string name="poi_crossing_uncontrolled">Não controlado (sem semáforo nem barreira)</string>
|
||||
<string name="poi_crossing_unmarked">Não sinalizado (sem marcas nem semáforo)</string>
|
||||
<string name="poi_start_date">Data de início/inauguração</string>
|
||||
<string name="poi_wheelchair_accessibility">Acesso de cadeiras de rodas</string>
|
||||
|
@ -1389,7 +1389,7 @@
|
|||
<string name="poi_information_board">Painel</string>
|
||||
<string name="poi_information_map">Mapa</string>
|
||||
<string name="poi_information_office">Posto de turismo</string>
|
||||
<string name="poi_information_trail_blaze">Sinalização de rota</string>
|
||||
<string name="poi_information_trail_blaze">Baliza de caminho</string>
|
||||
<string name="poi_information_terminal">Terminal eletrónico de informação</string>
|
||||
<string name="poi_information_route_marker">Sinalização de rota</string>
|
||||
<string name="poi_information_hikingmap">Mapa de caminhadas</string>
|
||||
|
@ -1555,7 +1555,7 @@
|
|||
<string name="poi_payment_cheque_no">Não aceita cheque</string>
|
||||
<string name="poi_payment_pikepass_yes">PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_no">Não aceita PIKEPASS</string>
|
||||
<string name="poi_payment_pikepass_designated">PIKEPASS (designado)</string>
|
||||
<string name="poi_payment_pikepass_designated">PIKEPASS (assinalado)</string>
|
||||
<string name="poi_payment_visa_debit_yes">Cartão Visa Débito</string>
|
||||
<string name="poi_payment_visa_debit_no">Não aceita cartão Visa Débito</string>
|
||||
<string name="poi_payment_cryptocurrencies_no">Não aceita criptomoedas</string>
|
||||
|
@ -1663,11 +1663,11 @@
|
|||
<string name="poi_diet_gluten_free_only">Apenas livre de glúten</string>
|
||||
<string name="poi_diet_gluten_free_yes">Livre de glúten</string>
|
||||
<string name="poi_diet_gluten_free_no">Dieta livre de glúten: não</string>
|
||||
<string name="poi_diet_kosher_filter_yes">Kosher</string>
|
||||
<string name="poi_diet_kosher_filter_yes">Kosher (judaica)</string>
|
||||
<string name="poi_diet_kosher_only">Apenas kosher</string>
|
||||
<string name="poi_diet_kosher_yes">Kosher</string>
|
||||
<string name="poi_diet_kosher_no">Dieta kosher: não</string>
|
||||
<string name="poi_diet_halal_filter_yes">Halal</string>
|
||||
<string name="poi_diet_halal_filter_yes">Halal (árabe)</string>
|
||||
<string name="poi_diet_halal_only">Apenas halal</string>
|
||||
<string name="poi_diet_halal_yes">Halal</string>
|
||||
<string name="poi_diet_halal_no">Dieta halal: não</string>
|
||||
|
@ -1675,11 +1675,11 @@
|
|||
<string name="poi_diet_lactose_free_only">Apenas livre de lactose</string>
|
||||
<string name="poi_diet_lactose_free_yes">Livre de lactose</string>
|
||||
<string name="poi_diet_lactose_free_no">Dieta livre de lactose: não</string>
|
||||
<string name="poi_diet_pescetarian_yes">Piscitariana</string>
|
||||
<string name="poi_diet_pescetarian_yes">Piscitariana (peixes e vegetais)</string>
|
||||
<string name="poi_drive_in_yes">Sim</string>
|
||||
<string name="poi_drive_in_no">Serviço ao volante: não</string>
|
||||
<string name="poi_drive_in_no">Serviço a conduzir: não</string>
|
||||
<string name="poi_drive_through_yes">Sim</string>
|
||||
<string name="poi_drive_through_no">Serviço ao volante: não</string>
|
||||
<string name="poi_drive_through_no">Serviço a conduzir: não</string>
|
||||
<string name="poi_brewery_additional">Nome da cervejaria</string>
|
||||
<string name="poi_microbrewery_yes">Sim</string>
|
||||
<string name="poi_microbrewery_no">Sem microcervejaria</string>
|
||||
|
@ -1704,7 +1704,7 @@
|
|||
<string name="poi_second_hand_no">Produtos usados: não</string>
|
||||
<string name="poi_second_hand_only">Produtos usados: unicamente</string>
|
||||
<string name="poi_service_parts">Peças</string>
|
||||
<string name="poi_service_dealer">Representante</string>
|
||||
<string name="poi_service_dealer">Representante de marca</string>
|
||||
<string name="poi_service_repair">Reparação</string>
|
||||
<string name="poi_service_repair_no">Sem reparação</string>
|
||||
<string name="poi_service_electrical">Reparação de veículos elétricos</string>
|
||||
|
@ -2022,7 +2022,7 @@
|
|||
<string name="poi_training_yoga">Formação: ioga</string>
|
||||
<string name="poi_training_martial_art">Formação: arte marcial</string>
|
||||
<string name="poi_training_aviation">Formação: aviação</string>
|
||||
<string name="poi_training_hairdressing">Formação: cabeleireiro</string>
|
||||
<string name="poi_training_hairdressing">Formação: cabeleireiro/a</string>
|
||||
<string name="poi_monument_yes">Estrutura monumental</string>
|
||||
<string name="poi_industrial_oil">Tipo: indústria petrolífera</string>
|
||||
<string name="poi_industrial_wellsite">Tipo: poço</string>
|
||||
|
@ -2439,7 +2439,7 @@
|
|||
<string name="poi_health_specialty_maxillofacial_surgery_yes">Cirurgia maxilofacial</string>
|
||||
<string name="poi_health_specialty_diagnostic_radiology_yes">Radiologia diagnóstica</string>
|
||||
<string name="poi_health_specialty_gastroenterology_yes">Gastroenterologia</string>
|
||||
<string name="poi_health_specialty_dentistry_yes">Odontologia</string>
|
||||
<string name="poi_health_specialty_dentistry_yes">Medicina dentária (odontologia)</string>
|
||||
<string name="poi_health_specialty_nephrology_yes">Nefrologia (doenças renais)</string>
|
||||
<string name="poi_health_specialty_neurosurgery_yes">Neurocirurgia</string>
|
||||
<string name="poi_health_specialty_neuropsychiatry_yes">Neuropsiquiatria</string>
|
||||
|
@ -2460,7 +2460,7 @@
|
|||
<string name="poi_health_specialty_addiction_medicine_yes">Toxicologia clínica</string>
|
||||
<string name="poi_health_specialty_optometry_yes">Optometria</string>
|
||||
<string name="poi_health_specialty_clinical_pathology_yes">Patologia clínica</string>
|
||||
<string name="poi_health_specialty_speech_therapy_yes">Fonoaudiologia</string>
|
||||
<string name="poi_health_specialty_speech_therapy_yes">Fonoaudiologia (terapia da fala)</string>
|
||||
<string name="poi_health_specialty_manual_therapy_yes">Terapia manual</string>
|
||||
<string name="poi_health_specialty_sports_medicine_yes">Medicina do desporto</string>
|
||||
<string name="poi_health_specialty_podology_yes">Podologia</string>
|
||||
|
@ -2764,7 +2764,7 @@
|
|||
<string name="poi_depth">Profundidade</string>
|
||||
<string name="poi_salt_yes">Sal</string>
|
||||
<string name="poi_salt_no">Sal: não</string>
|
||||
<string name="poi_wheelchair_designated">Designado</string>
|
||||
<string name="poi_wheelchair_designated">Assinalado</string>
|
||||
<string name="poi_spoil_heap">Rejeito de mineração</string>
|
||||
<string name="poi_summer_camp">Acampamento de verão</string>
|
||||
<string name="poi_recreation_center">Centro de recreativo</string>
|
||||
|
@ -2908,28 +2908,28 @@
|
|||
<string name="poi_cuisine_burger">Hambúrguer</string>
|
||||
<string name="poi_cuisine_coffee">Café</string>
|
||||
<string name="poi_cuisine_sandwich">Sanduíches</string>
|
||||
<string name="poi_cuisine_kebab">Kebab</string>
|
||||
<string name="poi_cuisine_doner">Döner kebab (shawarma)</string>
|
||||
<string name="poi_cuisine_kebab">Kebab (Médio Oriente)</string>
|
||||
<string name="poi_cuisine_doner">Döner kebab (turco)</string>
|
||||
<string name="poi_cuisine_chicken">Frango</string>
|
||||
<string name="poi_cuisine_ice_cream">Gelados</string>
|
||||
<string name="poi_cuisine_sushi">Sushi</string>
|
||||
<string name="poi_cuisine_fish_and_chips">Peixe e batatas fritas</string>
|
||||
<string name="poi_cuisine_seafood">Frutos do mar</string>
|
||||
<string name="poi_cuisine_seafood">Marisco</string>
|
||||
<string name="poi_cuisine_barbecue">Churrascos</string>
|
||||
<string name="poi_cuisine_noodle">Noodles</string>
|
||||
<string name="poi_cuisine_noodle">Noodles (asiático)</string>
|
||||
<string name="poi_cuisine_donut">Donuts</string>
|
||||
<string name="poi_cuisine_ramen">Ramen</string>
|
||||
<string name="poi_cuisine_ramen">Ramen (japonês)</string>
|
||||
<string name="poi_cuisine_crepe">Crepes</string>
|
||||
<string name="poi_cuisine_breakfast">Café da manhã</string>
|
||||
<string name="poi_cuisine_beef_bowl">Gyudon</string>
|
||||
<string name="poi_cuisine_beef_bowl">Gyudon (japonês)</string>
|
||||
<string name="poi_cuisine_steak">Bifes</string>
|
||||
<string name="poi_cuisine_tapas">Tapas</string>
|
||||
<string name="poi_cuisine_gastropub">Gastropub</string>
|
||||
<string name="poi_cuisine_heuriger">Heuriger</string>
|
||||
<string name="poi_cuisine_gastropub">Gastropub (inglês)</string>
|
||||
<string name="poi_cuisine_heuriger">Heuriger (austríaco e alemão)</string>
|
||||
<string name="poi_cuisine_curry">Caril</string>
|
||||
<string name="poi_cuisine_buschenschank">Buschenschank</string>
|
||||
<string name="poi_cuisine_buschenschank">Buschenschank (austríaco e alemão)</string>
|
||||
<string name="poi_cuisine_grill">Grelhados</string>
|
||||
<string name="poi_cuisine_bagel">Bagel</string>
|
||||
<string name="poi_cuisine_bagel">Bagel (polaco)</string>
|
||||
<string name="poi_cuisine_diner">Café-restaurante</string>
|
||||
<string name="poi_cuisine_sausage">Linguiças</string>
|
||||
<string name="poi_cuisine_cake">Bolos</string>
|
||||
|
@ -2949,26 +2949,26 @@
|
|||
<string name="poi_cuisine_frozen_yogurt">Iogurtes gelados</string>
|
||||
<string name="poi_cuisine_fried_food">Comida frita</string>
|
||||
<string name="poi_cuisine_savory_pancakes">Panquecas salgadas</string>
|
||||
<string name="poi_cuisine_bistro">Bistrô</string>
|
||||
<string name="poi_cuisine_bistro">Bistrô (francês)</string>
|
||||
<string name="poi_cuisine_bakery">Padaria</string>
|
||||
<string name="poi_cuisine_couscous">Cuscuz</string>
|
||||
<string name="poi_cuisine_fried_chicken">Frango frito</string>
|
||||
<string name="poi_cuisine_dessert">Sobremesas</string>
|
||||
<string name="poi_cuisine_canteen">Cantina</string>
|
||||
<string name="poi_cuisine_tacos">Tacos</string>
|
||||
<string name="poi_cuisine_piadina">Piadina</string>
|
||||
<string name="poi_cuisine_falafel">Falafel</string>
|
||||
<string name="poi_cuisine_tacos">Tacos (mexicano)</string>
|
||||
<string name="poi_cuisine_piadina">Piadina (italiano)</string>
|
||||
<string name="poi_cuisine_falafel">Falafel (Médio Oriente)</string>
|
||||
<string name="poi_cuisine_smoothie">Batidos de frutas</string>
|
||||
<string name="poi_cuisine_souvlaki">Souvlaki</string>
|
||||
<string name="poi_cuisine_souvlaki">Souvlaki (grego)</string>
|
||||
<string name="poi_cuisine_snack">Salgados</string>
|
||||
<string name="poi_cuisine_yogurt">Iogurtes</string>
|
||||
<string name="poi_cuisine_gyros">Gyros</string>
|
||||
<string name="poi_cuisine_gyros">Gyros (grego)</string>
|
||||
<string name="poi_cuisine_empanada">Empanadas</string>
|
||||
<string name="poi_cuisine_crepes">Crepes</string>
|
||||
<string name="poi_cuisine_yakiniku">Yakiniku</string>
|
||||
<string name="poi_cuisine_yakiniku">Yakiniku (japonês)</string>
|
||||
<string name="poi_cuisine_suki">Suki tailandês</string>
|
||||
<string name="poi_cuisine_udon">Udon (japonês)</string>
|
||||
<string name="poi_cuisine_brasserie">Brasserie</string>
|
||||
<string name="poi_cuisine_brasserie">Brasserie (francês)</string>
|
||||
<string name="poi_cuisine_bubble_tea">Chá de bolhas</string>
|
||||
<string name="poi_cuisine_yakitori">Yakitori (japonês)</string>
|
||||
<string name="poi_cuisine_sagardotegia">Sagardotegia (basco)</string>
|
||||
|
@ -2978,11 +2978,11 @@
|
|||
<string name="poi_cuisine_chocolate">Chocolates</string>
|
||||
<string name="poi_cuisine_wine">Vinhos</string>
|
||||
<string name="poi_cuisine_potato">Batatas</string>
|
||||
<string name="poi_cuisine_brunch">Brunch</string>
|
||||
<string name="poi_cuisine_brunch">Brunch (inglês e norte-americano)</string>
|
||||
<string name="poi_cuisine_sub">Sandes</string>
|
||||
<string name="poi_cuisine_pita">Pita</string>
|
||||
<string name="poi_cuisine_fondue">Fondue</string>
|
||||
<string name="poi_cuisine_baguette">Baguetes</string>
|
||||
<string name="poi_cuisine_pita">Pita (judaico)</string>
|
||||
<string name="poi_cuisine_fondue">Fondue (suíço)</string>
|
||||
<string name="poi_cuisine_baguette">Baguetes (francês)</string>
|
||||
<string name="poi_cuisine_pastel">Pastéis</string>
|
||||
<string name="poi_cuisine_burrito">Burritos</string>
|
||||
<string name="poi_cuisine_teriyaki">Teriyaki (japonês)</string>
|
||||
|
@ -3040,7 +3040,7 @@
|
|||
<string name="poi_cuisine_latin_american">Latino-americana</string>
|
||||
<string name="poi_cuisine_nepalese">Nepalesa</string>
|
||||
<string name="poi_cuisine_mongolian">Mongol</string>
|
||||
<string name="poi_cuisine_middle_eastern">Oriente Médio</string>
|
||||
<string name="poi_cuisine_middle_eastern">Médio Oriente</string>
|
||||
<string name="poi_cuisine_ukrainian">Ucraniana</string>
|
||||
<string name="poi_cuisine_afghan">Afegã</string>
|
||||
<string name="poi_cuisine_belgian">Belga</string>
|
||||
|
@ -3181,7 +3181,7 @@
|
|||
<string name="poi_boat_motorboat_rental_no">Lanchas: não</string>
|
||||
<string name="poi_boat_houseboat_rental_yes">Casas-barco: sim</string>
|
||||
<string name="poi_boat_houseboat_rental_no">Casas-barco: não</string>
|
||||
<string name="poi_boat_pedalboat_rental_yes">Gaivota: sim</string>
|
||||
<string name="poi_boat_pedalboat_rental_yes">Gaivotas a pedais: sim</string>
|
||||
<string name="poi_boat_pedalboat_rental_no">Gaivota: não</string>
|
||||
<string name="poi_boat_jetski_rental_yes">Motas de água: sim</string>
|
||||
<string name="poi_boat_jetski_rental_no">Motas de água: não</string>
|
||||
|
@ -3249,69 +3249,69 @@
|
|||
<string name="poi_water_place_access_community">Comunidade</string>
|
||||
<string name="poi_water_place_access_family">Família</string>
|
||||
<string name="poi_water_place_access_multifamilies">Várias famílias</string>
|
||||
<string name="poi_socket_cee_blue">Tomada: CEE azul</string>
|
||||
<string name="poi_socket_cee_blue_current">Tomada: CEE azul: corrente</string>
|
||||
<string name="poi_socket_cee_blue_output">Tomada: CEE azul: saída</string>
|
||||
<string name="poi_socket_cee_red_16a">Tomada: CEE vermelha 16A</string>
|
||||
<string name="poi_socket_cee_red_16a_current">Tomada: CEE vermelha 16A: corrente</string>
|
||||
<string name="poi_socket_cee_red_16a_output">Tomada: CEE vermelha 16A: saída</string>
|
||||
<string name="poi_socket_cee_red_32a">Tomada: CEE vermelha 32A</string>
|
||||
<string name="poi_socket_cee_red_32a_current">Tomada: CEE vermelha 32A: corrente</string>
|
||||
<string name="poi_socket_cee_red_32a_output">Tomada: CEE vermelha 32A: saída</string>
|
||||
<string name="poi_socket_cee_red_64a">Tomada: CEE vermelha 64A</string>
|
||||
<string name="poi_socket_cee_red_64a_current">Tomada: CEE vermelha 64A: corrente</string>
|
||||
<string name="poi_socket_cee_red_64a_output">Tomada: CEE vermelha 64A: saída</string>
|
||||
<string name="poi_socket_cee_red_125a">Tomada: CEE vermelha 125A</string>
|
||||
<string name="poi_socket_cee_red_125a_current">Tomada: CEE vermelha 125A: corrente</string>
|
||||
<string name="poi_socket_cee_red_125a_output">Tomada: CEE vermelha 125A: saída</string>
|
||||
<string name="poi_socket_type1">Tomada: Tipo 1</string>
|
||||
<string name="poi_socket_type1_current">Tomada: Tipo 1: corrente</string>
|
||||
<string name="poi_socket_type1_output">Tomada: Tipo 1: saída</string>
|
||||
<string name="poi_socket_type1_combo">Tomada: Tipo 1 combo</string>
|
||||
<string name="poi_socket_type1_combo_current">Tomada: Tipo 1 combo: corrente</string>
|
||||
<string name="poi_socket_type1_combo_output">Tomada: Tipo 1 combo: saída</string>
|
||||
<string name="poi_socket_type2">Tomada: Tipo 2</string>
|
||||
<string name="poi_socket_type2_current">Tomada: Tipo 2: corrente</string>
|
||||
<string name="poi_socket_type2_output">Tomada: Tipo 2: saída</string>
|
||||
<string name="poi_socket_type2_combo">Tomada: Tipo 2 combo</string>
|
||||
<string name="poi_socket_type2_combo_current">Tomada: Tipo 2 combo: corrente</string>
|
||||
<string name="poi_socket_type2_combo_output">Tomada: Tipo 2 combo: saída</string>
|
||||
<string name="poi_socket_type3">Tomada: Tipo 3</string>
|
||||
<string name="poi_socket_type3_current">Tomada: Tipo 3: corrente</string>
|
||||
<string name="poi_socket_type3_output">Tomada: Tipo 3: saída</string>
|
||||
<string name="poi_socket_chademo">Tomada: CHAdeMO</string>
|
||||
<string name="poi_socket_chademo_current">Tomada: CHAdeMO: corrente</string>
|
||||
<string name="poi_socket_chademo_output">Tomada: CHAdeMO: saída</string>
|
||||
<string name="poi_socket_tesla_standard">Tomada: Padrão Tesla</string>
|
||||
<string name="poi_socket_tesla_standard_current">Tomada: Padrão Tesla: corrente</string>
|
||||
<string name="poi_socket_tesla_standard_output">Tomada: Padrão Tesla: saída</string>
|
||||
<string name="poi_socket_tesla_supercharger">Tomada: Tesla Supercharger</string>
|
||||
<string name="poi_socket_tesla_supercharger_current">Tomada: Tesla Supercharger: corrente</string>
|
||||
<string name="poi_socket_tesla_supercharger_output">Tomada: Tesla Supercharger: saída</string>
|
||||
<string name="poi_socket_tesla_roadster">Tomada: Tesla Roadster</string>
|
||||
<string name="poi_socket_tesla_roadster_current">Tomada: Tesla Roadster: corrente</string>
|
||||
<string name="poi_socket_tesla_roadster_output">Tomada: Tesla Roadster: saída</string>
|
||||
<string name="poi_socket_nema_5_15">Tomada: NEMA 5-15R</string>
|
||||
<string name="poi_socket_nema_5_15_current">Tomada: NEMA 5-15R: corrente</string>
|
||||
<string name="poi_socket_nema_5_15_output">Tomada: NEMA 5-15R: saída</string>
|
||||
<string name="poi_socket_nema_5_20">Tomada: NEMA 5-20</string>
|
||||
<string name="poi_socket_nema_5_20_current">Tomada: NEMA 5-20: corrente</string>
|
||||
<string name="poi_socket_nema_5_20_output">Tomada: NEMA 5-20: saída</string>
|
||||
<string name="poi_socket_nema_14_30">Tomada: NEMA 14-30</string>
|
||||
<string name="poi_socket_nema_14_30_current">Tomada: NEMA 14-30: corrente</string>
|
||||
<string name="poi_socket_nema_14_30_output">Tomada: NEMA 14-30: saída</string>
|
||||
<string name="poi_socket_nema_14_50">Tomada: NEMA 14-50</string>
|
||||
<string name="poi_socket_nema_14_50_current">Tomada: NEMA 14-50: corrente</string>
|
||||
<string name="poi_socket_nema_14_50_output">Tomada: NEMA 14-50: saída</string>
|
||||
<string name="poi_socket_schuko">Tomada: Schuko</string>
|
||||
<string name="poi_socket_schuko_current">Tomada: Schuko: corrente</string>
|
||||
<string name="poi_socket_schuko_output">Tomada: Schuko: saída</string>
|
||||
<string name="poi_socket_bs1363">Tomada: BS 1363</string>
|
||||
<string name="poi_socket_bs1363_current">Tomada: BS 1363: corrente</string>
|
||||
<string name="poi_socket_bs1363_output">Tomada: BS 1363: saída</string>
|
||||
<string name="poi_socket_as3112">Tomada: AS/NZS 3112</string>
|
||||
<string name="poi_socket_as3112_current">Tomada: AS/NZS 3112: corrente</string>
|
||||
<string name="poi_socket_as3112_output">Tomada: AS/NZS 3112: saída</string>
|
||||
<string name="poi_socket_cee_blue">Tomadas: CEE azul</string>
|
||||
<string name="poi_socket_cee_blue_current">Tomadas: CEE azul: amperes</string>
|
||||
<string name="poi_socket_cee_blue_output">Tomadas: CEE azul: watts</string>
|
||||
<string name="poi_socket_cee_red_16a">Tomadas: CEE vermelha 16A</string>
|
||||
<string name="poi_socket_cee_red_16a_current">Tomadas: CEE vermelha 16A: amperes</string>
|
||||
<string name="poi_socket_cee_red_16a_output">Tomadas: CEE vermelha 16A: watts</string>
|
||||
<string name="poi_socket_cee_red_32a">Tomadas: CEE vermelha 32A</string>
|
||||
<string name="poi_socket_cee_red_32a_current">Tomadas: CEE vermelha 32A: amperes</string>
|
||||
<string name="poi_socket_cee_red_32a_output">Tomadas: CEE vermelha 32A: watts</string>
|
||||
<string name="poi_socket_cee_red_64a">Tomadas: CEE vermelha 64A</string>
|
||||
<string name="poi_socket_cee_red_64a_current">Tomadas: CEE vermelha 64A: amperes</string>
|
||||
<string name="poi_socket_cee_red_64a_output">Tomadas: CEE vermelha 64A: watts</string>
|
||||
<string name="poi_socket_cee_red_125a">Tomadas: CEE vermelha 125A</string>
|
||||
<string name="poi_socket_cee_red_125a_current">Tomadas: CEE vermelha 125A: amperes</string>
|
||||
<string name="poi_socket_cee_red_125a_output">Tomadas: CEE vermelha 125A: watts</string>
|
||||
<string name="poi_socket_type1">Tomadas: Tipo 1</string>
|
||||
<string name="poi_socket_type1_current">Tomadas: Tipo 1: amperes</string>
|
||||
<string name="poi_socket_type1_output">Tomadas: Tipo 1: watts</string>
|
||||
<string name="poi_socket_type1_combo">Tomadas: Tipo 1 combo</string>
|
||||
<string name="poi_socket_type1_combo_current">Tomadas: Tipo 1 combo: amperes</string>
|
||||
<string name="poi_socket_type1_combo_output">Tomadas: Tipo 1 combo: watts</string>
|
||||
<string name="poi_socket_type2">Tomadas: Tipo 2</string>
|
||||
<string name="poi_socket_type2_current">Tomadas: Tipo 2: amperes</string>
|
||||
<string name="poi_socket_type2_output">Tomadas: Tipo 2: watts</string>
|
||||
<string name="poi_socket_type2_combo">Tomadas: Tipo 2 combo</string>
|
||||
<string name="poi_socket_type2_combo_current">Tomadas: Tipo 2 combo: amperes</string>
|
||||
<string name="poi_socket_type2_combo_output">Tomadas: Tipo 2 combo: watts</string>
|
||||
<string name="poi_socket_type3">Tomadas: Tipo 3</string>
|
||||
<string name="poi_socket_type3_current">Tomadas: Tipo 3: amperes</string>
|
||||
<string name="poi_socket_type3_output">Tomadas: Tipo 3: watts</string>
|
||||
<string name="poi_socket_chademo">Tomadas: CHAdeMO</string>
|
||||
<string name="poi_socket_chademo_current">Tomadas: CHAdeMO: amperes</string>
|
||||
<string name="poi_socket_chademo_output">Tomadas: CHAdeMO: watts</string>
|
||||
<string name="poi_socket_tesla_standard">Tomadas: Padrão Tesla</string>
|
||||
<string name="poi_socket_tesla_standard_current">Tomadas: Padrão Tesla: amperes</string>
|
||||
<string name="poi_socket_tesla_standard_output">Tomadas: Padrão Tesla: watts</string>
|
||||
<string name="poi_socket_tesla_supercharger">Tomadas: Tesla Supercharger</string>
|
||||
<string name="poi_socket_tesla_supercharger_current">Tomadas: Tesla Supercharger: amperes</string>
|
||||
<string name="poi_socket_tesla_supercharger_output">Tomadas: Tesla Supercharger: watts</string>
|
||||
<string name="poi_socket_tesla_roadster">Tomadas: Tesla Roadster</string>
|
||||
<string name="poi_socket_tesla_roadster_current">Tomadas: Tesla Roadster: amperes</string>
|
||||
<string name="poi_socket_tesla_roadster_output">Tomadas: Tesla Roadster: watts</string>
|
||||
<string name="poi_socket_nema_5_15">Tomadas: NEMA 5-15R</string>
|
||||
<string name="poi_socket_nema_5_15_current">Tomadas: NEMA 5-15R: amperes</string>
|
||||
<string name="poi_socket_nema_5_15_output">Tomadas: NEMA 5-15R: watts</string>
|
||||
<string name="poi_socket_nema_5_20">Tomadas: NEMA 5-20</string>
|
||||
<string name="poi_socket_nema_5_20_current">Tomadas: NEMA 5-20: amperes</string>
|
||||
<string name="poi_socket_nema_5_20_output">Tomadas: NEMA 5-20: watts</string>
|
||||
<string name="poi_socket_nema_14_30">Tomadas: NEMA 14-30</string>
|
||||
<string name="poi_socket_nema_14_30_current">Tomads: NEMA 14-30: amperes</string>
|
||||
<string name="poi_socket_nema_14_30_output">Tomadas: NEMA 14-30: watts</string>
|
||||
<string name="poi_socket_nema_14_50">Tomadas: NEMA 14-50</string>
|
||||
<string name="poi_socket_nema_14_50_current">Tomadas: NEMA 14-50: amperes</string>
|
||||
<string name="poi_socket_nema_14_50_output">Tomadas: NEMA 14-50: watts</string>
|
||||
<string name="poi_socket_schuko">Tomadas: Schuko</string>
|
||||
<string name="poi_socket_schuko_current">Tomadas: Schuko: amperes</string>
|
||||
<string name="poi_socket_schuko_output">Tomadas: Schuko: watts</string>
|
||||
<string name="poi_socket_bs1363">Tomadas: BS 1363</string>
|
||||
<string name="poi_socket_bs1363_current">Tomadas: BS 1363: amperes</string>
|
||||
<string name="poi_socket_bs1363_output">Tomadas: BS 1363: watts</string>
|
||||
<string name="poi_socket_as3112">Tomadas: AS/NZS 3112</string>
|
||||
<string name="poi_socket_as3112_current">Tomadas: AS/NZS 3112: amperes</string>
|
||||
<string name="poi_socket_as3112_output">Tomadas: AS/NZS 3112: watts</string>
|
||||
<string name="poi_car_yes">Carro: sim</string>
|
||||
<string name="poi_car_no">Carro: não</string>
|
||||
<string name="poi_bicycle_yes">Bicicleta: sim</string>
|
||||
|
@ -3539,7 +3539,7 @@
|
|||
<string name="poi_park_ride_train">Comboio</string>
|
||||
<string name="poi_park_ride_bus">Autocarro</string>
|
||||
<string name="poi_park_ride_metro">Metropolitano</string>
|
||||
<string name="poi_park_ride_hov">Via para veículos com alta ocupação</string>
|
||||
<string name="poi_park_ride_hov">Veículos com alta ocupação</string>
|
||||
<string name="poi_park_ride_tram">Elétrico</string>
|
||||
<string name="poi_park_ride_ferry">Balsa/ferry</string>
|
||||
<string name="poi_rtsa_scale_nc">sem categoria</string>
|
||||
|
@ -3650,11 +3650,11 @@
|
|||
<string name="poi_motorhome_no">Acesso a autocaravanas: não</string>
|
||||
<string name="poi_trailer_no">Acesso a reboques: não</string>
|
||||
<string name="poi_psv_yes">Acesso a transportes públicos: sim</string>
|
||||
<string name="poi_psv_designated">Acesso a transportes públicos: designado</string>
|
||||
<string name="poi_psv_designated">Acesso a transportes públicos: assinalado</string>
|
||||
<string name="poi_psv_no">Acesso a transportes públicos: não</string>
|
||||
<string name="poi_bus_no">Acesso a autocarros: não</string>
|
||||
<string name="poi_tourist_bus_yes">Acesso a autocarros turísticos: sim</string>
|
||||
<string name="poi_tourist_bus_designated">Acesso a autocarros turísticos: designado</string>
|
||||
<string name="poi_tourist_bus_designated">Acesso a autocarros turísticos: assinalado</string>
|
||||
<string name="poi_tourist_bus_no">Acesso a autocarros turísticos: não</string>
|
||||
<string name="poi_coach_yes">Acesso a autocarros de longa distância: sim</string>
|
||||
<string name="poi_coach_no">Acesso a autocarros de longa distância: não</string>
|
||||
|
@ -3665,37 +3665,37 @@
|
|||
<string name="poi_agricultural_yes">Acesso a veículos agrícolas: sim</string>
|
||||
<string name="poi_agricultural_no">Acesso a veículos agrícolas: não</string>
|
||||
<string name="poi_taxi_yes">Acesso a táxis: sim</string>
|
||||
<string name="poi_taxi_designated">Acesso a táxis: designado</string>
|
||||
<string name="poi_taxi_designated">Acesso a táxis: assinalado</string>
|
||||
<string name="poi_taxi_no">Acesso a táxis: não</string>
|
||||
<string name="poi_disabled_no">Acesso a deficientes: não</string>
|
||||
<string name="poi_snowmobile_yes">Sim</string>
|
||||
<string name="poi_snowmobile_designated">Designado</string>
|
||||
<string name="poi_snowmobile_designated">Assinalado</string>
|
||||
<string name="poi_snowmobile_permissive">Tolerado</string>
|
||||
<string name="poi_bus_yes">Sim</string>
|
||||
<string name="poi_bus_designated">Designado</string>
|
||||
<string name="poi_bus_designated">Assinalado</string>
|
||||
<string name="poi_caravan_yes">Sim</string>
|
||||
<string name="poi_caravan_designated">Designado</string>
|
||||
<string name="poi_caravan_designated">Assinalado</string>
|
||||
<string name="poi_motorhome_yes">Sim</string>
|
||||
<string name="poi_motorhome_designated">Designado</string>
|
||||
<string name="poi_motorhome_designated">Assinalado</string>
|
||||
<string name="poi_trailer_yes">Sim</string>
|
||||
<string name="poi_trailer_designated">Designado</string>
|
||||
<string name="poi_trailer_designated">Assinalado</string>
|
||||
<string name="poi_motorcycle_yes">Sim</string>
|
||||
<string name="poi_motorcycle_permissive">Tolerado</string>
|
||||
<string name="poi_motorcycle_destination">Destino</string>
|
||||
<string name="poi_motorcycle_designated">Designado</string>
|
||||
<string name="poi_motorcycle_designated">Assinalado</string>
|
||||
<string name="poi_moped_yes">Sim</string>
|
||||
<string name="poi_moped_designated">Designado</string>
|
||||
<string name="poi_moped_designated">Assinalado</string>
|
||||
<string name="poi_mofa_yes">Sim</string>
|
||||
<string name="poi_mofa_designated">Designado</string>
|
||||
<string name="poi_mofa_designated">Assinalado</string>
|
||||
<string name="poi_hgv_yes">Sim</string>
|
||||
<string name="poi_hgv_destination">Destino</string>
|
||||
<string name="poi_hgv_permissive">Tolerado</string>
|
||||
<string name="poi_hgv_designated">Designado</string>
|
||||
<string name="poi_hgv_designated">Assinalado</string>
|
||||
<string name="poi_hgv_delivery">Entregas</string>
|
||||
<string name="poi_goods_yes">Sim</string>
|
||||
<string name="poi_goods_designated">Designado</string>
|
||||
<string name="poi_goods_designated">Assinalado</string>
|
||||
<string name="poi_disabled_yes">Sim</string>
|
||||
<string name="poi_disabled_designated">Designado</string>
|
||||
<string name="poi_disabled_designated">Assinalado</string>
|
||||
<string name="poi_cellar_entrance">Entrada da adega</string>
|
||||
<string name="poi_health_food">Alimentação saudável</string>
|
||||
<string name="poi_craft_builder">Construtor</string>
|
||||
|
@ -3779,7 +3779,7 @@
|
|||
<string name="poi_tactile_paving_incorrect">Incorreto</string>
|
||||
<string name="poi_tactile_paving_primitive">Primitivo</string>
|
||||
<string name="poi_tactile_paving_contrasted">Contrastado</string>
|
||||
<string name="poi_traffic_signals_sound_locate">Apenas quando é permitido caminhar</string>
|
||||
<string name="poi_traffic_signals_sound_locate">Apenas quando é permitido atravessar</string>
|
||||
<string name="poi_internet_access_fee_customers">Acesso à Internet: só clientes</string>
|
||||
<string name="poi_video_no">Não</string>
|
||||
<string name="poi_video_yes">Sim</string>
|
||||
|
@ -3813,8 +3813,8 @@
|
|||
<string name="poi_give_box">Caixa livre;Caixa de donativos;Give-box</string>
|
||||
<string name="poi_traffic_signals_arrow_no">Seta: não</string>
|
||||
<string name="poi_elevator">Elevador</string>
|
||||
<string name="poi_departures_board_timetable">Calendário</string>
|
||||
<string name="poi_departures_board_realtime">Tempo real</string>
|
||||
<string name="poi_departures_board_timetable">Horário</string>
|
||||
<string name="poi_departures_board_realtime">Atualizado em tempo real</string>
|
||||
<string name="poi_departures_board_delay">Atraso</string>
|
||||
<string name="poi_departures_board_yes">Sim</string>
|
||||
<string name="poi_departures_board_no">Quadro de partidas: não</string>
|
||||
|
@ -3922,7 +3922,7 @@
|
|||
<string name="poi_piste_name">Nome da pista</string>
|
||||
<string name="poi_piste_ski_jump">Salto com esqui</string>
|
||||
<string name="poi_wildlife_crossing">Passagem de vida selvagem</string>
|
||||
<string name="poi_lavoir">Lavadoiro público</string>
|
||||
<string name="poi_lavoir">Lavadouro público</string>
|
||||
<string name="poi_water_source_well">Poço</string>
|
||||
<string name="poi_office_diplomatic">Gabinete diplomático</string>
|
||||
<string name="poi_bay_filter">Tipo de baía</string>
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
<string name="amenity_type_sport">Desporto</string>
|
||||
<string name="amenity_type_sustenance">Alimentação</string>
|
||||
<string name="amenity_type_tourism">Turismo</string>
|
||||
<string name="amenity_type_transportation">Transporte</string>
|
||||
<string name="indexing_address">Indexando endereço…</string>
|
||||
<string name="indexing_map">Indexando mapa…</string>
|
||||
<string name="indexing_poi">Indexando POI…</string>
|
||||
<string name="indexing_transport">Indexando transporte…</string>
|
||||
<string name="amenity_type_transportation">Transportes públicos</string>
|
||||
<string name="indexing_address">A indexar endereços…</string>
|
||||
<string name="indexing_map">A indexar o mapa…</string>
|
||||
<string name="indexing_poi">A indexar POI…</string>
|
||||
<string name="indexing_transport">A indexar transportes…</string>
|
||||
<string name="shared_string_io_error">Erro de entrada/saída</string>
|
||||
<string name="km">km</string>
|
||||
<string name="km_h">km/h</string>
|
||||
|
@ -96,7 +96,7 @@
|
|||
<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">Alterar POI</string>
|
||||
<string name="poi_context_menu_modify">Alterar POI OSM</string>
|
||||
<string name="poi_context_menu_delete">Eliminar POI</string>
|
||||
<string name="rotate_map_compass_opt">Direção da bússola</string>
|
||||
<string name="rotate_map_bearing_opt">Direção do movimento</string>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<string name="shared_string_favorites">Favoritos</string>
|
||||
<string name="layer_osm_bugs">Notas OSM (online)</string>
|
||||
<string name="layer_poi">Camada superior de POI…</string>
|
||||
<string name="layer_map">Origem dos mapas…</string>
|
||||
<string name="layer_map">Repositório de mapas…</string>
|
||||
<string name="menu_layers">Camada de mapa</string>
|
||||
<string name="context_menu_item_search_poi">Busca por POI</string>
|
||||
<string name="use_trackball_descr">Utilizar um dispositivo trackball para mover o mapa.</string>
|
||||
|
@ -160,10 +160,10 @@
|
|||
<string name="unzipping_file">A descomprimir o ficheiro…</string>
|
||||
<string name="route_tr">Vire à direita e continue em</string>
|
||||
<string name="route_tshr">Vire fortemente à direita e continue em</string>
|
||||
<string name="route_tslr">Vire levemente à direita e continue em</string>
|
||||
<string name="route_tslr">Vire ligeiramente à direita e continue em</string>
|
||||
<string name="route_tl">Vire à esquerda e continue em</string>
|
||||
<string name="route_tshl">Vire fortemente à esquerda e continue em</string>
|
||||
<string name="route_tsll">Vire levemente à esquerda e continue em</string>
|
||||
<string name="route_tsll">Vire ligeiramente à esquerda e continue em</string>
|
||||
<string name="route_tu">Inverta o sentido da marcha e continue em</string>
|
||||
<string name="route_head">Comece em</string>
|
||||
<string name="first_time_continue">Continuar</string>
|
||||
|
@ -264,7 +264,7 @@
|
|||
<string name="loading_data">A carregar dados…</string>
|
||||
<string name="reading_indexes">A ler dados locais…</string>
|
||||
<string name="previous_run_crashed">O OsmAnd foi interrompido inesperadamente. O ficheiro de registo encontra-se em {0}. Por favor, relate o problema e inclua o ficheiro de registo.</string>
|
||||
<string name="saving_gpx_tracks">A gravar o ficheiro GPX…</string>
|
||||
<string name="saving_gpx_tracks">A guardar o ficheiro GPX…</string>
|
||||
<string name="finished_task">Concluído</string>
|
||||
<string name="use_online_routing_descr">Utilizar a Internet para calcular uma rota.</string>
|
||||
<string name="use_online_routing">Utilizar navegação online</string>
|
||||
|
@ -341,7 +341,7 @@
|
|||
<string name="search_address_building_option">Edifício</string>
|
||||
<string name="search_address_street_option">Rua transversal</string>
|
||||
<string name="context_menu_item_update_map">Atualizar mapa</string>
|
||||
<string name="context_menu_item_create_poi">Criar POI OSM</string>
|
||||
<string name="context_menu_item_create_poi">Criar POI</string>
|
||||
<string name="shared_string_yes">Sim</string>
|
||||
<string name="shared_string_cancel">Cancelar</string>
|
||||
<string name="shared_string_apply">Aplicar</string>
|
||||
|
@ -646,7 +646,7 @@
|
|||
<string name="search_osm_offline">Pesquisa por localização geográfica</string>
|
||||
<string name="system_locale">Sistema</string>
|
||||
<string name="preferred_locale_descr">Idioma de visualização da aplicação (após reinicialização do OsmAnd).</string>
|
||||
<string name="preferred_locale">Linguagem</string>
|
||||
<string name="preferred_locale">Idioma</string>
|
||||
<string name="shared_string_next">Seguinte</string>
|
||||
<string name="shared_string_previous">Anterior</string>
|
||||
<string name="unit_of_length_descr">Alterar a unidade de medida de distância.</string>
|
||||
|
@ -689,9 +689,9 @@
|
|||
<string name="rendering_attr_contourLines_name">Mostrar curvas de nível</string>
|
||||
<string name="rendering_attr_hmRendered_description">Aumentar o nível de detalhe do mapa.</string>
|
||||
<string name="rendering_attr_hmRendered_name">Ver mais detalhes no mapa</string>
|
||||
<string name="route_roundabout">Rotunda: saia na saída %1$d para</string>
|
||||
<string name="route_kl">Mantenha-se à esquerda e continue</string>
|
||||
<string name="route_kr">Mantenha-se à direita e continue</string>
|
||||
<string name="route_roundabout">Rotunda: saia na %1$dª saída para</string>
|
||||
<string name="route_kl">Mantenha-se à esquerda e continue em</string>
|
||||
<string name="route_kr">Mantenha-se à direita e continue em</string>
|
||||
<string name="asap">Assim que possível</string>
|
||||
<string name="gpxup_public">Público</string>
|
||||
<string name="gpxup_identifiable">Identificável</string>
|
||||
|
@ -706,7 +706,7 @@
|
|||
<string name="osmand_parking_choose_type">Selecione o tipo de estacionamento</string>
|
||||
<string name="osmand_parking_lim_text">Tempo limitado</string>
|
||||
<string name="osmand_parking_no_lim_text">Sem limite de tempo</string>
|
||||
<string name="osmand_parking_add_event">Adicionar uma notificação à aplicação Calendário</string>
|
||||
<string name="osmand_parking_add_event">Adicionar notificação ao Calendário</string>
|
||||
<string name="osmand_parking_time_limit">Estacionamento com limite de tempo</string>
|
||||
<string name="osmand_parking_time_no_limit">Estacionamento sem limite de tempo</string>
|
||||
<string name="osmand_parking_position_description">A localização do seu veículo estacionado. %1$s</string>
|
||||
|
@ -717,7 +717,7 @@
|
|||
<string name="osmand_parking_plugin_description">Permite gravar onde o seu carro foi estacionado e quanto tempo de estacionamento resta (se houver um limite de tempo).
|
||||
\nA localização e o tempo ficam visíveis no painel de controlo do OsmAnd e num widget no ecrã do mapa. Um alarme pode ser adicionado ao calendário Android como lembrete.</string>
|
||||
<string name="osmand_parking_plugin_name">Local de estacionamento</string>
|
||||
<string name="context_menu_item_add_parking_point">Marcar como local de estacionamento</string>
|
||||
<string name="context_menu_item_add_parking_point">Marcar local de estacionamento</string>
|
||||
<string name="context_menu_item_delete_parking_point">Eliminar um marcador de estacionamento</string>
|
||||
<string name="starting_point_too_far">Ponto de partida demasiado distante da estrada mais próxima.</string>
|
||||
<string name="shared_location">Local partilhado</string>
|
||||
|
@ -866,7 +866,7 @@
|
|||
<string name="recording_delete_confirm">Eliminar este item\?</string>
|
||||
<string name="recording_context_menu_arecord">Gravar nota de áudio</string>
|
||||
<string name="recording_context_menu_vrecord">Gravar nota de vídeo</string>
|
||||
<string name="layer_recordings">Camada de gravação</string>
|
||||
<string name="layer_recordings">Camada trilhos gravados</string>
|
||||
<string name="recording_can_not_be_played">Não foi possível reproduzir a gravação.</string>
|
||||
<string name="recording_context_menu_delete">Eliminar a gravação</string>
|
||||
<string name="recording_context_menu_play">Reproduzir</string>
|
||||
|
@ -985,7 +985,7 @@
|
|||
<string name="route_descr_lat_lon">Lat. %1$.3f, Lon. %2$.3f</string>
|
||||
<string name="route_to">Para:</string>
|
||||
<string name="route_via">Via:</string>
|
||||
<string name="route_from">Desde:</string>
|
||||
<string name="route_from">De:</string>
|
||||
<string name="destination_point">Destino %1$s</string>
|
||||
<string name="context_menu_item_destination_point">Definir como destino</string>
|
||||
<string name="please_select_address">Selecione primeiro a cidade ou rua</string>
|
||||
|
@ -1226,7 +1226,7 @@
|
|||
\n
|
||||
\nToque longo para ver no mapa"</string>
|
||||
<string name="delay_navigation_start">Iniciar a orientação passo a passo automaticamente</string>
|
||||
<string name="shared_string_selected_lowercase">selecionado</string>
|
||||
<string name="shared_string_selected_lowercase">selecionado(s)</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_distance">Distância: %1$s (%2$s pontos ) </string>
|
||||
|
@ -1287,9 +1287,9 @@
|
|||
<string name="dash_download_new_one">Descarregar novo mapa</string>
|
||||
<string name="map_locale">Idioma do mapa</string>
|
||||
<string name="navigate_point_zone">Zona</string>
|
||||
<string name="download_tab_downloads">Todos os descarregamentos</string>
|
||||
<string name="download_tab_downloads">Disponíveis</string>
|
||||
<string name="download_tab_updates">Atualizações</string>
|
||||
<string name="download_tab_local">Local</string>
|
||||
<string name="download_tab_local">Descarregados</string>
|
||||
<string name="no_internet_connection">Não é possível descarregar. Verifique se tem ligação à Internet.</string>
|
||||
<string name="everything_up_to_date">Todos os ficheiros foram atualizados</string>
|
||||
<string name="use_opengl_render">Usar o renderizador OpenGL</string>
|
||||
|
@ -1324,7 +1324,7 @@
|
|||
<string name="shared_string_copy">Copiar</string>
|
||||
<string name="filter_poi_hint">Filtrar por nome</string>
|
||||
<string name="search_poi_category_hint">Digite para pesquisar tudo</string>
|
||||
<string name="shared_string_is_open">Abrir</string>
|
||||
<string name="shared_string_is_open">Aberto agora</string>
|
||||
<string name="rendering_attr_OSMMapperAssistant_name">Assistente de mapeador OSM</string>
|
||||
<string name="agps_info">Informação A-GPS</string>
|
||||
<string name="shared_string_manage">Gerir</string>
|
||||
|
@ -1348,7 +1348,7 @@
|
|||
<string name="version_settings_descr">Descarregar compilações noturnas.</string>
|
||||
<string name="proxy_pref_descr">Especifique um servidor proxy.</string>
|
||||
<string name="dash_download_manage">Gerir</string>
|
||||
<string name="rendering_category_transport">Transporte</string>
|
||||
<string name="rendering_category_transport">Transportes públicos</string>
|
||||
<string name="rendering_attr_tramTrainRoutes_name">Rotas de elétricos e comboios</string>
|
||||
<string name="rendering_attr_streetLighting_name">Iluminação pública</string>
|
||||
<string name="rendering_value__name">Predefinido</string>
|
||||
|
@ -1385,7 +1385,7 @@
|
|||
<string name="shared_string_disable">Desativar</string>
|
||||
<string name="shared_string_enabled">Ativado</string>
|
||||
<string name="shared_string_disabled">Desativado</string>
|
||||
<string name="shared_string_selected">Selecionado</string>
|
||||
<string name="shared_string_selected">Selecionado(s)</string>
|
||||
<string name="shared_string_deselect">Desmarcar</string>
|
||||
<string name="shared_string_deselect_all">Desmarcar tudo</string>
|
||||
<string name="shared_string_export">Exportar</string>
|
||||
|
@ -1493,7 +1493,7 @@
|
|||
<string name="av_audio_bitrate">Taxa de bits do áudio</string>
|
||||
<string name="av_audio_bitrate_descr">Escolha a taxa de bits do áudio.</string>
|
||||
<string name="osm_edit_deleted_poi">POI do OSM eliminado</string>
|
||||
<string name="context_menu_item_open_note">Abrir nota OSM</string>
|
||||
<string name="context_menu_item_open_note">Criar nota OSM</string>
|
||||
<string name="osm_edit_reopened_note">Reabrir nota OSM</string>
|
||||
<string name="osm_edit_commented_note">Nota do OSM comentada</string>
|
||||
<string name="osm_edit_created_note">Nota do OSM adicionada</string>
|
||||
|
@ -1523,7 +1523,7 @@
|
|||
<string name="go_to_map">Mostrar mapa</string>
|
||||
<string name="simulate_initial_startup_descr">Define o sinalizador que indica a primeira inicialização da aplicação, mantém todas as outras configurações inalteradas.</string>
|
||||
<string name="simulate_initial_startup">Simular arranque inicial da aplicação</string>
|
||||
<string name="share_geo">geo:</string>
|
||||
<string name="share_geo">Outras aplicações de mapas</string>
|
||||
<string name="share_menu_location">Partilhar localização</string>
|
||||
<string name="shared_string_send">Enviar</string>
|
||||
<string name="osmand_running_in_background">Executar em segundo plano</string>
|
||||
|
@ -1626,7 +1626,7 @@
|
|||
\n- Sincronizar grupos e dispositivos com o servidor;
|
||||
\n- Gerir grupos e dispositivos num painel de controlo pessoal no site web.</string>
|
||||
<string name="anonymous_user">Utilizador anónimo</string>
|
||||
<string name="logged_as">Conectado como %1$s</string>
|
||||
<string name="logged_as">Sessão iniciada como %1$s</string>
|
||||
<string name="shared_string_not_selected">Não selecionado</string>
|
||||
<string name="select_month_and_country">Mês e país:</string>
|
||||
<string name="updates_size">Tamanho das atualizações</string>
|
||||
|
@ -1675,7 +1675,7 @@
|
|||
<string name="number_of_recipients">Número de destinatários</string>
|
||||
<string name="osm_user_stat">Edições %1$s, posição %2$s, total de edições %3$s</string>
|
||||
<string name="osm_editors_ranking">Classificação de editores do OSM</string>
|
||||
<string name="osm_live_subscription">Assinatura do OsmAnd Live</string>
|
||||
<string name="osm_live_subscription">Subscrição do OsmAnd Live</string>
|
||||
<string name="osm_live_subscribe_btn">Subscrever</string>
|
||||
<string name="osm_live_email_desc">Necessário para o informar sobre as suas contribuições.</string>
|
||||
<string name="osm_live_user_public_name">Nome público</string>
|
||||
|
@ -1706,7 +1706,7 @@
|
|||
<string name="enter_country_name">Inserir nome do país</string>
|
||||
<string name="new_version">Nova versão</string>
|
||||
<string name="begin_with_osmand_menu_group">Primeiros passos com o OsmAnd</string>
|
||||
<string name="application_dir_description">Escolha onde pretende guardar os ficheiros de mapas e de outros dados.</string>
|
||||
<string name="application_dir_description">Escolha onde pretende guardar os ficheiros de mapas e outros dados.</string>
|
||||
<string name="other_menu_group">Outros</string>
|
||||
<string name="use_osm_live_routing_description">Ativar a navegação para mudanças do OsmAnd Live.</string>
|
||||
<string name="use_osm_live_routing">Navegação OsmAnd Live</string>
|
||||
|
@ -1725,10 +1725,10 @@
|
|||
<string name="osm_live_thanks">Obrigado por apoiar o OsmAnd!
|
||||
\nPara ativar todos os novos recursos tem que reiniciar o OsmAnd.</string>
|
||||
<string name="osm_live_region_desc">Parte da sua doação será enviada aos utilizadores OSM que submetem alterações ao mapa nessa região.</string>
|
||||
<string name="osm_live_subscription_settings">Configurações da assinatura</string>
|
||||
<string name="osm_live_ask_for_purchase">Por favor primeiro compre a assinatura do OsmAnd Live</string>
|
||||
<string name="osm_live_header">Esta assinatura permite atualizações hora a hora de todos os mapas à volta do mundo.
|
||||
\nParte da renda regressa à comunidade do OpenStreetMap e paga-se para cada contribuição no OpenStreetMap.
|
||||
<string name="osm_live_subscription_settings">Configurações da subscrição</string>
|
||||
<string name="osm_live_ask_for_purchase">Por favor primeiro compre a subscrição do OsmAnd Live</string>
|
||||
<string name="osm_live_header">Esta subscrição permite atualizações hora a hora de todos os mapas à volta do mundo.
|
||||
\nParte da renda regressa à comunidade do OpenStreetMap e é paga para cada contribuição no OpenStreetMap.
|
||||
\nSe gosta do OsmAnd e do OpenStreetMap e quer apoiar e ser apoiado por eles, esta é a maneira perfeita para o fazer.</string>
|
||||
<string name="select_map_marker">Selecione o marcador do mapa</string>
|
||||
<string name="map_markers_other">Outros marcadores</string>
|
||||
|
@ -1751,7 +1751,7 @@
|
|||
<string name="clear_active_markers_q">Remover todos os marcadores ativos\?</string>
|
||||
<string name="clear_markers_history_q">Limpar o histórico dos marcadores de mapa\?</string>
|
||||
<string name="active_markers">Marcadores ativos</string>
|
||||
<string name="map_markers">Marcadores de mapa</string>
|
||||
<string name="map_markers">Marcadores</string>
|
||||
<string name="map_marker">Marcador de mapa</string>
|
||||
<string name="consider_turning_polygons_off">É recomendável desativar a renderização de polígono.</string>
|
||||
<string name="rendering_attr_showMtbRoutes_name">Mostrar trilhos de bicicletas de montanha</string>
|
||||
|
@ -1764,7 +1764,7 @@
|
|||
<string name="shared_string_remove">Remover</string>
|
||||
<string name="shared_string_read_more">Ler mais</string>
|
||||
<string name="clear_updates_proposition_message">Remover atualizações descarregadas e voltar à edição do mapa original</string>
|
||||
<string name="add_time_span">Adicionar intervalo de tempo</string>
|
||||
<string name="add_time_span">Adicionar intervalo de tempo adicional</string>
|
||||
<string name="road_blocked">Estrada bloqueada</string>
|
||||
<string name="shared_string_select">Selecionar</string>
|
||||
<string name="switch_start_finish">Inverter ponto de partida e destino</string>
|
||||
|
@ -1802,9 +1802,9 @@
|
|||
<!-- string name="lat_lon_pattern">Lat: %1$.5f Lon: %2$.5f</string -->
|
||||
<string name="follow_us">Siga-nos</string>
|
||||
<string name="skip_map_downloading">Ignorar o descarregamento de mapas</string>
|
||||
<string name="first_usage_greeting">Obter direções e descobrir novos lugares sem ligação à Internet</string>
|
||||
<string name="first_usage_greeting">Obtenha direções e descubra novos lugares sem ser necessário estar ligado à Internet</string>
|
||||
<string name="shared_string_skip">Ignorar</string>
|
||||
<string name="search_another_country">Selecione outra região</string>
|
||||
<string name="search_another_country">Selecionar outra região</string>
|
||||
<string name="shared_string_change">Alterar</string>
|
||||
<string name="storage_directory_card">Cartão de memória</string>
|
||||
<string name="skip_map_downloading_desc">Não tem nenhum mapa off-line instalado. Pode escolher um mapa na lista ou descarregar mapas mais tarde através do \'menu - %1$s\'.</string>
|
||||
|
@ -1884,7 +1884,7 @@
|
|||
<string name="mapillary_menu_title_tile_cache">Ficheiros temporários dos mosaicos</string>
|
||||
<string name="wrong_user_name">Nome de utilizador errado</string>
|
||||
<string name="shared_string_to">Para</string>
|
||||
<string name="mapillary_menu_date_from">A partir de</string>
|
||||
<string name="mapillary_menu_date_from">De</string>
|
||||
<string name="mapillary_menu_descr_dates">Ver apenas imagens adicionadas</string>
|
||||
<string name="mapillary_menu_title_dates">Data</string>
|
||||
<string name="mapillary_menu_edit_text_hint">Introduza nome de utilizador</string>
|
||||
|
@ -1903,7 +1903,7 @@
|
|||
<string name="online_photos">Fotos on-line</string>
|
||||
<string name="shared_string_add_photos">Adicionar fotos</string>
|
||||
<string name="no_photos_descr">Não há fotos aqui.</string>
|
||||
<string name="mapillary_action_descr">Partilhe a sua vista ao nível da rua através do Mapillary.</string>
|
||||
<string name="mapillary_action_descr">Partilhe as suas imagens ao nível do solo no Mapillary.</string>
|
||||
<string name="mapillary_widget">Widget Mapillary</string>
|
||||
<string name="mapillary_widget_descr">Permite contribuir rapidamente para o Mapillary.</string>
|
||||
<string name="mapillary_descr">Fotos on-line ao nível da rua para todos. Descubra locais, colabore, capture o mundo.</string>
|
||||
|
@ -1925,7 +1925,7 @@
|
|||
<string name="srtm_purchase_header">Compre e instale a extensão \'Curvas de nível\' para mostrar as áreas verticais graduadas.</string>
|
||||
<string name="srtm_color_scheme">Esquema de cores</string>
|
||||
<string name="show_from_zoom_level">Mostrar a partir do nível de ampliação</string>
|
||||
<string name="routing_attr_allow_private_name">Permitir acesso privado</string>
|
||||
<string name="routing_attr_allow_private_name">Ativar acesso a vias privadas</string>
|
||||
<string name="routing_attr_allow_private_description">Permitir acesso a áreas privadas.</string>
|
||||
<string name="display_zoom_level">Mostrar nível de zoom: %1$s</string>
|
||||
<string name="favorite_group_name">Nome do grupo</string>
|
||||
|
@ -2031,7 +2031,7 @@
|
|||
<string name="routing_attr_allow_motorway_description">Permitir autoestradas.</string>
|
||||
<string name="wiki_around">Artigos da Wikipédia próximos</string>
|
||||
<string name="search_map_hint">Cidade ou região</string>
|
||||
<string name="route_roundabout_short">Use a saída %1$d e continue</string>
|
||||
<string name="route_roundabout_short">Saia na %1$d saída para</string>
|
||||
<string name="upload_poi">Enviar pontos de interesse (POI)</string>
|
||||
<string name="route_calculation">Cálculo da rota</string>
|
||||
<string name="gpx_no_tracks_title">Ainda não tem nenhuns ficheiros de trilhos</string>
|
||||
|
@ -2076,10 +2076,10 @@
|
|||
<string name="delete_filter">Eliminar filtro</string>
|
||||
<string name="new_filter">Novo filtro</string>
|
||||
<string name="new_filter_desc">Por favor introduza o nome do novo filtro, este vai ser adicionado ao separador \'Categorias\'.</string>
|
||||
<string name="osm_live_payment_desc">A assinatura é cobrada no período selecionado. Cancele a assinatura no Google Play a qualquer altura.</string>
|
||||
<string name="osm_live_payment_desc">A subscrição é debitada no período selecionado. Cancele a subscrição no Google Play a qualquer altura.</string>
|
||||
<string name="donation_to_osm">Doação para a comunidade OpenStreetMap</string>
|
||||
<string name="donation_to_osm_desc">Parte da sua doação é enviada aos colaboradores do OSM. O custo da assinatura permanece o mesmo.</string>
|
||||
<string name="osm_live_subscription_desc">A subscrição permite atualizações a cada hora, diárias, semanais e descarregamentos ilimitados de todos os mapas globalmente.</string>
|
||||
<string name="donation_to_osm_desc">Parte do seu donativo é enviado aos colaboradores do OpenStreetMap. O custo da subscrição permanece o mesmo.</string>
|
||||
<string name="osm_live_subscription_desc">A subscrição permite atualizações a cada hora, dia ou semana e descarregamentos ilimitados de todos os mapas globalmente.</string>
|
||||
<string name="get_it">Obter</string>
|
||||
<string name="get_for">Comprar por %1$s</string>
|
||||
<string name="osm_live_banner_desc">Obter descarregamentos ilimitados de mapas, adicionando atualizações semanais, diárias e a cada hora.</string>
|
||||
|
@ -2102,7 +2102,7 @@
|
|||
<string name="replace_favorite_confirmation">Tem a certeza que quer substituir o favorito %1$s\?</string>
|
||||
<string name="rendering_attr_hideOverground_name">Objetos à superfície</string>
|
||||
<string name="get_started">Começar</string>
|
||||
<string name="route_stops_before">%1$s paragens antes</string>
|
||||
<string name="route_stops_before">%1$s paragens anteriores</string>
|
||||
<string name="coords_search">Pesquisa de coordenadas</string>
|
||||
<string name="advanced_coords_search">Pesquisa avançada de coordenadas</string>
|
||||
<string name="back_to_search">Retroceder para pesquisa</string>
|
||||
|
@ -2126,7 +2126,7 @@
|
|||
<string name="quick_action_edit_actions">Editar ações</string>
|
||||
<string name="get_osmand_live">Adquira o OsmAnd Live para desbloquear todas as funcionalidades: atualizações diárias de mapas com descarregamentos ilimitados, todas as extensões pagas e gratuitas, Wikipédia, Wikivoyage e muito mais.</string>
|
||||
<string name="unirs_render_descr">Alteração do estilo padrão para aumentar o contraste de caminhos pedestres e ciclovias. Usa cores clássicas do Mapnik.</string>
|
||||
<string name="shared_string_bookmark">Marcador</string>
|
||||
<string name="shared_string_bookmark">Favorito</string>
|
||||
<string name="hide_full_description">Esconder descrição completa</string>
|
||||
<string name="show_full_description">Mostrar a descrição completa</string>
|
||||
<string name="thank_you_for_feedback">Obrigado pelos seus comentários</string>
|
||||
|
@ -2139,7 +2139,7 @@
|
|||
<string name="markers_remove_dialog_msg">Eliminar o marcador de mapa \'%s\'\?</string>
|
||||
<string name="edit_map_marker">Editar marcador de mapa</string>
|
||||
<string name="third_party_application">Aplicação de terceiros</string>
|
||||
<string name="start_search_from_city">Primeiro especificar cidade/sítio/localidade</string>
|
||||
<string name="start_search_from_city">Pesquisa progressiva cidade>vila>aldeia</string>
|
||||
<string name="osm_live_plan_pricing">Planos e preços</string>
|
||||
<string name="osm_live_payment_monthly_title">Mensalmente</string>
|
||||
<string name="osm_live_payment_3_months_title">A cada três meses</string>
|
||||
|
@ -2147,7 +2147,7 @@
|
|||
<string name="osm_live_payment_month_cost_descr">%1$s / mês</string>
|
||||
<string name="osm_live_payment_month_cost_descr_ex">%1$.2f %2$s / mês</string>
|
||||
<string name="osm_live_payment_discount_descr">Poupe %1$s</string>
|
||||
<string name="osm_live_payment_current_subscription">Assinatura atual</string>
|
||||
<string name="osm_live_payment_current_subscription">Subscrição atual</string>
|
||||
<string name="osm_live_payment_renews_monthly">Renova mensalmente</string>
|
||||
<string name="osm_live_payment_renews_quarterly">Renova trimestralmente</string>
|
||||
<string name="osm_live_payment_renews_annually">Renova anualmente</string>
|
||||
|
@ -2164,15 +2164,15 @@
|
|||
<string name="default_render_descr">Estilo de propósito geral. Renderização simplificada e limpa em cidades densamente povoadas. Características principais: curvas de nível, rotas, qualidade de superfície, restrições de acesso, escudos rodoviários, caminhos de renderização de acordo com a escala SAC, características desportivas Whitewater.</string>
|
||||
<string name="open_wikipedia_link_online">Abrir página da Wikipédia na Internet</string>
|
||||
<string name="open_wikipedia_link_online_description">A hiperligação será aberta no navegador de Internet.</string>
|
||||
<string name="read_wikipedia_offline_description">Obtenha uma assinatura do OsmAnd Live para ler artigos da Wikipédia e da Wikivoyage desligado da Internet.</string>
|
||||
<string name="read_wikipedia_offline_description">Obtenha uma subscrição do OsmAnd Live para ler artigos da Wikipédia e da Wikivoyage desligado da Internet.</string>
|
||||
<string name="how_to_open_link">Como abrir a hiperligação\?</string>
|
||||
<string name="read_wikipedia_offline">Ler a Wikipédia desligado da Internet</string>
|
||||
<string name="download_all">Descarregar tudo</string>
|
||||
<string name="shared_string_restart">Reiniciar a aplicação</string>
|
||||
<string name="show_images">Mostrar imagens</string>
|
||||
<string name="purchase_cancelled_dialog_title">Cancelou a sua assinatura do OsmAnd Live</string>
|
||||
<string name="purchase_cancelled_dialog_descr">Renovar assinatura para continuar a utilizar todas as funcionalidades:</string>
|
||||
<string name="maps_you_need_descr">Com base nos artigos que marcou, sugerimos que descarregue os seguintes mapas:</string>
|
||||
<string name="purchase_cancelled_dialog_title">Cancelou a sua subscrição do OsmAnd Live</string>
|
||||
<string name="purchase_cancelled_dialog_descr">Renovar a subscrição para continuar a utilizar todas as funcionalidades:</string>
|
||||
<string name="maps_you_need_descr">Com base nos artigos que marcou como favoritos, sugerimos que descarregue os seguintes mapas:</string>
|
||||
<string name="maps_you_need">Mapas que precisa</string>
|
||||
<string name="osmand_team">Equipa do OsmAnd</string>
|
||||
<string name="popular_destinations">Destinos populares</string>
|
||||
|
@ -2187,7 +2187,7 @@
|
|||
<string name="start_editing_card_description">Pode e deve editar qualquer artigo no Wikivoyage. Partilhe saber, experiência, talento e a sua atenção.</string>
|
||||
<string name="start_editing">Começar a editar</string>
|
||||
<string name="get_unlimited_access">Obter acesso ilimitado</string>
|
||||
<string name="welcome_to_open_beta">Bem-vindo ao beta aberto</string>
|
||||
<string name="welcome_to_open_beta">Bem-vindo à versão beta aberta</string>
|
||||
<string name="wikivoyage_travel_guide">Guias de viagem</string>
|
||||
<string name="wikivoyage_travel_guide_descr">Guias para os lugares mais interessantes do mundo dentro do OsmAnd, sem uma conexão com a Internet.</string>
|
||||
<string name="monthly_map_updates">Atualizações de mapas mensais</string>
|
||||
|
@ -2209,7 +2209,7 @@
|
|||
<string name="shared_string_only_with_wifi">Apenas em Wi-Fi</string>
|
||||
<string name="wikivoyage_download_pics">Descarregar imagens</string>
|
||||
<string name="wikivoyage_download_pics_descr">As imagens do artigo podem ser descarregadas para uso offline.
|
||||
\nSempre disponível em \'Explorar\' → \' Opções \'.</string>
|
||||
\nConfigure em \'Explorar\' → \' Opções \'.</string>
|
||||
<string name="shared_string_wifi_only">Apenas em Wi-Fi</string>
|
||||
<string name="select_travel_book">Selecione um livro de viagem</string>
|
||||
<string name="shared_string_travel_book">Livro de viagens</string>
|
||||
|
@ -2222,7 +2222,7 @@
|
|||
<string name="article_removed">Artigo removido</string>
|
||||
<string name="wikivoyage_search_hint">Pesquisar por país, cidade ou província</string>
|
||||
<string name="shared_string_read">Ler</string>
|
||||
<string name="saved_articles">Artigos marcados</string>
|
||||
<string name="saved_articles">Artigos favoritos</string>
|
||||
<string name="shared_string_explore">Explorar</string>
|
||||
<string name="shared_string_contents">Conteúdo</string>
|
||||
<string name="shared_string_result">Resultado</string>
|
||||
|
@ -2250,7 +2250,7 @@
|
|||
<string name="south_abbreviation">S</string>
|
||||
<string name="north_abbreviation">N</string>
|
||||
<string name="optional_point_name">Nome do ponto (opcional)</string>
|
||||
<string name="transport_nearby_routes_within">Rotas próximas dentro de</string>
|
||||
<string name="transport_nearby_routes_within">Rotas próximas a menos de</string>
|
||||
<string name="transport_nearby_routes">A menos de</string>
|
||||
<string name="enter_the_file_name">Digite o nome do ficheiro.</string>
|
||||
<string name="map_import_error">Erro ao importar mapa</string>
|
||||
|
@ -2280,8 +2280,8 @@
|
|||
<string name="context_menu_read_full_article">Ler o artigo completo</string>
|
||||
<string name="context_menu_read_article">Ler o artigo</string>
|
||||
<string name="context_menu_points_of_group">Todos os pontos do grupo</string>
|
||||
<string name="open_from">Aberto desde as</string>
|
||||
<string name="open_till">Aberto até às</string>
|
||||
<string name="open_from">Abre às</string>
|
||||
<string name="open_till">Fecha às</string>
|
||||
<string name="will_close_at">Fecha às</string>
|
||||
<string name="will_open_at">Abre às</string>
|
||||
<string name="will_open_on">Abre às</string>
|
||||
|
@ -2292,7 +2292,7 @@
|
|||
<string name="shared_string_actions">Ações</string>
|
||||
<string name="shared_string_marker">Marcador</string>
|
||||
<string name="empty_state_osm_edits">Criar ou alterar objetos OSM</string>
|
||||
<string name="empty_state_osm_edits_descr">Criar ou alterar POIs do OSM, abrir ou comentar notas do OSM e contribuir com ficheiros de GPX gravados.</string>
|
||||
<string name="empty_state_osm_edits_descr">Criar ou alterar POIs do OSM, criar ou comentar notas do OSM e contribuir com ficheiros de GPX gravados.</string>
|
||||
<string name="shared_string_deleted">Eliminado</string>
|
||||
<string name="shared_string_edited">Editado</string>
|
||||
<string name="shared_string_added">Adicionado</string>
|
||||
|
@ -2350,8 +2350,8 @@
|
|||
<string name="round_trip">Ida e volta</string>
|
||||
<string name="plan_route_no_markers_toast">Tem de adicionar pelo menos um marcador para usar esta função.</string>
|
||||
<string name="osn_modify_dialog_error">Não foi possível alterar a nota.</string>
|
||||
<string name="osn_modify_dialog_title">Alterar nota</string>
|
||||
<string name="context_menu_item_modify_note">Alterar nota do OSM</string>
|
||||
<string name="osn_modify_dialog_title">Alterar nota do OpenStreetMap</string>
|
||||
<string name="context_menu_item_modify_note">Alterar nota</string>
|
||||
<string name="make_round_trip_descr">Adicionar cópia do ponto de partida como destino.</string>
|
||||
<string name="make_round_trip">Fazer viagem de ida e volta</string>
|
||||
<string name="index_item_world_wikivoyage">Artigos Wikivoyage mundiais</string>
|
||||
|
@ -2363,7 +2363,7 @@
|
|||
<string name="city_type_district">Distrito</string>
|
||||
<string name="city_type_neighbourhood">Bairro</string>
|
||||
<string name="map_widget_search">Procurar</string>
|
||||
<string name="shared_string_is_open_24_7">Aberto 24/7</string>
|
||||
<string name="shared_string_is_open_24_7">Sempre aberto (24/7)</string>
|
||||
<string name="coords_format">Formato de coordenadas</string>
|
||||
<string name="coords_format_descr">Formato para as coordenadas geográficas.</string>
|
||||
<string name="app_mode_bus">Autocarro</string>
|
||||
|
@ -2391,13 +2391,13 @@
|
|||
<string name="lang_lo">Laociano</string>
|
||||
<string name="lang_os">Osseta</string>
|
||||
<string name="lang_es_us">Espanhol (americano)</string>
|
||||
<string name="lang_es_ar">Espanhol (Argentina)</string>
|
||||
<string name="lang_es_ar">Espanhol (argentino)</string>
|
||||
<string name="lang_nb">Norueguês Bokmål</string>
|
||||
<string name="lang_vo">Volapuque</string>
|
||||
<string name="lang_th">Tailandês</string>
|
||||
<string name="lang_te">Telugu</string>
|
||||
<string name="lang_nn">Norueguês (Nynorsk)</string>
|
||||
<string name="lang_new">Neuari / Nepalbhasa</string>
|
||||
<string name="lang_nn">Novo norueguês</string>
|
||||
<string name="lang_new">Neuari</string>
|
||||
<string name="lang_ms">Malásio</string>
|
||||
<string name="lang_ht">Haitiano</string>
|
||||
<string name="lang_gl">Galego</string>
|
||||
|
@ -2406,7 +2406,7 @@
|
|||
<string name="lang_ast">Asturiano</string>
|
||||
<string name="lang_hsb">Alto sorábio</string>
|
||||
<string name="lang_kab">Cabila</string>
|
||||
<string name="lang_ber">Berberes</string>
|
||||
<string name="lang_ber">Berber</string>
|
||||
<string name="disable_recording_once_app_killed">Impedir a gravação autónoma</string>
|
||||
<string name="plugin_nautical_descr">Esta extensão enriquece o mapa do OsmAnd para também produzir mapas náuticos para passeios de barco, vela e outros tipos de desportos aquáticos.
|
||||
\n
|
||||
|
@ -2424,7 +2424,7 @@
|
|||
\nRepresenta área: %1$s x %2$s</string>
|
||||
<string name="speed_limit_exceed">Tolerância do limite de velocidade</string>
|
||||
<string name="speed_limit_exceed_message">Selecione a margem de tolerância de limite de velocidade, acima do qual receberá um aviso de voz.</string>
|
||||
<string name="fav_point_emoticons_message">O nome do favorito foi alterado para %1$s para facilitar guardar corretamente a cadeia de caracteres com emoticons num ficheiro.</string>
|
||||
<string name="fav_point_emoticons_message">O nome do favorito foi alterado para %1$s para poder guardar corretamente o texto com emoticons num ficheiro.</string>
|
||||
<string name="print_route">Imprimir rota</string>
|
||||
<string name="fav_point_dublicate">Nome de favorito duplicado</string>
|
||||
<string name="fav_point_dublicate_message">O nome do favorito especificado já está a ser utilizado, foi alterado para %1$s para evitar a duplicação.</string>
|
||||
|
@ -2661,7 +2661,7 @@
|
|||
<string name="commit_poi">Enviar POI</string>
|
||||
<string name="tab_title_basic">Básico</string>
|
||||
<string name="tab_title_advanced">Avançado</string>
|
||||
<string name="building_number">Número de edifício</string>
|
||||
<string name="building_number">Número de porta</string>
|
||||
<string name="next_proceed">Próximo</string>
|
||||
<string name="opening_at">Abre às</string>
|
||||
<string name="closing_at">Fecha às</string>
|
||||
|
@ -2791,7 +2791,7 @@
|
|||
<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 (OLC)</string>
|
||||
<string name="osm_live_subscriptions">Assinaturas</string>
|
||||
<string name="osm_live_subscriptions">Subscrições</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>
|
||||
|
@ -2842,7 +2842,7 @@
|
|||
<string name="rendering_attr_surface_unpaved_name">Não pavimentado</string>
|
||||
<string name="rendering_attr_surface_sand_name">Areia</string>
|
||||
<string name="rendering_attr_surface_grass_name">Relva</string>
|
||||
<string name="rendering_attr_surface_grass_paver_name">Blocos cimento perfurados</string>
|
||||
<string name="rendering_attr_surface_grass_paver_name">Blocos de cimento perfurados</string>
|
||||
<string name="rendering_attr_surface_ground_name">Terra</string>
|
||||
<string name="rendering_attr_surface_dirt_name">Terra (lodosa)</string>
|
||||
<string name="rendering_attr_surface_mud_name">Lama</string>
|
||||
|
@ -2931,23 +2931,23 @@
|
|||
<string name="public_transport_try_change_settings">Tente alterar a configuração.</string>
|
||||
<string name="public_transport_calc_pedestrian">Calcular a rota pedestre</string>
|
||||
<string name="public_transport_type">Tipo de transporte</string>
|
||||
<string name="searching_gps">Procurando GPS</string>
|
||||
<string name="searching_gps">A procurar GPS</string>
|
||||
<string name="coordinates_widget">Widget de coordenadas</string>
|
||||
<string name="rate_dialog_descr">Por favor envie os seus comentários e avalie o nosso trabalho no Google Play.</string>
|
||||
<string name="shared_string_privacy_policy">Política de privacidade</string>
|
||||
<string name="help_us_make_osmand_better">Ajude-nos a melhorar o OsmAnd</string>
|
||||
<string name="make_osmand_better_descr">Permitir que OsmAnd recolha e processe dados anónimos de utilização da aplicação. Nenhuns dados sobre a sua posição, nem sobre as localizações que visualiza no mapa são recolhidos.
|
||||
<string name="make_osmand_better_descr">Permitir que OsmAnd recolha e processe dados anónimos de utilização da aplicação. Não são recolhidos nenhuns dados sobre a sua posição, nem sobre as localizações que visualiza no mapa.
|
||||
\n
|
||||
\nConfigure a qualquer momento em \'Configurações\' → \'Privacidade e Segurança\'.</string>
|
||||
\nConfigure a qualquer momento em \'Configurações\' → \'Privacidade e segurança\'.</string>
|
||||
<string name="choose_data_to_share">Escolha o tipo de dados que pretende partilhar:</string>
|
||||
<string name="downloaded_maps">Mapas descarregados</string>
|
||||
<string name="visited_screens">Ecrãs vistos</string>
|
||||
<string name="collected_data_descr">Define quais os dados que permite que OsmAnd partilhe.</string>
|
||||
<string name="downloaded_maps_collect_descr">Ajuda-nos a compreender a popularidade de mapas de países e regiões.</string>
|
||||
<string name="visited_screens_collect_descr">Ajuda-nos a entender a popularidade dos recursos no OsmAnd.</string>
|
||||
<string name="visited_screens">Ecrãs visualizados</string>
|
||||
<string name="collected_data_descr">Define que dados que permite o OsmAnd partilhar.</string>
|
||||
<string name="downloaded_maps_collect_descr">Permite-nos compreender a popularidade dos mapas de países e regiões.</string>
|
||||
<string name="visited_screens_collect_descr">Permite-nos entender a popularidade dos recursos no OsmAnd.</string>
|
||||
<string name="privacy_and_security_change_descr">Toque em \"Permitir\" se concordar com %1$s</string>
|
||||
<string name="settings_privacy_and_security">Privacidade e segurança</string>
|
||||
<string name="settings_privacy_and_security_desc">Escolha que dados partilha</string>
|
||||
<string name="settings_privacy_and_security_desc">Escolha os dados que quer partilhar</string>
|
||||
<string name="shared_string_no_thank_you">Não, obrigado</string>
|
||||
<string name="shared_string_allow">Permitir</string>
|
||||
<string name="profile_name_hint">Nome do perfil</string>
|
||||
|
@ -2986,8 +2986,8 @@
|
|||
<string name="base_profile_descr_bicycle">Bicicleta de montanha, 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_boat">Barco, remo, vela</string>
|
||||
<string name="base_profile_descr_aircraft">Avião, parapente</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>
|
||||
|
@ -3028,7 +3028,7 @@
|
|||
<string name="shared_string_min_speed">Velocidade mínima</string>
|
||||
<string name="shared_string_max_speed">Velocidade máxima</string>
|
||||
<string name="default_speed_setting_title">Velocidade predefinida</string>
|
||||
<string name="default_speed_setting_descr">Alterar as predefinições de velocidade</string>
|
||||
<string name="default_speed_setting_descr">Alterar as velocidades predefinidas</string>
|
||||
<string name="minmax_speed_dialog_title">Definir a velocidade mínima/máxima</string>
|
||||
<string name="new_profile">Novo perfil</string>
|
||||
<string name="shared_string_crash">Encravou</string>
|
||||
|
@ -3066,8 +3066,8 @@
|
|||
<string name="edit_profile_setup_map_subtitle">Selecione as opções de mapa para o perfil</string>
|
||||
<string name="edit_profile_screen_options_subtitle">Selecionar opções de ecrã para o perfil</string>
|
||||
<string name="edit_profile_nav_settings_subtitle">Selecione as configurações de navegação para o perfil</string>
|
||||
<string name="routing_attr_max_num_changes_description">Especificar o limite máximo de alterações</string>
|
||||
<string name="routing_attr_max_num_changes_name">Quantidade de transferências</string>
|
||||
<string name="routing_attr_max_num_changes_description">Especificar o limite máximo de transbordos</string>
|
||||
<string name="routing_attr_max_num_changes_name">Número de transbordos</string>
|
||||
<string name="turn_screen_on_router">Despertar na curva</string>
|
||||
<string name="turn_screen_on_time_descr">Ajuste por quanto tempo o ecrã deve ficar ligado.</string>
|
||||
<string name="turn_screen_on_sensor">Utilizar sensor de proximidade</string>
|
||||
|
@ -3097,7 +3097,7 @@
|
|||
<string name="shared_string_open_track">Abrir trilho</string>
|
||||
<string name="shared_string_track_is_saved">O trilho %s está guardado</string>
|
||||
<string name="rendering_attr_showLez_description">Mostrar zonas de baixas emissões (proibida circulação de veículos poluentes) no mapa. Não afeta o roteamento.</string>
|
||||
<string name="rendering_attr_showLez_name">Mostrar zonas de baixas emissões</string>
|
||||
<string name="rendering_attr_showLez_name">Mostrar zonas de baixas emissões poluentes</string>
|
||||
<string name="temporary_conditional_routing">Considerar limitações temporárias</string>
|
||||
<string name="shared_string_default">Padrão</string>
|
||||
<string name="new_route_calculated_dist_dbg">Rota: distância %1$s, tempo do roteador %2$s \nCálculo: %3$.1f seg, %4$d estradas, %5$d telhas)</string>
|
||||
|
@ -3118,7 +3118,7 @@
|
|||
<string name="years_5">Anos</string>
|
||||
<string name="months_3">Três meses</string>
|
||||
<string name="price_free">Grátis</string>
|
||||
<string name="get_discount_title">Obter %1$d %2$s com %3$s de desconto.</string>
|
||||
<string name="get_discount_title">Obtenha %1$d %2$s com %3$s de desconto.</string>
|
||||
<string name="get_discount_second_part">depois %1$s</string>
|
||||
<string name="cancel_subscription">Cancelar subscrição</string>
|
||||
<string name="price_and_discount">%1$s - Poupe %2$s</string>
|
||||
|
@ -3137,7 +3137,7 @@
|
|||
<string name="apply_to_current_profile">Aplicar só a \"%1$s\"</string>
|
||||
<string name="apply_to_all_profiles">Aplicar a todos os perfis</string>
|
||||
<string name="start_up_message_pref">Mensagem de inicialização</string>
|
||||
<string name="analytics_pref_title">Análises</string>
|
||||
<string name="analytics_pref_title">Enviar dados anónimos</string>
|
||||
<string name="turn_screen_on_info">Mostrar mapa no ecrã de bloqueio durante a navegação.</string>
|
||||
<string name="route_parameters_info">Configurações de roteamento no perfil selecionado \"%1$s\".</string>
|
||||
<string name="wake_time">Tempo limite após despertar</string>
|
||||
|
@ -3180,7 +3180,7 @@
|
|||
\n%1$s > %2$s</string>
|
||||
<string name="enter_path_to_folder">Insira o caminho para a pasta</string>
|
||||
<string name="shared_string_select_folder">Pasta…</string>
|
||||
<string name="paste_Osmand_data_folder_path">Colar caminho para a pasta com dados OsmAnd</string>
|
||||
<string name="paste_Osmand_data_folder_path">Colar caminho para a pasta com dados do OsmAnd</string>
|
||||
<string name="change_osmand_data_folder_question">Alterar a pasta de dados OsmAnd\?</string>
|
||||
<string name="move_maps_to_new_destination">Mover para o novo destino</string>
|
||||
<string name="internal_app_storage_description">Armazenamento interno para OsmAnd (oculto aos utilizadores e outras aplicações).</string>
|
||||
|
@ -3250,7 +3250,7 @@
|
|||
\n - Outras correções de erros
|
||||
\n
|
||||
\n</string>
|
||||
<string name="apply_preference_to_all_profiles">Pode aplicar esta alteração a todos ou apenas ao perfil atualmente selecionado.</string>
|
||||
<string name="apply_preference_to_all_profiles">Pode aplicar esta alteração a todos os perfis ou apenas ao atualmente selecionado.</string>
|
||||
<string name="shared_preference">Partilhado</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_name">Preferir estradas não pavimentadas</string>
|
||||
<string name="routing_attr_driving_style_prefer_unpaved_description">Preferir estradas não pavimentadas sobre as pavimentadas para o roteamento.</string>
|
||||
|
@ -3262,7 +3262,7 @@
|
|||
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
|
||||
<string name="ltr_or_rtl_combine_via_comma">%1$s, %2$s</string>
|
||||
<string name="personal_category_name">Pessoal</string>
|
||||
<string name="shared_string_downloading_formatted">Descarregando %s</string>
|
||||
<string name="shared_string_downloading_formatted">A descarregar %s</string>
|
||||
<string name="rendering_value_thick_name">Grosso</string>
|
||||
<string name="desert_render_descr">Para desertos e outras áreas pouco povoadas. Mais detalhado.</string>
|
||||
<string name="select_navigation_icon">Ícone de posição durante a movimentação</string>
|
||||
|
@ -3284,7 +3284,7 @@
|
|||
<string name="overwrite_profile_q">O perfil \'%1$s\' já existe. Substituir\?</string>
|
||||
<string name="export_profile_failed">Não foi possível exportar o perfil.</string>
|
||||
<string name="profile_import">Importar perfil</string>
|
||||
<string name="profile_import_descr">Adicione um perfil abrindo o seu ficheiro com OsmAnd.</string>
|
||||
<string name="profile_import_descr">Adicione um perfil abrindo o seu ficheiro com o OsmAnd.</string>
|
||||
<string name="file_import_error">%1$s erro de importação: %2$s</string>
|
||||
<string name="file_imported_successfully">%1$s importado(s).</string>
|
||||
<string name="swap_two_places">Trocar %1$s por %2$s</string>
|
||||
|
@ -3352,8 +3352,8 @@
|
|||
<string name="importing_from">A importar dados de %1$s</string>
|
||||
<string name="clear_recorded_data_warning">Tem a certeza que quer limpar os dados gravados\?</string>
|
||||
<string name="profile_backup_failed">Não foi possível fazer a cópia de segurança do perfil.</string>
|
||||
<string name="saving_new_profile">Gravando novo perfil</string>
|
||||
<string name="restore_all_profile_settings">Restaurar todas as configurações de perfil\?</string>
|
||||
<string name="saving_new_profile">A guardar o novo perfil</string>
|
||||
<string name="restore_all_profile_settings">Restaurar todas as configurações do perfil\?</string>
|
||||
<string name="restore_all_profile_settings_descr">Todas as configurações do perfil serão restauradas para o seu estado original após a criação/importação deste perfil.</string>
|
||||
<string name="import_rendering_file">Importar ficheiro de renderização</string>
|
||||
<string name="shared_string_rendering_style">Estilo de renderização</string>
|
||||
|
@ -3372,8 +3372,8 @@
|
|||
<string name="shared_string_nothing_selected">Nada selecionado</string>
|
||||
<string name="shared_string_poi_types">Tipos de POI</string>
|
||||
<string name="shared_string_preparing">A preparar</string>
|
||||
<string name="recalc_angle_dialog_title">Ângulo mínimo entre minha localização e rota</string>
|
||||
<string name="recalc_angle_dialog_descr">Segmento reto adicional entre a minha localização e a rota calculada será mostrada até que a rota seja recalculada</string>
|
||||
<string name="recalc_angle_dialog_title">Ângulo mínimo entre a minha localização e a rota</string>
|
||||
<string name="recalc_angle_dialog_descr">Será mostrado o segmento reto adicional entre a minha localização e a rota calculada até que a rota seja recalculada</string>
|
||||
<string name="shared_string_angle">Ângulo</string>
|
||||
<string name="shared_string_angle_param">Ângulo: %s°</string>
|
||||
<string name="profile_type_custom_string">Perfil personalizado</string>
|
||||
|
@ -3393,7 +3393,7 @@
|
|||
\nA extensão permanecerá no dispositivo após remover o OsmAnd.</string>
|
||||
<string name="plugin_disabled">Extensão desativada</string>
|
||||
<string name="open_settings">Abrir configurações</string>
|
||||
<string name="please_provide_profile_name_message">Forneça um nome para o perfil</string>
|
||||
<string name="please_provide_profile_name_message">Atribua um nome ao perfil</string>
|
||||
<string name="sort_by_category">Classificar por categoria</string>
|
||||
<string name="routing_profile_direct_to">Direto ao ponto</string>
|
||||
<string name="copy_coordinates">Copiar coordenadas</string>
|
||||
|
@ -3435,9 +3435,9 @@
|
|||
<string name="plugin_prefs_reset_successful">Todas as configurações da extensão foram repostas para os valores de origem.</string>
|
||||
<string name="add_custom_category">Adicionar categoria personalizada</string>
|
||||
<string name="shared_string_available">Disponível</string>
|
||||
<string name="reset_to_default_category_button_promo">\'Restaurar valores predefinidos\' redefinirá a ordem de ordenação para os valores de origem.</string>
|
||||
<string name="reset_to_default_category_button_promo">\'Restaurar valores predefinidos\' irá repor a ordenação de origem.</string>
|
||||
<string name="add_new_custom_category_button_promo">Pode adicionar uma nova categoria personalizada selecionando uma ou mais categorias.</string>
|
||||
<string name="create_custom_categories_list_promo">Altere a ordem de ordenação da lista, oculte categorias. Pode importar ou exportar todas as alterações com perfis.</string>
|
||||
<string name="create_custom_categories_list_promo">Altere a ordenação da lista e oculte categorias. Pode importar ou exportar todas as alterações com perfis.</string>
|
||||
<string name="rearrange_categories">Reorganizar categorias</string>
|
||||
<string name="osm_authorization_success">Autorização bem sucedida</string>
|
||||
<string name="multimedia_photo_play_sound">Som do obturador da câmara</string>
|
||||
|
@ -3453,8 +3453,8 @@
|
|||
<string name="live_monitoring_tracking_interval">Intervalo de rastreamento</string>
|
||||
<string name="live_monitoring_time_buffer">Memória intermédia</string>
|
||||
<string name="monitoring_min_distance_descr_recommendation">Recomendação: uma configuração de 5 metros pode funcionar bem se não precisar capturar detalhes mais refinados do que isso e não quer capturar dados explicitamente enquanto estiver parado.</string>
|
||||
<string name="monitoring_min_distance_descr_side_effect">Efeitos colaterais: os períodos em que está parado não são registados em absoluto ou em apenas um ponto cada. Pequenos movimentos (do mundo real) (por exemplo, de lado, para marcar um possível desvio na sua viagem) podem ser filtrados. O seu ficheiro contém menos informações para pós-processamento e possui estatísticas piores ao filtrar pontos obviamente redundantes no tempo de gravação, mantendo potencialmente artefactos causados por má receção ou efeitos de chipset GPS.</string>
|
||||
<string name="monitoring_min_distance_descr">Este filtro evita que pontos duplicados sejam gravados onde muito pouco movimento real possa ter ocorrido, cria uma aparência espacial mais agradável dos trilhos que não são processados posteriormente.</string>
|
||||
<string name="monitoring_min_distance_descr_side_effect">Efeitos colaterais: os períodos em que está parado não são registados em absoluto ou em apenas um ponto cada. Pequenos movimentos (no mundo real, por exemplo de lado, para marcar um possível desvio na sua viagem) podem ser filtrados. O seu ficheiro contém menos informações para pós-processamento e possui estatísticas piores ao filtrar pontos obviamente redundantes no tempo de gravação, mantendo potencialmente os artefactos causados por má receção ou efeitos do chipset GPS.</string>
|
||||
<string name="monitoring_min_distance_descr">Este filtro evita que sejam gravados pontos duplicados onde ocorrer muito pouco movimento real, cria uma aparência espacial mais agradável dos trilhos que não são processados posteriormente.</string>
|
||||
<string name="monitoring_min_accuracy_descr_remark">Observação: se o GPS estava desligado imediatamente antes de uma gravação, o primeiro ponto medido pode ter uma precisão diminuída; portanto, no nosso código, podemos esperar um segundo antes da gravação de um ponto (ou gravar o melhor de três pontos consecutivos, etc.), mas isso ainda não foi implementado.</string>
|
||||
<string name="monitoring_min_accuracy_descr_recommendation">Recomendação: é difícil prever o que será gravado e o que não será, talvez seja melhor desativar este filtro.</string>
|
||||
<string name="monitoring_min_accuracy_descr_side_effect">Efeito colateral: como resultado da filtragem por precisão, os pontos podem estar totalmente ausentes por ex. debaixo de pontes, sob árvores, entre prédios altos ou com certas condições climáticas.</string>
|
||||
|
@ -3468,7 +3468,7 @@
|
|||
<string name="logcat_buffer_descr">Verifique e partilhe registos detalhados da aplicação</string>
|
||||
<string name="select_map_icon_descr">Ícone mostrado quando parado.</string>
|
||||
<string name="select_nav_icon_descr">Ícone mostrado ao navegar ou mover.</string>
|
||||
<string name="osm_edits_view_descr">Veja todas as suas edições ainda não enviadas ou bugs OSM em %1$s. Os pontos enviados não vão aparecer no OsmAnd.</string>
|
||||
<string name="osm_edits_view_descr">Veja todas as suas edições ainda não enviadas ou notas do OpenStreetMap em %1$s. Os pontos enviados deixarão de aparecer nessa lista.</string>
|
||||
<string name="osm_editing">Edição OSM</string>
|
||||
<string name="plugin_global_prefs_info">Estas configurações da extensão são globais e aplicam-se a todos os perfis</string>
|
||||
<string name="login_and_pass">Utilizador e palavra-passe</string>
|
||||
|
@ -3476,12 +3476,12 @@
|
|||
<string name="route_recalculation">Recálculo da rota</string>
|
||||
<string name="photo_notes">Notas fotográficas</string>
|
||||
<string name="video_notes">Notas de vídeo</string>
|
||||
<string name="multimedia_notes_view_descr">Pode encontrar todas as suas notas em %1$s.</string>
|
||||
<string name="multimedia_notes_view_descr">Pode encontrar todas as suas notas OSM em %1$s.</string>
|
||||
<string name="tracks_view_descr">Pode encontrar todos os seus trilhos gravados em %1$s ou na pasta OsmAnd.</string>
|
||||
<string name="save_track_logging_accuracy">Precisão de registo</string>
|
||||
<string name="live_monitoring">Rastreamento online</string>
|
||||
<string name="live_monitoring_descr">Permite partilhar a localização atual usando a gravação de viagem.</string>
|
||||
<string name="accessibility_prefs_descr">Escolha ícone, cor e nome</string>
|
||||
<string name="accessibility_prefs_descr">Escolha o ícone, cor e nome</string>
|
||||
<string name="osm_editing_prefs_descr">Utilizador, palavra-passe, edição offline</string>
|
||||
<string name="multimedia_notes_prefs_descr">Tamanho da imagem, qualidade de áudio e vídeo</string>
|
||||
<string name="monitoring_prefs_descr">Navegação, precisão de registo</string>
|
||||
|
@ -3529,9 +3529,9 @@
|
|||
<string name="radius_ruler_item">Régua radial</string>
|
||||
<string name="measure_distance_item">Medir distância</string>
|
||||
<string name="travel_item">Viagem (Wikivoyage e Wikipédia)</string>
|
||||
<string name="map_markers_item">Marcadores de mapa</string>
|
||||
<string name="map_markers_item">Marcadores</string>
|
||||
<string name="favorites_item">Favoritos</string>
|
||||
<string name="subscription_osmandlive_item">Assinatura - OsmAnd Live</string>
|
||||
<string name="subscription_osmandlive_item">Subscrição - OsmAnd Live</string>
|
||||
<string name="osmand_purchases_item">Compras de OsmAnd</string>
|
||||
<string name="legend_item_description">O guia para a simbologia de um mapa.</string>
|
||||
<string name="navigation_profiles_item">Perfis de navegação</string>
|
||||
|
@ -3539,9 +3539,9 @@
|
|||
<string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string>
|
||||
<string name="osm_live_payment_subscription_management">O pagamento será debitado na sua conta Google Play na confirmação da compra.
|
||||
\n
|
||||
\n A assinatura é renovada automaticamente, a menos que seja cancelada antes da data de renovação. A sua conta será cobrada pelo período de renovação (mês/três meses/ano) apenas na data de renovação.
|
||||
\nA subscrição é renovada automaticamente, a não ser que seja cancelada antes da data de renovação. A sua conta será cobrada pelo período de renovação (mês/três meses/ano) apenas na data de renovação.
|
||||
\n
|
||||
\n Pode gerir e cancelar as suas subscrições, indo às suas definições do Google Play.</string>
|
||||
\nPode gerir e cancelar as suas subscrições, indo às suas definições do Google Play.</string>
|
||||
<string name="download_unsupported_action">Ação %1$s não suportada</string>
|
||||
<string name="extra_maps_menu_group">Mapas adicionais</string>
|
||||
<string name="some_articles_may_not_available_in_lang">Alguns artigos da Wikipédia podem não estar disponíveis no seu idioma.</string>
|
||||
|
@ -3566,7 +3566,7 @@
|
|||
<string name="lang_kk">Cazaque</string>
|
||||
<string name="lang_jv">Javanês</string>
|
||||
<string name="lang_gu">Guzerate</string>
|
||||
<string name="lang_cv">Tchuvache</string>
|
||||
<string name="lang_cv">Chuvache</string>
|
||||
<string name="lang_ce">Checheno</string>
|
||||
<string name="lang_bar">Bávaro</string>
|
||||
<string name="lang_ba">Basquires</string>
|
||||
|
@ -3605,7 +3605,7 @@
|
|||
<string name="one_image_per_tile">Um ficheiro de imagem por mosaico</string>
|
||||
<string name="sqlite_db_file">Ficheiro SQLiteDB</string>
|
||||
<string name="online_map_name_helper_text">Forneça um nome para a origem do mapa on-line.</string>
|
||||
<string name="online_map_url_helper_text">Insira ou cole a URL para a origem on-line.</string>
|
||||
<string name="online_map_url_helper_text">Introduza ou cole o URL para a origem on-line.</string>
|
||||
<string name="edit_online_source">Editar origem on-line</string>
|
||||
<string name="expire_time">Tempo de validade</string>
|
||||
<string name="mercator_projection">Projeção de Mercator</string>
|
||||
|
@ -3638,7 +3638,7 @@
|
|||
<string name="app_mode_go_cart">Kart</string>
|
||||
<string name="speed_cameras_alert">Os alertas de radares de velocidade em alguns países são proibidos por lei.</string>
|
||||
<string name="keep_active">Manter ativo</string>
|
||||
<string name="please_provide_point_name_error">Forneça um nome para o ponto</string>
|
||||
<string name="please_provide_point_name_error">Atribua um nome ao ponto</string>
|
||||
<string name="clear_tiles_warning">A aplicação dessas alterações limpará os dados temporários desta origem de mosaicos</string>
|
||||
<string name="speed_cameras_removed_descr">Este dispositivo não tem instalado o recurso de câmaras de velocidade.</string>
|
||||
<string name="speed_cameras_legal_descr">Em alguns países ou regiões, o uso de aplicações com avisos de radares é proibido por lei.
|
||||
|
@ -3647,7 +3647,7 @@
|
|||
\n
|
||||
\nSelecione %1$s e receberá alertas e avisos sobre radares de velocidade.
|
||||
\n
|
||||
\nSelecione %2$s. Todos os dados relacionados a radares de velocidade: alertas, notificações, POIs serão apagados até que o OsmAnd seja completamente reinstalado.</string>
|
||||
\nSelecione %2$s e yodos os dados relacionados a radares de velocidade: alertas, notificações, POIs serão eliminados até que o OsmAnd seja completamente reinstalado.</string>
|
||||
<string name="plugin_wikipedia_description">Obter informações sobre pontos de interesse da Wikipédia. Um guia de bolso off-line para ver artigos sobre locais e destinos.</string>
|
||||
<string name="app_mode_motor_scooter">Scooter</string>
|
||||
<string name="quick_action_remove_next_destination">Eliminar o ponto de destino mais próximo</string>
|
||||
|
@ -3655,10 +3655,10 @@
|
|||
<string name="additional_actions_descr">Pode aceder a essas ações tocando no botão “%1$s”.</string>
|
||||
<string name="shared_string_uninstall">Desinstalar</string>
|
||||
<string name="lenght_limit_description">Forneça o comprimento do seu veículo, podem ser aplicadas algumas restrições de rota a veículos longos.</string>
|
||||
<string name="use_volume_buttons_as_zoom">Botões de volume como zoom</string>
|
||||
<string name="use_volume_buttons_as_zoom">Botões de volume mudam o zoom</string>
|
||||
<string name="speed_cameras_restart_descr">Reinicie a aplicação para eliminar os dados da câmara de velocidade.</string>
|
||||
<string name="item_deleted">%1$s eliminado</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Se tocar neste botão de ação, mostra ou oculta a camada Mapillary no mapa.</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Um botão que alterna entre mostrar ou ocultar a camada Mapillary no mapa.</string>
|
||||
<string name="vessel_height_warning_link">Definir altura da embarcação</string>
|
||||
<string name="app_mode_enduro_motorcycle">Motorizada de enduro</string>
|
||||
<string name="app_mode_inline_skates">Patins em linha</string>
|
||||
|
@ -3701,7 +3701,7 @@
|
|||
<string name="set_working_days_to_continue">Defina dias úteis para continuar</string>
|
||||
<string name="route_between_points">Rota entre pontos</string>
|
||||
<string name="plan_a_route">Planear uma rota</string>
|
||||
<string name="add_to_a_track">Adicionar ao trilho</string>
|
||||
<string name="add_to_a_track">Adicionar a um 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">Selecionar a largura</string>
|
||||
|
@ -3740,8 +3740,8 @@
|
|||
<string name="delete_address">Eliminar endereço</string>
|
||||
<string name="add_address">Adicionar endereço</string>
|
||||
<string name="access_hint_enter_address">Insira o endereço</string>
|
||||
<string name="plan_route_trim_before">Aparecer antes</string>
|
||||
<string name="plan_route_trim_after">Aparecer depois</string>
|
||||
<string name="plan_route_trim_before">Recortar antes</string>
|
||||
<string name="plan_route_trim_after">Recortar depois</string>
|
||||
<string name="plan_route_change_route_type_before">Alterar o tipo de rota antes</string>
|
||||
<string name="plan_route_change_route_type_after">Alterar o tipo de rota após</string>
|
||||
<string name="street_level_imagery">Imagens ao nível das ruas</string>
|
||||
|
@ -3770,7 +3770,7 @@
|
|||
<string name="all_previous_segments">Todos os segmentos anteriores</string>
|
||||
<string name="only_selected_segment_recalc">Apenas o segmento selecionado será recalculado a usar o perfil selecionado.</string>
|
||||
<string name="all_next_segments_will_be_recalc">Todos os segmentos subsequentes serão recalculados a utilizar o perfil selecionado.</string>
|
||||
<string name="all_previous_segments_will_be_recalc">Todos os segmentos anteriores serão recalculados a usar o perfil selecionado.</string>
|
||||
<string name="all_previous_segments_will_be_recalc">Todos os segmentos anteriores serão recalculados usando o perfil selecionado.</string>
|
||||
<string name="open_saved_track">Abrir trilho guardado</string>
|
||||
<string name="shared_string_is_saved">está guardado</string>
|
||||
<string name="one_point_error">Adicione pelo menos dois pontos.</string>
|
||||
|
@ -3800,14 +3800,14 @@
|
|||
<string name="sort_name_ascending">Nome: A – Z</string>
|
||||
<string name="start_finish_icons">Ícones de início e fim</string>
|
||||
<string name="contour_lines_thanks">Obrigado por comprar \'Curvas de nível\'</string>
|
||||
<string name="osm_live_payment_desc_hw">A assinatura é cobrada pelo período selecionado. Cancele-a na sua AppGallery a qualquer momento.</string>
|
||||
<string name="osm_live_payment_desc_hw">A subscrição é cobrada pelo período selecionado. Cancele-a na sua AppGallery a qualquer momento.</string>
|
||||
<string name="osm_live_payment_subscription_management_hw">Ao confirmar a sua subscrição, será debitado na sua conta AppGallery.
|
||||
\n
|
||||
\nA assinatura é renovada automaticamente, a não ser que seja cancelada antes da data de renovação. A sua conta será cobrada pelo período de renovação (mês/três meses/ano) apenas na data de renovação.
|
||||
\nA subscrição é renovada automaticamente, a não ser que seja cancelada antes da data de renovação. A sua conta será cobrada pelo período de renovação (mês/três meses/ano) apenas na data de renovação.
|
||||
\n
|
||||
\nPode gerir e cancelar as suas subscrições a ir às definições da sua AppGallery.</string>
|
||||
<string name="routing_attr_avoid_footways_description">Evitar passeios</string>
|
||||
<string name="routing_attr_avoid_footways_name">Evitar passeios</string>
|
||||
\nPode gerir e cancelar as suas subscrições nas definições da sua AppGallery.</string>
|
||||
<string name="routing_attr_avoid_footways_description">Evitar vias pedonais</string>
|
||||
<string name="routing_attr_avoid_footways_name">Evitar vias pedonais</string>
|
||||
<string name="what_is_new">Novidades</string>
|
||||
<string name="development">Desenvolvimento</string>
|
||||
<string name="use_live_public_transport">Dados do OsmAnd Live</string>
|
||||
|
@ -3818,12 +3818,12 @@
|
|||
<string name="perform_oauth_authorization_description">Inicie sessão com o OAuth para usar os recursos de edição OpenStreetMap</string>
|
||||
<string name="perform_oauth_authorization">Iniciar sessão com OAuth</string>
|
||||
<string name="clear_osm_token">Limpar token do OpenStreetMap OAuth</string>
|
||||
<string name="osm_edit_logout_success">Saiu</string>
|
||||
<string name="osm_edit_logout_success">Sessão terminada</string>
|
||||
<string name="file_already_imported">O ficheiro já foi importado para o OsmAnd</string>
|
||||
<string name="use_two_phase_routing">Usar algoritmo de roteamento de 2 fases A*</string>
|
||||
<string name="snowmobile_render_descr">Para a condução de motos de neve com estradas e pistas dedicadas.</string>
|
||||
<string name="shared_string_graph">Gráfico</string>
|
||||
<string name="message_need_calculate_route_before_show_graph">Dados de %1$s disponíveis apenas em estradas, calcule uma rota a usar \"Rota entre pontos\" para ver os gráficos.</string>
|
||||
<string name="message_need_calculate_route_before_show_graph">Dados de %1$s disponíveis apenas em estradas, calcule uma rota usando \"Rota entre pontos\" para ver os gráficos.</string>
|
||||
<string name="message_graph_will_be_available_after_recalculation">Por favor aguarde.
|
||||
\nO gráfico estará disponível após o recálculo da rota.</string>
|
||||
<string name="ltr_or_rtl_combine_via_dash">%1$s — %2$s</string>
|
||||
|
@ -3841,34 +3841,34 @@
|
|||
<string name="icon_group_emergency">Emergência</string>
|
||||
<string name="icon_group_travel">Viagem</string>
|
||||
<string name="message_you_need_add_two_points_to_show_graphs">Adicione pelo menos dois pontos</string>
|
||||
<string name="manage_subscription">Gerir a assinatura</string>
|
||||
<string name="subscription_payment_issue_title">Toque no botão para ir às definições de assinatura do Google Play para corrigir a sua assinatura.</string>
|
||||
<string name="subscription_expired_title">A assinatura do OsmAnd Live expirou</string>
|
||||
<string name="subscription_paused_title">A assinatura do OsmAnd Live foi pausada</string>
|
||||
<string name="subscription_on_hold_title">A assinatura do OsmAnd Live está em espera</string>
|
||||
<string name="manage_subscription">Gerir a subscrição</string>
|
||||
<string name="subscription_payment_issue_title">Toque no botão para ir às definições de assinatura do Google Play para corrigir a sua subscrição.</string>
|
||||
<string name="subscription_expired_title">A subscrição do OsmAnd Live expirou</string>
|
||||
<string name="subscription_paused_title">A subscrição do OsmAnd Live foi pausada</string>
|
||||
<string name="subscription_on_hold_title">A subscrição do OsmAnd Live está em espera</string>
|
||||
<string name="open_street_map_login_mode">Tem de iniciar sessão para enviar alterações.
|
||||
\n
|
||||
\nPode iniciar sessão usando o método seguro OAuth ou usar o seu nome de utilizador e a sua palavra-passe.</string>
|
||||
<string name="login_open_street_map">Iniciar sessão no OpenStreetMap</string>
|
||||
<string name="login_open_street_map_org">Iniciar sessão no OpenStreetMap.org</string>
|
||||
<string name="sign_in_with_open_street_map">Entrar com OpenStreetMap</string>
|
||||
<string name="sign_in_with_open_street_map">Iniciar sessão com OpenStreetMap</string>
|
||||
<string name="use_login_password">Usar o nome do utilizador e palavra-passe</string>
|
||||
<string name="login_account">Conta</string>
|
||||
<string name="user_login">Utilizador</string>
|
||||
<string name="markers_history">Histórico de marcadores</string>
|
||||
<string name="send_files_to_openstreetmap">Enviar ficheiro de GPX para o OpenStreetMap</string>
|
||||
<string name="enter_text_separated">Introduza etiquetas separadas por vírgula.</string>
|
||||
<string name="gpx_upload_public_visibility_descr">\"Público\" significa que o rastreamento é mostrado publicamente em Seus traços de GPS e em listas públicas de rastreamento de GPS, e na lista pública de rastreamento com carimbos de data e hora na forma bruta. Os dados servidos através da API não fazem referência à sua página de rastreamento. Os marcadores de ponto de rastreamento não estão disponíveis através da API de GPS pública, e os pontos de rastreamento não estão ordenados cronologicamente.</string>
|
||||
<string name="gpx_upload_public_visibility_descr">\"Público\" significa que o rastreamento é mostrado publicamente nos seus traços de GPS, em listas públicas de rastreamento de GPS e na lista pública de rastreamento com carimbos de data e hora na forma bruta. Os dados servidos através da API não fazem referência à sua página de rastreamento. Os marcadores de ponto de rastreamento não estão disponíveis através da API de GPS pública, e os pontos de rastreamento não estão ordenados cronologicamente.</string>
|
||||
<string name="gpx_upload_private_visibility_descr">\"Privado\" significa que o rastreamento não aparece em nenhuma listagem pública, mas os pontos de rastreamento dela em ordem não cronológica estão disponíveis através da API pública do GPS sem carimbos de tempo.</string>
|
||||
<string name="gpx_upload_identifiable_visibility_descr">\"Identificável\" significa que o rastreamento será mostrado publicamente nos seus traços de GPS e nas listas públicas de rastreamento de GPS, ou seja, outros utilizadores serão capazes de descarregar o rastreamento bruto e associá-lo ao seu nome de utilizador. Os dados públicos de pontos de rastreamento marcados com a hora da API do GPS servidos através da API de pontos de rastreamento farão referência à sua página de rastreamento original.</string>
|
||||
<string name="gpx_upload_trackable_visibility_descr">\"Rastreável\" significa que o rastreamento não aparece em nenhuma listagem pública, mas pontos de rastreamento processados com carimbos de tempo a partir dele (que não podem ser associados diretamente a si) fazem através de descarregadas da API pública do GPS.</string>
|
||||
<string name="gpx_upload_trackable_visibility_descr">\"Rastreável\" significa que o rastreamento não aparece em nenhuma listagem pública, mas pontos de rastreamento processados com carimbos de tempo a partir dele (que não podem ser associados diretamente a si) estarão disponíveis através da API pública de GPS.</string>
|
||||
<string name="osm_edit_close_note">Fechar nota do OSM</string>
|
||||
<string name="osm_edit_comment_note">Comentário de nota do OSM</string>
|
||||
<string name="osm_login_descr">Pode iniciar sessão pelo método seguro OAuth ou use o seu nome de utilizador e a palavra-passe.</string>
|
||||
<string name="shared_string_add_photo">Adicionar fotos</string>
|
||||
<string name="register_on_openplacereviews">Cadastre-se em
|
||||
<string name="shared_string_add_photo">Adicionar foto</string>
|
||||
<string name="register_on_openplacereviews">Crie uma conta em
|
||||
\nOpenPlaceReviews.org</string>
|
||||
<string name="register_on_openplacereviews_desc">As fotos são fornecidas pelo projeto de dados abertos OpenPlaceReviews.org. Para enviar as suas fotos precisa cadastrar-se no site.</string>
|
||||
<string name="register_on_openplacereviews_desc">As fotos são fornecidas pelo projeto de dados abertos OpenPlaceReviews.org. Para enviar as suas fotos tem de criar uma conta no site.</string>
|
||||
<string name="register_opr_create_new_account">Criar uma conta</string>
|
||||
<string name="register_opr_have_account">Já tenho uma conta</string>
|
||||
<string name="shared_string_search_history">Histórico de pesquisa</string>
|
||||
|
@ -3878,14 +3878,14 @@
|
|||
<string name="approximate_file_size">Tamanho aproximado do ficheiro</string>
|
||||
<string name="select_data_to_export">Selecione os dados a serem exportados para o ficheiro.</string>
|
||||
<string name="file_size_needed_for_import">Necessário para a importação</string>
|
||||
<string name="export_not_enough_space_descr">O seu dispositivo só tem %1$s livres. Por favor, liberte algum espaço ou desmarque alguns itens para exportar.</string>
|
||||
<string name="export_not_enough_space_descr">O seu dispositivo só tem disponível %1$s. Liberte algum espaço ou desmarque alguns itens para exportar.</string>
|
||||
<string name="export_not_enough_space">Não há espaço suficiente</string>
|
||||
<string name="add_to_mapillary">Adicionar ao Mapillary</string>
|
||||
<string name="add_to_opr">Adicionar ao OpenPlaceReviews</string>
|
||||
<string name="add_photos_descr">OsmAnd mostra fotos de várias origens:
|
||||
\nOpenPlaceReviews - fotos de POI;
|
||||
\nMapillary - imagens ao nível da rua;
|
||||
\nWeb / Wikimedia - fotos de POI como nos dados do OpenStreetMap.</string>
|
||||
<string name="add_photos_descr">OsmAnd mostra fotografias de várias origens:
|
||||
\nOpenPlaceReviews - fotografias de POI;
|
||||
\nMapillary - fotografias ao nível do solo;
|
||||
\nWeb / Wikimedia - fotografias de POI definidas no OpenStreetMap.</string>
|
||||
<string name="select_groups_for_import">Selecionar os grupos que serão importados.</string>
|
||||
<string name="select_items_for_import">Selecionar os objetos que serão importados.</string>
|
||||
<string name="use_dev_url">Utilizar dev.openstreetmap.org</string>
|
||||
|
@ -3894,7 +3894,7 @@
|
|||
<string name="use_dev_url_descr">Mude para usar dev.openstreetmap.org ao invés de openstreetmap.org para testar enviar uma OSM Nota / POI / GPX.</string>
|
||||
<string name="ltr_or_rtl_combine_via_star">%1$s * %2$s</string>
|
||||
<string name="lang_de_casual">Alemão (casual)</string>
|
||||
<string name="app_mode_light_aircraft">Aeronaves ligeiras</string>
|
||||
<string name="app_mode_light_aircraft">Aeronave ligeira</string>
|
||||
<string name="plan_route_join_segments">Unir segmentos</string>
|
||||
<string name="plan_route_split_before">Dividir antes</string>
|
||||
<string name="plan_route_split_after">Dividir após</string>
|
||||
|
@ -3915,10 +3915,10 @@
|
|||
<string name="shared_string_server_url">URL do servidor</string>
|
||||
<string name="shared_string_enter_param">Digite o parâmetro</string>
|
||||
<string name="keep_it_empty_if_not">Mantenha-o vazio se não</string>
|
||||
<string name="online_routing_example_hint">O URL com todos os parâmetros parecerá-se assim:</string>
|
||||
<string name="test_route_calculation">Cálculo da rota de teste</string>
|
||||
<string name="online_routing_example_hint">O URL com todos os parâmetros será assim:</string>
|
||||
<string name="test_route_calculation">Testar cálculo de rota</string>
|
||||
<string name="routing_engine_vehicle_type_driving">Condução</string>
|
||||
<string name="routing_engine_vehicle_type_foot">Pé</string>
|
||||
<string name="routing_engine_vehicle_type_foot">A pé</string>
|
||||
<string name="routing_engine_vehicle_type_bike">Bicicleta</string>
|
||||
<string name="routing_engine_vehicle_type_car">Carro</string>
|
||||
<string name="message_error_recheck_parameters">Erro, verifique novamente os parâmetros</string>
|
||||
|
@ -4021,7 +4021,7 @@
|
|||
<string name="last_time_checked">Última verificação: %s</string>
|
||||
<string name="update_frequency">Frequência da atualização</string>
|
||||
<string name="app_restart_required">Necessário reiniciar a aplicação para aplicar algumas configurações.</string>
|
||||
<string name="trip_recording_logging_interval_info">Período de tempo do intervalo de registo em que o OsmAnd perguntará pelos dados da posição atual.</string>
|
||||
<string name="trip_recording_logging_interval_info">Frequência em que o OsmAnd irá registar a localização caso o sinal GPS esteja disponível.</string>
|
||||
<string name="no_purchases">Não tem compras</string>
|
||||
<string name="contact_support_description">Se tiver alguma dúvida, contacte-nos em %1$s.</string>
|
||||
<string name="announcement_time_intervals">Intervalos de tempo e distância</string>
|
||||
|
@ -4039,7 +4039,7 @@
|
|||
<string name="routing_attr_allow_streams_name">Permitir ribeiros e valas</string>
|
||||
<string name="profile_type_osmand_string">Perfil OsmAnd</string>
|
||||
<string name="profile_type_user_string">Perfil do utilizador</string>
|
||||
<string name="routing_attr_allow_intermittent_description">Permitir vias aquáticas intermitentes</string>
|
||||
<string name="routing_attr_allow_intermittent_description">Permitir cursos de água intermitentes</string>
|
||||
<string name="routing_engine_vehicle_type_racingbike">Bicicleta de corrida</string>
|
||||
<string name="routing_engine_vehicle_type_mtb">BTT</string>
|
||||
<string name="segments_count">Segmento %1$d</string>
|
||||
|
@ -4075,15 +4075,15 @@
|
|||
<string name="specify_color_for_map_mode">Especificar cor para o modo mapa: %1$s.</string>
|
||||
<string name="new_device_account">Novo dispositivo / nova conta</string>
|
||||
<string name="troubleshooting">Resolução de problemas</string>
|
||||
<string name="annual_subscription">Assinatura anual</string>
|
||||
<string name="monthly_subscription">Assinatura mensal</string>
|
||||
<string name="three_months_subscription">Assinatura de 3 meses</string>
|
||||
<string name="annual_subscription">Subscrição anual</string>
|
||||
<string name="monthly_subscription">Subscrição mensal</string>
|
||||
<string name="three_months_subscription">Subscrição de 3 meses</string>
|
||||
<string name="next_billing_date">Próxima faturação: %1$s</string>
|
||||
<string name="in_grace_period">Em período experimental</string>
|
||||
<string name="on_hold">Em espera</string>
|
||||
<string name="routing_attr_allow_intermittent_name">Permitir hidrovias sazonais</string>
|
||||
<string name="routing_attr_allow_intermittent_name">Permitir cursos de água sazonais</string>
|
||||
<string name="osmand_live_cancelled">Cancelada</string>
|
||||
<string name="renew_subscription">Renovar assinatura</string>
|
||||
<string name="renew_subscription">Renovar subscrição</string>
|
||||
<string name="expired">Expirou</string>
|
||||
<string name="exit_number">Número da saída</string>
|
||||
<string name="announce_when_exceeded">Anunciar quando ultrapassado</string>
|
||||
|
|
|
@ -4073,7 +4073,7 @@
|
|||
<string name="update_all_maps_added">Обновить все карты, добавленные в %1$s\?</string>
|
||||
<string name="customize_route_line">Настройка линии маршрута</string>
|
||||
<string name="shared_string_route_line">Линия маршрута</string>
|
||||
<string name="route_line_use_map_style_appearance">Линия маршрута будет использовать %1$s, указанный в выбранном стиле карты: %2$s.</string>
|
||||
<string name="route_line_use_map_style_appearance">Линия маршрута будет использовать %1$s из выбранного стиля карты: %2$s.</string>
|
||||
<string name="specify_color_for_map_mode">Укажите цвет для режима карты: %1$s.</string>
|
||||
<string name="no_purchases">У вас нет покупок</string>
|
||||
<string name="new_device_account">Новое устройство / новый аккаунт</string>
|
||||
|
|
|
@ -3894,4 +3894,36 @@
|
|||
<string name="poi_local_ref">Riferimentu locale</string>
|
||||
<string name="poi_geodesist">Geodesista</string>
|
||||
<string name="poi_conference_centre">Tzentru pro cunferèntzias</string>
|
||||
<string name="poi_wakeboarding">Wakeboard</string>
|
||||
<string name="poi_ultimate">Ultimate</string>
|
||||
<string name="poi_speedway">Pista pro mototziclismu</string>
|
||||
<string name="poi_horseshoes">Tiru de ferros de caddu</string>
|
||||
<string name="poi_cycle_polo">Polo in bitzicleta</string>
|
||||
<string name="poi_curling">Curling</string>
|
||||
<string name="poi_crossfit">Crossfit</string>
|
||||
<string name="poi_cockfighting">Lutas de puddos</string>
|
||||
<string name="poi_cliff_diving">Imbèrghidas dae sos iscameddos</string>
|
||||
<string name="poi_bobsleigh">Bob</string>
|
||||
<string name="poi_biathlon">Biathlon</string>
|
||||
<string name="poi_water_ski">Iscì de abba</string>
|
||||
<string name="poi_water_polo">Polo de abba</string>
|
||||
<string name="poi_zurkhaneh_sport">Zurkhaneh</string>
|
||||
<string name="poi_wrestling">Luta</string>
|
||||
<string name="poi_weightlifting">Artziada de pesos</string>
|
||||
<string name="poi_office_diplomatic">Ufìtziu diplomàticu</string>
|
||||
<string name="poi_kickboxing">Kickboxing</string>
|
||||
<string name="poi_fencing">Ischerma</string>
|
||||
<string name="poi_bullfighting">Corrida</string>
|
||||
<string name="poi_aikido">Aikido</string>
|
||||
<string name="poi_taekwondo">Taekwondo</string>
|
||||
<string name="poi_table_soccer">Biliardinu</string>
|
||||
<string name="poi_sumo">Sumo</string>
|
||||
<string name="poi_snooker">Snooker</string>
|
||||
<string name="poi_shot_put">Tiru de su pesu</string>
|
||||
<string name="poi_pilates">Pilates</string>
|
||||
<string name="poi_jiu_jitsu">Jiu-jitsu</string>
|
||||
<string name="poi_karate">Karatè</string>
|
||||
<string name="poi_hoops">Canisteddos</string>
|
||||
<string name="poi_camp_pitch">Pratzola de acampamentu</string>
|
||||
<string name="poi_bay_filter">Casta de baia</string>
|
||||
</resources>
|
|
@ -1769,7 +1769,7 @@
|
|||
<string name="shared_string_commit">Imbia</string>
|
||||
<string name="osm_edit_modified_poi">PDI OSM modificadu</string>
|
||||
<string name="osm_edit_deleted_poi">PDI OSM iscantzelladu</string>
|
||||
<string name="copied_to_clipboard">Copiadu in sos apuntos</string>
|
||||
<string name="copied_to_clipboard">Copiadu in punta de billete</string>
|
||||
<string name="osm_save_offline">Sarva in sa memòria (impreu chene lìnia)</string>
|
||||
<string name="rendering_attr_currentTrackColor_description">Colore GPX</string>
|
||||
<string name="rendering_attr_currentTrackWidth_description">Largària GPX</string>
|
||||
|
@ -4046,4 +4046,41 @@
|
|||
<string name="lost_data_warning">Totu sos datos non sarvados s\'ant a pèrdere.</string>
|
||||
<string name="show_start_dialog">Ammustra su diàlogu de incumintzu</string>
|
||||
<string name="specify_color_for_map_mode">Dislinda unu colore pro sa modalidade pro sa mapa: %1$s.</string>
|
||||
<string name="release_4_0_beta">• Agiornamentos de OsmAnd Live (OSmAnd in direta) tramudados cara a \"Iscarrigamentos > Agiornamentos\"
|
||||
\n
|
||||
\n • Sas rastas como si podent colorizare pro artària, lestresa, o pendèntzia.
|
||||
\n
|
||||
\n • Annanghidura de s\'optzione pro mudare s\'aparèntzia de sa lìnia de navigatzione de s\'àndala
|
||||
\n
|
||||
\n • Agiornamentu de sa ventanedda de diàlogu \"Registratzione de su biàgiu\"
|
||||
\n
|
||||
\n</string>
|
||||
<string name="in_grace_period">In perìodu de gràtzia</string>
|
||||
<string name="osmand_live">OsmAnd in direta</string>
|
||||
<string name="app_mode_gap">Divàriu</string>
|
||||
<string name="trip_recording_logging_interval_info">S\'intervallu de registratzione impostat sa frecuèntzia cun sa cale OsmAnd at a pedire sos datos de sa positzione atuale.</string>
|
||||
<string name="trip_recording_show_start_dialog_setting">Si est disabilitadu sa registratzione at a incumintzare a pustis de su tocu in subra de su widget o de s\'elementu de su menù, brinchende sa ventanedda de diàlogu de cunfirma.</string>
|
||||
<string name="customize_route_line">Personaliza sa lìnia de s\'àndala</string>
|
||||
<string name="shared_string_route_line">Lìnia de s\'àndala</string>
|
||||
<string name="route_line_use_map_style_appearance">Pro sa lìnia de s\'àndala s\'at a impreare su %1$s dislindadu in s\'istile de sa mapa ischertadu: %2$s.</string>
|
||||
<string name="no_purchases">Non tenes còmpora peruna</string>
|
||||
<string name="new_device_account">Dispositivu nou / contu nou</string>
|
||||
<string name="contact_support_description">Si tenes preguntas cuntata·nos a su %1$s.</string>
|
||||
<string name="empty_purchases_description">Si sa còmpora tua non benit ammustrada inoghe toca in “%1$s” o cuntata su grupu de suportu nostru.</string>
|
||||
<string name="contact_support">Cuntata su suportu</string>
|
||||
<string name="troubleshooting">Risolutzione de problemas</string>
|
||||
<string name="troubleshooting_description">Si tenes problemas cun sa còmpora sighi custu ligàmene, pro praghere.</string>
|
||||
<string name="annual_subscription">Abbonamentu annuale</string>
|
||||
<string name="monthly_subscription">Abbonamentu mensile</string>
|
||||
<string name="three_months_subscription">Abbonamentu trimestrale</string>
|
||||
<string name="next_billing_date">Data de addèbitu imbeniente: %1$s</string>
|
||||
<string name="osmand_live_cancelled">Annulladu</string>
|
||||
<string name="renew_subscription">Rinnova s\'abbonamentu</string>
|
||||
<string name="on_hold">In isetu</string>
|
||||
<string name="expired">Iscadidu</string>
|
||||
<string name="update_all_maps_added">Agiornare totu sas mapas annànghidas a %1$s\?</string>
|
||||
<string name="exit_number">Nùmeru de essida</string>
|
||||
<string name="announce_when_exceeded">Avisa in casu de barigamentu</string>
|
||||
<string name="user_points">Puntos de s\'impreadore</string>
|
||||
<string name="output">Essida</string>
|
||||
</resources>
|
|
@ -1494,7 +1494,7 @@
|
|||
<string name="local_osm_changes_upload_all_confirm">Naozaj chcete odoslať %1$d zmien do OSM\?</string>
|
||||
<string name="confirmation_to_clear_history">Vymazať históriu?</string>
|
||||
<string name="osmand_parking_overdue">prekročený čas</string>
|
||||
<string name="confirm_usage_speed_cameras">Vo viacerých krajinách (ako Nemecko, Francúzsko, Taliansko) je použitie varovaní pred rýchlostnými radarmi/kamerami zakázané zákonom (nelegálne). OsmAnd nepreberá žiadnu zodpovednosť ak porušíte zákon. Stlačte \"Áno\" len ak ste na to oprávnený použiť túto funkciu.</string>
|
||||
<string name="confirm_usage_speed_cameras">Vo viacerých krajinách (ako Nemecko, Francúzsko, Taliansko) je použitie varovaní pred rýchlostnými radarmi/kamerami zakázané zákonom. OsmAnd nepreberá žiadnu zodpovednosť ak porušíte zákon. Stlačte \"Áno\" len ak ste oprávnený použiť túto funkciu.</string>
|
||||
<string name="welmode_download_maps">Stiahnuť mapy</string>
|
||||
<string name="welcome_select_region">Vyberte svoj región, aby bolo možné správne nastaviť dopravné predpisy:</string>
|
||||
<string name="welcome_text">OsmAnd poskytuje celosvetové offline mapy a offline navigáciu.</string>
|
||||
|
@ -2729,7 +2729,7 @@
|
|||
<string name="wikipedia_offline">Wikipédia offline</string>
|
||||
<string name="contour_lines_hillshade_maps">Vrstevnice & tieňované svahy</string>
|
||||
<string name="unlock_all_features">Odomknite všetky funkcie OsmAnd</string>
|
||||
<string name="download_wikipedia_description">Stiahnite články Wikipédie pre %1$s pre ich čítanie offline.</string>
|
||||
<string name="download_wikipedia_description">Stiahnite články Wikipédie pre %1$s na ich čítanie offline.</string>
|
||||
<string name="download_wikipedia_label">Stiahnuť údaje Wikipédie</string>
|
||||
<string name="open_in_browser_wiki">Otvoriť článok online</string>
|
||||
<string name="open_in_browser_wiki_description">Zobraziť článok vo webovom prehliadači.</string>
|
||||
|
|
|
@ -4381,4 +4381,8 @@
|
|||
|
||||
<string name="poi_office_diplomatic">Diplomatic office</string>
|
||||
|
||||
<string name="poi_plateau">Plateau</string>
|
||||
|
||||
<string name="poi_club_social">Social club</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -18,11 +18,12 @@ import net.osmand.plus.OsmandApplication;
|
|||
import net.osmand.plus.OsmandPlugin;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppPurchase;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppPurchase.PurchaseState;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription.SubscriptionState;
|
||||
import net.osmand.plus.inapp.InAppPurchases.PurchaseInfo;
|
||||
import net.osmand.plus.inapp.InAppPurchasesImpl.InAppPurchaseLiveUpdatesOldSubscription;
|
||||
import net.osmand.plus.inapp.util.BillingManager;
|
||||
import net.osmand.plus.settings.backend.CommonPreference;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.plus.srtmplugin.SRTMPlugin;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
@ -174,7 +175,8 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
});
|
||||
}
|
||||
for (Purchase purchase : purchases) {
|
||||
if (!purchase.isAcknowledged()) {
|
||||
InAppSubscription subscription = getLiveUpdates().getSubscriptionBySku(purchase.getSku());
|
||||
if (!purchase.isAcknowledged() || (subscription != null && !subscription.isPurchased())) {
|
||||
onPurchaseFinished(purchase);
|
||||
}
|
||||
}
|
||||
|
@ -310,8 +312,8 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
}
|
||||
}
|
||||
}
|
||||
for (Entry<String, SubscriptionState> entry : subscriptionStateMap.entrySet()) {
|
||||
SubscriptionState state = entry.getValue();
|
||||
for (Entry<String, SubscriptionStateHolder> entry : subscriptionStateMap.entrySet()) {
|
||||
SubscriptionState state = entry.getValue().state;
|
||||
if (state == SubscriptionState.PAUSED || state == SubscriptionState.ON_HOLD) {
|
||||
String sku = entry.getKey();
|
||||
if (!result.contains(sku)) {
|
||||
|
@ -492,15 +494,17 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
}
|
||||
|
||||
private PurchaseInfo getPurchaseInfo(Purchase purchase) {
|
||||
return new PurchaseInfo(purchase.getSku(), purchase.getOrderId(), purchase.getPurchaseToken());
|
||||
return new PurchaseInfo(purchase.getSku(), purchase.getOrderId(), purchase.getPurchaseToken(),
|
||||
purchase.getPurchaseTime(), purchase.getPurchaseState(), purchase.isAcknowledged(), purchase.isAutoRenewing());
|
||||
}
|
||||
|
||||
private void fetchInAppPurchase(@NonNull InAppPurchase inAppPurchase, @NonNull SkuDetails skuDetails, @Nullable Purchase purchase) {
|
||||
if (purchase != null) {
|
||||
inAppPurchase.setPurchaseState(InAppPurchase.PurchaseState.PURCHASED);
|
||||
inAppPurchase.setPurchaseTime(purchase.getPurchaseTime());
|
||||
inAppPurchase.setPurchaseState(PurchaseState.PURCHASED);
|
||||
inAppPurchase.setPurchaseInfo(ctx, getPurchaseInfo(purchase));
|
||||
} else {
|
||||
inAppPurchase.setPurchaseState(InAppPurchase.PurchaseState.NOT_PURCHASED);
|
||||
inAppPurchase.setPurchaseState(PurchaseState.NOT_PURCHASED);
|
||||
inAppPurchase.restorePurchaseInfo(ctx);
|
||||
}
|
||||
inAppPurchase.setPrice(skuDetails.getPrice());
|
||||
inAppPurchase.setPriceCurrencyCode(skuDetails.getPriceCurrencyCode());
|
||||
|
@ -519,18 +523,17 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
}
|
||||
if (inAppPurchase instanceof InAppSubscription) {
|
||||
InAppSubscription s = (InAppSubscription) inAppPurchase;
|
||||
|
||||
SubscriptionState state = subscriptionStateMap.get(inAppPurchase.getSku());
|
||||
s.setState(state == null ? SubscriptionState.UNDEFINED : state);
|
||||
CommonPreference<String> statePref = ctx.getSettings().registerStringPreference(
|
||||
s.getSku() + "_state", SubscriptionState.UNDEFINED.getStateStr()).makeGlobal();
|
||||
s.setPrevState(SubscriptionState.getByStateStr(statePref.get()));
|
||||
statePref.set(s.getState().getStateStr());
|
||||
s.restoreState(ctx);
|
||||
s.restoreExpireTime(ctx);
|
||||
SubscriptionStateHolder stateHolder = subscriptionStateMap.get(s.getSku());
|
||||
if (stateHolder != null) {
|
||||
s.setState(ctx, stateHolder.state);
|
||||
s.setExpireTime(ctx, stateHolder.expireTime);
|
||||
}
|
||||
if (s.getState().isGone() && s.hasStateChanged()) {
|
||||
ctx.getSettings().LIVE_UPDATES_EXPIRED_FIRST_DLG_SHOWN_TIME.set(0L);
|
||||
ctx.getSettings().LIVE_UPDATES_EXPIRED_SECOND_DLG_SHOWN_TIME.set(0L);
|
||||
}
|
||||
|
||||
String introductoryPrice = skuDetails.getIntroductoryPrice();
|
||||
String introductoryPricePeriod = skuDetails.getIntroductoryPricePeriod();
|
||||
int introductoryPriceCycles = skuDetails.getIntroductoryPriceCycles();
|
||||
|
|
|
@ -29,6 +29,7 @@ import net.osmand.plus.OsmandApplication;
|
|||
import net.osmand.plus.inapp.InAppPurchases.InAppPurchase;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscriptionIntroductoryInfo;
|
||||
import net.osmand.plus.inapp.InAppPurchases.PurchaseInfo;
|
||||
import net.osmand.plus.inapp.InAppPurchasesImpl.InAppPurchaseLiveUpdatesOldSubscription;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
@ -48,7 +49,7 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
|
||||
private List<ProductInfo> productInfos;
|
||||
private OwnedPurchasesResult ownedSubscriptions;
|
||||
private List<OwnedPurchasesResult> ownedInApps = new ArrayList<>();
|
||||
private final List<OwnedPurchasesResult> ownedInApps = new ArrayList<>();
|
||||
|
||||
public InAppPurchaseHelperImpl(OsmandApplication ctx) {
|
||||
super(ctx);
|
||||
|
@ -233,15 +234,18 @@ public class InAppPurchaseHelperImpl extends InAppPurchaseHelper {
|
|||
}
|
||||
|
||||
private PurchaseInfo getPurchaseInfo(InAppPurchaseData purchase) {
|
||||
return new PurchaseInfo(purchase.getProductId(), purchase.getSubscriptionId(), purchase.getPurchaseToken());
|
||||
return new PurchaseInfo(purchase.getProductId(), purchase.getSubscriptionId(), purchase.getPurchaseToken(),
|
||||
purchase.getPurchaseTime(), purchase.getPurchaseState(), true, purchase.isAutoRenewing());
|
||||
}
|
||||
|
||||
private void fetchInAppPurchase(@NonNull InAppPurchase inAppPurchase, @NonNull ProductInfo productInfo, @Nullable InAppPurchaseData purchaseData) {
|
||||
if (purchaseData != null) {
|
||||
inAppPurchase.setPurchaseState(InAppPurchase.PurchaseState.PURCHASED);
|
||||
inAppPurchase.setPurchaseTime(purchaseData.getPurchaseTime());
|
||||
inAppPurchase.setPurchaseInfo(ctx, getPurchaseInfo(purchaseData));
|
||||
} else {
|
||||
inAppPurchase.setPurchaseState(InAppPurchase.PurchaseState.NOT_PURCHASED);
|
||||
inAppPurchase.restorePurchaseInfo(ctx);
|
||||
}
|
||||
inAppPurchase.setPrice(productInfo.getPrice());
|
||||
inAppPurchase.setPriceCurrencyCode(productInfo.getCurrency());
|
||||
|
|
|
@ -21,6 +21,7 @@ import net.osmand.plus.inapp.InAppPurchases.InAppPurchase.PurchaseState;
|
|||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscription.SubscriptionState;
|
||||
import net.osmand.plus.inapp.InAppPurchases.InAppSubscriptionList;
|
||||
import net.osmand.plus.inapp.InAppPurchases.PurchaseInfo;
|
||||
import net.osmand.plus.liveupdates.CountrySelectionFragment;
|
||||
import net.osmand.plus.liveupdates.CountrySelectionFragment.CountryItem;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
|
@ -52,7 +53,7 @@ public abstract class InAppPurchaseHelper {
|
|||
protected InAppPurchases purchases;
|
||||
protected long lastValidationCheckTime;
|
||||
protected boolean inventoryRequested;
|
||||
protected Map<String, SubscriptionState> subscriptionStateMap = new HashMap<>();
|
||||
protected Map<String, SubscriptionStateHolder> subscriptionStateMap = new HashMap<>();
|
||||
|
||||
private static final long PURCHASE_VALIDATION_PERIOD_MSEC = 1000 * 60 * 60 * 24; // daily
|
||||
|
||||
|
@ -85,6 +86,11 @@ public abstract class InAppPurchaseHelper {
|
|||
void onFail();
|
||||
}
|
||||
|
||||
static class SubscriptionStateHolder {
|
||||
SubscriptionState state = SubscriptionState.UNDEFINED;
|
||||
long expireTime = 0;
|
||||
}
|
||||
|
||||
public enum InAppPurchaseTaskType {
|
||||
REQUEST_INVENTORY,
|
||||
PURCHASE_FULL_VERSION,
|
||||
|
@ -112,30 +118,6 @@ public abstract class InAppPurchaseHelper {
|
|||
void onCommandDone(@NonNull InAppCommand command);
|
||||
}
|
||||
|
||||
public static class PurchaseInfo {
|
||||
private String sku;
|
||||
private String orderId;
|
||||
private String purchaseToken;
|
||||
|
||||
public PurchaseInfo(String sku, String orderId, String purchaseToken) {
|
||||
this.sku = sku;
|
||||
this.orderId = orderId;
|
||||
this.purchaseToken = purchaseToken;
|
||||
}
|
||||
|
||||
public String getSku() {
|
||||
return sku;
|
||||
}
|
||||
|
||||
public String getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
public String getPurchaseToken() {
|
||||
return purchaseToken;
|
||||
}
|
||||
}
|
||||
|
||||
public String getToken() {
|
||||
return token;
|
||||
}
|
||||
|
@ -193,6 +175,11 @@ public abstract class InAppPurchaseHelper {
|
|||
return purchases.getPurchasedMonthlyLiveUpdates();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public InAppSubscription getAnyPurchasedSubscription() {
|
||||
return purchases.getAnyPurchasedSubscription();
|
||||
}
|
||||
|
||||
public InAppPurchaseHelper(OsmandApplication ctx) {
|
||||
this.ctx = ctx;
|
||||
isDeveloperVersion = Version.isDeveloperVersion(ctx);
|
||||
|
@ -202,8 +189,7 @@ public abstract class InAppPurchaseHelper {
|
|||
public List<InAppSubscription> getEverMadeSubscriptions() {
|
||||
List<InAppSubscription> subscriptions = new ArrayList<>();
|
||||
for (InAppSubscription subscription : getLiveUpdates().getVisibleSubscriptions()) {
|
||||
SubscriptionState state = subscription.getState();
|
||||
if (state != SubscriptionState.UNDEFINED) {
|
||||
if (subscription.isPurchased() || subscription.getState() != SubscriptionState.UNDEFINED) {
|
||||
subscriptions.add(subscription);
|
||||
}
|
||||
}
|
||||
|
@ -448,15 +434,22 @@ public abstract class InAppPurchaseHelper {
|
|||
}
|
||||
if (subscriptionsStateJson != null) {
|
||||
inventoryRequested = true;
|
||||
Map<String, SubscriptionState> subscriptionStateMap = new HashMap<>();
|
||||
Map<String, SubscriptionStateHolder> subscriptionStateMap = new HashMap<>();
|
||||
try {
|
||||
JSONArray subArrJson = new JSONArray(subscriptionsStateJson);
|
||||
for (int i = 0; i < subArrJson.length(); i++) {
|
||||
JSONObject subObj = subArrJson.getJSONObject(i);
|
||||
String sku = subObj.getString("sku");
|
||||
String state = subObj.getString("state");
|
||||
long expireTime = 0;
|
||||
if (subObj.has("expire_time")) {
|
||||
expireTime = subObj.getLong("expire_time");
|
||||
}
|
||||
if (!Algorithms.isEmpty(sku) && !Algorithms.isEmpty(state)) {
|
||||
subscriptionStateMap.put(sku, SubscriptionState.getByStateStr(state));
|
||||
SubscriptionStateHolder stateHolder = new SubscriptionStateHolder();
|
||||
stateHolder.state = SubscriptionState.getByStateStr(state);
|
||||
stateHolder.expireTime = expireTime;
|
||||
subscriptionStateMap.put(sku, stateHolder);
|
||||
}
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
|
@ -500,12 +493,14 @@ public abstract class InAppPurchaseHelper {
|
|||
protected void onPurchaseDone(PurchaseInfo info) {
|
||||
logDebug("Purchase successful.");
|
||||
|
||||
InAppPurchase liveUpdatesPurchase = getLiveUpdates().getSubscriptionBySku(info.getSku());
|
||||
InAppSubscription liveUpdatesPurchase = getLiveUpdates().getSubscriptionBySku(info.getSku());
|
||||
if (liveUpdatesPurchase != null) {
|
||||
// bought live updates
|
||||
logDebug("Live updates subscription purchased.");
|
||||
final String sku = liveUpdatesPurchase.getSku();
|
||||
liveUpdatesPurchase.setPurchaseState(PurchaseState.PURCHASED);
|
||||
liveUpdatesPurchase.setPurchaseInfo(ctx, info);
|
||||
liveUpdatesPurchase.setState(ctx, SubscriptionState.UNDEFINED);
|
||||
sendTokens(Collections.singletonList(info), new OnRequestResultListener() {
|
||||
@Override
|
||||
public void onResult(String result) {
|
||||
|
@ -525,6 +520,7 @@ public abstract class InAppPurchaseHelper {
|
|||
} else if (info.getSku().equals(getFullVersion().getSku())) {
|
||||
// bought full version
|
||||
getFullVersion().setPurchaseState(PurchaseState.PURCHASED);
|
||||
getFullVersion().setPurchaseInfo(ctx, info);
|
||||
logDebug("Full version purchased.");
|
||||
showToast(ctx.getString(R.string.full_version_thanks));
|
||||
ctx.getSettings().FULL_VERSION_PURCHASED.set(true);
|
||||
|
@ -536,6 +532,7 @@ public abstract class InAppPurchaseHelper {
|
|||
} else if (info.getSku().equals(getDepthContours().getSku())) {
|
||||
// bought sea depth contours
|
||||
getDepthContours().setPurchaseState(PurchaseState.PURCHASED);
|
||||
getDepthContours().setPurchaseInfo(ctx, info);
|
||||
logDebug("Sea depth contours purchased.");
|
||||
showToast(ctx.getString(R.string.sea_depth_thanks));
|
||||
ctx.getSettings().DEPTH_CONTOURS_PURCHASED.set(true);
|
||||
|
@ -548,6 +545,7 @@ public abstract class InAppPurchaseHelper {
|
|||
} else if (info.getSku().equals(getContourLines().getSku())) {
|
||||
// bought contour lines
|
||||
getContourLines().setPurchaseState(PurchaseState.PURCHASED);
|
||||
getContourLines().setPurchaseInfo(ctx, info);
|
||||
logDebug("Contours lines purchased.");
|
||||
showToast(ctx.getString(R.string.contour_lines_thanks));
|
||||
ctx.getSettings().CONTOUR_LINES_PURCHASED.set(true);
|
||||
|
|
|
@ -7,33 +7,41 @@ import android.text.Spannable;
|
|||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.Period;
|
||||
import net.osmand.Period.PeriodUnit;
|
||||
import net.osmand.plus.OsmandApplication;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.helpers.FontCache;
|
||||
import net.osmand.plus.settings.backend.CommonPreference;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.plus.widgets.style.CustomTypefaceSpan;
|
||||
import net.osmand.util.Algorithms;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import androidx.annotation.ColorInt;
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
public abstract class InAppPurchases {
|
||||
|
||||
protected InAppPurchase fullVersion;
|
||||
|
@ -47,6 +55,10 @@ public abstract class InAppPurchases {
|
|||
protected InAppPurchases(OsmandApplication ctx) {
|
||||
}
|
||||
|
||||
private static OsmandSettings getSettings(@NonNull Context ctx) {
|
||||
return ((OsmandApplication) ctx.getApplicationContext()).getSettings();
|
||||
}
|
||||
|
||||
public InAppPurchase getFullVersion() {
|
||||
return fullVersion;
|
||||
}
|
||||
|
@ -83,6 +95,17 @@ public abstract class InAppPurchases {
|
|||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public InAppSubscription getAnyPurchasedSubscription() {
|
||||
List<InAppSubscription> allSubscriptions = liveUpdates.getAllSubscriptions();
|
||||
for (InAppSubscription subscription : allSubscriptions) {
|
||||
if (subscription.isAnyPurchased()) {
|
||||
return subscription;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public InAppSubscriptionList getLiveUpdates() {
|
||||
return liveUpdates;
|
||||
}
|
||||
|
@ -231,7 +254,7 @@ public abstract class InAppPurchases {
|
|||
private double priceValue;
|
||||
private String priceCurrencyCode;
|
||||
private PurchaseState purchaseState = PurchaseState.UNKNOWN;
|
||||
private long purchaseTime;
|
||||
private PurchaseInfo purchaseInfo;
|
||||
|
||||
double monthlyPriceValue;
|
||||
boolean donationSupported = false;
|
||||
|
@ -253,6 +276,37 @@ public abstract class InAppPurchases {
|
|||
return sku;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getOrderId() {
|
||||
return purchaseInfo != null ? purchaseInfo.getOrderId() : null;
|
||||
}
|
||||
|
||||
private CommonPreference<String> getPurchaseInfoPref(@NonNull Context ctx) {
|
||||
return getSettings(ctx).registerStringPreference(sku + "_purchase_info", "").makeGlobal();
|
||||
}
|
||||
|
||||
public boolean storePurchaseInfo(@NonNull Context ctx) {
|
||||
PurchaseInfo purchaseInfo = this.purchaseInfo;
|
||||
if (purchaseInfo != null) {
|
||||
getPurchaseInfoPref(ctx).set(purchaseInfo.toJson());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean restorePurchaseInfo(@NonNull Context ctx) {
|
||||
String json = getPurchaseInfoPref(ctx).get();
|
||||
if (!Algorithms.isEmpty(json)) {
|
||||
try {
|
||||
purchaseInfo = new PurchaseInfo(json);
|
||||
} catch (JSONException e) {
|
||||
// ignore
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getPrice(Context ctx) {
|
||||
if (!Algorithms.isEmpty(price)) {
|
||||
return price;
|
||||
|
@ -266,11 +320,16 @@ public abstract class InAppPurchases {
|
|||
}
|
||||
|
||||
public long getPurchaseTime() {
|
||||
return purchaseTime;
|
||||
return purchaseInfo != null ? purchaseInfo.getPurchaseTime() : 0;
|
||||
}
|
||||
|
||||
public void setPurchaseTime(long purchaseTime) {
|
||||
this.purchaseTime = purchaseTime;
|
||||
public PurchaseInfo getPurchaseInfo() {
|
||||
return purchaseInfo;
|
||||
}
|
||||
|
||||
void setPurchaseInfo(@NonNull Context ctx, PurchaseInfo purchaseInfo) {
|
||||
this.purchaseInfo = purchaseInfo;
|
||||
storePurchaseInfo(ctx);
|
||||
}
|
||||
|
||||
public String getDefaultPrice(Context ctx) {
|
||||
|
@ -571,35 +630,33 @@ public abstract class InAppPurchases {
|
|||
|
||||
public static abstract class InAppSubscription extends InAppPurchase {
|
||||
|
||||
private Map<String, InAppSubscription> upgrades = new ConcurrentHashMap<>();
|
||||
private String skuNoVersion;
|
||||
private final Map<String, InAppSubscription> upgrades = new ConcurrentHashMap<>();
|
||||
private final String skuNoVersion;
|
||||
private String subscriptionPeriodString;
|
||||
private Period subscriptionPeriod;
|
||||
private boolean upgrade = false;
|
||||
private SubscriptionState state = SubscriptionState.UNDEFINED;
|
||||
private SubscriptionState prevState = SubscriptionState.UNDEFINED;
|
||||
private SubscriptionState previousState = SubscriptionState.UNDEFINED;
|
||||
private long expireTime = 0;
|
||||
|
||||
private InAppSubscriptionIntroductoryInfo introductoryInfo;
|
||||
|
||||
public enum SubscriptionState {
|
||||
UNDEFINED("undefined", 0, 0),
|
||||
ACTIVE("active", R.string.osm_live_active, R.drawable.bg_osmand_live_active),
|
||||
CANCELLED("cancelled", R.string.osmand_live_cancelled, R.drawable.bg_osmand_live_cancelled),
|
||||
IN_GRACE_PERIOD("in_grace_period", R.string.in_grace_period, R.drawable.bg_osmand_live_active),
|
||||
ON_HOLD("on_hold", R.string.on_hold, R.drawable.bg_osmand_live_cancelled),
|
||||
PAUSED("paused", R.string.shared_string_paused, R.drawable.bg_osmand_live_cancelled),
|
||||
EXPIRED("expired", R.string.expired, R.drawable.bg_osmand_live_cancelled);
|
||||
UNDEFINED("undefined", R.string.shared_string_undefined),
|
||||
ACTIVE("active", R.string.osm_live_active),
|
||||
CANCELLED("cancelled", R.string.osmand_live_cancelled),
|
||||
IN_GRACE_PERIOD("in_grace_period", R.string.in_grace_period),
|
||||
ON_HOLD("on_hold", R.string.on_hold),
|
||||
PAUSED("paused", R.string.shared_string_paused),
|
||||
EXPIRED("expired", R.string.expired);
|
||||
|
||||
private final String stateStr;
|
||||
@StringRes
|
||||
private final int stringRes;
|
||||
@DrawableRes
|
||||
private final int backgroundRes;
|
||||
|
||||
SubscriptionState(@NonNull String stateStr, @StringRes int stringRes, @DrawableRes int backgroundRes) {
|
||||
SubscriptionState(@NonNull String stateStr, @StringRes int stringRes) {
|
||||
this.stateStr = stateStr;
|
||||
this.stringRes = stringRes;
|
||||
this.backgroundRes = backgroundRes;
|
||||
}
|
||||
|
||||
public String getStateStr() {
|
||||
|
@ -611,11 +668,6 @@ public abstract class InAppPurchases {
|
|||
return stringRes;
|
||||
}
|
||||
|
||||
@DrawableRes
|
||||
public int getBackgroundRes() {
|
||||
return backgroundRes;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static SubscriptionState getByStateStr(@NonNull String stateStr) {
|
||||
for (SubscriptionState state : SubscriptionState.values()) {
|
||||
|
@ -678,21 +730,76 @@ public abstract class InAppPurchases {
|
|||
return state;
|
||||
}
|
||||
|
||||
public void setState(@NonNull SubscriptionState state) {
|
||||
public void setState(@NonNull Context ctx, @NonNull SubscriptionState state) {
|
||||
this.state = state;
|
||||
storeState(ctx, state);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public SubscriptionState getPrevState() {
|
||||
return prevState;
|
||||
}
|
||||
|
||||
public void setPrevState(@NonNull SubscriptionState prevState) {
|
||||
this.prevState = prevState;
|
||||
public SubscriptionState getPreviousState() {
|
||||
return previousState;
|
||||
}
|
||||
|
||||
public boolean hasStateChanged() {
|
||||
return state != prevState;
|
||||
return state != previousState;
|
||||
}
|
||||
|
||||
private CommonPreference<String> getStatePref(@NonNull Context ctx) {
|
||||
return getSettings(ctx).registerStringPreference(getSku() + "_state", "").makeGlobal();
|
||||
}
|
||||
|
||||
void storeState(@NonNull Context ctx, @NonNull SubscriptionState state) {
|
||||
getStatePref(ctx).set(state.getStateStr());
|
||||
}
|
||||
|
||||
boolean restoreState(@NonNull Context ctx) {
|
||||
String stateStr = getStatePref(ctx).get();
|
||||
if (!Algorithms.isEmpty(stateStr)) {
|
||||
SubscriptionState state = SubscriptionState.getByStateStr(stateStr);
|
||||
this.previousState = state;
|
||||
this.state = state;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public long getCalculatedExpiredTime() {
|
||||
long purchaseTime = getPurchaseTime();
|
||||
Period period = getSubscriptionPeriod();
|
||||
if (purchaseTime == 0 || period == null || period.getUnit() == null) {
|
||||
return 0;
|
||||
}
|
||||
Date date = new Date(purchaseTime);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.add(period.getUnit().getCalendarIdx(), period.getNumberOfUnits());
|
||||
return calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
public long getExpireTime() {
|
||||
return expireTime;
|
||||
}
|
||||
|
||||
public void setExpireTime(@NonNull Context ctx, long expireTime) {
|
||||
this.expireTime = expireTime;
|
||||
storeExpireTime(ctx, expireTime);
|
||||
}
|
||||
|
||||
private CommonPreference<Long> getExpireTimePref(@NonNull Context ctx) {
|
||||
return getSettings(ctx).registerLongPreference(getSku() + "_expire_time", 0L).makeGlobal();
|
||||
}
|
||||
|
||||
boolean restoreExpireTime(@NonNull Context ctx) {
|
||||
Long expireTime = getExpireTimePref(ctx).get();
|
||||
if (expireTime != null) {
|
||||
this.expireTime = expireTime;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void storeExpireTime(@NonNull Context ctx, long expireTime) {
|
||||
getExpireTimePref(ctx).set(expireTime);
|
||||
}
|
||||
|
||||
public boolean isAnyPurchased() {
|
||||
|
@ -999,5 +1106,95 @@ public abstract class InAppPurchases {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static class PurchaseInfo {
|
||||
private String sku;
|
||||
private String orderId;
|
||||
private String purchaseToken;
|
||||
private long purchaseTime;
|
||||
private int purchaseState;
|
||||
private boolean acknowledged;
|
||||
private boolean autoRenewing;
|
||||
|
||||
PurchaseInfo(String sku, String orderId, String purchaseToken, long purchaseTime,
|
||||
int purchaseState, boolean acknowledged, boolean autoRenewing) {
|
||||
this.sku = sku;
|
||||
this.orderId = orderId;
|
||||
this.purchaseToken = purchaseToken;
|
||||
this.purchaseTime = purchaseTime;
|
||||
this.purchaseState = purchaseState;
|
||||
this.acknowledged = acknowledged;
|
||||
this.autoRenewing = autoRenewing;
|
||||
}
|
||||
|
||||
PurchaseInfo(@NonNull String json) throws JSONException {
|
||||
parseJson(json);
|
||||
}
|
||||
|
||||
public String getSku() {
|
||||
return sku;
|
||||
}
|
||||
|
||||
public String getOrderId() {
|
||||
return orderId;
|
||||
}
|
||||
|
||||
public String getPurchaseToken() {
|
||||
return purchaseToken;
|
||||
}
|
||||
|
||||
public long getPurchaseTime() {
|
||||
return purchaseTime;
|
||||
}
|
||||
|
||||
public int getPurchaseState() {
|
||||
return purchaseState;
|
||||
}
|
||||
|
||||
public boolean isAcknowledged() {
|
||||
return acknowledged;
|
||||
}
|
||||
|
||||
public boolean isAutoRenewing() {
|
||||
return autoRenewing;
|
||||
}
|
||||
|
||||
public String toJson() {
|
||||
Map<String, Object> jsonMap = new HashMap<>();
|
||||
jsonMap.put("sku", sku);
|
||||
jsonMap.put("orderId", orderId);
|
||||
jsonMap.put("purchaseToken", purchaseToken);
|
||||
jsonMap.put("purchaseTime", purchaseTime);
|
||||
jsonMap.put("purchaseState", purchaseState);
|
||||
jsonMap.put("acknowledged", acknowledged);
|
||||
jsonMap.put("autoRenewing", autoRenewing);
|
||||
return new JSONObject(jsonMap).toString();
|
||||
}
|
||||
|
||||
public void parseJson(@NonNull String json) throws JSONException {
|
||||
JSONObject jsonObj = new JSONObject(json);
|
||||
if (jsonObj.has("sku")) {
|
||||
this.sku = jsonObj.getString("sku");
|
||||
}
|
||||
if (jsonObj.has("orderId")) {
|
||||
this.orderId = jsonObj.getString("orderId");
|
||||
}
|
||||
if (jsonObj.has("purchaseToken")) {
|
||||
this.purchaseToken = jsonObj.getString("purchaseToken");
|
||||
}
|
||||
if (jsonObj.has("purchaseTime")) {
|
||||
this.purchaseTime = jsonObj.getLong("purchaseTime");
|
||||
}
|
||||
if (jsonObj.has("purchaseState")) {
|
||||
this.purchaseState = jsonObj.getInt("purchaseState");
|
||||
}
|
||||
if (jsonObj.has("acknowledged")) {
|
||||
this.acknowledged = jsonObj.getBoolean("acknowledged");
|
||||
}
|
||||
if (jsonObj.has("autoRenewing")) {
|
||||
this.autoRenewing = jsonObj.getBoolean("autoRenewing");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.view.ViewGroup;
|
|||
import android.widget.TextView;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.Period;
|
||||
import net.osmand.plus.R;
|
||||
import net.osmand.plus.UiUtilities;
|
||||
import net.osmand.plus.activities.MapActivity;
|
||||
|
@ -20,11 +19,10 @@ import net.osmand.plus.routepreparationmenu.cards.BaseCard;
|
|||
import net.osmand.util.Algorithms;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import androidx.annotation.DrawableRes;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class SubscriptionsListCard extends BaseCard {
|
||||
|
@ -60,7 +58,13 @@ public class SubscriptionsListCard extends BaseCard {
|
|||
for (int i = 0; i < subscriptions.size(); i++) {
|
||||
InAppSubscription subscription = subscriptions.get(i);
|
||||
SubscriptionState state = subscription.getState();
|
||||
boolean autoRenewed = state == SubscriptionState.ACTIVE || state == SubscriptionState.IN_GRACE_PERIOD;
|
||||
boolean autoRenewing = false;
|
||||
if (subscription.isPurchased() && subscription.getPurchaseInfo() != null) {
|
||||
autoRenewing = subscription.getPurchaseInfo().isAutoRenewing();
|
||||
state = SubscriptionState.ACTIVE;
|
||||
} else if (state != SubscriptionState.UNDEFINED) {
|
||||
autoRenewing = state == SubscriptionState.ACTIVE || state == SubscriptionState.IN_GRACE_PERIOD;
|
||||
}
|
||||
|
||||
View card = inflater.inflate(R.layout.subscription_layout, null, false);
|
||||
((ViewGroup) view).addView(card);
|
||||
|
@ -72,11 +76,18 @@ public class SubscriptionsListCard extends BaseCard {
|
|||
AndroidUiHelper.updateVisibility(subscriptionPeriod, true);
|
||||
}
|
||||
|
||||
if (autoRenewed) {
|
||||
if (autoRenewing) {
|
||||
TextView nextBillingDate = card.findViewById(R.id.next_billing_date);
|
||||
String date = getHumanDate(subscription.getPurchaseTime(), subscription.getSubscriptionPeriod());
|
||||
if (!Algorithms.isEmpty(date)) {
|
||||
nextBillingDate.setText(app.getString(R.string.next_billing_date, date));
|
||||
String expiredTimeStr = null;
|
||||
long expiredTime = subscription.getExpireTime();
|
||||
if (expiredTime == 0) {
|
||||
expiredTime = subscription.getCalculatedExpiredTime();
|
||||
}
|
||||
if (expiredTime > 0) {
|
||||
expiredTimeStr = dateFormat.format(expiredTime);
|
||||
}
|
||||
if (!Algorithms.isEmpty(expiredTimeStr)) {
|
||||
nextBillingDate.setText(app.getString(R.string.next_billing_date, expiredTimeStr));
|
||||
AndroidUiHelper.updateVisibility(nextBillingDate, true);
|
||||
}
|
||||
} else {
|
||||
|
@ -102,7 +113,7 @@ public class SubscriptionsListCard extends BaseCard {
|
|||
|
||||
TextView status = card.findViewById(R.id.status);
|
||||
status.setText(app.getString(state.getStringRes()));
|
||||
AndroidUtils.setBackground(status, app.getUIUtilities().getIcon(state.getBackgroundRes()));
|
||||
AndroidUtils.setBackground(status, app.getUIUtilities().getIcon(getBackgroundRes(state)));
|
||||
|
||||
int dividerLayout = i + 1 == subscriptions.size() ? R.layout.simple_divider_item : R.layout.divider_half_item;
|
||||
View divider = inflater.inflate(dividerLayout, (ViewGroup) view, false);
|
||||
|
@ -110,15 +121,9 @@ public class SubscriptionsListCard extends BaseCard {
|
|||
}
|
||||
}
|
||||
|
||||
private String getHumanDate(long time, Period period) {
|
||||
if (period == null || period.getUnit() == null) {
|
||||
return "";
|
||||
}
|
||||
Date date = new Date(time);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.add(period.getUnit().getCalendarIdx(), period.getNumberOfUnits());
|
||||
date = calendar.getTime();
|
||||
return dateFormat.format(date);
|
||||
@DrawableRes
|
||||
private int getBackgroundRes(@NonNull SubscriptionState state) {
|
||||
return state == SubscriptionState.ACTIVE || state == SubscriptionState.IN_GRACE_PERIOD
|
||||
? R.drawable.bg_osmand_live_active : R.drawable.bg_osmand_live_cancelled;
|
||||
}
|
||||
}
|
|
@ -142,7 +142,7 @@ public class WikiArticleHelper {
|
|||
public boolean publish(Amenity amenity) {
|
||||
List<String> allNames = amenity.getAllNames(false);
|
||||
for (String amenityName : allNames) {
|
||||
if (name.equalsIgnoreCase(amenityName)) {
|
||||
if (name.equals(amenityName)) {
|
||||
results.add(amenity);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue