diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index e7e012be9f..8f5f620041 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,12 +1,12 @@ -Before entering an issue please read the information below. +Before entering an issue, please read the information below. -```Github is a main development tool for developers. There are hundreds requests a month and there are only few developers. So by opening an issue, please know that your issue will be sent out to all developers and please be ready that it could be closed without explanation or with a brief message. Comments on the closed issues are also sent to all developers, so you will definitely will be heard, but there is no guarantee that somebody from developers will pick up the issue to work on it.``` +```GitHub is a main development tool for developers. There are hundreds requests a month and there are only few developers. So by opening an issue, please know that your issue will be sent out to all developers and acknowledge that it could be closed without explanation or with a brief message. Comments on the closed issues are also sent to all developers, so you will definitely will be heard. However, there is no guarantee that a developer will pick up the issue to work on it.``` -In case you are not sure to open issue or not, please send your request to support support@osmand.net. For **general questions** about Osmand, please use the [googlegroup](https://groups.google.com/forum/#!forum/osmand). +In case you are not sure to open issue or not, please send your request to support support@osmand.net. For **general questions** about OsmAnd, please use the [Google group](https://groups.google.com/forum/#!forum/osmand). -Please be sure to have read our [FAQ](http://osmand.net/help-online) before creating an issue here. (Also tell us in googlegroup when the FAQ is wrong or outdated.) +Please be sure to have read our [FAQ](http://osmand.net/help-online) before creating an issue here. (Also, tell us in Google Groups when the FAQ is wrong or outdated.) -The best way to get help about an Osmand issue is to create a valid and detailed issue content. +The best way to get help about an OsmAnd issue is to create a valid and detailed issue content. Please give us the following information so that we can try to **reproduce** your issue: What version of OsmAnd are you using, on what device and Android/iOS version? @@ -19,8 +19,8 @@ __*In case of wrong routing:*__ Tell us whether you have used OsmAnd's in-app offline routing, or any online routing provider like YOURS, OpenRouteService or OSRM. -What routing profile is choosen in OsmAnd app? (car, bike, pedestrian, fastest or shortest) +What routing profile is chosen in OsmAnd app? (car, bike, pedestrian, fastest or shortest) -Please specify as exactly as possible the start and end point of your route by telling us city name and street name so that we can find it via in-app address search easily. Also a permalink from openstreetmap.org can be helpful. +Please specify as exactly as possible the start and end point of your route by telling us city name and street name so that we can find it via in-app address search easily. Also, a permalink from openstreetmap.org can be helpful. Tell us your expected routing, and how OsmAnd routes, or add screenshots here. diff --git a/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_day.webp b/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_day.webp new file mode 100644 index 0000000000..551b6f0ef7 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_day.webp differ diff --git a/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_night.webp b/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_night.webp new file mode 100644 index 0000000000..6f265d57f8 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_empty_state_av_notes_night.webp differ diff --git a/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_day.webp b/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_day.webp new file mode 100644 index 0000000000..822574004b Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_day.webp differ diff --git a/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_night.webp b/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_night.webp new file mode 100644 index 0000000000..bcefe20c20 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_empty_state_osm_edits_night.webp differ diff --git a/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_day.webp b/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_day.webp new file mode 100644 index 0000000000..66eac11d7a Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_day.webp differ diff --git a/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_night.webp b/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_night.webp new file mode 100644 index 0000000000..198b2559cf Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_empty_state_av_notes_night.webp differ diff --git a/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_day.webp b/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_day.webp new file mode 100644 index 0000000000..834e1a3698 Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_day.webp differ diff --git a/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_night.webp b/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_night.webp new file mode 100644 index 0000000000..2b179ecd54 Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_empty_state_osm_edits_night.webp differ diff --git a/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_day.webp b/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_day.webp new file mode 100644 index 0000000000..1499879b5a Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_day.webp differ diff --git a/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_night.webp b/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_night.webp new file mode 100644 index 0000000000..01e7f61f02 Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_empty_state_av_notes_night.webp differ diff --git a/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_day.webp b/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_day.webp new file mode 100644 index 0000000000..fc9118621b Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_day.webp differ diff --git a/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_night.webp b/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_night.webp new file mode 100644 index 0000000000..1221f8f8f3 Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_empty_state_osm_edits_night.webp differ diff --git a/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_day.webp b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_day.webp new file mode 100644 index 0000000000..52383453a5 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_day.webp differ diff --git a/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_night.webp b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_night.webp new file mode 100644 index 0000000000..7acf169e60 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_av_notes_night.webp differ diff --git a/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_day.webp b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_day.webp new file mode 100644 index 0000000000..7398651f54 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_day.webp differ diff --git a/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_night.webp b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_night.webp new file mode 100644 index 0000000000..b4be6c22c9 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_empty_state_osm_edits_night.webp differ diff --git a/OsmAnd/res/layout-land/empty_state_av_notes.xml b/OsmAnd/res/layout-land/empty_state_av_notes.xml new file mode 100644 index 0000000000..1ca2c39846 --- /dev/null +++ b/OsmAnd/res/layout-land/empty_state_av_notes.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout-land/empty_state_osm_edits.xml b/OsmAnd/res/layout-land/empty_state_osm_edits.xml new file mode 100644 index 0000000000..cac933204f --- /dev/null +++ b/OsmAnd/res/layout-land/empty_state_osm_edits.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout-land/fragment_direction_indication_dialog.xml b/OsmAnd/res/layout-land/fragment_direction_indication_dialog.xml index f5424bf6a1..d76253eb22 100644 --- a/OsmAnd/res/layout-land/fragment_direction_indication_dialog.xml +++ b/OsmAnd/res/layout-land/fragment_direction_indication_dialog.xml @@ -348,7 +348,6 @@ @@ -404,6 +403,65 @@ + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/empty_state_av_notes.xml b/OsmAnd/res/layout/empty_state_av_notes.xml new file mode 100644 index 0000000000..ed1bebb5e7 --- /dev/null +++ b/OsmAnd/res/layout/empty_state_av_notes.xml @@ -0,0 +1,40 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/empty_state_osm_edits.xml b/OsmAnd/res/layout/empty_state_osm_edits.xml new file mode 100644 index 0000000000..0cc477ea9a --- /dev/null +++ b/OsmAnd/res/layout/empty_state_osm_edits.xml @@ -0,0 +1,39 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/fragment_direction_indication_dialog.xml b/OsmAnd/res/layout/fragment_direction_indication_dialog.xml index cd7759273e..c66311cb24 100644 --- a/OsmAnd/res/layout/fragment_direction_indication_dialog.xml +++ b/OsmAnd/res/layout/fragment_direction_indication_dialog.xml @@ -398,6 +398,65 @@ + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/fragment_notes_item_menu_bottom_sheet_dialog.xml b/OsmAnd/res/layout/fragment_notes_item_menu_bottom_sheet_dialog.xml new file mode 100644 index 0000000000..c7f722c621 --- /dev/null +++ b/OsmAnd/res/layout/fragment_notes_item_menu_bottom_sheet_dialog.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/fragment_notes_sort_bottom_sheet_dialog.xml b/OsmAnd/res/layout/fragment_notes_sort_bottom_sheet_dialog.xml new file mode 100644 index 0000000000..a307700dd6 --- /dev/null +++ b/OsmAnd/res/layout/fragment_notes_sort_bottom_sheet_dialog.xml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/fragment_osm_edit_options_bottom_sheet_dialog.xml b/OsmAnd/res/layout/fragment_osm_edit_options_bottom_sheet_dialog.xml new file mode 100644 index 0000000000..61e0860e73 --- /dev/null +++ b/OsmAnd/res/layout/fragment_osm_edit_options_bottom_sheet_dialog.xml @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/list_item_header.xml b/OsmAnd/res/layout/list_item_header.xml new file mode 100644 index 0000000000..24ab6fb14f --- /dev/null +++ b/OsmAnd/res/layout/list_item_header.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OsmAnd/res/layout/note_list_item.xml b/OsmAnd/res/layout/note_list_item.xml new file mode 100644 index 0000000000..91f89197c9 --- /dev/null +++ b/OsmAnd/res/layout/note_list_item.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/layout/update_index.xml b/OsmAnd/res/layout/update_index.xml index 4553c67375..d637d3c31e 100644 --- a/OsmAnd/res/layout/update_index.xml +++ b/OsmAnd/res/layout/update_index.xml @@ -36,4 +36,9 @@ android:layout_marginRight="0dp" android:layout_marginTop="0dp" android:layout_weight="1"/> + + \ No newline at end of file diff --git a/OsmAnd/res/values-b+hsb/phrases.xml b/OsmAnd/res/values-b+hsb/phrases.xml index eedd0edb69..697df6e39f 100644 --- a/OsmAnd/res/values-b+hsb/phrases.xml +++ b/OsmAnd/res/values-b+hsb/phrases.xml @@ -428,8 +428,8 @@ Kanu: haj Kanu: ně -typ - typ +družina ćěriwa + družina ćěriwa (avia) typ typ typ @@ -1450,7 +1450,7 @@ hodowna pyramida hodowny wobchod hodowny štom - Kuchnja + kuchnja pizza kofej sandwich @@ -1504,7 +1504,7 @@ nabožinske twory policija - wohnjowa wobora + wohnjostraža nuzowy telefon hydrant woheńhašak @@ -1574,4 +1574,436 @@ lětanišćo helipad přizemišćo - + kurjenje + k sobuwzaću + cocktaile + mikropiwarnja + wohnišćo + stany + płokawa + haćidło na puću + wobchodźik + pasta + sportowe wuhotowanje + grat a sudobjo + tekstilije + hrajki + swětłownja + + wupožčenje kolesow + powjaznica + tunl + móst + + błyšćak + křižowanišćo + pozastarnja + + studnja + wodočisćernja + wodarnja + spušćadło + nasyp + młyn + mola + přepinarnja + milinarnja + milinowy generator + póšta + listowy kašćik + telefon + wobkedźowanska wěža + zwóńca + chłódźenska wěža + recycling + + kontejner + škleńca + papjera + drasty + tyzki + škleńčane bleše + plastika + šrot + baterije + plastikowe bleše + zelene wotpadki + nowiny + papjerc + drjewo + knihi + črije + aluminij + organiske + zahrodkowe wotpadki + kow + elektriske nastroje + kuchinski wolij + motorowy wolij + plastikowe titki + mobilne telefony + ličaki + wobruče + migracija + nowinska redakcija + dawkowe poradźowanje + + sportowa čara + běhanišćo + kolesowanska čara + jěchanišćo + prokanje + ameriski football + awstralski football + baseball + basketball + bičwolejbul + BMX + kanadiski football + kanu + šach + łaženje + cricket + kolesowanje + nurjenje + scuba-nurjenje + psyče wubědźowanje + pólny hokej + lodohokej + golf + gymnastika + mjetańca + hokej + konjace wubědźowanje + smykanje + lětanski płachtak + płachtakowanje + třělenje + skateboard + sněhakowanje + kopańca + surfowanje + płuwanje + blidotenis + tenis + wuměłska twórba + karusel + Cyrkej Chrysta + Zjednoćena cyrkej Chrysta + sněhakowanski resort + psyči + łakańca + přistaw + marina + minigolf + wodowy park + nawjes + fast food + pitna woda + gril + + kobjeler + čołmotwarc + knihiwjazar + přestrjencar + časnikar + krawc + debjenkar + zamkar + fotograf + fotografiski labor + gipsowar + klampnar + hornčer + třěchikryjer + sedłar + rězak + róštytwarc + sochar + šewc + kamjenjećesar + saznik + krawc + kachlicar + blacharnik + polstrowar + pohrjebne předewzaće + manikira + frizer + masaže + tattoownja + płokarnja + wupožčenje awtow + nuzniki + kurjenski wobłuk + ćěłownja + internetownja + + bankomat + płaćenski terminal + zastawnja + měnjernja + knihiwjednik + zachod prózdnjeńcy + krater + kótleško + rěčne prohi + kedźbyhódny kamjeń + kap + rif + włóžna kónčina + lěs + přirodny rezerwat + přeliw + kupa + kupka + + kótwišćo + přistawnišćo + přistaw + wojerske pasmo + wojerske lětanišćo + strašne pasmo + wojerski běrow + namórniska baza + nuklearne testowanišćo + + arabska Wikipedija + bołharska Wikipedija + katalanska Wikipedija + danska Wikipedija + grjekska Wikipedija + estiska Wikipedija + španiska Wikipedija + finska Wikipedija + francoska Wikipedija + galiciska Wikipedija + hebrejska Wikipedija + hindiska Wikipedija + chorwatska Wikipedija + haitiska Wikipedija + madźarska Wikipedija + indoneska Wikipedija + italska Wikipedija + japanska Wikipedija + korejska Wikipedija + litawska Wikipedija + letiska Wikipedija + malajska Wikipedija + newarska Wikipedija + nižozemska Wikipedija + norwegska (Nynorsk) Wikipedija + norwegska Wikipedija + pólska Wikipedija + portugalska Wikipedija + rumunska Wikipedija + ruska Wikipedija + słowakska Wikipedija + słowjenska Wikipedija + serbiska Wikipedija + šwedska Wikipedija + swahilska Wikipedija + teluguska Wikipedija + thailandska Wikipedija + turkowska Wikipedija + ukrainska Wikipedija + vietnamska Wikipedija + Volapük Wikipedija + chinska Wikipedija + afrikaanska Wikipedija + elsaska Wikipedija + azerbajdźanska Wikipedija + bengalska Wikipedija + bretonska Wikipedija + bosniska Wikipedija + waliziska Wikipedija + esperantorěčna Wikipedija + baskiska Wikipedija + persiska Wikipedija + friziska Wikipedija + irska Wikipedija + armenska Wikipedija + islandska Wikipedija + georgiska Wikipedija + kurdiska Wikipedija + łaćonska Wikipedija + luxemburgska Wikipedija + makedonska Wikipedija + delnjoněmska Wikipedija + osetiska Wikipedija + sardiska Wikipedija + serbskochorwatska Wikipedija + albanska Wikipedija + tamilska Wikipedija + filipinska Wikipedija + kazachiska Wikipedija + uzbekska Wikipedija + čečenska Wikipedija + okcitanska Wikipedija + tatarska Wikipedija + kirgiska Wikipedija + kantonska Wikipedija + tadźikiska Wikipedija + baškirska Wikipedija + čuwašiska Wikipedija + lombardiska Wikipedija + burmaska Wikipedija + aragonska Wikipedija + nepalska Wikipedija + gudźaratska Wikipedija + sicilska Wikipedija + bayerska Wikipedija + mongolska Wikipedija + neapolitanska Wikipedija + + maksimalna wysokosć + maksimalna waha + suchi čas + dešćowy čas + přistup po dowolenju + přistup za kupcow + přistup za dodawanje + přistup za ratarstwo + + wobsah: silaža + wobsah: jił + wobsah: hnojiwa + wobsah: wotwody + wobsah: biomasa + wobsah: wotwody + wobsah: žito + wobsah: pica + wobsah: žito + + winowatostne + zwučene + móžne + + podzemske + mandl + kokosowe palmy + datle + měšćanske + wjesne + + žana klumpa + haj + + pućnik + tafla + běrow + značka + trawnišćo + lochko + kapacita kabiny/woza + přerězny pućowanski čas + přistup w lěću: jenož nutř + přistup w lěću: jenož won + přistup w lěću: nutř a won + + 1 (turist) + 2 (standard) + 3 (komfort) + 4 (prěnja klasa) + 5 (luksus) + 50 centow, 1 euro, 2 euraj + Geldkarte + Geldkarte so njeakceptuje + wegetariske + jenož wegetariske + wegetariske + ničo wegetariskeho + wegan + jenož wegan + wegan + ničo weganeho + bjez glutena + jenož bjez glutena + bjez glutena + ničo bjez glutena + košer + jenož košer + košer + košer: ně + bjez laktozy + jenož bjez laktozy + bjez laktozy + ničo bjez laktozy + mjeno piwarnje + wonka sedźeć: na dworje + + wikowar + přistup k nuznikam: dowoleny + rumnosć za měnjenje pjelchow + + časowe wobmjezowanje za parkowanje + + parkowanske bilety + pica za zwěrjata + architektura: renesansa + struktura mosta: drjewjany + čisćenje + čisćenje kolesow: ně + wopomnišćo + + seniorojo + musikal + komedija + defibrillator + defibrillator: haj + + ciwilizacija: starogrjekska + ciwilizacija: romska + ciwilizacija: bycantinska (285–1453) + ciwilizacija: staroegyptowska (do 332 do.Chr.) + ciwilizacija: dakiska + historiska perioda: klasiska grjeska (5. do 4. ls. do. Chr.) + historiska perioda: druha persiska doba + čisło mosta + čisło tunla + + Reparatura elektroniki: ličaki + Reparatura elektroniki: domjacnostne nastroje + Reparatura elektroniki: telefony + Reparatura elektroniki: telewizory + + wuchowanska rynka + + majkanski zwěrjenc + dźiwinowy park + hajnišćo + woljera + sokolnistwo + stejnišća + + předań + předań: ně + předań: haj; trjebane + předań: trjebane + narunanki + narunanki: ně + stejišćo: wonka + stejišćo: nutřka + stejišćo: platforma + stejišćo: kiosk + stejišćo: móst + stejišćo: sćěna + stejišćo: zachod + + widźomnosć: dom + widźomnosć: dróha + wočinjene + začinjene + wobmjezowane + wobškodźene + reparatura trěbna + + koleso: haj + koleso: ně + Parkowanski popłatk: haj + Parkowanski popłatk: ně + Parkowanski popłatk + + nabiwanska stacija + + diff --git a/OsmAnd/res/values-b+hsb/strings.xml b/OsmAnd/res/values-b+hsb/strings.xml index 6df56e47d0..1f352c7bbd 100644 --- a/OsmAnd/res/values-b+hsb/strings.xml +++ b/OsmAnd/res/values-b+hsb/strings.xml @@ -13,7 +13,7 @@ Wubjerće kategoriju Zapodajće mjeno Zapodajće kategoriju - Zapodajće wopisanje + Zapodajće wopisanje. Prózdna lisćina Njeinstalowane Městno zdźělić @@ -31,7 +31,7 @@ Moje mjeno w rozprawach njepokazać Region podpěrać Měsačne košty - Měsačne płaćenje + Měsačne płaćenje. Aktiwne Njeaktiwne Prošu zapodajće płaćiwu mejlkowu adresu @@ -51,7 +51,7 @@ Njeje wubrane Wulkosć składowaka Přistupne karty - Wubjerće puće, kiž chceće při nawigaciji wobeńć + Wubjerće puće, kiž chceće při nawigaciji wobeńć. Zwuk Aplikacija nima dowolnosć k wužiwanju kamery. Aplikacija nima dowolnosć k wužiwanju mikrofona. @@ -63,11 +63,11 @@ Najniša kwalita Najwyša kwalita Kwalita wideja - Wubjerće kwalitu wideja + Wubjerće kwalitu wideja. Format awdijo-dataje - Wubjerće format awdijo-dataje + Wubjerće format awdijo-dataje. awdijo-bitrate - Wubjerće awdijo-bitrate + Wubjerće awdijo-bitrate. Přistup z karty Wot započatka pokazać Offline składować @@ -118,7 +118,7 @@ Wysokostne linije wupinjene Nowu přidać Kategoriju wubrać - Měrjensku jednotku spěšnosće postajić + Měrjensku jednotku spěšnosće postajić. Jednotka spěšnosće Nawtiske mile Kilometrow za hodźinu @@ -169,25 +169,25 @@ Islandšćina Bishnupriya Navajo - Iršćina - Łaćonšćina - Kurdišćina - Tamilšćina + iršćina + łaćonšćina + kurdišćina + tamilšćina Malayalam - Luxemburgšćina - Osetšćina + luxemburgšćina + osetšćina Esperanto - Španišćina (Argentinska) - Norwegska knihowna rěč + španišćina (Argentinska) + norwegska knižna rěč Volapük - Thailandšćina + thailandšćina Telugu - Norwegšćina (Nynorsk) + norwegšćina (Nynorsk) Newar / Nepal Bhasa - Malajišćina - Haitišćina - Galicišćina - Estišćina + malajišćina + haitišćina + galicišćina + estišćina Cebuano Cyły zapis čitać (online) Wikipedija @@ -195,13 +195,13 @@ Domowe čisła Městno składowanja datow Skład kartow - Wopis pokazać + Wopis pokazać. Karty sćahnyć Witajće - Waše změny + Twoje změny Potom wopytać Do toho wopytać - Časte prašenja, aktualne změny a druhe + Časte prašenja, aktualne změny a druhe. Nastajenja nawigacije Powšitkowne nastajenja @@ -251,19 +251,19 @@ Wulkosć teksta Hranična kontrola Błyskač - Rěčny paket za nawigaciju wubrać + Rěčny paket za nawigaciju wubrać. - HTTP-Proxy zapinyć - HTTP-Proxy za wšě naprašowanja syće aktiwěrować + HTTP-proxy zapinyć + HTTP-proxy za wšě naprašowanja syće aktiwěrować. Proxy-Host - Mjeno za proxy postajić (n.př. 127.0.0.1) - Port za proxy postajić (n.př. 8118) + Mjeno za proxy postajić (n.př. 127.0.0.1). + Port za proxy postajić (n.př. 8118). Awto Koleso Pěši Z nawigaciju pokročować Nawigaciju na chwilu přetorhnyć - Najlubša rěč za mjena na karće (njeje-li k dispoziciji, pokazaja so lokalne mjena) + Najlubša rěč za mjena na karće (njeje-li k dispoziciji, pokazaja so lokalne mjena). Najlubša rěč za kartu Lokalne mjena Suahelšćina @@ -347,21 +347,21 @@ Mawtowe dróhi wobeńć - Mawtowe dróhi wobeńć + Mawtowe dróhi wobeńć. Njewobkrućene puće wobeńć - Njewobkrućene puće wobeńć + Njewobkrućene puće wobeńć. Přewozy wobeńć - Přewozne łódźe wobeńć + Přewozne łódźe wobeńć. Awtodróhi wobeńć - Awtodróhi wobeńć + Awtodróhi wobeńć. Schody wobeńć - Schody wobeńć + Schody wobeńć. Hranične přechody wobeńć - Přeprěčenje statnych hranicow wobeńć + Přeprěčenje statnych hranicow wobeńć. Wobmjezowanje wahi - Zapodajće wahu wozydła za wobličenje čary + Zapodajće wahu wozydła za wobličenje čary. Wobmjezowanje wysokosće - Zapodajće wysokosć wozydła za wobličenje čary + Zapodajće wysokosć wozydła za wobličenje čary. Nastajenja nawigacije Nastajenja za wobličenje čarow Pućowanje @@ -371,7 +371,7 @@ Wersija : Maksimalny zoom: %1$s Minimalny zoom: %1$s - Wubjerće region jězdźenja: Europa, Azija, Zjednoćene staty abo druhe + Wubjerće region jězdźenja: Europa, Azija, Zjednoćene staty abo druhe. Region jězdźenja Japanska Zjednoćene staty Ameriki @@ -399,7 +399,7 @@ spěšnosć wysokosć Dypk - Redukuje njerunosće pola kompasa, zwyši pak lěnjotu kompasa wo něšto + Redukuje njerunosće pola kompasa, zwyši pak lěnjotu kompasa wo něšto. Kalmanowy filter wužiwać Połna wersija Cil wotstronić @@ -407,7 +407,7 @@ Domowe čisło Webstrona Telefon - Změńće napohlad aplikacije + Změńće napohlad aplikacije. Napohlad aplikacije OpenMaps EU Wikipedija @@ -455,15 +455,15 @@ Za turistow Bencin Warnowanja pokazać… - Wobchadne warnowanja (wobmjezowanja spěšnosće, stopowe znački, prohi), informacije wo krutych błyskačach a jězbnych ćěrach - Wužiwać kompas, hdyž hinaše postajenje směra móžne njeje + Wobchadne warnowanja (wobmjezowanja spěšnosće, stopowe znački, prohi), informacije wo krutych błyskačach a jězbnych ćěrach. + Wužiwać kompas, hdyž hinaše postajenje směra móžne njeje. Kompas wužiwać Awtodróhi wobeńć - Přiměrja wulkosć karty wotpowědujo aktualnej spěšnosći (karta so z tuchwilnym stejišćom synchronizuje) + Přiměrja wulkosć karty wotpowědujo aktualnej spěšnosći (karta so z tuchwilnym stejišćom synchronizuje). Awtomatiski zoom - W běhu nawigacije poziciski dypk na dróhach zdźeržować + W běhu nawigacije poziciski dypk na dróhach zdźeržować. Na dróze wostać - Hudźbu za připowědźe nawigacije přetorhować + Hudźbu za připowědźe nawigacije přetorhować. Wothrawanje hudźby přetorhować OsmAnd karty a nawigacija Globalna kartowa a nawigaciska słužba za OSM-karty (online a offline) @@ -480,7 +480,7 @@ Njewobkrućene puće wobeńć Přewozy wobeńć Wobeńdź… - Wěsty typy pućow wobeńć + Wěsty typy pućow wobeńć. Měra Směr hladanja pokazać Słužbu w pozadku\n zapinyć @@ -560,7 +560,7 @@ Nahrawanje … Wšě nahrać Bjezpłatna wersija - POI-wopis pokazać + Wopis dypka pokazać. Sewjerna Amerika Europa - Nižozemska Sewjerna Amerika - Zjednoćene staty @@ -577,16 +577,16 @@ Wikipedija (offline) Specifiske nastajenja za profile Nawigacija - Nastajenja za nawigaciju (awto, koleso, pěši) + Nastajenja za nawigaciju (awto, koleso, pěši). Powšitkowne nastajenja - Konfiguracija wobrazowki a druhich powšitkownych nastajenjow + Konfiguracija wobrazowki a druhich powšitkownych nastajenjow. Waše wužiwarske mjeno pola OSM Waše hesło pola OSM Pozadkowy modus - OsmAnd dźěła w pozadku, mjeztym zo je wobrazowka hasnjena + OsmAnd dźěła w pozadku dale, mjeztym zo je wobrazowka hasnjena. Njeje dosć swobodneho městna za download %1$s MB (swobodne: %2$s). Kartu sobuwzać - Čakanski čas hač do synchronizowanja karty z aktualnym stejišćom + Čakanski čas hač do synchronizowanja karty z aktualnym stejišćom. Nastajenja kartowych žórłow Nastajenja wektorowych kartow Měšćanski dźěl @@ -623,21 +623,21 @@ Hłosowe připowědźe (nahrate) TTS hłosowe připowědźe Nowe pytanje - Wubjerće wulkosć mjenow na karće + Wubjerće wulkosć mjenow na karće. Wulkosć kartoweho teksta Tuchwilny cil přewzać Hłós nawigacije - Wašnje wudawanja připowědźow wubrać + Wašnje wudawanja připowědźow wubrać. Kaž telefon Kaž zdźělenki Kaž medije/hudźba Instalować dalše… - Zmylk so stał při offline-pytanju + Zmylk so stał při offline-pytanju. Kaž nastroj - Rěč wubrać (prošu startujće OsmAnd po změnje znowa) + Rěč wubrać (prošu startujće OsmAnd po změnje znowa). Rěč aplikacije a menijow njehotowa - Wubjerće jednotki dołhosće a spěšnosće + Wubjerće jednotki dołhosće a spěšnosće. Měrjenske jednotki Mile/stopy Mile/yardy @@ -667,7 +667,7 @@ Nóc Dnjowy/nócny modus Najspěšniša čara - Wubrać za najspěšnišu čaru abo wupinyć za najkrótšu + Wubrać za najspěšnišu čaru abo wupinyć za najkrótšu. Kartu sćahnyć Sćehnjenje tuteje karty njebě móžne Zmylk occurred while rendering selected area @@ -682,7 +682,7 @@ Po kompasu Po směru pohibowanja Žana rotacija (sewjer je horjeka) - Postajće wašnje wusměrjenja karty + Postajće wašnje wusměrjenja karty. Wusměrjenje karty Fawority wuspěšnje importowane Zmylk occurred while loading GPX @@ -696,7 +696,7 @@ Hdźe sym? sek. min. - OsmAnd dźěła w pozadku, zo by nahrawał twoju poziciju při wupinjenej wobrazowce + OsmAnd dźěła w pozadku, zo by nahrawał twoju poziciju při wupinjenej wobrazowce. Słužba w pozadku Filter schować Filter pokazać @@ -722,7 +722,7 @@ Na wysoko Naprěki Wusměrjenje wobraza - Wusměrjenje karty + Wusměrjenje karty. Změnjenje wotewrjenskich časow njeje móžne Dodaj nowe prawidło Čary @@ -737,7 +737,7 @@ zbywace zastanišća Dołhosć čary Zjawny transport - Zjawne zastanišća na karće pokazać + Zjawne zastanišća na karće pokazać. Zastanišća pokazać Nawigacija OsmAnd POI-daty su so wuspěšnje zaktualizowali ({0} buchu začitane) @@ -756,7 +756,7 @@ Žadyn wuslědk Pytam… Pytam adresu… - Wubjerće online- abo offline-słužbu za nawigaciju + Wubjerće online- abo offline-słužbu za nawigaciju. Słužba nawigacije Adresa Zarunać @@ -782,16 +782,16 @@ Začituja so daty… GPX-čara składuje so na SD-karće… Hotowo - Wužiwaj internet za nawigaciju + Wužiwaj internet za wobličenje čary. Nawigacija online - Nastajenja za Openstreetmap.org (OSM) - Rěč wubrać, daty sćahnyć abo zaktualizować + Nastajenja za Openstreetmap.org (OSM). + Rěč wubrać, daty sćahnyć abo zaktualizować. Daty Přidatne nastajenja Kartowe kachlicy zaktualizować Kachlicy zaktualizować Cil - Jendźelske abo domjace mjena wužiwać + Jendźelske abo domjace mjena wužiwać. Jendźelske mjena wužiwać Nastajenja aplikacije Adresu pytać @@ -800,11 +800,11 @@ Městno abo póstowe čisło wubrać Kraj wubrać Směr hladanja pokazać - 3D-napohlad karty zmóžnić + 3D-napohlad karty zmóžnić. 3D-napohlad wužiwać - Njedawno wužiwane POI na karće pokazać - Pokazaj POI - Online- abo offline-žórło za kartowe kachlicy wubrać + Njedawno wužiwane dypki na karće pokazać. + Pokazaj runinu z dypkami + Online- abo offline-žórło za kartowe kachlicy wubrać. Žórło kartowych kachlicow Žórło karty Internet wužiwać @@ -895,25 +895,25 @@ Legenda karty Tuchwilna čara Poziciju chorhojčki změnić - Španišćina (Amerika) - Asturišćina + španišćina (Amerika) + asturišćina Jendźelšćina (Zjednoćene kralestwo) Běłorušćina (łaćonsce) Kannadašćina Bjez přestawki wočinjene Składowanska karta Format koordinatow - Format za geografiske koordinaty + Format za geografiske koordinaty. Mapillary wobnowić Wopačne wužiwarske mjeno! Wot - Datumy + Datum Wužiwarske mjeno zapodać Prawa Instalować Wobrazy přidać - Za tute městno fota nimamy + Za tute městno fota nimamy. spěšnosć: %1$s Jako dypki na čarje składować Jako liniju składować @@ -929,8 +929,8 @@ zdalenosć měrić Nawigaciju znowa startować/přetorhnyć Do - Wobrazy z wěsteje doby pokazać. - Wobrazy wěsteho wužiwarja pokazać. + Jenož přidate wobrazy pokazać + Jenož wobrazy wužiwarja Wužiwarske mjeno OsmAnd njemóže importować dataju. Prošu přepruwuj hač ma OsmAnd dowolnosć za začitanje dataje z tutoho městna. Zdalenosć skorigowana @@ -945,7 +945,7 @@ Pytanje wospjetować Pytanski radius powjetšić Žadyn pytanski wuslědk :( - Změń pytanske zapřijeće abo powjetš pytanski radius + Změń pytanske zapřijeće abo powjetš pytanski radius. OSM-noticy pokazać/schować OSM-noticy pokazać OSM-noticy schować @@ -958,7 +958,7 @@ Dyrbiš plugin \"Contour Lines\" kupić a instalować, zo bychu so wysokostne linije pokazali na karće Barbny šema Priwatny přistup dowolić - Přistup do priwatnych kónčin dowolić + Přistup do priwatnych kónčin dowolić. Pokazać na zoomowej runinje: %1$s Mjeno skupiny Barbu změnić @@ -1018,7 +1018,7 @@ Woda Wodu schować Awtodróhi dowolić - Awtodróhi dowolić + Awtodróhi dowolić. Móžeš swoju OSM-noticu anonymnje nahrać abo wužić swój profil na OpenStreetMap.org. Zapiski Wikipedije w bliskosći Město abo region pytać @@ -1066,7 +1066,7 @@ Kategoriju dodać Nawigacija Powěsć - Opcionalnu kategoriju wubrać + Opcionalnu kategoriju wubrać. "Lisćina POI" Kartowy stil dodać Parametry njedyrbjeli być prózdne @@ -1088,7 +1088,7 @@ %1$d wot %2$d objektow wuspěšnje nahraty. Na OSM pósłać wjace detailow na karće pokazać - někotre kartowe detaile (n. př. puće) hižo w nišich zoom-runinach pokazać + někotre kartowe detaile (n. př. puće) hižo w nišich zoom-runinach pokazać. Faworitowe dypki wuspěšnje wotstronjene. Chceš %1$d faworit(ow) a %2$d skupin faworitow wotstronić. Sy sej wěsty/a? Zakładna karta swěta (pokrywajo cyły swět na niskich zoom-runinach) pobrachuje. Prošu wobstaraj sej World_basemap_x.obf za globalny přehlad. @@ -1111,13 +1111,13 @@ Nahraće wotstronić modifikaciju wotstronić Lokalnje składowane OSM-dypki/noticy - Tuta bjezpłatna wersija OsmAnd je wobmjezowana na %1$s downloadow a njepodpěruje offline-wužiwanje zapiskow z Wikipedije. + Tuta bjezpłatna wersija OsmAnd je wobmjezowana na %1$s downloadow (přidaće a wobnowjenje kartow) a njepodpěruje offline-wužiwanje zapiskow z Wikipedije. Swětadaloke a tematiske karte Dataja z prjedy eksportowanymi faworitami hižo eksistuje. Chceš ju zarunać? Kartowe dataje zrjadować Powšitkowne Globalne nastajenja aplikacije - Trěbnej za nahrawanja na openstreetmap.org + Trěbnej za nahrawanja na openstreetmap.org. Připokazanki nawigacije wospjetować %1$s wotstronić? Simulaciju zastajić @@ -1126,16 +1126,16 @@ Dataja z tutym mjenom hižo eksistuje. njedefinowane Čara wuspěšnje składowana jako \'%1$s\'. - Kartowe dataje zrjadować + Kartowe dataje zrjadować. POI-daty Wupakuju nowe daty… Online-serwis za nawigaciju bu wubrany, njewobsteji pak zwisk do interneta. Rěč so njepodpěruje Wubrana rěč so ze strony instalowaneho TTS-programa (text-to-speech) njepodpěruje. Chceš za druhim TTS-programom pytać? Hewak so standardna rěč za TTS wužiwa. Falowace daty - Transparencu zakładneje karty změnić + Transparencu zakładneje karty změnić. Transparenca zakładneje karty - Za tutu akciju je zwisk do interneta trěbny, kotryž tuchwilu njewobsteji + Za tutu akciju je zwisk do interneta trěbny, kotryž tuchwilu njewobsteji. Městno pytać Městno: %1$s \n%2$s @@ -1230,11 +1230,11 @@ Powjerch pućow pokazać Kolesowarske čary pokazać Za pokazanje wubrać - Kneflki za zoomowanje za čas nawigacije pokazać + Kneflki za zoomowanje za čas nawigacije pokazać. Kneflki za zoomowanje pokazać Powjetšenje karty Připowědźić… - Připowědźe pućnych mjenow, wobchadnych warnowanjow, błyskačow, wobmjezowanjow spěšnosće + Připowědźe pućnych mjenow, wobchadnych warnowanjow, błyskačow, wobmjezowanjow spěšnosće. Wobmjezowanja spěšnosće Čaru zaćisnyć Pokazać @@ -1243,13 +1243,82 @@ Standardne nastajenja wobnowić Jězdźenje nalěwo Přidatki - Přidatki zmóžnja dalše nastajenja a přidatnu funkcionalitu + Přidatki zmóžnja dalše nastajenja a přidatnu funkcionalitu. Přidatki Připowědźenje přijězda Hdy chceće připowědź přijězda? Wobdźěłanje offline - Přeco offline wobdźěłać + Přeco offline wobdźěłać. Tuchwilnu čaru pokazać Schadźenje/chowanje słónca Přidatki + Wjace + Kategorija faworitow + Skupinu přidać + Skupiny importować + Dwaj + Jedyn + naprawo + nalěwo + Chorhojčku přemjenować + Jako GPX-dataju importować + Jako faworit importować + Dataju importować + Wobhladać + Wopačny format + Dróha + Čara je so wobličiła + Dyrbiš znajmjeńša jednu chorhojčku dodać, zo by móhł(a) tutu funkciju wužić. + Systemowu tastaturu wužiwać + Lodowe puće a brody wobeńć + Lodowe puće a brody wobeńć. + Twoje stejišćo jako prěni dypk zapodać, zo by čaru planował(a). + Wotzamknyć + Čaru planować + Koordinaty zapodać + Skupiny + Filter składować + Filter wotstronić + Nowy filter + Njewobmjezowane sćehnjenje kartow, aktualizacijow a zapiski Wikipedije. + Moje stejišćo namakać + Aktualizacije njepokazać + Chceš nětko aktualizować wšitke karty? + Sy sej wěsty/a, zo chceš narunać faworit %1$s? + Pytanje koordinatow + Pokročene pytanje koordinatow + Wróćo k pytanju + Kategorije + Póstowe čisło + wot + wokrjes + štwórć + Pytać + Noticu wutworić + Notica je so wuspěšnje wutworiła + Zmylk je so stał: notica njeje so wutworiła + Ćmowožołte + hornjoserbšćina + kabylšćina + berberšćina + Chceš přidatne daty z Wikipedije sćahnyć (%1$s MB)? + Eksterny skład + Kopěrować + Po mjenach filtrować + Mjeno za pytanje zapodać + Nětko wočinić + Wobdźěłać + Městna + Pytać + Zdźělenka + Mjeno skupiny dyrbjało měć znajmjeńša tři pismiki! + h + mjeńš + wyše + Šěr %1$s +\nDołh %2$s + Dalše akcije + akuratnosć + Mjeno GPX-dataje + Wobdźěłanje zahajić diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml index 096bccd047..abfac72121 100644 --- a/OsmAnd/res/values-be-rBY/strings.xml +++ b/OsmAnd/res/values-be-rBY/strings.xml @@ -2414,7 +2414,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd Adnaŭleńnie pakupak Šryfty dła mapy Pravabakavy ruch - Aŭtamatyčny + Aŭtamatyčna Nie pakazvać paviedamlieńni pry starcie Opcyi parkoŭki Dziakuj Vam za nabyćcio poŭnaj versii OsmAnd! @@ -2702,7 +2702,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd Pakazać dyjaloh ulubionych Nazva pieradustaloŭki Pry naciskanni na knopku dadasć markier na mapu ŭ centry ekrana. - Pry naciskanni na knopku dadasć GPX-kropku na mapu ŭ centry ekrana. + Pry nacisku na knopku dziejańnia dadaść GPX-kropku na mapu ŭ centry ekrana. Pry naciskanni na knopku dadasć aŭdyjanatatku na mapu ŭ centry ekrana. Pry naciskanni na knopku dadasć videanatatku na mapu ŭ centry ekrana. Pry naciskanni na knopku dadasć fotanatatku na mapu ŭ centry ekrana. @@ -2836,7 +2836,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd pa ŭzrastańni Data dadavańnia Sartavać pa: - Pakazać liniju kirunku + Pakazać linii kirunku Pakazać strełki na karcie Pakazać projdzienyja Schavać projdzienyja @@ -2851,7 +2851,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd Ekspartavać vašy markiery ŭ fajl, jaki vy možacie paznačyć tut: Zachavać jak śled Pieramiaścić u historyju - Hrupa budzie vydalenaja paśla pierazapusku + Hrupa budzie vydalenaja paśla nastupnaha perazapusku prahramy. Markiery Farmat kaardynat Vykarystoŭvać systemnuju klavijaturu @@ -2865,7 +2865,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd Adbyłosia vyklučeńnie: natatka nie była źmienienaja Źmianić natatku Źmianić OSM-natatku - • Całkam pierapracavanyja markiery z rekamendacyjami i płanavańniem maršruta + • Całkam pierapracavanyja markiery z linijami kirunku i planavańniem maršruta \n \n • Instrument vymiareńnia adlehłaściej z pryviazkaj da darohi i z zachavańniem kropak u śled \n @@ -2892,33 +2892,34 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd Poŭnyekranny režym Pakazać na vierchniaj paneli Adznačyć prajdzienyja - Abiarycie, jakija hrupy ŭlubionych vy chočacie dadać da markieraŭ. + Abiarycie katehoryju ŭlubionych, kab dadać da markieraŭ. Šliachavyja kropki - Hrupa ŭlubionych + Katehoryja ŭlubionych Dadać hrupu - Vy možacie dadać hrupu ŭlubionych ci šlachavyja kropki. - Markiery na mapie! - Adznačyć miesca na mapie dotykam. + Vy možacie impartavać hrupy z ulubionych ci šlachavych kropak. + Stvarycie markiery mapy! + Dakraniciesia miesca i potym nacisnicie knopku markiera. Impartavać hrupy Vy možacie impartavać hrupy ulubionych ci šlachavyja kropki jak markiery. Markiery, paznačanyja jak projdziennyja, z\'javiacca na hetym ekranie. Dva Adzin - Pakazvaje kirunak ad vašaha stanovišča da aktyŭnaha markiera. + Adlustoŭvaje linii kirunku ad vašaha stanovišča da aktyŭnaha markiera. Adlustroŭvaie adnu ci dzvie strełki, jakija pakazvajuć kirunak da aktyŭnych markieraŭ. Vybierycie, jak adlustroŭvać adlehłaść da aktyŭnych markieraŭ. Vybierycie, kolki indykataraŭ nakirunku budzie adlustravana. - Kolkaść ličbaŭ + Kolkaść dziesiatkovych ličbaŭ Pakazać ličbavuju paneĺ Ustavić - Aŭtamatyčna pieraklučycca ŭ nastupnaje pole paśla ŭvodu %1$d ličbaŭ paśla dziesiatkovaj kropki. + Aŭtamatyčna pieraklučycca ŭ nastupnaje pole paśla ŭvodu %1$d dziesiatkovych ličbaŭ. %1$d ličbaŭ Parajsci ŭ nastupnaje polie Pierajmienavać markier Źniešni vyhlad na mapie - Abrać slied šliachavych kropak, jakija OsmAnd dadasć u markiery + Abiarycie trek, kab dadać šlachavyja kropki da markieraŭ. (Pieraličanyja tolki treki z šlachavymi kropkami.) \@string/shared_string_history Naprava Nalieva - Boĺš + Bolš + Pošuk sliadoŭ z šliachavymi kropkami diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml index 31349191c4..85416e8a2b 100644 --- a/OsmAnd/res/values-be/strings.xml +++ b/OsmAnd/res/values-be/strings.xml @@ -2606,7 +2606,7 @@ Паказаць дыялёг улюбёных Назва перадусталёўкі Пры націсканні на кнопку дадасць маркер на мапу ў цэнтры экрана. - Пры націсканні на кнопку дадасць GPX-кропку на мапу ў цэнтры экрана. + Пры націску на кнопку дзеяньня дадасьць GPX-кропку на мапу ў цэнтры экрана. Пры націсканні на кнопку дадасць аўдыянататку на мапу ў цэнтры экрана. Пры націсканні на кнопку дадасць відэанататку на мапу ў цэнтры экрана. Пры націсканні на кнопку дадасць фотанататку на мапу ў цэнтры экрана. @@ -2649,7 +2649,7 @@ Дякуй вам за набыццё поўнай версіі OsmAnd! Абраць перасечанасць мясцовасці Правабаковы рух - Аўтаматычны + Аўтаматычна Аднаўленне пакупак Шрыфты для мапы Аўтамаштаб мапы ўкл/адкл @@ -2885,7 +2885,7 @@ па ўзрастаньні Дата дадаваньня Сартаваць па: - Паказаць лінію кірунку + Паказаць лініі кірунку Паказаць стрэлкі на карце Паказаць пройдзеныя Схаваць пройдзеныя @@ -2900,7 +2900,7 @@ Экспартаваць вашы маркеры ў файл, які вы можаце пазначыць тут: Захаваць як сьлед Перамясьціць у гісторыю - Група будзе выдаленая пасьля перазапуску + Група будзе выдаленая пасьля наступнага пэразапуску праграмы. Маркеры Фармат каардынат Выкарыстоўваць сыстэмную клявіятуру @@ -2914,7 +2914,7 @@ Адбылося выключэньне: нататка не была зьмененая Зьмяніць нататку Зьмяніць OSM-нататку - • Цалкам перапрацаваныя маркеры з рэкамэндацыямі і плянаваньнем маршрута + • Цалкам перапрацаваныя маркеры з лініямі кірунку і плянаваньнем маршрута \n \n • Інструмэнт вымярэньня адлегласьцей з прывязкай да дарогі і з захаваньнем кропак у сьлед \n @@ -2941,33 +2941,34 @@ Поўныэкранны рэжым Паказаць на верхняй панэлі Адзначыць прайдзеныя - Колькасьць лічбаў + Колькасьць дзесятковых лічбаў Паказаць лічбавую панэль Уставіць - Аўтаматычна пераключыцца ў наступнае поле пасьля ўводу %1$d лічбаў пасьля дзесятковай кропкі. + Аўтаматычна пераключыцца ў наступнае поле пасьля ўводу %1$d дзесятковых лічбаў. %1$d лічбаў Парайсці ў наступнае поле Перайменаваць маркер Два Адзін - Абярыце, якія групы ўлюбёных вы хочаце дадаць да маркераў. + Абярыце катэгорыю ўлюбёных, каб дадаць да маркераў. Шляхавыя кропкі - Група ўлюбёных + Катэгорыя ўлюбёных Дадаць групу - Вы можаце дадаць групу ўлюбёных ці шляхавыя кропкі. - Маркеры на мапе! - Адзначыць месца на мапе дотыкам. + Вы можаце імпартаваць групы з улюбёных ці шляхавых кропак. + Стварыце маркеры мапы! + Дакраніцеся месца і потым націсніце кнопку маркера. Імпартаваць групы Вы можаце імпартаваць групы улюбёных ці шляхавыя кропкі як маркеры. Маркеры, пазначаныя як пройдзенныя, з\'явяцца на гэтым экране. - Паказвае кірунак ад вашага становішча да актыўнага маркера. + Адлюстроўвае лініі кірунку ад вашага становішча да актыўнага маркера. Адлюстроўвае адну ці дзьве стрэлкі, якія паказваюць кірунак да актыўных маркераў. Выберыце, як адлюстроўваць адлегласьць да актыўных маркераў. Выберыце, колькі індыкатараў накірунку будзе адлюстравана. Зьнешні выгляд на мапе - Абраць след шляхавых кропак, якія OsmAnd дадасць у маркеры + Абярыце трэк, каб дадаць шляхавые кропкі да маркераў. (Пералічаныя толькі трэкі з шляхавымі кропкамі.) \@string/shared_string_history Направа Налева Больш + Пошук слядоў з шляхавымі кропкамі diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index c3debfb70a..8e3b933da1 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -2294,7 +2294,7 @@ L\'ús de memòria serà de {3} MB temporalment i {1} MB permanentment. Mostra el diàleg de preferides Configuració de nom Si premeu el botó de l\'acció s\'afegirà un marcador a la posició del centre de la pantalla. - Si premeu el botó de l\'acció s\'afegirà una fita de GPX a la posició del centre de la pantalla. + Prement el botó de l\'acció s\'afegirà, al centre de la pantalla, una fita GPX. Si premeu el botó de l\'acció s\'afegirà una nota d\'àudio a la posició del centre de la pantalla. "Si premeu el botó de l\'acció s\'afegirà una nota de vídeo a la posició del centre de la pantalla." Si premeu el botó de l\'acció s\'afegirà una nota fotogràfica a la posició del centre de la pantalla. @@ -2638,7 +2638,7 @@ Abasta l\'àrea: %1$s x %2$s S\'ha afegit la data Ordena segons: Seleccioneu com indicar la distància i direcció vers els marcadors de mapa a la pantalla del mapa: - Mostra la línia guia + Mostra les línies guia Mostra fletxes sobre el mapa Mostra ja passat Amaga ja passat @@ -2653,7 +2653,7 @@ Abasta l\'àrea: %1$s x %2$s Desa com una traça Mou a l\'historial Planifica la ruta - Ss\'esborrarà el grup després de reiniciar + S\'esborrarà el grup un cop es reiniciï l\'aplicació. Marcadors Format de coordenades Utilitza el teclat del sistema @@ -2667,10 +2667,10 @@ Abasta l\'àrea: %1$s x %2$s S\'ha produït una excepció: la nota no s\'ha modificat Modifica nota Modifica nota d\'OSM - \\022 Marcadors revisats totalment amb orientacions i planificació de la ruta -\n -\n • Eina de mesura de distàncies amb capacitat per resseguir les vies i desar els punts com una traça -\n + \\022 Marcadors revisats totalment amb orientacions i planificació de la ruta +\n +\n • Eina de mesura de distàncies amb capacitat per resseguir les vies i desar els punts com una traça +\n \n • OsmAnd Live: correcció d\'errors, actualització de dades al servidor cada 30 minuts, implementació d\'actualitzacions durant la navegació \n \n @@ -2694,24 +2694,24 @@ Abasta l\'àrea: %1$s x %2$s Mode de pantalla completa Mostra a la barra superior Marca com passat - Nombre de dígits + Nombre de dígits decimals Dreta Esquerra Mostra el teclat numèric Enganxa - Canvia automàticament al següent camp després d\'introduïr %1$d dígits decimals. + Canvia automàticament al següent camp després d\'introduir %1$d dígits decimals. %1$d dígits Vés al camp següent Reanomena el marcador Aparença al mapa - Seleccioneu les fites de la traça que OsmAnd afegirà als marcadors - Seleccioneu els grups preferits que voleu afegir als marcadors. + Seleccioneu una traça per afegir les seves fites als marcadors. (Només es llisten les traces amb fites). + Seleccioneu una categoria preferida per afegir-la als marcadors. Fites de la traça - Grup de preferits + Categoria de preferits Afegeix un grup - Podeu afegir un grup de preferits o fites de la traça. - Marcadors al mapa! - Destaca llocs al mapa per prémer-hi. + Podeu importar grups des de preferits o des de fites d\'una traça. + Creeu marcadors de mapa! + Premeu més o menys temps sobre els llocs i després el botó tipus bandera del marcador. Importa grups Podeu importar com marcadors a grups de preferits o a fites de la traça. \@string/shared_string_history @@ -2723,4 +2723,5 @@ Abasta l\'àrea: %1$s x %2$s Seleccioneu com indicar la distància als marcadors actius. Trieu quants indicadors de direcció es mostren. Més + Recerca de traces amb fites diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 3d699f7965..a27f071f41 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -2885,7 +2885,7 @@ Repræsenterer område: %1$s x %2$s stigende Dato tilføjet Sorter efter: - Vis vejledningslinje + Vis vejledningslinjer Vis pile på kortet Vis passeret Skjul passeret @@ -2900,7 +2900,7 @@ Repræsenterer område: %1$s x %2$s Eksporter markører til den angivne fil: Gem som spor Flyt til historik - Gruppen vil blive fjernet efter genstart + Gruppen vil blive fjernet efter næste genstart. Markører Koordinatformat Brug systemtastaturet @@ -2942,12 +2942,12 @@ Repræsenterer område: %1$s x %2$s Vis på topbjælken Marker som passeret Omdøb markør - Antal cifre + Antal decimaler Højre Venstre Vis numerisk tastatur Indsæt - Skift automatisk til det næste felt efter indtastning af %1$d cifre efter decimaltegnet. + Skift automatisk til det næste felt efter indtastning af %1$d decimaler. %1$d cifre Gå til næste felt To @@ -2956,17 +2956,19 @@ Repræsenterer område: %1$s x %2$s Viser en eller to pile der angiver retningen til de aktive markører. Vælg hvordan afstanden til de aktive markører skal vises. Vælg hvor mange retningsindikatorer der vises. - Vælg et spor af rutepunkter, som skal tilføjes til markører - Vælg favoritgrupper, der skal tilføjes markører. + Vælg et spor for at tilføje dets rutepunkter til markører (Kun spor med rutepunkter er angivet.) + Vælg favoritkategori, der skal tilføjes markører. Spor af rutepunkter - Favoritgruppe - Tilføj gruppe - Tilføjer en gruppe af favoritter eller et spor af rutepunkter. - Markører på kortet! - Marker steder på kortet med et tryk. + Favoritkategorier + Tilføj en gruppe + Importer grupper fra favoritter eller et spor af rutepunkter. + Opret kortmarkører! + Langt eller kort tryk på steder, og tryk derefter på markørflag knappen. Importer grupper Importer favoritgrupper eller et spor af rutepunkter som markører. \@string/shared_string_history Markører, der er markeret som passeret vises på denne skærm. Udseende på kortet + Find spor med rutepunkter + Mere diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index ad3e984c02..799b215fc1 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -2893,4 +2893,21 @@ Abgedeckte Fläche: %1$s x %2$s Rechts Links Einfügen + Suche nach Spuren mit Wegpunkten + Mehr + Darstellung auf der Karte + Favoriten Kategorie + Gruppe hinzufügen + Kartenmarkierungen erstellen! + Gruppen importieren + \@string/shared_string_history + Markierungen, die als passiert gekennzeichnet sind, werden auf diesem Bildschirm angezeigt. + Anzahl der Dezimalstellen + Nummernblock anzeigen + Automatisch in das nächste Feld wechseln nach der Eingabe von \" %1$d Dezimalstellen. + %1$d Ziffern + Zum nächsten Feld + Markierung umbenennen + Markierung passiert + Track-Wegpunkte diff --git a/OsmAnd/res/values-en-rGB/phrases.xml b/OsmAnd/res/values-en-rGB/phrases.xml index 8f4b37ada4..e1867d5d8a 100644 --- a/OsmAnd/res/values-en-rGB/phrases.xml +++ b/OsmAnd/res/values-en-rGB/phrases.xml @@ -5,6 +5,8 @@ This file is manually maintained in res/values-en-rGB and should ONLY contain strings where a different spelling should be used for English as used in the United Kingdom --> + Bookshop + Football Shop Filling station Waste disposal diff --git a/OsmAnd/res/values-en-rGB/strings.xml b/OsmAnd/res/values-en-rGB/strings.xml index dafd934dfc..dc3d8bdf24 100644 --- a/OsmAnd/res/values-en-rGB/strings.xml +++ b/OsmAnd/res/values-en-rGB/strings.xml @@ -4,6 +4,18 @@ This file is manually maintained in res/values-en-rGB and should ONLY contain strings where a different spelling should be used for English as used in the United Kingdom --> + Select a Favourite category to add to the markers. + Favourites category + You can import groups from favourites or track waypoints. + You can import favourite groups or track waypoints as markers. + Add Favourites + Add favourites on the map or import them from a file. + can be imported as Favourites points, or as track file. + Import as Favourites + Search favourites + Favourite information + Save as group of favourites + Add favourite Change colour Colour scheme towards @@ -62,5 +74,15 @@ Tapping the action button will add a destination at the screen centre location. Tapping the action button will replace the destination with the screen centre location. Tapping the action button will add a first intermediate point at the screen centre location. + Tapping the action button will add a parking place at the screen centre location. + Tapping the action button will add an OSM note at the screen centre location. + Tapping the action button will add a POI at the screen centre location. + Tapping the action button will add a map marker at the screen centre location. + Tapping the action button will add a GPX waypoint at the screen centre location. + Tapping the action button will show or hide the favourite points on the map. + Show/hide favourites + Show Favourites + Hide Favourites + Select the category to save the favourite in. Analyse on map - \ No newline at end of file + diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 0d0770cde4..4e39eef58a 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -2762,7 +2762,7 @@ Indikas lokon: %1$s x %2$s" Aldoni kurspunktojn Aldoni linion Aldoni kaj registri spurojn - Registri aŭ enporti spurojn por vidigi. + Registru aŭ enportu spurojn por vidigi. Aldoni ŝatatajn Aldonu ŝatatajn punktojn al la mapo aŭ enportu ilin el dosiero. Enporti spuron @@ -2799,7 +2799,7 @@ Indikas lokon: %1$s x %2$s" kreskante Dato de aldono Ordigi laŭ: - Montri gvidan linion + Montri gvid-liniojn Montri sagetojn sur la mapo Montri malaktivajn Kaŝi malaktivajn @@ -2821,14 +2821,14 @@ Indikas lokon: %1$s x %2$s" Elporti map-markojn al dosiero difinita tie ĉi: Konservi kiel kurson Movi al historio - Grupo estos forigita post restarto + Grupo estos forigita post la sekva restarto de la aplikaĵo. Aldoni kopion de komenc-punkto kiel celon. Fermita ekskurso Navigi Eraro okazis: rimarko ne estis ŝanĝita Redakti rimarkon Redakti OSM-rimarkon - • Tute refaritaj map-markoj kun helpo pri planado de vojaĝo + • Tute refaritaj map-markoj kun gvid-linioj kaj planado de vojaĝo \n \n• Ilo por mezuri distancoj kun ebloj proksimumigi pozicion al vojo kaj konservi punktojn kiel kurson \n @@ -2854,25 +2854,25 @@ Indikas lokon: %1$s x %2$s" Frapeti la mapon por baskuli butonojn kaj fenestraĵojn. Plenekrana reĝimo Montri en supra breto - Marki pasigitajn + Marki kiel pasigitan Alinomi markon - Nombro da ciferoj + Nombro da dekumaj pozicioj Dekstre Maldekstre Montri nombran klavaron Englui - Aŭtomate baskuli al la sekva kampo post entajpi %1$d ciferojn post la komo. + Aŭtomate baskuli al la sekva kampo post entajpi %1$d dekumajn ciferojn. %1$d ciferoj Iri al la sekva kampo Aspekto sur la mapo - Elekti navigadpunktojn por aldoni al map-markoj - Elekti grupon de ŝatataj por aldoni al map-markoj. + Elektu kurson por aldoni ĝiajn navigadpunktojn al map-markoj. (Nur kursoj kun navigadpunktoj vidiĝas.) + Elektu grupon de ŝatataj por aldoni al map-markoj. Navigadpunktoj de kurso - Ŝatataro + Kategorio de ŝatataj Aldoni grupon - Vi povas aldoni grupon da ŝatataj aŭ navigadpunktojn de kurso. - Map-markoj! - Vi povas marki ejojn sur la mapo per frapeti. + Vi povas enporti grupon el ŝatataj aŭ navigadpunktoj de kurso. + Krei map-markoj! + Frapetu aŭ frapetadu ejojn kaj poste frapetu la butonon de flago. Enporti grupojn Vi povas enporti grupojn de ŝatataj aŭ kurs-navigadpunktojn kiel map-markojn. Markoj markitaj kiel pasigitajn montriĝos sur tiu ĉi ekrano. @@ -2882,4 +2882,6 @@ Indikas lokon: %1$s x %2$s" Vidigi unu aŭ du sagetojn indikantajn direkton al map-markoj. Elekti kiel vidigi distancon al aktivaj map-markoj. Elekti nombron da direkt-indikiloj por vidigi. + Serĉado de kursoj kun navigadpunktoj + Pli diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index ff3415318f..9c28f79803 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -1924,7 +1924,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa Confirmar ¿Borrar el punto GPX? - Editar el punto GPX + Editar punto GPX Color del GPX Ancho del GPX Estilo del camino @@ -2763,7 +2763,7 @@ Proporciona un código completo ascendente Fecha de adición Ordenar por: - Mostrar línea guía + Mostrar líneas guía Mostrar flechas en el mapa Mostrar descartados Ocultar descartados @@ -2773,12 +2773,12 @@ Proporciona un código completo Finalizar Planificar ruta Ordenar - Ingreso de coordenadas + Ingresar coordenadas está guardado Exporta los marcadores a un archivo que puedes nombrar aquí: Guardar como traza Mover al historial - El grupo se quitará al reiniciar + El grupo se quitará al reiniciar la aplicación. Marcadores Formato de coordenadas Usar teclado del sistema @@ -2792,10 +2792,10 @@ Proporciona un código completo Excepción ocurrida: el informe de problema no se modificó Modificar informe Modificar informe de problema OSM - • Marcadores del mapa totalmente rediseñados con directrices y planificación de rutas -\n -\n • La herramienta de medición de distancias permite el ajuste al camino y guardar puntos como una traza -\n + • Marcadores del mapa totalmente rediseñados con líneas guía y planificación de rutas +\n +\n • La herramienta de medición de distancias permite el ajuste al camino y guardar puntos como una traza +\n \n • OSM Live: corrección de errores, nuevos datos en el servidor cada 30 minutos, actualizaciones implementadas en la navegación \n \n @@ -2820,22 +2820,22 @@ Proporciona un código completo Mostrar en la barra superior Descartar marcador Renombrar marcador - Cantidad de dígitos + Número de dígitos decimales Derecha Izquierda Mostrar teclado numérico Pegar - Cambiar automáticamente al campo siguiente al ingresar %1$d dígitos después del punto decimal. + Cambiar automáticamente al campo siguiente al ingresar %1$d dígitos decimales. %1$d dígitos Ir al campo siguiente - Elige los puntos de referencia de la traza que se añadirán a los marcadores. - Elige grupos de favoritos para añadir a los marcadores. + Elige una traza y sus puntos de referencia se añadirán a los marcadores. (Sólo se listan las trazas con puntos de referencia.) + Elige una categoría de favoritos para añadir a los marcadores. Puntos de referencia de la traza - Grupo de favoritos - Añadir grupo - Puedes añadir un grupo de favoritos o puntos de referencia de la traza. - ¡Marcadores del mapa! - Marca los lugares del mapa con una pulsación. + Categoría de favoritos + Añadir un grupo + Puedes importar grupos desde «Favoritos» o puntos de referencia de la traza. + ¡Crea marcadores del mapa! + Haz una pulsación corta o larga sobre los lugares, luego pulsa la bandera del marcador. Importar grupos Puedes importar grupos de favoritos o puntos de referencias de la traza como marcadores. Los marcadores descartados aparecerán en esta pantalla. @@ -2847,4 +2847,6 @@ Proporciona un código completo Elige cuántos indicadores de dirección mostrar. Aspecto en el mapa \@string/shared_string_history + Búsqueda de trazas con puntos de referencia + Más diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index fa982fe639..8f3adeec64 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -1924,7 +1924,7 @@ Se aprecia la participación activa, y las contribuciones pueden hacerse directa Confirmar ¿Borrar el punto GPX? - Editar el punto GPX + Editar punto GPX Color del GPX Ancho del GPX Estilo del camino @@ -2764,7 +2764,7 @@ Proporciona un código completo ascendente Fecha de adición Ordenar por: - Mostrar línea guía + Mostrar líneas guía Mostrar flechas en el mapa Mostrar descartados Ocultar descartados @@ -2774,12 +2774,12 @@ Proporciona un código completo Finalizar Planificar ruta Ordenar - Ingreso de coordenadas + Ingresar coordenadas está guardado Exporta los marcadores a un archivo que puedes nombrar aquí: Guardar como traza Mover al historial - El grupo se quitará al reiniciar + El grupo se quitará al reiniciar la aplicación. Marcadores Formato de coordenadas Usar teclado del sistema @@ -2793,10 +2793,10 @@ Proporciona un código completo Excepción ocurrida: el informe de problema no se modificó Modificar informe Modificar informe de problema OSM - • Marcadores del mapa totalmente rediseñados con directrices y planificación de rutas -\n -\n • La herramienta de medición de distancias permite el ajuste al camino y guardar puntos como una traza -\n + • Marcadores del mapa totalmente rediseñados con líneas guía y planificación de rutas +\n +\n • La herramienta de medición de distancias permite el ajuste al camino y guardar puntos como una traza +\n \n • OSM Live: corrección de errores, nuevos datos en el servidor cada 30 minutos, actualizaciones implementadas en la navegación \n \n @@ -2820,23 +2820,23 @@ Proporciona un código completo Modo de pantalla completa Mostrar en la barra superior Descartar marcador - Cantidad de dígitos + Número de dígitos decimales Derecha Izquierda Mostrar teclado numérico Pegar - Cambiar automáticamente al campo siguiente al ingresar %1$d dígitos después del punto decimal. + Cambiar automáticamente al campo siguiente al ingresar %1$d dígitos decimales. %1$d dígitos Ir al campo siguiente Renombrar marcador - Elige los puntos de referencia de la traza que se añadirán a los marcadores. - Elige grupos de favoritos para añadir a los marcadores. + Elige una traza y sus puntos de referencia se añadirán a los marcadores. (Sólo se listan las trazas con puntos de referencia.) + Elige una categoría de favoritos para añadir a los marcadores. Puntos de referencia de la traza - Grupo de favoritos - Añadir grupo - Puedes añadir un grupo de favoritos o puntos de referencia de la traza. - ¡Marcadores en el mapa! - Marca los lugares del mapa con una pulsación. + Categoría de favoritos + Añadir un grupo + Puedes importar grupos desde «Favoritos» o puntos de referencia de la traza. + ¡Crea marcadores del mapa! + Haz una pulsación corta o larga sobre los lugares, luego pulsa la bandera del marcador. Importar grupos Puedes importar grupos de favoritos o puntos de referencias de la traza como marcadores. Los marcadores descartados aparecerán en esta pantalla. @@ -2847,4 +2847,7 @@ Proporciona un código completo Elige cómo mostrar la distancia a los marcadores activos. Elige cuántos indicadores de dirección mostrar. Aspecto en el mapa + Búsqueda de trazas con puntos de referencia + Más + diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index 0761adc681..8ce58a9c42 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -55,7 +55,7 @@ Ya existe un archivo anterior con favoritos exportados. ¿Quiere sustituirlo? Ajustes específicos por perfil Perfil predeterminado - Ajustes de la vista y navegación del mapa son recordados por perfil usado. Establezca su perfil predeterminado aquí. + Los ajustes de vista del mapa y de navegación se recuerdan por perfil de uso. Establece tu perfil predeterminado aquí. Navegación Opciones específicas para la navegación. Ajustes globales @@ -333,9 +333,9 @@ El espacio de almacenamiento usado es {1} MB. Modificar PDI Borrar PDI A la brújula - En dirección al movimiento - No rotar (norte arriba) - Selecciona la alineación del mapa. + A la dirección del movimiento + No rotar (norte está arriba) + Selecciona la alineación de la pantalla del mapa. Orientación del mapa Detalle de la ruta Favoritos importados correctamente @@ -2311,7 +2311,7 @@ El espacio de almacenamiento usado es {3} MB temporalmente y {1} MB permanenteme Mostrar diálogo de favoritos Nombre predefinido Pulsar el botón de acción agregará un marcador de mapa en la ubicación del centro de la pantalla. - Pulsar el botón de acción agregará un punto intermedio GPX en la ubicación del centro de la pantalla. + "Pulsar el botón de acción agregará un punto de referencia GPX en la ubicación del centro de la pantalla." Pulsar el botón de acción agregará una nota de audio en la ubicación del centro de la pantalla. Pulsar el botón de acción agregará una nota de video en la ubicación del centro de la pantalla. Pulsar el botón de acción agregará una nota de la foto en el lugar del centro de la pantalla. @@ -2677,7 +2677,7 @@ Por favor proporciona un código completo Indicación de distancia Ordenar por Opciones del marcador - Elige cómo se indica la distancia y dirección a los marcadores del mapa en la pantalla del mapa: + Elige cómo se indica la distancia y la dirección a los marcadores del mapa en la pantalla del mapa: Umbral de orientación del mapa Elije la velocidad a partir de la cual la orientación del mapa cambia de «Dirección del movimiento» a «Brújula». Todos los marcadores del mapa movidos al historial @@ -2693,11 +2693,11 @@ Por favor proporciona un código completo Este año Control Barra superior - Mostrar las directrices - Mostrar las flechas en el mapa + Mostrar indicaciones + Mostrar flechas en el mapa Mostrar descartados Ocultar descartados - Eliminar de Map Markers + Eliminar de Marcadores de mapa descendente ascendente Fecha añadida @@ -2710,7 +2710,7 @@ Por favor proporciona un código completo Ordenar Entrada de coordenadas está guardado - Exporte sus marcadores a un archivo que puede nombrar aquí: + Exporte sus marcadores a un archivo que puedes indicar aquí: Guardar como traza Mover al historial El grupo se quitará al reiniciar @@ -2721,64 +2721,67 @@ Por favor proporciona un código completo Entrada rápida de coordenadas Evitar carreteras de hielo, vados Evita carreteras de hielo y vados. - Excepción ocurrida: nota no modificada + Ha ocurrido una excepción: la nota no se ha modificado Modificar nota Modificar nota OSM - Duplica el punto de inicio y lo añade como destino. - Viaje de ida y vuelta + Añade una copia del punto de inicio como destino. + Hacer ruta circular Navegar Formato incorrecto Carretera Mostrar mapa Ruta calculada - Viaje de ida y vuelta + Ruta circular Debes añadir al menos un marcador para usar esta función. - • Marcadores del mapa totalmente rediseñados con directrices y planificación de rutas + "• Marcadores del mapa totalmente rediseñados con indicaciones y planificación de rutas \n \n • La herramienta de medición de distancias permite el ajuste al camino y guardar puntos como una traza \n -\n • OSM Live: corrección de errores, nuevos datos en el servidor cada 30 minutos, actualizaciones implementadas en la navegación -\n -\n +\n • OSM Live: corrección de errores, nuevos datos en el servidor cada 30 minutos, actualizaciones implementadas en la navegación +\n +\n" Amarillo oscuro Entrada incorrecta Ingresar nombre nuevo Atrás Ver Puntos de referencia añadidos a marcadores de mapa - Una pulsación en el mapa alterna la vista de la interfaz y los controles. + Una pulsación en el mapa alterna los botones y los controles. Modo de pantalla completa Mostrar en la barra superior Descartar marcador - puede importarse como puntos de favoritos, o como un archivo de trazas. + puede importarse como puntos Favoritos, o como un archivo de traza. Importar como archivo GPX - Importar como favoritos + Importar como Favoritos Importar archivo - Cantidad de dígitos + Número de dígitos decimales Derecha Izquierda Mostrar teclado numérico Pegar - Cambiar automáticamente al campo siguiente al ingresar %1$d dígitos después del punto decimal. + Cambia automáticamente al campo siguiente después de escribir %1$d dígitos decimales. %1$d dígitos Ir al campo siguiente Renombrar marcador Apariencia en el mapa - Seleccione los puntos de referencia de la traza que se añadirán a los marcadores. - Seleccione el grupo de favoritos que se añadirán a los marcadores. - Puntos de referencia de la traza + Selecciona una traza para añadir sus puntos de referencia a los marcadores. (Sólo se muestran las trazas con puntos de referencia) + Selecciona un grupo de favoritos para añadirlos a marcadores. + Puntos de referencia de traza Grupo de favoritos Añadir grupo - Puedes añadir un grupo de favoritos o puntos de referencia de la traza. - ¡Marcadores del mapa! - Marca lugares del mapa con una pulsación. + Puedes importar grupos desde favoritos o puntos de referencia de traza. + ¡Crea marcadores de mapa! + Pulsa en lugares en el mapa y luego pulsa en el botón de bandera del marcador. Importar grupos - Puede importar grupos de favoritos o puntos de referencias de la traza como marcadores. + Puedes importar grupos de favoritos o puntos de referencia de traza como marcadores. Los marcadores descartados aparecerán en esta pantalla. Dos Uno - Se mostrará en el mapa una línea que conecta su ubicación con la de los marcadores activos. - Se mostrará en el mapa una o dos flechas indicando la dirección a los marcadores activos. - Seleccione cómo desea ver la distancia a los marcadores activos. - Seleccione cuántos indicadores de dirección desea ver. + Muestra indicaciones desde tu ubicación hasta las posiciones de los marcadores activos. + Muestra una o dos flechas indicando la dirección hacia los marcadores activos. + Elige cómo mostrar la distancia hasta los marcadores activos. + Elige cuántos indicadores de dirección se muestran. + Más + \@string/shared_string_history + Buscando trazas con puntos de referencia diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index ad7f8507ca..8827d60f70 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -188,7 +188,7 @@ برای ویدئو از ضبط‌کنندهٔ خود دستگاه استفاده کن. بازکردن پخش‌کنندهٔ خارجی موجود نیست - اندازه‌گیری فاصله + اندازه‌گیری مسافت بخش‌ها نشان‌دادن جهت مقصد مسیری وجود ندارد @@ -514,7 +514,7 @@ افزودن به‌عنوان اولین مقصد میانی افزودن به‌عنوان آخرین مقصد میانی افزودن به‌عنوان اولین مقصد میانی - مقصد میانی %1$s با نزدیک‌ترین جاده فاصلهٔ زیادی دارد. + مقصد میانی %1$s از نزدیک‌ترین جاده خیلی دور است. به مقصد میانی خود رسیده‌اید افزودن به‌عنوان مقصد میانی نقطهٔ بین‌راهی GPX، ‏«{0}»، افزوده شد @@ -678,8 +678,8 @@ ویرایش نقشهٔ OSM مسیر جاری را همین الآن روی کارت حافظه ذخیره کن. ذخیرهٔ مسیر GPX جاری - فاصلهٔ زمانی ثبت داده‌ها در هنگام راهبری - مشخص کنید فاصلهٔ زمانی ورود داده‌ها برای ضبط مسیر در هنگام راهبری چقدر باشد. + بازهٔ زمانی ثبت داده‌ها در هنگام راهبری + مشخص کنید در هنگام راهبری بازهٔ زمانی ورود داده‌ها برای ضبط مسیر چقدر باشد. هنگام راهبری، مسیر GPX به‌صورت خودکار ضبط می‌شود و در پوشهٔ مسیرها (tracks) ذخیره می‌گردد. تنظیمات لازم برای ارتباط با (OpenStreetMap.org (OSM را مشخص کنید. @@ -800,7 +800,7 @@ ارسال به OSM برخی جزئیات نقشهٔ بُرداری را در زوم‌های پایین‌تر نشان می‌دهد (جاده‌ها و...). نقطه(های) برگزیده حذف شد. - دارید %1$d نقطهٔ برگزیده و %2$d گروه را پاک می‌کنید. آیا مطمن هستید؟ + دارید %1$d نقطهٔ برگزیده و %2$d گروه را پاک می‌کنید. آیا مطمئن هستید؟ نقشه پایهٔ جهان (که تمام دنیا را در زوم‌های پایین پوشش می‌دهد) پیدا نشد. برای داشتن نمای جهانی لطفاً فایل World_basemap_x.obf را دانلود کنید. نسخهٔ محلی @@ -827,7 +827,7 @@ نقشه قبلاً نصب شده است، تنظیمات به‌روز خواهد شد. برای این عملیات ارتباط اینترنتی لازم است ولی اکنون وجود ندارد. نصب بیشتر… - حداقل زوم برای استفاده از نقشه‌های بُرداری. + کمترین زوم برای استفاده از نقشه‌های بُرداری. در هنگام جست‌وجوی آفلاین خطایی رخ داد. @@ -958,7 +958,7 @@ \nتنها می‌توانید نقشه‌های ازپیش‌بارگیری‌شده را ببینید و نمی‌توانید از اینترنت دانلود کنید. سرویس راهبری OsmAnd بازهٔ بیدارباش سرویس پس‌زمینه را تنظیم کنید. - فاصلهٔ زمانی بیدارباش GPS + بازهٔ زمانی بیدارباش GPS مشخص کنید سرویس پس‌زمینه اطلاعات مکانی را چگونه دریافت کند. ارائه‌دهندهٔ موقعیت برنامهٔ OsmAnd در پس‌زمینه اجرا می‌ماند تا در زمانی‌که صفحه خاموش است موقعیت شما را ردگیری کند. @@ -1152,7 +1152,7 @@ فایل محلی برای نگهداری تغییرات POI وجود ندارد و قابل‌ایجاد نیست. فایل‌های نقشهٔ موجود در سایت با نسخهٔ فعلی نرم‌افزار سازگار نیست. لطفاً برای دانلود و استفاده از نقشه‌ها، نرم‌افزار را به نسخهٔ جدیدتر ارتقا دهید. - جست‌وجو با نامی‌ناتیم + جست‌وجوی آنلاین با Nominatim داده‌های آفلاین نقشه روی کارت حافظه وجود ندارد. لطفاً برای استفاده از نقشه‌های آفلاین، آن را دانلود کنید. " @@ -1180,7 +1180,7 @@ شفافیت نقشهٔ پایه را تغییر دهید. شفافیت نقشهٔ پایه نقشه‌ها (کاشی) را برای نصب یا به‌روزرسانی انتخاب کنید. - حداقل سطح زوم بُرداری + کمترین سطح زوم بُرداری نشانی جغرافیایی \'%s\' قابل‌تجزیه نیست. @@ -1251,12 +1251,12 @@ انقضا (به دقیقه): %1$s قابل‌دانلود: %1$s حداکثر زوم: %1$s - حداقل زوم: %1$s + کمترین زوم: %1$s داده‌های کاشی: %1$s منبع کاشی %1$s ذخیره شد حداکثر زوم انقضا (به دقیقه) - حداقل زوم + کمترین زوم انتخاب از بین موارد موجود… تعریف/ویرایش… منطقهٔ رانندگی @@ -1619,9 +1619,9 @@ نمایش سطح جاده نمایش مسیرهای دوچرخه بازهٔ زمانی برای ضبط مسیر را انتخاب کنید (که از طریق ابزارک ضبط جی‌پی‌ایکس روی نقشه فعال می‌شود). - فاصلهٔ زمانی برای ورود داده‌ها + بازهٔ زمانی ورود داده‌ها (سراسری) می‌توانید ثبت موقعیت در فایل GPX را با استفاده از ابزارک ضبط GPX روی صفحهٔ نقشه، خاموش یا روشن کنید. - فاصلهٔ زمانی ورود + بازهٔ زمانی ثبت با این افزونه می‌توانید همهٔ مسیرهایتان را ضبط و در قالب فایل GPX ذخیره کنید؛ چه آن مسیرهایی که خودتان می‌روید و چه مسیرهایی که با مسیریابی خواهید پیمود. برای این منظور ابزارک ضبط جی‌پی‌ایکس را بر روی صفحهٔ نقشه لمس کنید. \n \nمی‌توانید مسیرهای ضبط‌شده را با دوستان یا برای استفاده در مشارکت‌های OSM به‌اشتراک بگذارید. ورزشکاران می‌توانند برای کنترل تمرین‌هایشان از مسیرهای ضبط‌شده استفاده کنند. برنامهٔ OsmAnd آنالیزهای ساده‌ای مانند مدت مسیر، سرعت متوسط و... را انجام می‌دهد و البته می‌توانید این مسیرها را در سایر نرم‌افزارهای تحلیلگر نیز آنالیز کنید. @@ -1811,7 +1811,7 @@ تغییرات OSM به بستهٔ تغییرات محلی اضافه شد برای حذف‌کردن علامت بزنید نام گروه باید حداقل ۳حرفی باشد! - دارید تعداد %1$d تغییر را به OSM ارسال می‌کنید. مطمئنید؟ + دارید تعداد %1$d تغییر را به OSM ارسال می‌کنید. مطمئن هستید؟ آیا سوابق را پاک می‌کنید؟ زمان انتظار برای باقی‌ماندن در صفحهٔ طراحی مسیر را مشخص کنید. مسیریابی مرحله‌به‌مرحله را بعد از … شروع کن @@ -2034,7 +2034,7 @@ اعلام هوشمند خودکار فقط اگر جهتم از سمت نقطهٔ مقصد منحرف شد، اعلام کن. بازهٔ زمانی اعلام خودکار - حداقل فاصلهٔ زمانی بین تکرار پیام‌ها. + کمترین فاصله بین اعلام پیام‌ها. رنگ پیش‌فرض انتخاب دسته نام @@ -2140,7 +2140,7 @@ ترجیح‌دادن بیراهه اولویت ساختار زمین: هموار یا پرتپه. شیب - دارید %1$d نقطه را حذف می‌کنید؛ مطمئنید؟ + دارید %1$d نقطه را حذف می‌کنید؛ مطمئن هستید؟ نقاط مهم این مسیر مسیر مدت‌زمان @@ -2183,7 +2183,7 @@ اطلاعاتی وجود ندارد رنگ‌بندی منحنی‌های تراز کمترین سرعت برای ورود به سیستم - حداقل دقت برای ثبت + کمترین دقت برای ثبت نقطهٔ POI کریسمس پیش‌بینی کریسمس و تعطیلات سال نو. برای نمایش POIهای مرتبط با کریسمس: درخت کریسمس، فروشگاه‌ها و غیره. آیا POIهای مربوط به کریسمس نمایش داده شود؟ @@ -2206,7 +2206,7 @@ نام فایل GPX: مشاهده بر روی نقشه پس از ذخیره‌شدن نقشه را بپیمایید و نقاط را اضافه کنید - اندازه‌گیری فاصله + اندازه‌گیری مسافت ادامه/مکث راهبری نمایش پیغام پایان‌یافتن راهبری شروع/اتمام راهبری @@ -2420,7 +2420,7 @@ به این برنامه امتیاز بدهید لطفاً در فروشگاه Play به OsmAnd امتیاز بدهید لطفاً علتش به ما بگویید. - لطفاً به ما بگویید دوست دارید چه چیزی در این برنامه تغییر بکند. + دوست دارید این برنامه چه تغییری بکند؟ لطفاً به ما بگویید. آپلود نشد حذف تغییر {0} مورد از {1} مورد آپلود شد @@ -2461,7 +2461,7 @@ بعداً نسخهٔ کامل دانلودها - آیا بااینکه نقشهٔ استاندارد (کامل) را دارید، هنوز می‌خواهید نقشهٔ فقط-جاده را دانلود کنید؟ + آیا با اینکه نقشهٔ استاندارد (کامل) را دارید، نقشهٔ فقط-جاده را هم دانلود می‌کنید؟ %1$.1f از %2$.1f مگابایت %.1f مگابایت به‌روزرسانی همه (%1$s مگابایت) @@ -2596,9 +2596,9 @@ ذخیره شد نشانه‌هایتان را در یک فایل ذخیره کنید. نام فایل را بنویسید: فرستادن به سابقه - گروه بعد از راه‌اندازی مجدد حذف می‌شود + گروه با راه‌اندازی مجدد برنامه حذف می‌شود. نزولی - فاصله تا نشانه‌ها و جهت‌گیری به‌سمت آن‌ها چگونه روی نقشه نشان داده شود: + مسافت تا نشانه‌ها و جهت‌گیری به‌سمت آن‌ها چگونه روی نقشه نشان داده شود: آستانهٔ تغییر جهت نقشه مشخص کنید که در چه سرعتی جهت نقشه از «در جهت حرکت» به «در جهت قطب‌نما» تغییر کند. همهٔ نشانه‌های نقشه به سابقه منتقل شد @@ -2696,14 +2696,14 @@ می‌توانید ویرایش‌های OSM خود را به‌صورت ناشناس یا با نام کاربری سایت OpenStreetMap.org آپلود کنید. خروجی %1$d را بگیرید و بروید در نوار اعلان دستگاه یک اعلان نشان می‌دهد که بتوانید ضبط سفر را شروع کنید. - فیلتر: حداقل سرعتی که یک نقطه باید داشته باشد تا ثبت شود. - فیلتر: حداقل فاصله‌ای که یک نقطه باید از موقعیت قبلی داشته باشد تا ثبت شود. - فیلتر: حداقل دقتی که یک نقطه باید داشته باشد تا ثبت شود. + فیلتر: کمترین سرعتی که یک نقطه باید داشته باشد تا ثبت شود. + فیلتر: کمترین مسافتی که یک نقطه باید از موقعیت قبلی داشته باشد تا ثبت شود. + فیلتر: کمترین دقتی که یک نقطه باید داشته باشد تا ثبت شود. پیداکردن پارکینگ افزودن بازهٔ زمانی خنثی‌کردن همه قطعه‌کردن ضبط‌ها پس از وقفه - حداقل جابه‌جایی برای ثبت + کمترین جابه‌جایی برای ثبت نویسه‌گردانی نام‌ها مدت کلیپ صدا @@ -2759,7 +2759,7 @@ برای مشاهده مسیری را وارد کنید یا ضبط کنید. واردکردن مسیر ورود فوری مختصات - نمایش خط راهنما + نمایش خطوط راهنما به نمایشش روی نقشه ادامه بده ذخیره به‌عنوان نقاط مسیر نقطهٔ مسیر @@ -2791,9 +2791,9 @@ نمایش جست‌وجوی موروثی جست‌وجوی موروثی را به منو اضافه می‌کند. نقشه • نقاط محبوب (POI یا Points of interest) اطرافتان را نشان می‌دهد • نقشه را در راستای حرکتتان (یا قطب‌نما) تنظیم می‌کند • موقعیتتان یا جایی را که جست‌وجو کرده‌اید، نشانتان می‌دهد • موقعیتتان را با دوستانتان به‌اشتراک بگذارید تا شما را پیدا کنند • جاهایی را که دوست دارید در قسمت نقاط برگزیده ذخیره کنید • شیوهٔ نمایش نام‌های روی نقشه را انتخاب کنید: انگلیسی، محلی یا نویسه‌گردانی‌شده • نمایش نقشه‌های تخصصی آنلاین، تصاویر ماهواره‌ای (بینگ) و رولایه‌های مختلف مانند مسیرهای گردشگردی یا راهبری GPX با امکان تنظیم شفافیت - • نشانه‌های نقشه ضمن اضافه‌شدن قابلیت‌های خطوط راهنما و طرح‌ریزی مسیر به‌صورت کامل بازسازی شد + • نشانه‌های نقشه را به‌صورت کامل بازسازی کردیم و قابلیت‌های خطوط راهنما و طرح‌ریزی مسیر نیز به آن افزوده شد \n -\n • قابلیت چسبیدن به جاده و ذخیره‌کردن نقاط به‌عنوان مسیر، به ابزار اندازه‌گیری فاصله اضافه شد +\n • قابلیت چسبیدن به جاده و ذخیره‌کردن نقاط به‌عنوان مسیر، به ابزار مسافت‌سنج اضافه شد \n \n • به‌روزرسانی پویا (OsmAnd Live): رفع ایرادات - داده‌های سرور هر ۳۰ دقیقه به‌روز می‌شود - به‌روزرسانی‌ها در مسیریابی استفاده می‌شود \n @@ -2933,30 +2933,32 @@ در نوار بالا نشان بده از این عبور کردم تغییر نام نشانه - تعداد ارقام + تعداد رقم‌های اعشاری راست چپ نمایش صفحه‌کلید عددی الصاق - با واردکردن %1$d رقم پس از ممیز، خانۀ بعدی به‌صورت خودکار فعال شود. + با واردکردن %1$d رقم اعشار، خانۀ بعدی به‌صورت خودکار فعال شود. %1$d رقم پرش خودکار به خانهٔ بعدی دو یک - نمایش خطوط راهنما از موقعیت شما به‌سوی نشانه‌های فعال. + نمایش خطوط راهنما از موقعیت شما به‌سمت نشانه‌های فعال. نمایش سمت قرارگیری نشانه‌های فعال روی نقشه با یک یا دو پیکان. - مشخص کنید که فاصلهٔ شما تا نشانه‌های فعال چگونه نشان داده شود. + مشخص کنید که مسافت شما تا نشانه‌های فعال چگونه نشان داده شود. مشخص کنید چند پیکانِ جهت‌نما نشان داده شود. ظاهر بر روی نقشه - نقاط بین‌راهی موردنظرتان را انتخاب کنید تا به نشانه‌ها اضافه شوند - گروه موردنظرتان از نقاط برگزیده را انتخاب کنید تا به نشانه‌ها اضافه شود. + مسیری را انتخاب کنید تا نقاط بین‌راهیِ آن به نشانه‌ها اضافه شود. (فقط مسیرهای دارای نقطهٔ بین‌راهی فهرست شده‌اند.) + یک گروه از نقاط برگزیده را انتخاب کنید تا به نشانه‌ها اضافه شود. نقاط بین‌راهی مسیر گروه نقاط برگزیده افزودن گروه - می‌توانید گروهی از نقاط برگزیده یا نقاط بین‌راهی را اضافه کنید. - نشانه‌گذاری روی نقشه! - با لمسِ نقشه، مکان‌های مختلف را نشانه بزنید. + می‌توانید گروهی از نقاط برگزیده یا نقاط بین‌راهی را وارد کنید. + روی نقشه نشانه‌گذاری کنید! + مکان‌ها را به‌صورت کوتاه یا طولانی لمس کنید و سپس دکمهٔ پرچم را بزنید. واردکردن گروه‌ها می‌توانید گروه‌های نقاط برگزیده یا نقاط بین‌راهی را به‌عنوان نشانه وارد کنید. نشانه‌هایی که به‌عنوان عبورکرده مشخص شده‌اند در این صفحه نشان داده می‌شوند. + بیشتر + جست‌وجو برای مسیرهای دارای نقطهٔ بین‌راهی diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 4afb5e8d38..ab6d2c6153 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -46,7 +46,7 @@ Un fichier de favoris précédemment exporté existe déjà. Voulez-vous le remplacer ? Paramètres pour le profil Profil par défaut - Les paramètres d’affichage et de navigation sont mémorisés dans un profil. Créez votre profil par défaut ici. + Les paramètres d’affichage et de navigation sont mémorisés dans un profil. Définissez votre profil par défaut ici. Navigation @@ -333,7 +333,7 @@ Au-delà la navigation bascule automatiquement sur le service en ligne CloudMade Téléphone Filtre Carte haute résolution - Utilisez des cartes de haute résolution pour les appareils les mieux équipés + Ne pas étirer (et rendre flou) les tuiles de carte sur les écrans haute résolution. Position inconnue Chercher un transport public @@ -378,7 +378,7 @@ Au-delà la navigation bascule automatiquement sur le service en ligne CloudMade Favoris Notes OSM (en ligne) - Points d\'intérêt… + Sur-couche des points d\'intérêt… Carte en ligne… Couches Rechercher un Point d\'Intérêt @@ -567,8 +567,8 @@ Au-delà la navigation bascule automatiquement sur le service en ligne CloudMade Afficher l\'angle de vue Activer la vue 3D de la carte Vue 3D - Afficher les points d\'intérêt sur la carte (utiliser le dernier filtre) - Afficher point d\'intérêt + Afficher sur la carte la dernière sur-couche de points d\'intérêt sélectionnée. + Afficher la sur-couche points d\'intérêt Sélectionnez la source des cartes dites tuiles (en ligne ou en cache). Carte en ligne (tuiles) Source cartographique @@ -1466,7 +1466,7 @@ Mémoire proportionnelle %4$s Mo (limite Android %5$s Mo, Dalvik %6$s Mo).Chargement de %1$s… Enregistrer comme groupe de favoris Sélectionnez les étapes - Libellés de point + Libellés de la sur-couche des points d\'intérêt Destination Afficher les boutons de zoom pendant la navigation. Afficher les boutons de zoom @@ -1776,7 +1776,7 @@ Voulez-vous effectuer à une nouvelle inscription ? Action {0} Vidéo Photo - Publié + sortit le Liste simple Visiter après Visiter avant @@ -2065,7 +2065,7 @@ Voulez-vous effectuer à une nouvelle inscription ? Mise à jour Lire plus - Quoi de neuf dans + Quoi de neuf en version Objets proposés Macédonien Frison occidental @@ -2541,7 +2541,7 @@ Si vous appréciez OsmAnd et OSM et que vous souhaitez soutenir ces projets, c\' Déplacer le bouton Appui long pour déplacer le bouton sur l\'écran Appuyez sur le bouton d\'action pour ajouter une marque au centre de la carte. - Appuyez sur le bouton d\'action pour ajouter une étape GPX au centre de la carte. + Un appui sur le bouton d\'action ajoutera une étape GPX au centre de la carte. Appuyez sur le bouton d\'action pour ajouter une note Audio au centre de la carte. Appuyez sur le bouton d\'action pour ajouter une note Vidéo au centre de la carte. Appuyez sur le bouton d\'action pour ajouter une note Photo au centre de la carte. @@ -2951,7 +2951,7 @@ représentant la zone : %1$s x %2$s Exporte vos marques dans un fichier portant le nom : Enregistrer comme trace Déplacer vers l\'historique - Le groupe sera supprimé au prochain démarrage + Le groupe sera supprimé au prochain démarrage de l\'application. Marques Format des coordonnées Utiliser le clavier système @@ -2971,11 +2971,11 @@ représentant la zone : %1$s x %2$s Boucle Vous devez ajouter au minimum une marque pour utiliser cette fonction. Route - \\022 Refonte complète des marques sur la carte avec indications de directions et planification d\'itinéraire -\n -\n • Outil de mesure de distance permettant un alignement sur la route et un enregistrement des points comme trace -\n -\n • OsmAnd Live: corrections de bugs, actualisation des données toutes les 30 minutes, prises en compte des mises à jour dans la navigation + \\022 Refonte complète des marques sur la carte avec indications de directions et planification d\'itinéraire +\n +\n • Outil de mesure de distance permettant un alignement sur la route et un enregistrement des points comme trace +\n +\n • OsmAnd Live : corrections de bugs, actualisation des données toutes les 30 minutes, prises en compte des mises à jour dans la navigation \n \n Format incorrect @@ -2993,23 +2993,23 @@ représentant la zone : %1$s x %2$s Afficher dans la barre supérieure Marquer comme visité Renommer la marque - Nombre de chiffres + Nombre de chiffres décimaux Droite Gauche Afficher le pavé numérique Coller - Aller automatiquement au champ suivant après avoir saisi %1$d chiffres après la virgule. + Passer automatiquement au champ suivant après avoir saisi %1$d chiffres après la virgule. %1$d chiffres Aller au champ suivant Apparence sur la carte - Sélectionnez des points de passage qu\'OsmAnd ajoutera aux marques - Sélectionnez les groupes de favoris à ajouter aux marques. + Sélectionnez une trace afin d\'ajouter ses points de passage comme marques (seules les traces avec points de passage figurent dans la liste). + Sélectionnez une catégorie de favoris à ajouter aux marques. Points de passage - Groupe de favoris + Catégorie de favoris Ajouter un groupe - Vous pouvez ajouter un groupe de favoris ou des points de passage. - Marques sur la carte ! - Marquez des emplacements sur la carte par simple appui. + Vous pouvez importer des groupes depuis les favoris ou les points de passage. + Ajoutez des marques sur la carte ! + Sélectionnez des emplacements sur la carte puis appuyez sur le drapeau de marque. Importer des groupes Vous pouvez importer des groupes de favoris ou des points de passage comme marques. \@string/shared_string_history @@ -3020,4 +3020,6 @@ représentant la zone : %1$s x %2$s Afficher une ou deux flèches indiquant la direction vers les marques actives. Indiquez comment afficher la distance avec les marques actives. Indiquez le nombre d\'indicateurs de direction à afficher. + Plus + Rechercher des traces avec points de passage diff --git a/OsmAnd/res/values-he/phrases.xml b/OsmAnd/res/values-he/phrases.xml index d2bee40db4..a2023fa4bd 100644 --- a/OsmAnd/res/values-he/phrases.xml +++ b/OsmAnd/res/values-he/phrases.xml @@ -1074,4 +1074,75 @@ כרטיסי סיבוס אינם מכובדים העברות בינלאומיות העברות בינלאומיות אינן מכובדות + כרטיס מזומן (Geldkarte) + כרטיס מזומן (Geldkarte) אינו מכובד + Proton + כרטיסי Proton אינם מכובדים + AvantCard + AvantCard אינו מכובד + MEP + MEP אינו מכובד + Minipay + Minipay אינו מכובד + MiniCash + MiniCash אינו מכובד + Moneo + Moneo אינו מכובד + Monedero 4B + Monedero 4B אינו מכובד + Monedero + Monedero אינו מכובד + BankAxess + BankAxess אינו מכובד + Coinkite + מטבעות Coinkite אינם מכובדים + Roadrunner + כרטיסי Roadrunner אינם מכובדים + SVG + SVG אינו מכובד + תשלומים ב־SMS + תשלומים ב־SMS אינם מכובדים + OV-Chipkaart + OV-Chipkaart אינו מכובד + Oyster + כרטיסי Oyster אינם מכובדים + SUBE + כרטיסי SUBE אינם מכובדים + Via Verde + Via Verde אינו מכובד + שוברי מזון + שוברי מזון אינם מכובדים + PayPal + PayPal אינו מכובד + U-Key + U-Key אינו מכובד + אסימונים + אסימונים אינם מכובדים + כרטיסי שי + כרטיסי שי אינם מכובדים + Golden Crown + כרטיסי Golden Crown אינם מכובדים + PRO100 + כרטיסי PRO100 אינם מכובדים + Yandex.Money + Yandex.Money אינו מכובד + תיאור התשלום + + מקום לאירועים + + צמחונות + צמחונות (מעט) + צמחונות בלבד + צמחונות + תזונה צמחונית: אין + טבעונות + טבעונות בלבד + טבעונות + תזונה טבעונית: אין + נטול גלוטן + נטול גלוטן בלבד + נטול גלוטן + תזונה נטולת גלוטן: אין + כשר + שקע: NEMA 14-50: פלט diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 2ad79db679..dd5653a167 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -700,7 +700,7 @@ שניות דקות הגדרת הפסקות שינה שמשמשות את שירות מצב השינה - הפרשי התעוררות + הפרשי התעוררות GPS אירעה שגיאה בעת עדכון רשימת הנ״ע המקומית אירעה שגיאה בעת טעינת הנתונים מהשרת לא נמצאו נתוני נ״ע בלתי מקוונים עבור אזור זה @@ -854,7 +854,7 @@ הצגת המפה בתלת־ממד הצגת נ״ע על גבי המפה (שימוש במסנן האחרון שנבחר) הצגת נ״ע - נא לבחור את המקור של אריחי מפה מקוונים או שמורים + נא לבחור מקור של אריחי מפה מקוונים או שמורים. מקור אריחי המפה מקור המפה להשתמש באינטרנט @@ -931,7 +931,7 @@ עריכת נ״ע יצירת נ״ע - לא ניתן למצוא את המפרק או שנותן השירות מפוזר על פני מספר מפרקים + לא ניתן למצוא את המפרק או שהמתחם מורכב ממספר מפרקים, מצב שלא נתמך עדיין. האם למחוק את {0} (להזין הערה)? מחיקת נ״ע מחיקה @@ -1134,7 +1134,7 @@ נקודת המוצא לא נבחר אורך סרטון - האורך של כל סרטון מוקלט לא יהיה גדול ממרווח הזמן המוגדר + הגבול העליון לאורך סרטונים מוקלטים. כמות המקום שמותר לנצל לצורך אחסון כל הסרטונים המוקלטים. עדכונים חיים בחירת הנחיה קולית @@ -1210,10 +1210,10 @@ שם המשתמש שגוי! עד מ־ - הצגת תמונות שנוספו בתקופה מסוימת. - תאריכים + הצגת תמונות שנוספו בלבד + תאריך הקלדת שם משתמש - הצגת תמונות שנוספו על ידי משתמש מסוים. + הצגת תמונות שנוספו רק על ידי שם משתמש אפשר לסנן תמונות לפי השולח או לפי תאריך. המסננים חלים רק על תקריב בגודל מסוים. מד זווית @@ -1477,28 +1477,28 @@ שינוי שם סמן נגיעה במפה מחליפה את תצוגת הכפתורים והווידג׳טים. הופעה על המפה - נא לבחור נקודות דרך במסלול שאותן OsmAnd יצרף לסמנים - נא לבחור קבוצות מועדפים להוספה לסמנים. + נא לבחור נקודות דרך במסלול שאותן OsmAnd יצרף לסמנים. (המסלולים המוצגים הם בעלי נקודות דרך בלבד.) + נא לבחור קטגוריה מועדפת להוספה לסמנים. נקודות דרך במסלול - קבוצת מועדפים + קטגוריית מועדפים הוספת קבוצה - ניתן להוסיף קבוצת מועדפים או נקודות דרך של מסלול. - סמנים במפה! - ניתן לסמן מקומות במפה בנגיעה. + ניתן לייבא קבוצות ממועדפים או נקודות דרך של מסלול. + ליצור סמנים במפה! + ניתן לסמן מקומות במפה בנגיעה קצרה או ארוכה ולאחר מכן ללחוץ על כפתור דגל הסמן. ייבוא קבוצות ניתן לייבא קבוצות מועדפים או נקודות דרך במסלול כסמנים. שניים אחד - על המפה יופיע קו שמחבר בין המיקום שלך למיקומים של הסמנים הפעילים. - על המפה יופיעו חץ או שניים המציינים את כיוון הסמנים הפעילים. - ניתן לבחור איך ברצונך להציג את המרחק עד לסמנים הפעילים. - נא לבחור כמה מחווני כיוון ברצונך לראות. - כמות הספרות + הצגת קווים מנחים מהמיקום שלך למיקומים של הסמנים הפעילים. + הצגת חץ או שניים המציינים את כיוון הסמנים הפעילים. + ניתן לבחור כיצד להציג את המרחק עד לסמנים הפעילים. + נא לבחור כמה מחווני כיוון יופיעו. + כמות הספרות העשרוניות ימין שמאל הצגת מקלדת ספרות הדבקה - מעבר אוטומטי לשדה הבא לאחר הזנת %1$d ספרות אחרי הנקודה העשרונית + מעבר אוטומטי לשדה הבא לאחר הקלדת %1$d ספרות עשרונית. %1$d ספרות מעבר לשדה הבא נוספו נקודות דרך לסמני המפה @@ -1510,7 +1510,7 @@ ניתן להוסיף המיקום שלך כנקודה ראשונה כדי לתכנן מסלול מושלם. קלט נקודות ציון ייצוא הסמנים שלך לקובץ שניתן לציין כאן: - הקבוצה תוסר לאחר הפעלה מחדש + הקבוצה תוסר לאחר ההפעלה הבאה מחדש של היישומון. הצגת קווים מנחים ניווט חי של OsmAnd לא הוגדר יעד @@ -1989,4 +1989,192 @@ משוב יצירת קשר אתנו מקרא מפה + הצגת חצים על המפה + הסרה מסמני המפה + יורד + עולה + תאריך ההוספה + סידור לפי: + מתבצע חיפוש אחר מסלולים עם נקודות דרך + עוד + לא לשלוח סטטיסטיקת שימוש אלמונית + הוספת הערה + פתיחת הערה מחדש + סגירת הערה + ההערה נוצרה בהצלחה + אירעה שגיאה: ההערה לא נוצרה + נא לבחור כיצד לציין את המרחק והכיוון לסמני המפה במסך המפה: + סף כיווניות מפה + כל סמני המפה הועברה להיסטוריה + סמן המפה הועבר להיסטוריה + סמן המפה הועבר למצב פעיל + רשימה + קבוצות + שימוש אחרון: %1$s + הגדרה כפעיל + היום + אתמול + נגיעה בכפתור הפעולה יכבה/יפעיל את התקריב במפה בהתאם למהירות שלך. + נגיעה בכפתור הפעולה תוסיף יעד למיקום מרכזי במסך. היעד שהוגדר קודם לכן הופך להיות יעד הביניים האחרון. + נגיעה בכפתור הפעולה יחליף את היעד במיקום מרכזי במסך. + נגיעה בכפתור הפעולה תוסיף נקודת ביניים ראשונה במקום מרכזי במסך. + אין שכבת על + אין שכבה תחתונה + סיום הניווט + התעלמות מדרך + זיכרון שיתופי + סרגל עליון + דוח מלא + חישוב המסלול מחדש + שם וססמה ב־OpenStreetMap + תרומות + מספר הנמענים + דירוגי עורכים ב־OSM + עריכת מינוי + נדרש לצורך שליחת עדכונים על תרומות. + שם ציבורי + לא להציג את השם שלי בדוחות + אזור תמיכה + עלות חודשית + תודה לך על המינוי לעדכונים חיים! + חלק מהתרומות שלך תישלחנה למשתמשי OSM שעורכים שינויים במפה באזור הזה. + הגדרות מינוי + בחירת סמן מפה + העלאה אלמונית + ההערה נסגרה בהצלחה + אירעה שגיאה: ההערה לא נסגרה + ססמה ל־OSM (רשות) + הגשה + למחוק נקודת דרך GPX? + עריכת נקודת דרך GPX + מיקום + עריכות ב־OSM ששותפו דרך OsmAnd + גרמנית תחתית + מקדונית + פריזית + אלבנית (טוסק) + מידע נוסף + מה חדש עם + עצמים מוצעים + עדכון + העלאה + נוצרו נקודות עניין ב־OSM + קוד QR + מפה התקבלה + המפה של %1$s התקבלה, כעת ניתן להתחיל להשתמש בה. + הצגת המפה + הגדרת הדגל שמציין את הפעלת היישומון לראשונה, כל שאר ההגדרות נותרו ללא שינוי. + הדמיית הפעלה ראשונה של יישומון + שיתוף מיקום + שליחה + שם הקטגוריה שצוין כבר קיים. נא להשתמש בשם אחר. + שם הקטגוריה + הוספת קטגוריה חדשה + אזורים + מפות אזוריות + מפות עולמיות + קווי מתאר מושבתים + הוספת חדש + בחירת קטגוריה + הגדרת יחידת מהירות. + יחידת מהירות + מילים ימיים + קילומטרים לשעה + מילים לשעה + מטרים לשנייה + דקות לקילומטר + דקות למיל + מיל ימי לשעה (קשר) + nmi/שע׳ + מ/שנ׳ + הקלטת טיול + ניווט + רץ ברקע + הפרשי השכמת GPS + מידע מועדף + הפסקת הדמיית המיקום שלך. + הדמיית המיקום שלך באמצעות נתיב מחושב או מסלול GPX מוקלט. + הכתובת בחיפוש + קובץ GPX עם מיקומי הערות. + התעלמות מרכבות שאטל + התעלמות מרכבות שאטל + קו מתאר מודגש + נווארית / נפאל בהאסה + יש לך נתונים מיושנים של ויקיפדיה שאינם נתמכים. להעביר אותם לארכיון? + להוריד נתונים נוספים מוויקיפדיה (%1$s מ״ב)? + שירות המיקום אינו פעיל. להפעיל אותו? + מניעת רישום עצמאי + ייבוא ל־OsmAnd + קריאת הכתבה המלאה (מקוון) + ויקיפדיה + ויקיפדיה + הצגת פרטים + מחיקת עריכת OSM + מושבת + צבע לפי שיוך לרשת + יציאה + מספרי בתים + האם על OsmAnd להעתיק את קובצי הנתונים שלו ליעד החדש? + לא ניתן ליצור מפות בתיקייה שצוינה + העתקת הקבצים נכשלה + אחסון חיצוני + אחסון למגוון משתמשים + זיכרון פנימי של היישומון + ציון ידני + זיכרון פנימי + אחסון המפה + העתקה + סינון לפי שם + סוג לחיפוש הכול + פתיחה כעת + מסייע מיפוי OSM + מידע A-GPS + ניהול + עריכה + מיקומים + חיפוש + הצגת תיאור. + הודעה + הפעם האחרונה שהתקבלו נתוני A-GPS:‏ %1$s + בארצות רבות (גרמניה, צרפת, איטליה ואחרות) השימוש באזהרה מפני מצלמות אסורה על פי חוק. צוות OsmAnd אינו אחראי במקרה של הפרת החוק. נא ללחוץ על כן אם מותר לך להשתמש בתכונה זו באופן חוקי. + הורדת מפות + כדי לשקף את חוקי התנועה והתמרורים, נא לבחור את אזור הנהיגה: + ב־OsmAnd יש אפשרות לגלישה גלובלית במפות ללא אינטרנט וניווט גלובלי ללא אינטרנט! + ברוך בואך + הנתיב הנוכחי + השינויים ב־OSM נוספו לערכת השינויים המקומית + סימון למחיקה + אורך שם הקבוצה חייב להיות באורך 3 תווים לפחות! + פעולה זו תוביל למחיקת %1$d הערות. להמשיך? + פעולה זו תעלה %1$d שינויים ל־OSM. להמשיך? + לפנות את ההיסטוריה? + להוריד מפות בלתי מקוונות? + הורדת %1$s מפות + אזור + שימוש בעיבוד OpenGL בהאצת חומרה (עשוי לא לעבוד על חלק מההתקנים). + לא נמצא מעקף + בית + קיימים עדכונים ל־%1$s מפות + נתיבי אוטובוס, טרוליבוס, שאטל + נתיבי רכבת ורכבת קלה + ל־%1$s נדרשת ההרשאה הזאת כדי לכבות את המסך לטובת התכונה לחיסכון באנרגיה. + הדלקת מסך ההתקן (אם הוא כבוי) עם הגעה לפנייה. + התעלמות מדרכים… + מסלולי רכבת קלה + נתיבי מוניות שירות + נתיבי טרוליבוס + נא לבחור סף סובלנות להגבלת מהירות, מעל הסף הזה תושמע אזהרה קולית. + שם המועדף שצוין כבר בשימוש, השתנה לשם %1$s כדי להימנע מכפילות. + הגדרת גודל הטקסט במפה. + הפרשי רישום באופן כללי + השהיית מוזיקה + שיתוף מסלול כקובץ GPX + מסלול שותף דרך OsmAnd + מוקדם + רגיל + מאוחר + במטרים האחרונים + הכרזת הגעה + אירופה - הולנד + ידני בלבד (נגיעה בחץ) diff --git a/OsmAnd/res/values-hy/strings.xml b/OsmAnd/res/values-hy/strings.xml index 3309633a28..5fd53f891f 100644 --- a/OsmAnd/res/values-hy/strings.xml +++ b/OsmAnd/res/values-hy/strings.xml @@ -98,7 +98,7 @@ Ոչ OpenMaps - Եվրոպա Կոնտուրային գծերի/եզրագծերի տվյալներ - Միացնել ճշգրիտ ճանապարհի հաշվարկի ռեժիմը։ Այս ռեժիմը աշխատում է կարճ հեռավորությունների վրա և չի օգտագործում սեփական գրադարանը + Միացնել ճշգրիտ երթուղիների հաշվարկի ռեժիմը։ Այս ռեժիմը դեր սահմանափակված է հեռավորությամբ և դանդախ է։ Dropbox փլագին Ընտրել ըստ հարցման Ընտրել default Widget գործողություն։ @@ -233,10 +233,10 @@ Սխալ օգտագործողի անուն! Մինչև Սկսած - Դիտել լուսանկարներ ավելացրած որոշակի ժամանակահատվածում: - Ամսաթվեր + Դիտել միայն ավելացրած լուսանկարներ + Ամսաթիվ "Մուտքագրեք օգտատերի անունը" - Դիտել որոշակի օգտագործողի կողմից վերբեռնված լուսանկարները: + Դիտել լուսանկարները ավելացրած օգտագործողի կողմից Օգտատերի անունը Դուք կարող եք դասավորել լուսանկարներ ըստ ուղարկողի կամ ամսաթվի: Զտիչները օգտագործվում են միայն մեծ չափերի համար: Շառավիղ-քանոն @@ -619,7 +619,7 @@ Ձայն Ցանկալի է անջատել պոլիգենների ցուցադրումը։ "Clip երկարությունը" - Յուրաքանչյուր ձայնագրված տեսահոլովակի(clip) երկարությունը չի նշանակվի ավելի երկար ընտրված ժամանակահատվածից + Ձայնագրված տեսահոլովակի(clip) երկարության սահմանաչափը։ Հիշողության ծավալը, որը կարող է զբաղեցված լինի բոլոր clips-ներով։ Հեռավորություն։ Ժամանակ՝ @@ -1077,7 +1077,7 @@ Հավաքներ Փողոցային լուսավորություն Proxy սերվեր - Ինտերնետային կապի հաստատում proxy սերվերի միջոցով + Նշեք Ինտերնետային proxy սերվերը։ Գաղտնիություն Կետեր Ցանկանում եք սկսել նավարկությունը ըստ տրեկի? @@ -1326,7 +1326,7 @@ Նիստի URL սարքի հետեւելու համար "Թիրախային սարքին միանալու համար %2$s, սեխմել հղման վրա %3$s կամ նշեք track ID-ն (%1$s)" Մուտքագրման ընդմիջում - Ընտրեք ժամանակի ընդմիջում դիրքը ուղղարկելու համար + Ընտրեք ժամանակի ընդմիջումը գտնվելու վայրի տվյալները ուղղարկելու համար։ օրեր Միացում Սպառվում է @@ -1785,7 +1785,7 @@ Տեսանելիություն Թեգեր(Tags) Նկարագրություն - Նշեք OSM-ի օգտվողի անունը և գաղտնաբառը, GPX ֆայլերը OpenStreetMap-ին վերբեռնելու համար: + Նշեք OSM-ի օգտվողի անունը և գաղտնաբառը, GPX ֆայլերը OpenStreetMap վերբեռնելու համար: Աջակցում Աջակցել նոր հատկությունների զարգացումը Նվիրատվություն կատարեք նոր հատկությունները հավելվածում տեսնելու համար։ @@ -1896,17 +1896,17 @@ Ընդհանուր Էկրանի պարամետրերը, տեղայնացում, միավորներ և այլն։ Հավելվածի ընդհանուր կարգավորումները - Ձեր OSM օգտվողի անունը (user name) + Ձեր OSM օգտվողի անունը (username) Նշեք OSM-ի օգտվողի անունը (պահանջվում է OSM-ի հետ աշխատելու համար)։ Ձեր OSM գաղտնաբառը Ֆոնային ռեժիմ - Միացնում է OsmAnd-ը ֆոնային ռեժիմում երբ էկրանը անջատված է + Աշխատեցնում է OsmAnd-ը ֆոնային ռեժիմում երբ էկրանը անջատված է։ Ներբեռնելու համար բավարար ազատ տեղ չկա %1$s ՄԲ (ազատ է: %2$s)։ Թափանցիկ թեմա Հիմնական գրադարանը չի աջակցվում այս սարքում: Տեղական գրադարանի ստեղծում … Քարտեզի ավտոմատ վերադարձման կարգավորումները - Ընտրեք այն ժամանակը, երբ քարտեզը կվերադառնա ընթացիկ դիրքին + Ընտրեք այն ժամանակը, երբ քարտեզը կվերադառնա ընթացիկ դիրքին։ Միայն ձեռքով (սեղմելով «սլաքը») Կրկնել նավիգացիոն հրահանգները պարբերաբար։ Կրկնել նավիգացիոն հրահանգները @@ -2105,7 +2105,7 @@ Գիշերային Արևածագ/մայրամուտ Լույսի սենսոր - Ընտրեք քարտեզի ցերեկային/գիշերային ռեժիմը + Ընտրեք քարտեզի ցերեկային/գիշերային ռեժիմը։ Ցերեկային/գիշերային ռեժիմ Ներբերնել {0} ֆայլ(եր) ({1} ՄԲ)? Ընտրվեց {0} @@ -2178,7 +2178,7 @@ վայրկյան րոպ․ Ընտրեք արթնացման ժամանակի ընդմիջումը ֆոնային ծառայության համար։ - Ֆոնային ծառայության համար ընտրել դիրքորոշման աղբյուր + Ֆոնային ծառայության համար ընտրել դիրքորոշման աղբյուր։ Դիրքորոշման աղբյուր Միացնում է OsmAnd-ը ֆոնային ռեժիմում, ձեր գտնվելու վայրը հետեւելու համար, երբ էկրանը անջատված է։ Միացնում է OsmAnd-ը ֆոնին ռեժիմում @@ -2325,8 +2325,8 @@ Ընտրեք երկիրը Միացնել քարտեզի 3D ռեժիմը: Քարտեզի 3D տեսք - Ցուցադրել POI-ի քարտեզի վրա (օգտագործել վերջին ընտրված ֆիլտրը): - Ցույց տալ POI + Ցուցադրել վերջին ընտրած POI-ին քարտեզի վրա: + Ցույց տալ POI-ի Քարտեզի աղբյուրը Օգտագործել Ինտերնետը Ցույց տալ ձեր դիրքը @@ -2597,9 +2597,9 @@ Կրկնել Տրեկի (track) կետերը Ավելացնել խումբ - Դուք կարող եք ավելացնել «Սիրված»-ի խումբ կամ տրեկի կետեր: + Դուք կարող եք ավելացնել «Սիրված» խումբ կամ տրեկի կետեր: Ներմուծել խմբերը - Դուք կարող եք ներմուծել «Սիրված»-ի խմբերը կամ տրեկի կետերը որպես մարկերներ: + Դուք կարող եք ներմուծել «Սիրված» խմբեր կամ տրեկի կետերը որպես մարկերներ: Երկու Մեկ Ավելացնել կետ @@ -2616,4 +2616,16 @@ Ֆայլ %1$s չի պարունակում կետեր, ներմուծել այդ որպես տրեկ? Տեղափոխել կետը Ավելացնել սեգմենտը GPX-ին - +Ավելին + Տեսքը քարտեզի վրա + Ընտրել տրեկը որը OsmAnd-ը կավելացնի մարկերներին + Ընտրեք «Սիրված» խումբը, որը ցանկանում եք ավելացնել մարկերներին + «Սիրված»-ի խումբը + Մարկերները քարտեզի վրա է! + Կետերի նշում քարտեզի վրա սխմելով էկրանին։ + Այս էկրանին կհայտնվեն մարկերներ, որոնք նշված են ինչպես անցած։ + Թվերի քանակը + Ցուցադրել թվային վահանակը + %1$d թվեր + Նշել անցած + diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml index 07e9bdf9dd..6d10aff29d 100644 --- a/OsmAnd/res/values-it/strings.xml +++ b/OsmAnd/res/values-it/strings.xml @@ -1079,7 +1079,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Utilizza il sensore magnetico (bussola) Linee isoipse Riduce il rumore delle letture della bussola ma introduce dell\'inerzia - Uso del filtro di Kalman + Usa il filtro di Kalman Prego attendere il termine dell\'operazione orario Accuratezza @@ -1302,10 +1302,10 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Formato non valido: %s ID univoco del dispositivo Configura le impostazioni di monitoraggio e imposta il canale di monitoraggio personale. - Questo componente aggiuntivo fornisce parzialmente le funzionalità del monitoraggio di OpenStreetMap, vedi http://osmo.mobi. -\n -\nPuoi tracciare in tempo reale tutti i dispositivi di un gruppo di partecipanti. Puoi anche visualizzare i punti e le tracce caricate dal gruppo a cui appartieni. -\n + Questo componente aggiuntivo fornisce parzialmente le funzionalità del monitoraggio di OpenStreetMap, vedi http://osmo.mobi. +\n +\nPuoi tracciare in tempo reale tutti i dispositivi di un gruppo di partecipanti. Puoi anche visualizzare i punti e le tracce caricate dal gruppo a cui appartieni. +\n \nIl gruppo che non è stato rimosso da mesi viene allineato con le tue regole per la creazione di gruppi nel sito OsMo.mobi Monitoraggio OpenStreetMap OsMO @@ -1367,7 +1367,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Invia le mie posizioni Accesso rapido ad OsMo - Salvare i punti come file GPX o importare i waypoint nei favoriti? + Salvare i punti come file GPX o importare i punti intermedi nei favoriti? Rosa @@ -1384,7 +1384,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Per creare dei gruppi è necessario essere utenti registrati di OsMo. Le tue credenziali di OsMo non sono valide. Sei sicuro di voler rigenerare gli id personali? Tutti i dispositivi collegati a te non saranno più in grado di tracciarti. - Rigenera l\'id + Rigenera l\'id dell\'utilizzatore Cancella l\'obiettivo mobile Centra nello schermo Imposta come obiettivo mobile @@ -1429,7 +1429,7 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB).Orario attuale Salva come gruppo di preferiti Scegli le destinazioni - Sovrapposizione etichette PDI + Visualizza etichette PDI Mostra i pulsanti dello zoom Mostra i pulsanti dello zoom durante la navigazione. @@ -1462,10 +1462,8 @@ Memoria in proporzione %4$s MB (limite di Android %5$s MB, Dalvik %6$s MB). Per favore leggere prima di creare un gruppo! Errore di autorizzazione OsMo: %1$s. - -Potrebbe essere un disservizio temporaneo oppure che la registrazione è scaduta. - -Vuoi procedere con una nuova registrazione? +\n Potrebbe essere un disservizio temporaneo oppure che la registrazione è scaduta. +\n Vuoi procedere con una nuova registrazione? Edifici Strade non carrabili Testo @@ -1572,10 +1570,10 @@ Vuoi procedere con una nuova registrazione? Tolleranza del limite di velocità Seleziona il valore di superamento del limite di velocità dal quale si desidera avere l\'avviso vocale. Dispositivo non trovato - Connessione al server OsMo non riuscita: -- controlla la connessione a Internet; -- controlla le impostazioni; -- contattaci su Twitter: https://twitter.com/OsMomobi + Connessione al server OsMo non riuscita: +\n- controlla la connessione a Internet; +\n- controlla le impostazioni; +\n- contattaci su Twitter: https://twitter.com/OsMomobi Un utente anonimo non può:\n- creare gruppi;\n- sincronizzare con il server gruppi e dispositivi;\n- gestire gruppi e dispositivi nel pannello di controllo sul sito. Utente anonimo Registrato come %1$s @@ -1791,7 +1789,7 @@ Attivando questa vista lo stile della mappa diventerà \'Inverno e sci\', mostra Visita prima Compatta Azione crea - Modificato + Azione modifica Azione elimina Modifiche OSM h @@ -2599,24 +2597,41 @@ Rappresenta l\'area: %1$s x %2$s Divisione automatica delle registrazioni dopo un periodo Inizia un nuovo segmento dopo 6 minuti, una nuova traccia dopo 2 ore, o un nuovo file dopo un intervallo maggiore. Mostra contorni e punti in profondità. - "• Nuove funzionalità: Pulsante azione veloce + "\\022 Nuove funzionalità: Pulsante azione veloce +\n \n +\n \n • Migliorata la risposta del touch screen ai gesti (es. zoommare e allargare) \n +\n \n • Nuovi caratteri della mappa mappa per estendere la copertura di più lingue +\n \n +\n \n • Supporto TTS per le lingue locali (e accenti) +\n \n +\n \n • Miglioramento della visibilità in molti stili mappa e wikipedia +\n \n +\n \n • Supporto all\'Open Location Code (OLC) +\n \n +\n \n • Visualizzazione di un profilo altimetrico, pendenza, e velocità per i GPX registrati e percorsi calcolati +\n \n +\n \n • Impostazione e miglioramenti della logica dello \"Stile guida\" nella guida svolta per svolta in bicicletta +\n \n +\n \n • Molti altri miglioramenti e correzioni di errori +\n \n +\n \n e altro ancora…" Stile di guida @@ -2809,11 +2824,11 @@ Rappresenta l\'area: %1$s x %2$s Max/Min Min/Max Riprendi/sospendi la navigazione - • Componente aggiuntivo Mapillary con immagini stradali + \\022 Componente aggiuntivo Mapillary con immagini stradali \n \n • Widget righello per la misurazione della distanza \n -\n • Scelta degli intervalli delle tracce GPX con informazioni dettagliate sul tuo percorso +\n • Scelta degli intervalli delle tracce GPX con informazioni dettagliate sul tuo percorso \n \n • Altre migliorie e correzioni di errori \n @@ -2939,37 +2954,39 @@ Rappresenta l\'area: %1$s x %2$s Importa come file GPX Importa come Preferito Importa file - Un tap sulla mappa per modificare i pulsanti di controllo e i widgets. + Un tap sulla mappa per visualizzare o meno i pulsanti di controllo e i widgets. Modalità a schermo intero Mostra nella barra superiore Marcatore superato può essere importato come Luogo Preferito oppure come file traccia. Visualizzazione nella mappa - Scegli i punti intermedi della traccia che OsmAnd aggiungerà ai marcatori - Scegli quali gruppo di luoghi preferiti che OsmAnd aggiungerà ai marcatori + Scegli una traccia per aggiungerne i punti intermedi ai marcatori. (Saranno elencate solo tracce con punti intermedi.) + Scegli una categoria di luoghi preferiti da aggiungere ai marcatori. Punti intermedi della traccia - Gruppo di luoghi preferiti - Aggiungi gruppo - Puoi aggiungere un gruppo di preferiti o i punti intermedi di una traccia. - Marcatori nella mappa! - Marca i luoghi sulla mappa tappando su di essi. + Categoria di luoghi preferiti + Aggiungi un gruppo + Puoi importare un gruppo dai preferiti o i punti intermedi di una traccia. + Crea i marcatori nella mappa! + Tap lungo o breve nel luogo, poi tappa il pulsante bandiera del marcatore. Importa gruppi Puoi importare, come marcatori, gruppi di luoghi preferiti o punti intermedi di tracce. \@string/shared_string_history - Marcatori indicati come superati appariranno su questa schermata. + Marcatori indicati come passati appariranno su questa schermata. Due Uno - Una linea di collegamento fra la tua posizione e le posizioni dei marcatori attivi verrà visualizzata sulla mappa. - Una o due frecce, indicanti la direzione verso i marcatori attivi, verranno visualizzate sulla mappa. - Scegli come vorresti visualizzare la distanza verso marcatori attivi. - Scegli quante indicazioni di direzione vuoi vedere. - Numero di cifre + Una linea-guida fra la tua posizione e le posizioni dei marcatori attivi verrà visualizzata sulla mappa. + Visualizza una o due frecce, indicanti la direzione verso i marcatori attivi. + Scegli come visualizzare la distanza verso marcatori attivi. + Scegli quante indicazioni di direzione sono visualizzate. + Numero di cifre decimali Destra Sinistra Mostra la tastiera numerica Incolla - Spostati automaticamente nel campo successivo dopo l\'immissione di %1$d cifre dopo il punto decimale + Spostati automaticamente nel campo successivo dopo l\'immissione di %1$d cifre decimali. %1$d cifre Vai al campo successivo Rinomina il marcatore + Cerco tracce con punti intermedi + Altro diff --git a/OsmAnd/res/values-ja/strings.xml b/OsmAnd/res/values-ja/strings.xml index 6677985623..ef90de7144 100644 --- a/OsmAnd/res/values-ja/strings.xml +++ b/OsmAnd/res/values-ja/strings.xml @@ -3060,4 +3060,9 @@ OsmAndとOSMをサポートする方法として現状最適な方法である 移動時間 最大/最小 最小/最大 + 経由地点のある経路を探す + もっと見る + マップの外観 + マーカーに経由地点を追加する経路を選択します。(経由地点を含む経路のみリストアップされます) + マーカーに追加するお気に入りのカテゴリを選択します。 diff --git a/OsmAnd/res/values-nb/strings.xml b/OsmAnd/res/values-nb/strings.xml index 52ef995f1f..83d0fed432 100644 --- a/OsmAnd/res/values-nb/strings.xml +++ b/OsmAnd/res/values-nb/strings.xml @@ -2433,8 +2433,8 @@ Representerer området: %1$s x %2$s \n Ønsker du å fortsette med ny registrering? OSM-notater (på nett) Flytt til historikk - Gruppe vil bli fjernet etter omstart - Vis veiledningslinje + Gruppen blir fjernet etter neste start av programmet. + Vis hjelpelinjer Vis piler på kartet Vis passerte Skjul passerte @@ -2565,19 +2565,19 @@ Representerer området: %1$s x %2$s Fullskjermmodus Vis på topplinjen Utseende på kartet - Legg til gruppe + Legg til en gruppe Importer grupper To Én - Favorittergruppe - Markører på kartet! - Marker steder på kartet med et trykk. + Favoritterkategori + Opprett kartmarkører! + Lang eller kort-trykk steder, deretter trykk markørflaggknappen. Markører markert som passert vises på denne skjermen. - Antall sifre + Antall desimaler Høyre Venstre Lim inn - Skift automatisk til det neste feltet etter å ha angitt %1$d sifre etter desimaltegnet. + Skift automatisk til det neste feltet etter å ha angitt %1$d desimaler. %1$d sifre Gå til neste felt Gi nytt navn til markør diff --git a/OsmAnd/res/values-pl/phrases.xml b/OsmAnd/res/values-pl/phrases.xml index 20e8ad3305..9957adf071 100644 --- a/OsmAnd/res/values-pl/phrases.xml +++ b/OsmAnd/res/values-pl/phrases.xml @@ -3670,4 +3670,6 @@ Rozmiar mapy: miasto Rozmiar mapy: region +Stacja ładowania + diff --git a/OsmAnd/res/values-pl/strings.xml b/OsmAnd/res/values-pl/strings.xml index df97c5d4b9..645c2a1335 100644 --- a/OsmAnd/res/values-pl/strings.xml +++ b/OsmAnd/res/values-pl/strings.xml @@ -2269,7 +2269,7 @@ Długość %2$s Przenieś w górę Przenieś w dół Zakończ nawigację - Belka górna + Górny pasek Edycji %1$s, range %2$s, zmian łącznie %3$s Subskrypcja OsmAnd Live Wymagany, aby dostarczyć informacje o wkładzie @@ -2880,7 +2880,7 @@ Reprezentuje obszar: %1$s x %2$s Zapisywanie śladu Przenieś do historii Grupa zostanie usunięta po ponownym uruchomieniu - Użyj klawiatury systemowej + Użycie klawiatury systemowej jest zapisany Błędny format Droga @@ -2909,16 +2909,25 @@ Reprezentuje obszar: %1$s x %2$s Wróć Wyświetl Dodano punkty pośrednie do znaczników mapy - Punkty trasy + Punkty śladu Grupa ulubionych Dodawanie grupy - Dodaje grupę ulubionych miejsc lub punktów trasy. + Dodaje grupę ulubionych miejsc lub punktów śladu. Znaczniki na mapie! - Oznacza miejsca na mapie dotknięciem. + Proszę dotknąć miejsce a następnie przycisk znacznika opatrzony flagą. Dwa Jeden Wyświetla na mapie linię łączącą aktualne położenie z położeniem aktywnego znacznika. Wyświetla na mapie jedną lub dwie strzałki wskazujące kierunek do aktywnych znaczników. Wybiera sposób wyświetlania odległości od aktywnego znacznika. Wybiera ilość wyświetlanych wskaźników kierunku. + Wyszukiwanie śladów z punktami + Więcej + Wygląd na mapie + Proszę wybrać ślad, którego punkty zostaną dodane do znaczników. + Wklej + Przechodzi automatycznie do następnego pola po wprowadzeniu %1$d cyfr za przecinkiem. + %1$d cyfr + Przechodzenie do następnego pola + Tryb pełnego ekranu diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 9bd4ea18fe..30a64b3511 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -1,33 +1,33 @@ Место - Пункт назначения находится в области с частным доступом. Вы хотите разрешить доступ к частным дорогам для этой поездки? + Ваш пункт назначения находится на частной территории. Вы хотите разрешить доступ к частным дорогам для этой поездки? Искать снова Увеличить радиус поиска Ничего не найдено :( - Изменить запрос или увеличить радиус поиска + Изменить запрос или увеличить радиус поиска. Показать/скрыть заметки OSM Показать заметки OSM Скрыть заметки OSM Нажатие на кнопку действия отобразит/скроет заметки OSM с карты. Отсортировано по расстоянию - Поиск в избранном + Поиск в избранных Для того, чтобы отобразить затенение рельефа, вам нужно загрузить специальную карту для этой области. - Для того, чтобы отобразить затенение рельефа, вам нужно купить и установить плагин + Для того, чтобы отобразить затенение рельефа, вам нужно приобрести и установить плагин \"Contour Lines\" Для того, чтобы отобразить линии контуров рельефа, вам нужно загрузить специальную карту для этой области. Плагин - Для того, чтобы отобразить линии контуров рельефа, вам нужно купить и установить плагин + Для того, чтобы отобразить линии контуров рельефа, вам нужно приобрести и установить плагин \"Contour Lines\" Цветовая схема Отображать с масштаба Анимация моей позиции - Включить анимацию прокрутки карты с моей позицией во время навигации + Включить анимацию прокрутки карты с моей позицией во время навигации. Масштаб: %1$s Имя группы Изменить цвет Изменить имя Возможно, потребуется очень много времени для локального (оффлайн) расчёта маршрута. Пожалуйста, добавьте один или более промежуточных пунктов на маршруте, если расчет не закончен через 10 или более минут. Разрешить частный доступ - Разрешить доступ к частным владениям + Разрешить доступ на частную территорию. Обзор Выберите улицу в %1$s @@ -46,49 +46,49 @@ Опции парковки Спасибо за покупку полной версии OsmAnd! Не показывать сообщения при старте - Отображаются скидки и специальные сообщения о местных событиях + Подавляет отображение сообщений о скидках и специальных локальных событиях. - OsmAnd отсылает общую информацию об использовании программы. Мы не собираем местонахождения пользователей или их запросы, относящиеся к личным данным. + OsmAnd собирает информацию о том, какие вы используете части приложения. Ваше местоположение никогда не отправляется, как и все, что вы вводите, какие области читаете, что ищете или скачиваете. Не отсылать анонимную статистику использования Авто - Правосторонняя навигация + Правостороннее движение Видимые Восстановить покупки - Доп.шрифты для карты + Шрифты для карты Посмотреть на карте Морские карты - Морские контуры глубин - Морские контуры глубин - Морские отметки глубин южного полушария - Морские отметки глубин северного полушария - Контуры и точки глубин. + Контуры морских глубин + Контуры морских глубин + Отметки морских глубин южного полушария + Отметки морских глубин северного полушария + Набор карт, содержащих контуры и точки морских глубин. Подпишитесь на нашу email рассылку про скидки на OsmAnd и получите 3 дополнительные загрузки карт! Ошибка Автомасштаб карты вкл/выкл - Нажатие на кнопку действия переключит автомасштаб карты. + Нажатие на кнопку действия вкл/выкл автомасштаб карты в зависимости от скорости. Включение автомасштаба Отключение автомасштаба Добавить пункт назначения Заменить пункт назначения Добавить первую промежуточную точку - Нажатие на кнопку действия добавит пункт назначения в центр экрана. Ранее установленный пункт становится последней промежуточной точкой. - Нажатие на кнопку действия установит пункт назначения в центр экрана. - Нажатие на кнопку действия добавит в центр экрана первую промежуточную точку маршрута. - Карта покрытия выключена - Подложка выключена - Холмы - Равнины - Больше равнин - Скоростной + Нажатие на кнопку действия добавит пункт назначения по центру экрана. Предыдущий пункт назначения станет последней промежуточной точкой. + Нажатие на кнопку действия установит пункт назначения по центру экрана. + Нажатие на кнопку действия добавит по центру экрана первую промежуточную точку маршрута. + Нет покрытия + Нет подложки + Холмистый + Менее холмистый + Равнинный + Короткие маршруты Сбалансированный - Безопасный - Приоритет равнинам или холмам + Предпочитать переулком + Предпочтительный рельеф: равнинный или холмистый. Уклон Добавить новую папку Точки успешно удалены. Вы собираетесь удалить %1$d точку(и). Вы уверены? - Точки для прохождения - Важные точки маршрута + Повороты на маршруте + Важные точки на этом маршруте Трек Макс. скорость Средняя скорость @@ -110,10 +110,10 @@ Стиль вождения - Степень пересечённости рельефа + Выберите пересеченность местности Использовать данные о высотах - Использовать данные о рельефе земной поверхности, предоставленные SRTM, ASTER и EU-DEM + Использовать данные о высоте местности, предоставленные SRTM, ASTER и EU-DEM. Указанное имя для быстрого действия уже используется. Действие будет сохранено как %1$s чтобы избежать дублирования. Обнаружен дубликат имени @@ -144,8 +144,8 @@ Источник карты изменён на \"%s\". Долгое нажатие и перетаскивание позволит переместить кнопку - Отображать данные о глубинах - Контуры глубин + Показывать контуры и точки глубины. + Контуры морских глубин Частота горизонталей Частота горизонталей Высокая @@ -157,9 +157,9 @@ Скрыть воду Старый поиск Показывать старый поиск - Разрешить старый поиск в меню + Добавить старый поиск в меню. Разрешить автомагистрали - Разрешить автомагистрали + Разрешить автомагистрали. Статьи Википедии рядом Поиск города или страны Сверните на %1$d съезд @@ -174,8 +174,8 @@ Поделиться Пауза OsMo запущен - Запись поездки (нет данных) - Показывать уведомление, которое позволит начать запись с помощью кнопки \"Запись поездки\" + Включить быстрый запуск записи + Показывать уведомление, которое позволит начать запись путешествия. Уведомления Продолжить Пауза @@ -183,21 +183,25 @@ Записано Запись Нет данных - - \u2022 Нажимаемые иконки на карте\n\n - \u2022 Гибкая фильтрация POI в поиске: ищите рестораны по типу кухни, кемпинги по наличию удобств\n\n - \u2022 Новый стиль карты Topo для пешего туризма и велосипедистов\n\n - \u2022 Улучшена запись поездки (новые настройки)\n\n - \u2022 Улучшенные навигационные уведомления (Android Wear)\n\n - \u2022 Множество других улучшений и исправлений ошибок\n\n - и многое другое… - + • Нажимаемые иконки на карте +\n +\n • Гибкая фильтрация POI в поиске: ищите рестораны по типу кухни, кемпинги по наличию удобств +\n +\n • Новый стиль карты Topo для пешего туризма и велосипедистов +\n +\n • Улучшена запись поездки (новые настройки) +\n +\n • Улучшенные навигационные уведомления (Android Wear) +\n +\n • Множество других улучшений и исправлений ошибок +\n +\n и многое другое… Минимальная скорость для записи - Выберите минимальную скорость, при превышении которой точка будет записана в трек - Минимальная дистанция для записи - Фильтр: выберите минимальное расстояние от последней позиции для записи точки - Минимально допустимая точность - Выберите минимально допустимую точность определения координат + Фильтр: задайте минимальную скорость для записи точки. + Минимальное перемещение для записи + Фильтр: выберите минимальное расстояние от последней позиции для записи точки. + Минимально точность для записи + Фильтр: задайте минимальную точность для записи точки. Рождественские POI В преддверии рождественских и новогодних праздников, вы можете выбрать для отображения POI, связанные с Рождеством: елки, ярмарки и т. п. Показать рождественские POI? @@ -214,7 +218,7 @@ Редактировать категории Подкатегории Выбранные категории - Настройка поиска + Создать настраиваемый фильтр Настроить поиск Фильтры Применить фильтры @@ -247,14 +251,14 @@ Низкое качество Высокое качество Качество видео - Выберите качество видео + Выберите качество видео. Подтвердить Поиск адреса - Пожалуйста, укажите корректный тип POI из списка, или оставьте его пустым + Пожалуйста, укажите корректный тип POI или оставьте его пустым. Формат аудио - Выберите формат аудио + Выберите формат аудио. Битрейт аудио - Выберите битрейт аудио + Выберите битрейт аудио. Скрыть Адрес не определён Около @@ -288,21 +292,23 @@ Планируемые объекты - "Этот плагин обеспечивает как наложение контурных линий, так и отображения затеняющего слоя рельефа поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусами на севере и 70 градусами на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) — инструментом визуализации Terra, флагманского спутника Системы Наблюдения Земли NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), а также Космических Систем Японии (J-spacesystems). " + Этот плагин обеспечивает как наложение контурных линий, так и отображения затеняющего слоя рельефа поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта. +\n +\nГлобальные данные (между 70 градусами на севере и 70 градусами на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer) — инструментом визуализации Terra, флагманского спутника Системы Наблюдения Земли NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), а также Космических Систем Японии (J-spacesystems). Рассмотрите, пожалуйста, покупку плагина \"Линии высот\" в Google Play, чтобы поддержать последующую разработку. Линии высот Запись видео Запись аудио - Выбрать действие по умолчанию для виджета + Выбрать действие по умолчанию для виджета. Действие по умолчанию для виджета - Выбрать формат видео + Выбрать формат видео. Формат видео - Использовать системную программу для записи видео + Использовать системное приложение для записи видео. Использовать системную программу - Настройка аудио и видео + Настройка аудио и видео. Произошла ошибка при записи Камера недоступна - Аудио-видео записывается. Для остановки нажмите \"стоп\". + Аудио/видео записывается. Для остановки нажмите AV виждет. Проигрывается аудио.\n%1$s Открыть внешний проигрыватель Вы хотите удалить эту запись? @@ -318,7 +324,7 @@ Аудио заметки OsmAnd плагин для линий высот Измерение расстояний - Текущее местоположение для заметки ещё не определено. Используйте контекстное меню для привязки заметки к определённой точке + Текущее местоположение для заметки ещё не определено. Используйте контекстное меню для привязки заметки к определённой точке. Аудио заметки Плагин аудио/видео заметки предоставляет функциональные возможности по созданию аудио/фото/видео записей во время поездки, либо с помощью кнопки на экране карты, либо непосредственно через контекстное меню для любой позиции на карте. Аудио-видео заметки @@ -326,7 +332,7 @@ Линии высот Линии высот Границы - Скрыть региональные границы (admin levels 5-9) + Скрыть региональные границы (admin levels 5-9). Здания не найдены. Выберите город Поиск по деревням и почт. индексу @@ -352,20 +358,24 @@ Ничего не было найдено. Вы можете создать карту самостоятельно (смотрите на osmand.net). Онлайн и кэшированные карты (растровые) Стандартные карты (векторные) - Загрузка и управление локальными файлами карт на вашем устройстве + Загрузка и управление локальными файлами карт на вашем устройстве. Активируйте плагин онлайн карт, чтобы выбирать различные источники карт Онлайн карты - Использовать онлайн карты (загрузка и кэширование на SD-карте) + Использовать онлайн карты (загрузка и кэширование на SD-карте). Онлайн карты - Настройки источников онлайн карт и слоёв - "С помощью этого плагина можно получить доступ ко множеству видов онлайн-карт (тайловых или растровых), от предопределенных тайловых OpenStreetMap (Mapnik) до спутниковых снимков и слоев специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д.\n\nЛюбая из этих карт может быть использована в качестве основной (базовой) карты для отображения на экране OsmAnd или в виде наложения или подложки к другой базовой карте (например стандартной офлайн-карте OsmAnd). Чтобы сделать какую-либо подложку лучше видимой, некоторые элементы векторной карты OsmAnd могут быть по желанию легко скрыты через меню «Настройка карты».\n\nТайловые карты можно получить непосредственно с помощью онлайн-источников или подготовить для использования в автономном режиме (и вручную скопировать в папку данных OsmAnd) в виде базы данных sqlite, которая может быть создана с помощью различных инструментов подготовки карт сторонних производителей. " + Настройки источников онлайн или кэшированных растровых карт. + С помощью этого плагина можно получить доступ ко множеству видов онлайн-карт (тайловых или растровых), от предопределенных тайловых OpenStreetMap (Mapnik) до спутниковых снимков и слоев специального назначения, таких как карты погоды, климатические карты, геологических карты, слои затемнения высот и т. д. +\n +\nЛюбая из этих карт может быть использована в качестве основной (базовой) карты для отображения на экране OsmAnd или в виде наложения или подложки к другой базовой карте (например стандартной офлайн-карте OsmAnd). Чтобы сделать какую-либо подложку лучше видимой, некоторые элементы векторной карты OsmAnd могут быть по желанию легко скрыты через меню «Настройка карты». +\n +\nТайловые карты можно получить непосредственно с помощью онлайн-источников или подготовить для использования в автономном режиме (и вручную скопировать в папку данных OsmAnd) в виде базы данных sqlite, которая может быть создана с помощью различных инструментов подготовки карт сторонних производителей. Этот плагин предоставляет навигацию и запись маршрутов в энергосберегающем режиме. Плагин работает в фоновом режиме и периодически активизирует GPS для записи маршрута или воспроизведения голосовых команд. "Плагин добавляет поддержку специальных возможностей устройства непосредственно в OsmAnd. Это облегчает, например, регулировку скорости речи для голоса TTS, настройку направленности экрана навигации, управление масштабом при помощи трекбола или использование голосовых команд обратной связи для авто аннотации вашего местоположения." Плагин отображает параметры для разработки и отладки функций, таких как, проверка или моделирование маршрута, отображение производительности отрисовки, проверка голосовых подсказок. Эти настройки предназначены для разработчиков и не требуются для обычного пользователя. Плагины - Плагины активируют дополнительные возможности приложения + Плагины активируют дополнительные возможности приложения. Плагины - Плагин для работы с OSM. Позволяет создавать и редактировать POI, создавать и комментировать неточности OSM Bugs, выгружать треки GPX (требует учётные данные OSM). + С помощью этого плагина OsmAnd может быть использован для улучшения OSM через создание или изменение объектов OSM POI, открытие или комментирование OSM заметок, а также отправку записанные GPX файлов. OSM развивается обществом, глобальный проект создания карты общей собственности. Для получения дополнительной информации, пожалуйста, обращайтесь на https://openstreetmap.org. Активное участие ценится, и взносы могут быть сделаны непосредственно через OsmAnd, если вы укажете свои учетные данные OSM в настройках. Векторные карты могут отображаться быстрее. Поддерживается не всеми устройствами. Воспроизвести команды выбранным голосом Отладка и разработка @@ -376,15 +386,15 @@ Видимость Теги Описание - Укажите пользователя OSM и его пароль для выгрузки GPX файлов в OpenStreetMap. + Пожалуйста, укажите имя и пароль пользователя OSM для выгрузки GPX файлов. Поддержка Поддержать разработку новых функций Показывать масштаб Информация Флуоресцентные цвета - Использовать флуоресцентные цвета для отображения треков + Использовать флуоресцентные цвета для отображения треков и маршрутов. Локальное редактирование - Всегда использовать локальное редактирование + Всегда использовать локальное редактирование. Изменение POI в приложении не меняет POI загруженные из интернета, однако все изменения сохраняются в локальный файл. Выгрузка… {0} POI/заметки выгружены @@ -393,16 +403,16 @@ Удалить созданные Offline дополнение: Локально сохраненные OSM POI/заметки - Просмотр и управление OSM POI/заметками в локальной базе данных - Укажите интервал онлайн слежения + Просмотр и управление OSM POI/заметками в локальной базе данных. + Укажите интервал онлайн слежения. Интервал онлайн слежения - Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6} + Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. Web адрес онлайн слежения Записать трек можно с помощью GPX виджета или выбрав \"Запись поездки\" в Настройках. Показывать текущий путь - Бесплатная версия OsmAnd ограничена %1$s загрузками и не поддерживает геостатьи из wikipedia. + Бесплатная версия OsmAnd ограничена %1$s загрузками (добавлениями или обновлениями карт) и не поддерживает геостатьи из Википедии. Бесплатная версия - Показать POI описание + Показать описание POI. Северная Америка - США Северная Америка Центральная Америка @@ -427,12 +437,12 @@ Общие настройки Общие настройки приложения Недостаточно места на диске для загрузки %1$s MB (свободно: %2$s). - Загрузить {0} файл(ов)? Необходимо {1} Мб на постоянной основе. В настоящее время доступно {2} Мб свободного места. + Скачать {0} файл (ов)? Используется {1} Мб. (Свободного места - {2} Мб.) Прозрачная тема Нативная библиотека не поддерживается на этом устройстве. Инициализация нативной библиотеки… Настройки автовозврата карты - Выберите время, через которое карта вернётся к текущей позиции + Выберите время, через которое карта вернётся к текущей позиции. Автовозврат карты только при следовании по маршруту Возвращать карту в текущее положение только при следовании по маршруту. @@ -458,11 +468,11 @@ Маршрут успешно сохранён в \"%1$s\". Имя файла: Файл с таким именем уже существует. - Поделиться файлами GPX с сообществом OSM. Они будут использованы для улучшения карты и загружены в osm.org. + Выгрузить GPX файлы в сообщество OSM. Они будут использованы для улучшения карты. %1$d из %2$d объект(ов) успешно загружены. Отправить в OSM Детализированная карта - Показывать детали (дороги и др.), начиная с мелких масштабов + Показывать детали (дороги и др.), начиная с мелких масштабов. Избранные точки удалены. Вы собираетесь удалить %1$d избранных и %2$d групп. Вы уверены? Дом @@ -472,14 +482,16 @@ Не нужно Отсутствует базовая карта, покрывающая весь мир на мелком масштабе. Пожалуйста загрузите World_basemap_x.obf для полноценный работы приложения. Локальные данные отсутствуют на SD-карте. Пожалуйста, загрузите их для того, чтобы использовать приложение без Интернета. - \n\nНажать и удерживать для вызова меню + " +\n +\nДолго удерживайте для настроек" Загружено %1$d из %2$d объектов успешно архивированы. %1$d из %2$d объектов успешно удалены. %1$d из %2$d объектов успешно активированы. Нет объектов, чтобы %1$s Вы собираетесь %1$s %2$s объектов. Вы уверены? - Управление картами + Управление картами. Активировать Архивировать Перечитать с SD-накопителя @@ -494,7 +506,7 @@ Данные POI Голос TTS Новый поиск - Выберите размер текста для наименований на карте + Выберите размер текста для наименований на карте. Размер текста Распаковываются новые данные… Вы собираетесь использовать Интернет-маршрутизацию, но у Вас нет активного Интернет соединения. @@ -507,37 +519,37 @@ Пройти весь путь Для этой позиции доступны локальные векторные карты.\n\t\n\tДля их использования выберите в \"Меню\" → \"Настройка карты\" → \"Источник карты…\" → \"Векторные карты\". Голосовые инструкции - Выберите канал для голосовых инструкций + Выберите канал для голосовых инструкций. Поток голосовых звонков Поток уведомлений Поток музыки Слой карты %1$s не может быть загружен приложением, попробуйте установить его заново. - Изменить прозрачность карты покрытия + Изменить прозрачность карты покрытия. Прозрачность покрытия - Изменить прозрачность основной карты + Изменить прозрачность основной карты. Прозрачность карты Карта подложки… Карта подложки - Выберите слой подложки для основной карты + Выберите слой подложки для основной карты. Карта покрытия… Карта покрытия - Выберите слой для покрытия основной карты - Карта уже установлена, настройки будут обновлены - Выберите карты для установки или обновления - Требуется Интернет-соединение для данной операции, но оно недоступно + Выберите слой для покрытия основной карты. + Карта уже установлена, настройки будут обновлены. + Выберите карты для установки или обновления. + Требуется Интернет соединение для данной операции, но оно недоступно. Загрузить ещё… - Максимальный масштаб для использования векторных карт вместо растровых + Минимальный масштаб для использования векторных карт. Масштаб векторных карт - Ошибка автономного поиска - Невозможно разобрать запрос: \"%s\" + Ошибка автономного поиска. + Невозможно разобрать запрос: \"%s\". Поиск по адресу в локальных картах Системная - Выбор языка программы (перезапустите OsmAnd после изменения) + Выбор языка приложения (перезапустите OsmAnd после изменения). Локализация - След. + Далее Предыдущий - Единицы измерения длины и скорости - Единицы измерения + Выберите единицы измерения расстояния. + Единицы измерения расстояния Мили/футы Мили/ярды Километры/метры @@ -606,44 +618,44 @@ Выберите одну из сборок OsmAnd для установки Голосовая навигация недоступна. Перейдите в \"Настройки\" → \"Общие\" → \"Голосовые данные\" и укажите голосовые данные или загрузите их. Голосовые данные не выбраны - Отображает производительность рендеринга + Отображать производительность рендеринга. Отладочная информация о рендеринге Дневной Ночной Восход/закат Датчик освещённости - Выберите режим переключения дневного/ночного вида карты + Выберите правило переключения дневного/ночного режима. Дневной/ночной режим Загрузить {0} файл(ов) ({1} MB)? Было выбрано {0} Загруженные - Настройки экрана, локализации, единиц измерения и другие + Настройки экрана, локализации, единиц измерения и другие. Общие Управление картами Фоновый режим Запустить OsmAnd в фоновом режиме для записи трека и навигации Скоростной маршрут - Расчёт скоростного маршрута вместо кратчайшего + Расчёт скоростного маршрута вместо кратчайшего. На масштабе {0} загрузить {1} тайлов ({2} Mb ) Загрузить карту Выберите максимальный масштаб для загрузки видимой области Выбранная карта не может быть загружена Непрерывный рендеринг - Выберите способ отрисовки карты + Показывать непрерывную отрисовку вместо изображения полностью. Во время отображения карты произошла непредвиденная ошибка Ошибка : недостаточно памяти процесса, чтобы отобразить карту Контекстное меню… Стиль успешно загружен Произошла ошибка во время загрузки данного стиля Стиль отрисовки векторной карты - Выберите стиль для рендеринга карты + Выберите стиль отрисовки карты. Просмотреть веб-сайт POI Показать телефон POI веб-сайт телефон фильтровать Дисплей высокого разрешения - Не растягивать (с размытием) растровые карты на дисплеях высокого разрешения + Не растягивать (с размытием) растровые карты на дисплеях высокого разрешения. Искать общественный транспорт Искать транспорт на остановке Результат поиска транспорта (нет пункта назначения): @@ -662,7 +674,7 @@ По направлению компаса По направлению движения Не вращать (север сверху) - Выберите способ вращения карты + Выберите способ вращения карты. Ориентация карты Показать маршрут Избранные точки успешно импортированы @@ -684,7 +696,7 @@ Источник карты… Слои Искать POI - Использовать трекбол, чтобы перемещать карту + Использовать трекбол, чтобы перемещать карту. Использовать трекбол Выберите максимальное время поиска позиции сервиса Время ожидания @@ -700,14 +712,14 @@ Запускает OsmAnd в фоновом режиме для отслеживания местоположения при выключенном экране Запуск приложения в фоновом режиме Сервис маршрутизации OsmAnd включён, если отключить позиционирование, он перестанет вести по маршруту. - Настройки навигации + Укажите настройки для навигации. Навигация Скрыть фильтр Показать фильтр Фильтр Звук Без звука - Выберите язык голосовых инструкции для навигации + Выберите язык голосовых инструкции для навигации. Голосовые данные Инициализируются голосовые данные… Голосовые данные не поддерживаются текущей версией приложения @@ -830,19 +842,19 @@ Настройка данных: язык, обновление данных Данные Редактирование OSM - Автоматически изменять масштаб карты при изменении скорости + Автоматически изменять масштаб карты при изменении скорости (пока карта синхронизирована с текущей позицией). Автомасштаб Дополнительные настройки - Сохранить текущий трек на SD-карту сейчас + Сохранить текущий трек на SD-карту сейчас. Сохранить текущий трек GPX - Выберите интервал для записи трека во время навигации + Выберите интервал для записи трека во время навигации. Интервал записи во время навигации - Во время навигации треки будут автоматически сохранены в папку с треками в формате GPX + Во время навигации треки GPX будут автоматически сохранены в папку с треками. Автозапись трека во время навигации Обновить карту Обновить часть карты - Укажите имя пользователя (требуется для работы с OSM) - Имя пользователя + Необходимы для авторизации на openstreetmap.org. + Имя пользователя OSM Цель Использовать английские названия вместо местных Использовать английские названия @@ -945,7 +957,7 @@ Фильтр {0} удалён Фильтр {0} создан Режим специальных возможностей - Включает дополнительные возможности для невизуального доступа + Включает дополнительные возможности для невизуального доступа. Включён Отключён Использовать системную настройку @@ -985,13 +997,13 @@ По сторонам света (8 секторов) По циферблату (12 секторов) Стиль указания направлений - Выберите стиль указания относительных направлений во время движения + Выберите стиль указания относительных направлений во время движения. Включить автооповещение Выключить автооповещение Я здесь - Менять масштаб карты горизонтальными движениями трекбола + Менять масштаб карты горизонтальными движениями трекбола. Использовать трекбол для изменения масштаба - Настройки для невизуального доступа + Настройки для невизуального доступа. Специальные возможности Настройки векторного рендеринга Дополнительные слои @@ -1007,13 +1019,13 @@ Начать моделирование Файл не может быть переименован. Файл с таким именем уже существует. - Имени + Имя Категория Установка версии Навигационный сервис OsmAnd Локальная навигация OsmAnd временно недоступна. Левосторонняя навигация - Включите, если пользуетесь навигацией в странах с левосторонним движением + Выбрать для стран с левосторонним движением. Данные роутинга Формат Поиск POI @@ -1054,7 +1066,8 @@ PM AM Точка парковки - Плагин парковочное место позволит вам легко запомнить, когда автомобиль был припаркован и сколько времени осталось, если парковка ограничена по времени. Вы можете найти место и время парковки на карточке домашней страницы и на карте с помощью виджета.\nТак же он добавляет уведомление в календарь, в случае, если вы хотите получить напоминание о нём. + Плагин парковочное место позволит вам легко запомнить, когда автомобиль был припаркован и сколько времени осталось, если парковка ограничена по времени. +\nВы можете найти место и время парковки на карточке домашней страницы и на карте с помощью виджета. Для напоминания в календарь может быть добавлено уведомление. Парковочное место Пометить место парковки Удалить метку места парковки @@ -1063,12 +1076,13 @@ Укажите скорость анимации маршрута Выделено памяти %1$s MB (Ограничение Android %2$s MB, Dalvik %3$s MB). Выделено памяти - Всего физической памяти выделено приложению %1$s MB (Dalvik %2$s MB, другое %3$s MB). Proportional memory %4$s MB (Ограничение Android %5$s MB, Dalvik %6$s MB). + Всего физической памяти выделено приложению %1$s MB (Dalvik %2$s MB, другое %3$s MB). +\nПропорциональная память %4$s MB (Ограничение Android %5$s MB, Dalvik %6$s MB). Всего физической памяти Часов Минут Машина припаркована в - Использовать навигацию по компасу, если направление не определено + Использовать компас, если невозможно иначе определить направление. Использовать компас Маршрут будет пересчитан после определения местоположения Предыдущий маршрут не был закончен. Продолжить следование по нему? (%1$s секунд) @@ -1104,8 +1118,8 @@ Избегать просёлочных дорог Избегать паромов Избегать при прокладке маршрута… - Избегать платных и просёлочных дорог, паромов - Показывать ограничения скорости, камеры и искусственные неровности + Избегать платных и просёлочных дорог, паромов. + Настройка оповещений (ограничения скорости, вынужденные остановки, искусственные неровности), камеры скорости, информацию о полосах. Флуоресцентные маршруты Показывать сигналы… Линейка @@ -1123,11 +1137,11 @@ email Восход/закат OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом - " OsmAnd (Open Street Maps Automated Navigation Directions) OsmAnd - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - загрузка векторных и растровых карт для страны или области из самого приложения; - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или генерированными голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения. Ограничения бесплатной версии OsmAnd: - ограниченное число загрузок карт; - нет возможности просматривать описание достопримечательностей из Wikipedia без использования Интернет. OsmAnd продолжает активно развиваться. Но так как проект финансируется только взносами пользователей, то дальнейшее развитие проекта и появление новых функциональных возможностей зависит от наличия этого финансирования. Поэтому если вам нравится приложение, подумайте о покупке OsmAnd+. Также на сайте osmand.net Вы можете профинансировать конкретную функциональную возможность или внести общий финансовый вклад в развитие проекта. " + "OsmAnd (Open Street Maps Automated Navigation Directions) OsmAnd - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - загрузка векторных и растровых карт для страны или области из самого приложения; - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или генерированными голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения. Ограничения бесплатной версии OsmAnd: - ограниченное число загрузок карт; - нет возможности просматривать описание достопримечательностей из Wikipedia без использования Интернет. OsmAnd продолжает активно развиваться. Но так как проект финансируется только взносами пользователей, то дальнейшее развитие проекта и появление новых функциональных возможностей зависит от наличия этого финансирования. Поэтому если вам нравится приложение, подумайте о покупке OsmAnd+. Также на сайте osmand.net Вы можете профинансировать конкретную функциональную возможность или внести общий финансовый вклад в развитие проекта." OsmAnd - это навигационное приложение для путешествий с открытым исходным кодом - " OsmAnd+ (Open Street Maps Automated Navigation Directions) OsmAnd+ - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. OsmAnd+ оплаченная версия программы, означает, что вы поддерживаете проект, финансируя разработку нового функционала и получаете последние обновления. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - неограниченная загрузка векторных и растровых карт для страны или области из самого приложения; - достопримечательности из Wikipedia без доступа в Интернет (необходимо предварительно загрузить Wikipedia POI); - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или TTS голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения. " + "OsmAnd+ (Open Street Maps Automated Navigation Directions) OsmAnd+ - это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе (OpenStreetMap). Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к Интернет. OsmAnd также предоставляет оффлайн и онлайн средства построения маршрута включая голосовые инструкции по маршруту. OsmAnd+ оплаченная версия программы, означает, что вы поддерживаете проект, финансируя разработку нового функционала и получаете последние обновления. Некоторые из основных возможностей приложения: - работа с векторными и растровыми картами без доступа в Интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); - доступность компактных векторных карт для всех стран мира; - неограниченная загрузка векторных и растровых карт для страны или области из самого приложения; - достопримечательности из Wikipedia без доступа в Интернет (необходимо предварительно загрузить Wikipedia POI); - отображение дополнительной информации (слоёв) на карте, такой как GPX или навигационные маршруты, объекты (POI), избранные местоположения, линии высот, остановки общественного транспорта; наложение дополнительных карт с настраиваемой прозрачностью; - поиск адресов и объектов (POI) без доступа в Интернет; - построение маршрутов на небольшие расстояния без доступа в Интернет (экспериментальная функция); - режимы автомобиля, велосипеда и пешехода с возможностями: - автоматического переключения на дневной/ночной режим отрисовки карты; - изменения масштабы карты в зависимости от скорости; - вращения карты по компасу или направлению движения; - использования голосовых команд (воспроизводимых записанными или TTS голосами) при движении по маршруту; - предупреждения о превышении допустимой скорости движения." Избегать автомагистралей - Привязывать текущую позицию к дороге + Привязывать текущую позицию к дороге. Привязка к дороге Промежуточный пункт %1$s слишком далеко от ближайшей дороги. Вы достигли промежуточного пункта @@ -1174,21 +1188,23 @@ Сделать фото Плагин Dropbox позволяет синхронизировать треки и видео/аудио заметки с вашим аккаунтом Dropbox. Плагин Dropbox - "Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта.\n\nГлобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). " + Плагин обеспечивает наложение контурных линии и (рельефа) затемняющего слоя, которые будут отображаться поверх стандартных карт OsmAnd. Эта функция высоко оценится спортсменами, туристами, путешественниками и всеми, кто заинтересован в рельефной структуре ландшафта. +\n +\nГлобальные данные (между 70 градусов на севере и 70 градусов на юге) основываются на измерениях SRTM (Shuttle Radar Topography Mission) и ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), инструментом визуализации Terra, флагманского спутника Земли системы наблюдения NASA. ASTER является результатом совместных усилий NASA, министерства экономики Японии, торговли и промышленности (METI), космических систем Японии (J-spacesystems). Фото %1$s %2$s Аудио/Видео данные Вы уверены, что хотите остановить навигацию? Вы уверены, что хотите удалить пункт назначения (и промежуточные пункты)? Точный маршрут (alpha) - Пожертвуйте, чтобы увидеть новые опции реализованными в приложении + Пожертвуйте, чтобы увидеть новые опции реализованными в приложении. Включите, для расчёта точных маршрутов без затруднений. Всё ещё ограниченн расстоянием и медленный. Затенение рельефа - Использовать системную программу для фото + Использовать системное приложение для фото. Использовать приложение Камера OpenMaps - Европа Предпочитать автомагистрали Предпочитать… - Предпочитать автомагистрали + Предпочитать автомагистрали. отмечено не отмечено Время прибытия @@ -1200,7 +1216,7 @@ В настоящее время нет соединения по Wi-Fi. Хотите использовать текущее интернет-соединение для загрузки? Запись поездок Настройки записи поездок - Выбор темы приложения + Выбор темы приложения. Тема приложения Настройка специальных возможностей Выбор адреса @@ -1209,11 +1225,11 @@ Выберите по запросу OsmAnd карты и навигация OsmAnd+ карты и навигация - Уменьшает \"шум\" компаса, но добавляет инерцию + Уменьшает \"шум\" компаса, но добавляет инерцию. Использовать фильтр Калмана Прекратить навигацию Использовать датчик магнитного поля - Удалить пункт + Удалить точку время скорость точность @@ -1239,11 +1255,11 @@ Сохранение POI в OsmChange-файл высота OsmChange-файл создан за %1$s - * Нажмите, чтобы отметить точку. -\n* Нажмите и удерживайте на карте, чтобы удалить предыдущую точку. -\n* Нажмите и удерживайте на точке, чтобы просмотреть и добавить описание. + * Нажмите, чтобы отметить точку. +\n* Долго удерживайте на карте, чтобы удалить предыдущую точку. +\n* Долго удерживайте на точке, чтобы просмотреть и добавить описание. \n* Нажмите на виджет измерения, чтобы увидеть больше действий. - Использовать магнитный датчик вместо датчика ориентации + Использовать магнитный датчик вместо датчика ориентации. Другие Контурные линии Загрузка @@ -1274,12 +1290,12 @@ У вас уже установлены промежуточные пункты. Названия улиц (TTS) Объявлять… - Настройка озвучивания названий улиц, предупреждений (лежачих полицейских, знаков \"Движение без остановки запрещено\"), камер контроля скорости, ограничений скорости + Настройка озвучивания названий улиц, предупреждений (лежачих полицейских, знаков \"Движение без остановки запрещено\"), камер контроля скорости, ограничений скорости. Маршрутные точки GPX Пожалуйста, укажите в настройках пароль и имя пользователя OSM Карта: Пароль OSM (опционально) - Выберите регион вождения: США, Европа, Великобритания, Азия и другие + Выберите регион вождения: США, Европа, Великобритания, Азия и другие. Регион вождения Япония США @@ -1317,31 +1333,31 @@ К крупному плану К среднему плану К дальнему плану - Избегать автомагистралей + Избегать автомагистралей. Избегать автомагистралей Предпочитать автомагистрали - Предпочитать автомагистрали + Предпочитать автомагистрали. Избегать платных дорог - Избегать платных дорог + Избегать платных дорог. Избегать грунтовых дорог - Избегать грунтовых дорог + Избегать грунтовых дорог. Избегать паромов - Избегать паромов + Избегать паромов. Максимальная масса - Укажите массу автомобиля для учёта при построении маршрута + Укажите массу автомобиля для учёта при построении маршрута. Отображение карты Навигационные знаки (водоемы) Отключить сложную маршрутизацию - Укажите скорость произношения для TTS + Укажите скорость произношения для TTS. Настройки навигации Настройки маршрутизации Грузовик Рассчитать оффлайновый маршрут OsmAnd Копирование файлов данных OsmAnd… Скорость произношения - Выберите профили, видимые в приложении + Выберите профили, видимые в приложении. Профили приложения Выберите существующий… Задать/отредактировать … @@ -1350,7 +1366,7 @@ \n Примечание 2: При переносе файлов в новое хранилище совместное использование файлов OsmAnd и OsmAnd+ не возможно. Копирование файла (%s) на новое место… Копирование файлов данных OsmAnd на новое место (%s)… - Отключение 2-фазной маршрутизации для автомобильной навигации + Отключение 2-фазной маршрутизации для автомобильной навигации. Быстрое построение маршрута не удалось (%s), отмените для возврата к медленному построению. Масштаб Выберите GPX… @@ -1416,12 +1432,16 @@ Голос Разное Локализация - Прерывание музыки во время объявления навигации + Голосовые подсказки приостанавливают музыку, а не только приглушают ее. Прерывание музыки Поделиться маршрутом используя файл GPX Ключ доступа - Настройка параметров мониторинга и установка персонального канала мониторинга - "Плагин обеспечивает функциональность для расширенного живого мониторинга OsMo, см. http://osmo.mobi.\n\nОн позволяет отслеживать другие устройства и отслеживаться самому. Вы можете создавать анонимные группы, делиться друг с другом местоположением и общаться. Возможны различные варианты опций для отслеживания сессии или постоянного слежения.\n\nАнонимные группы создаются для указанного количества дней и ограниченным функционалом, то есть нет дистанционного управления и нет администратора группы. Полностью функциональные группы, с другой стороны, могут быть созданы на веб-сайте и только зарегистрированные пользователи имеют к ним доступ. " + Настройка параметров мониторинга и установка персонального канала мониторинга. + Этот плагин предоставляет некоторые функциональные возможности для мониторинга OpenStreetMap см. https://osmo.mobi +\n +\nВы можете отслеживать все устройства, включенные в группу в режиме реального времени. Вы также можете увидеть точки и маршруты, загруженные в вашу группу. +\n +\nЧтобы группа не была удалена после нескольких месяцев, необходимо привести ее в соответствие с правилами, с которыми вы создаете группы на сайте OsMo.mobi OpenStreetMap Мониторинг OsMo Неправильный формат: %s @@ -1429,7 +1449,7 @@ " OsmAnd - открытый источник и активно развивается. Все могут способствовать развитию, сообщая об ошибках, улучшая переводы или программируя новые дополнения. Проект находится в живом состоянии непрерывного улучшения всеми этими формами взаимодействия разработчика и пользователя. Прогресс проекта также полагается на финансовые взносы, чтобы финансировать развитие, кодирование и тестирование новых функциональностей. Покупая OsmAnd+ Вы помогаете приложению быть ещё лучше! Также возможно финансировать определенные новые особенности или сделать общее пожертвование на osmand.net. Приблизительное покрытие карты и качество: - Западная Европа: **** - Восточная Европа: *** - Россия: *** - Северная Америка: *** - Южная Америка: ** - Азия: ** - Япония & Корея: *** - Ближний Восток: ** - Африка: ** - Антарктида: * Список поддерживаемых стран (в основном по всему миру!):↵ Афганистан, Албания, Алжир, Андорра, Ангола, Ангилья, Антигуа и Барбуда, Аргентина, Армения, Аруба, Австралия, Австрия, Азербайджан, Багамы, Бахрейн, Бангладеш, Барбадос, Белоруссия, Бельгия, Белиз, Бенин, Бермуды, Бутан, Боливия, Бонэйр, Босния и Герцеговина, Ботсвана, Бразилия, Британские Виргинские острова, Бруней, Болгария, Буркина-Фасо, Бурунди, Камбоджа, Камерун, Канада, Кабо-Верде, Центральноафриканская Республика, Чад, Чили, Китай, Колумбия, Коморские острова, Конго, Коста-Рика, Кот-д\"Ивуар, Хорватия, Куба, Кюрасао, Кипр, Чешская Республика, Дания, Джибути, Доминика, Доминиканская Республика, Эквадор, Египет, Сальвадор, Экваториальная Гвинея, Эритрея, Эстония, Эфиопия, Фиджи, Финляндия, Франция, Французская Гвиана, Французская Полинезия, Габон, Гамбия, Грузия, Германия, Гана, Гибралтар, Греция, Гренландия, Гренада, Гваделупа, Гуам, Гватемала, Гернси, Гвинея, Гвинея-Бисау, Гайана, Гаити, Ватикан, Гондурас, Гонконг, Венгрия, Исландия, Индия, Индонезия, Иран, Ирак, Ирландия, Остров Мэн, Израиль, Италия, Ямайка, Япония, Джерси, Иордания, Казахстан, Кения, Кирибати, Северная Корея и Южная Корея, Кувейт, Кыргызстан, Лаос, Латвия, Ливан, Лесото, Либерия, Ливия, Лихтенштейн, Литва, Люксембург, Макао, Македония, Мадагаскар, Малави, Малайзия, Мальдивы, Мали, Мальта, Мартиника, Мавритания, Маврикий, Майотта, Мексика, Микронезия, Молдова, Монако, Монголия, Черногория, Монтсеррат, Марокко, Мозамбик, Мьянма, Намибия, Науру, Непал, Нидерланды, Нидерландские Антильские острова, Новая Каледония, Новая Зеландия, Никарагуа, Нигер, Нигерия, Норвегия, Оман, Пакистан, Палау, палестинская Территория, Панама, Папуа-Новая Гвинея, Парагвай, Перу, Филиппины, Польша, Португалия, Пуэрто-Рико, Катар, Румыния, Россия, Руанда, Сен-Бартелеми, Остров Святой Елены, Сент-Китс и Невис, Сент-Люсия, Сен-Мартен, Сен-Пьер и Микелон, Сент-Винсент и Гренадины, Самоа, Сан-Марино, Саудовская Аравия, Сенегал, Сербия, Сейшельские острова, Сьерра-Леоне, Сингапур, Словакия, Словения, Сомали, Южная Африка, Южная Георгия, Южный Судан, Испания, Шри-Ланка, Судан, Суринам, Свазиленд, Швеция, Швейцария, Сирия, Тайвань, Таджикистан, Танзания, Таиланд, Тимор-Leste, Того, Токелау, Тонга, Тринидад и Тобаго, Тунис, Турция, Туркмения, Тувалу, Уганда, Украина, Объединенные Арабские Эмираты, Соединенное Королевство (UK), Соединенные Штаты Америки (США), Уругвай, Узбекистан, Вануату, Венесуэла, Вьетнам, Уоллис и Футуна, Западная Сахара, Йемен, Замбия, Зимбабве. " Только вручную (нажатием \"стрелочки\") - Повторять навигационные инструкции с регулярными интервалами + Повторять навигационные инструкции с регулярными интервалами. Повторять навигационные инструкции Объявление прибытия Как скоро вы хотите объявить о прибытии? @@ -1451,11 +1471,11 @@ Старт сессии Отладочная информация Трекер ID - Автоматический старт поездки и отправка местоположения после запуска приложения + Автоматический старт поездки и отправка местоположения после запуска приложения. Автоматический старт поездки ID трекера Токен сессии: %1$s - Нажмите для просмотра ID трекера + Нажмите для просмотра ID трекера. Мировые пункты обмена bitcoin ID группы Название группы @@ -1466,7 +1486,7 @@ дней Интервал отправки Группа OsMo - Выберите временной интервал для отправки местоположения + Выберите временной интервал для отправки позиции. OpenStreetMap Мониторинг Поделиться текущей сессией в браузере Поделиться сессией @@ -1500,7 +1520,7 @@ Пользователь %1$s присоединился к группе %2$s Пользователь %1$s покинул группу %2$s Показывать извещения группы - Показывать сообщения, когда пользователь присоединяется или покидает группу + Показывать сообщения, когда пользователь присоединяется или покидает группу. Правила Быстрый доступ к OsMo Отменить движущуюся цель @@ -1527,12 +1547,14 @@ Сохранить как группу избранных Выберите пункты назначения Метки точек - \n\nНажать и удерживать для просмотра на карте + " +\n +\nДолго удерживайте для просмотра на карте" Путевые точки: %1$s %1$s точек Точка %1$s %1$s \nМаршрутных точек %2$s - Показывать кнопки изменения масштаба во время навигации + Показывать кнопки изменения масштаба во время навигации. Кнопки масштаба Сортировать по дистанции Сортировать по имени @@ -1553,14 +1575,14 @@ Отображать ограничения доступа Отображать веломаршруты Сбой авторизации - Предпочтительный язык для меток на карте (если он не доступен, то английский язык или местные названия) + Предпочтительный язык для меток на карте (если он не доступен, то английский язык или местные названия). Предпочтительный язык на карте Суахили Иврит Вперёд Домашняя страница Пожалуйста, прочтите перед созданием группы! - Автоматическое подключение к сервису при запуске приложения + Автоматическое подключение к сервису при запуске приложения. Автоматическое подключение Сервис OsMo Местные названия @@ -1597,13 +1619,19 @@ Пожалуйста, укажите ID Продолжить навигацию Приостановить навигацию - Визуализация пути по шкале SAC - Визуализация пути согласно трассам OSMC + Визуализация пути по шкале SAC. + Визуализация пути согласно трассам OSMC. Пораньше Как обычно Попозже На последних метрах - " - Все созданные группы являются открытыми! Если вы хотите сохранить анонимность, подключите устройства непосредственно через ID трекера.\n - Приватные группы ограничены 8 человеками.\n - Если в группе не будет активным хотя бы 1 человек в течении 2-х недель группа будет удалена.\n - Вы можете ограничить вход в группу, только по приглашениям, но для управления группой вы должны войти в консоль администратора.\n - Если вам нужно создать группу, но с другими условиями, пожалуйста, свяжитесь со службой поддержки http://osmo.mobi + - Введите название и описание группы при создании +\n - С приложением создаются только группы простого типа, подробнее на сайте https://osmo.mobi/g/new +\n - Группами можно управлять через веб-сайт, предоставляя маршруты и точки доступные всем +\n - Мы не поддерживаем использование только одного пользователя, если эта группа не POI +\n - Частные группы ограничены до 8 человек +\n - Подробные условия всегда есть на сайте osMo.mobi +\n - Если вам нужны специальные условия, пожалуйста, свяжитесь со службой поддержки: osmo.mobi @ gmail.com Пеший горный туризм по шкале (SAC) Визуализация пути согласно трассам OSMC Цветовая маркировка зданий по типу @@ -1620,7 +1648,7 @@ Близлежащие POI Туры Все - Расстоянию + Расстояние "Подтрек: %1$s " Пункт назначения Запись поездки @@ -1628,12 +1656,13 @@ Продолжительность Запись трека в файл GPX Интервал записи - Общие положения записи в файл GPX могут быть включены или выключены с помощью виджета записи GPX на экране карты - "Плагин активирует функции для записи и сохранения ваших треков вручную нажатием на виджет записи GPX на экране карты, или также автоматически записывает все ваши маршруты навигации в файл GPX. -\n\nЗаписанными треками можно поделиться с вашими друзьями или использовать их для вклада в OSM. Спортсмены могут использовать записанные треки для контроля за тренировками. Некоторый базовый анализ треков может быть выполнен непосредственно в OsmAnd, например, время прохождения круга, средняя скорость и т.д., треки, конечно, позднее также могут быть проанализированы в специальных инструментах анализа сторонних производителей. " - Online OSM карта с картинками + Общая запись позиции в файл GPX может быть включена или выключена с помощью виджета записи GPX на экране карты. + "Плагин активирует функции для записи и сохранения ваших треков вручную нажатием на виджет записи GPX на экране карты, или также автоматически записывает все ваши маршруты навигации в файл GPX. +\n +\nЗаписанными треками можно поделиться с вашими друзьями или использовать их для вклада в OSM. Спортсмены могут использовать записанные треки для контроля за тренировками. Некоторый базовый анализ треков может быть выполнен непосредственно в OsmAnd, например, время прохождения круга, средняя скорость и т.д., треки, конечно, позднее также могут быть проанализированы в специальных инструментах анализа сторонних производителей." + Online OSM карта с изображениями. Всегда спрашивать - Выберите интервал для записи трека (включается через виджет записи GPX на карте) + Выберите интервал для записи трека (включается через виджет записи GPX на карте). Общий интервал записи трека Ограничение скорости Пограничный контроль @@ -1650,7 +1679,7 @@ Указанное название избранной точки уже используется, для предотвращения дублирования имен название было изменено на %1$s. Установите размер текста для карты. Размер текста - Нажмите на любой элемент списка для просмотра более подробной информации, нажмите и удерживайте, чтобы поместить в архив или удалить. Текущие данные на устройстве (%1$s свободно): + Нажмите на любой элемент списка для просмотра более подробной информации, долго удерживайте, чтобы поместить в архив или удалить. Текущие данные на устройстве (%1$s свободно): Устройство не обнаружено Анонимный пользователь Сервис OsMo не доступен:\n- проверьте интернет соединение;\n- проверьте настройки;\n- проверьте наш Twitter: https://twitter.com/OsMomobi @@ -1676,14 +1705,14 @@ Избегать дороги… %1$s необходимо это разрешение, чтобы выключить экран для экономии энергии. Авто-включение экрана перед поворотом - Включать экран устройства (если отключён) при приближении к повороту + Включать экран устройства (если отключён) при приближении к повороту. Карты доступные для обновления: %1$s Координаты Домой Поиск Все файлы обновлены Использовать OpenGL для рендеринга - Использовать аппаратное ускорение OpenGL для рендеринга (может не работать на некоторых устройствах) + Использовать аппаратное ускорение OpenGL для рендеринга (может не работать на некоторых устройствах). Загрузка невозможна. Проверьте подключение к Интернет. Загрузки Обновления @@ -1706,7 +1735,7 @@ Атлас дорог Германии Атлас дорог Америки Не использовать маршрутизацию версии 1.9 - Не использовать для построение маршрута алгоритм представленный в версии 1.9 + Не использовать для построения маршрута алгоритм представленный в версии 1.9. Показывать ж/д переезды Показывать пешеходные переходы Железнодорожный переезд @@ -1716,16 +1745,16 @@ Вы можете выбрать альтернативный маршрут, выбрав дороги, которые стоит избегать Запись трека по требованию Прокси-сервер - Настройка интернет соединения через прокси-сервер + Настройка интернет соединения через прокси-сервер. Приватность Включить HTTP прокси-сервер - Настройка HTTP прокси-сервера для всех сетевых запросов + Настройка HTTP прокси-сервера для всех сетевых запросов. Адрес прокси-сервера - Настройте имя хоста вашего прокси-сервера (например, 127.0.0.1) + Настройте имя хоста вашего прокси-сервера (например, 127.0.0.1). Порт прокси-сервера - Настройте номер порта вашего прокси-сервера (например, 8118) + Настройте номер порта вашего прокси-сервера (например, 8118). Уличное освещение - Скачать ночные сборки + Скачать ночные сборки. Сборки Моё местоположение Статус GPS @@ -1736,14 +1765,14 @@ Редактировать группу Вам необходимо интернет соединение для установки этого плагина. Включить - Выключить + Отключить Получить Лыжные карты Морские карты Для отображения лыжных карт необходимо загрузить данные специализированные карты Для отображения морских карт необходимо загрузить данные специализированные карты Память устройства - "Свободно %1$s " + Свободно %1$s Только дороги Онлайн карта Не удалось переименовать. @@ -1762,7 +1791,7 @@ Выбрать все Очистить Сохранить - Сохранить как GPX трек + Сохранить как новый GPX трек Переименовать Удалить Удалить все @@ -1815,7 +1844,7 @@ Плоский список Широта %1$s Долгота %2$s - Часто задаваемые вопросы, последние изменения и другое + Часто задаваемые вопросы, последние изменения и другое. Моделировать ваше местоположение Свернуть Удалить действие @@ -1831,14 +1860,19 @@ Посетить до Туристическая карта просрочено - Укажите время задержки на экране планирования маршрута + Укажите время задержки на экране планирования маршрута. Задержка начала навигации… Поехали - "Плагин расширяет возможности OsmAnd, делая доступными морские карты для катания на лодках, парусного спорта и других видов спорта. -\n\nСпециальная дополнительная карта для OsmAnd добавляет морские навигационные и условные знаки как для внутренней, так и для прибрежной навигации. Описание навигационных отметок содержит информацию, необходимую для их идентификации, а также их характеристики (категория, форма, цвет, последовательность мерцания огней и т.д.).\n\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый \"Стиль карты\" в разделе \"Настройка карты\". " + Плагин расширяет возможности OsmAnd, делая доступными морские карты для катания на лодках, парусного спорта и других видов спорта. +\n +\nСпециальная дополнительная карта для OsmAnd добавляет морские навигационные и условные знаки как для внутренней, так и для прибрежной навигации. Описание навигационных отметок содержит информацию, необходимую для их идентификации, а также их характеристики (категория, форма, цвет, последовательность мерцания огней и т.д.). +\n +\nЧтобы вернуться к одному из традиционных стилей карт в OsmAnd, просто деактивируйте этот плагин или измените на желаемый \"Стиль карты\" в разделе \"Настройка карты\". Вы собираетесь отправить %1$d изменений в OSM. Вы уверены? Вы хотите очистить историю? - "Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулерах и горнолыжных подъемниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального \"зимнего\" стиля карты, который заключается в том, что используются \"снежные\" цвета зимнего пейзажа.\n\nВ случае активации этого вида, стиль карты меняется на \"Winter and ski\", показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменен либо путем деактивации здесь, либо если вы поменяете \"Стиль карты\" в меню \"Настройка карты\" на желаемый вид. " + Плагин обеспечивает вам доступ к данным о горнолыжных трассах, маршрутах для беговых лыж, альпийских спусках, фуникулерах и горнолыжных подъемниках. Маршруты и спуски отмечены разными цветами в зависимости от их сложности и изображены с использованием специального \"зимнего\" стиля карты, который заключается в том, что используются \"снежные\" цвета зимнего пейзажа. +\n +\nВ случае активации этого вида, стиль карты меняется на \"Winter and ski\", показывая все детали пейзажа так, как они выглядят зимой. Такой (зимний) вид может быть отменен либо путем деактивации здесь, либо если вы поменяете \"Стиль карты\" в меню \"Настройка карты\" на желаемый вид. Имя группы должно быть минимум 3 символа! Текущий маршрут Скачать карты @@ -1854,7 +1888,7 @@ Не использовать Адрес Горнолыжные маршруты - Показать описание + Показать описание. Места Поиск Открыто @@ -1877,15 +1911,15 @@ Напечатайте для поиска Номера домов - Избегать пересечения границы с другой страной + Избегать пересечения границы с другой страной. Ограничение высоты - Укажите высоту автомобиля для учёта при построении маршрута + Укажите высоту автомобиля для учёта при построении маршрута. Умный перерасчет маршрута Перерасчет только начальной части маршрута для длительных поездок Удалить правки OSM Отключено - Раскраска в соответствии с легендой маршрута - Раскраска в соответствии с OSMC + Раскраска по сетевой принадлежности + Раскраска туристических меток по OSMC Передача местоположения Выход Европа - Нидерланды @@ -1999,11 +2033,11 @@ Показывать при запуске Вы уверены? Все несохраненные изменения будут потеряны. Продолжить? - Моделировать, используя рассчитанный маршрут или записанный GPX - Остановить моделирование + Моделировать вашу позицию, используя рассчитанный маршрут или записанный GPX. + Остановить моделирование своей позиции. Добавить новую Выберите категорию - Выберите единицы измерения скорости + Выберите единицы измерения скорости. Единицы измерения скорости Морские мили Километр в час @@ -2049,14 +2083,14 @@ Поделиться местоположением Отправить Выберите, где вы хотите хранить файлы карт и другие данные. - \"Отключено\" непосредственно запускает экран карты + \"Отключено\" непосредственно запускает экран карты. Карта загружена QR-код - Перейти к карте + Показать карту Базовая карта мира (покрывающая весь мир при малом увеличении) отсутствует или устарела. Пожалуйста, загрузите базовую карту мира для полноты рабочего окружения. - Карта %1$s загружена. Вернитесь к карте, чтобы начать её использовать. + Карта %1$s была загружена, теперь вы можете начать её использовать. Имитировать первый запуск - Устанавливает признак первого запуска приложения, не изменяет других настроек + Устанавливает признак первого запуска приложения, не изменяет других настроек. Опрос Связаться с нами Версии @@ -2091,12 +2125,12 @@ Вы действительно хотите сохранить POI без указания типа? Расстояние: Время: - Кнопка меню открывает домашнюю страницу + Кнопка меню открывает домашнюю страницу, а не меню. Доступ с карты Удалить точку GPX? Редактировать точку GPX Избегать лестниц - Избегать лестниц + Избегать лестниц. Избегать пересечения границы Обновлять каждые Загружать только через WiFi @@ -2117,7 +2151,7 @@ Еженедельно Выберите месяц и страну Открыть повторно - Выберите дороги, которых следует избегать при навигации + Выберите дороги, которых следует избегать при навигации. ОТМЕНИТЬ ВСЁ Тип OSM правки отправлены через OsmAnd @@ -2126,12 +2160,12 @@ Количество правок Ночь Утро - Объём памяти, который может быть занят всеми видеоклипами + Объём памяти, который может быть занят всеми видеоклипами. Длина ролика - Продолжительность каждого записанного клипа не будет больше выбранного значения + Верхний предел продолжительности записанного клипа. Разбиение на клипы Использовать разбиение на клипы - Циклическая перезапись клипов при превышении заданного объема хранилища + Циклическая перезапись клипов при превышении заданного объема хранилища. Поменять местами пункт отправления и пункт назначения Удалить Подземные объекты @@ -2147,7 +2181,7 @@ Подписаться Не показывать мое имя в отчетах Стоимость в месяц - Ежемесячный платеж + Ежемесячный платеж. Пожалуйста, введите корректный адрес электронной почты Благодарим вас за подписку на автообновления! Параметры подписки @@ -2179,15 +2213,15 @@ Запись удалена элементы удалены Автообновления - Выберите или скачайте голосовое сопровождение для вашего языка + Выберите или скачайте голосовые оповещения для вашего языка. Полный отчет Пересчитать маршрут Имя пользователя и пароль OpenStreetMap Количество получателей Активные Неактивные - Часть вашего пожертвования будет направляться пользователям OpenStreetMap внесшим изменения в карту этого региона - Недостаточно места! Необходимо {3} Мб временно и {1} Мб на постоянной основе. В настоящее время доступно только {2} Мб свободного места. + Часть вашего пожертвования будет направляться пользователям OSM внесшим изменения в карту этого региона. + Недостаточно места! Необходимо {3} Мб временно и {1} Мб на постоянной основе. Свободного места - {2} Мб. Можно отправить заметку OSM анонимно или используя свой профиль OpenStreetMap.org. Загрузить OSM заметку Использовать меню @@ -2197,7 +2231,17 @@ Размер обновления Отчет для Приложение получило разрешение на запись во внешнее хранилище. Требуется перезагрузка приложения. - " • OSM Live. Поддержка авторов и разработчиков карт и получение почасовых обновлений карты.\n\n• Маркеры. Новый способ для быстрого выбора мест на карте.\n\n• Более подробные OSM карты со специфическими дорожными знаками стран и с большим количеством новых функций.\n\n• Улучшен внешний вид и подготовка маршрута.\n\n• Множество улучшений в контекстном меню карты таких как поиск адреса.\n\nИ многое другое... " + • OSM Live. Поддержка авторов и разработчиков карт и получение почасовых обновлений карты. +\n +\n• Маркеры. Новый способ для быстрого выбора мест на карте. +\n +\n• Более подробные OSM карты со специфическими дорожными знаками стран и с большим количеством новых функций. +\n +\n• Улучшен внешний вид и подготовка маршрута. +\n +\n• Множество улучшений в контекстном меню карты таких как поиск адреса. +\n +\nИ многое другое… Отчёт Переместить вверх Переместить вниз @@ -2212,7 +2256,7 @@ Путевых точек не найдено Вы хотите добавить маркеры для всех точек? Добавить к маркерам - Использовать маркеры на карте + Активирует функцию маркеров карты. Папка, выбранная для хранения данных, доступна только для чтения. Вместо нее временно будет использоваться внутренняя память. Пожалуйста, выберите подходящее хранилище. Общее хранилище Сортировать @@ -2226,24 +2270,24 @@ Карта привязана к местоположению Введите имя Введите категорию - Введите описание + Введите описание. Выберите категорию Цвет по умолчанию Интеллектуальное автооповещение - Говорить только при изменении направления на целевую точку + Уведомлять только при изменении направления на целевую точку. Период автооповещений - Минимальное время между оповещениями - Не менять маршрут при сходе с пути - Предотвращает автоматический пересчет маршрута при значительном удалении от заданного пути - Не менять маршрут при неверном направлении движения - Предотвращает автоматический пересчет маршрута при неверном направлении движения + Минимальное время между оповещениями. + Не пересчитывать маршрут при сходе с него + Предотвращает автоматический пересчет маршрута после того, как вы покинули его. + Не пересчитывать маршрут при обратном направлении движения + Предотвращает автоматический пересчет маршрута при обратном направлении движения. Пункт назначения не задан Звуковая индикация направления - Индицировать звуком направление на целевую точку + Индицировать звуком направление на целевую точку. Тактильная индикация направления - Индицировать вибрацией направление на целевую точку + Индицировать вибрацией направление на целевую точку. Подписка OsmAnd Live - Включить навигацию с учетом автообновлений OsmAnd Live + Включить навигацию с учетом автообновлений OsmAnd Live. Испанский (американский) Английский (Соединенное Королевство) Венгерский (официальный) @@ -2253,7 +2297,7 @@ Поиск по координатам Расширенный поиск по координатам Вернуться в поиск - Удалить выбранное из истории поиска? + Удалить выбранные элементы из истории? Показать %1$s на карте Искать за %1$s от местоположения поделились через OsmAnd @@ -2265,7 +2309,7 @@ Открыто 24/7 Карта памяти Формат координат - Формат для географических координат + Формат для географических координат. Автобус Поезд @@ -2279,20 +2323,20 @@ Надземные объекты - Не проверять информацию о новых версиях и скидках от OsmAnd + Не проверять информацию о новых версиях и скидках от OsmAnd. Не показывать обновления Вы хотите обновить все карты сейчас? Очистить всю плитку Экономичный путь - Использование экономичного пути (обычно короче) + Использование топливо-сберегающего пути (обычно короче). Вы уверены, что хотите заменить любимые %1$s? Изменить Начать от Подписывайтесь на нас - Она нужна нам, чтобы предоставить вам информацию о взносах - Действительно загрузить {0} файл (ов)? Для этого необходимо {3} Мб временно и {1} Мб на постоянной основе. В настоящее время существует {2} Мб свободного места. - Определить моё местоположение + Необходимо предоставить информацию о взносах. + Скачать {0} файл (ов)? Используется {3} Мб временной и {1} Мб постоянной памяти. (Свободного места - {2} Мб.) + Найти мою позицию Прокладывайте маршруты и открывайте новые для себя места без подключения к интернету Разрешить доступ к местоположению Дать разрешение @@ -2303,7 +2347,7 @@ Соединение с интернетом отсутствует Не удалось определить местоположение OsmAnd определит ваше местоположение и предложит загрузить карты для этой области. - Поиск карты… + Поиск карт… Выберите другой регион Пропустить загрузку карт У вас нет загруженных карт. Вы можете выбрать карту из списка или загрузить её позже с помощью меню - %1$s. @@ -2318,8 +2362,8 @@ Абонентская плата будет взиматься ежемесячно. Отменить подписку можно на Google Play в любой момент. Пожертвование для сообщества OpenStreetMap Часть вашего пожертвования будет отправлена пользователям OSM, вносящим изменения в OpenStreetMaps. Стоимость подписки при этом остаётся прежней. - Подписка включает в себя ежечасные, ежедневные и еженедельные обновления, а также неограниченное количество доступных загрузок для всех карт со всего мира. - Файл GPX с координатами заметок + Подписка позволяет получать ежечасные, ежедневные, еженедельные обновления и неограниченные загрузки для всех карт по всему миру. + Файл GPX с координатами заметок. Астурийский Верхнелужицкий Белорусский (латиница) @@ -2361,57 +2405,55 @@ Стили карты Изменить положение кнопки Название действия -" -• Новая функция: кнопка быстрого действия - -• Улучшенный ответ на жесты сенсорного экрана - -• Новый шрифт карты, охватывающий больше языков - -• Поддержка TTS для вариантов региональных языков - -• Улучшение видимости в нескольких стилях карт и Википедии - -• Поддержка Open Location Code (OLC) - -• Отображение профиля высоты, уклона для записанного GPX (также профиль скорости) и построенного маршрута - -• Настройка \"Стиль вождения\" и улучшение логики для велосипедного роутинга - -• Настройки для использования данных о высотах в велосипедном роутинге - -• Множество других улучшений и исправлений ошибок - -и многое другое… - " +• Новая функция: кнопка быстрого действия +\n +\n• Улучшенный ответ на жесты сенсорного экрана +\n +\n• Новый шрифт карты, охватывающий больше языков +\n +\n• Поддержка TTS для вариантов региональных языков +\n +\n• Улучшение видимости в нескольких стилях карт и Википедии +\n +\n• Поддержка Open Location Code (OLC) +\n +\n• Отображение профиля высоты, уклона для записанного GPX (также профиль скорости) и построенного маршрута +\n +\n• Настройка \"Стиль вождения\" и улучшение логики для велосипедного роутинга +\n +\n• Настройки для использования данных о высотах в велосипедном роутинге +\n +\n• Множество других улучшений и исправлений ошибок +\n +\nи многое другое… Сербский (латиница) Голос вкл/выкл Голос выключен Голос включен Файл не может быть перемещен. - Благодарим вас за покупку морских контуров глубин! + Благодарим вас за покупку контуров морских глубин! Добавить фотографии Разрешения - Онлайн фото - У нас нет фотографий для этого места - Поделиться своим собственным уличным видом этого места через Mapillary. + Онлайн фотографии + У нас нет фотографий для этого места. + Поделиться своими собственными уличными видами этого места через Mapillary. Виджет Mapillary - Позволяет быстро внести свой вклад в Mapillary - Уличные онлайн фотографии для всех. Исследуйте места, сотрудничайте, снимайте мир. + Позволяет быстро внести свой вклад в Mapillary. + Уличные онлайн фотографии для всех. Открывайте для себя места, сотрудничайте, снимайте мир. Mapillary - Уличные фотографии для всех. Исследуйте места, сотрудничайте, снимайте мир. + Уличные фотографии для всех. Открывайте для себя места, сотрудничайте, снимайте мир. Название содержит слишком много заглавных букв. Вы действительно хотите продолжить? - Нажмите эту кнопку, чтобы приостановить навигацию или возобновить ее. + Нажмите эту кнопку, чтобы приостановить или возобновить навигацию. Показывать диалог завершения навигации Запуск/остановка навигации - Нажмите эту кнопку, чтобы начать навигацию, или остановить ее. + Нажмите эту кнопку, чтобы начать или остановить навигацию. Сохранять записанные треки в папках помесячно Сохранять записанные треки в подпапках с записью месяца (например, 2017-01). Кэш тайлов Неверное имя пользователя! - Просмотр фотографий, добавленных в определенный период. - Даты - Просмотр фотографий, добавленных определенным пользователем. + Просмотр только добавленных фотографий + Дата + Просмотр только фотографий, добавленных Имя пользователя Радиус-линейка Открыть Mapillary @@ -2439,17 +2481,19 @@ До От Обновить - Вы можете фильтровать изображения по отправителю или по дате. Фильтры применяются только для больших масштабов. + Вы можете фильтровать фотографии по отправителю или по дате. Фильтры применяются только для больших масштабов. OsmAnd не удается импортировать файл. Проверьте имеет ли OsmAnd разрешение на чтение файла из его местоположения. Откорректированное расстояние - Вы можете взять ваши собственные фотографии или серии фотографий и прикрепить их к этому месту на карте. Для этого Вам необходимо установить с Goggle Play маркета приложение Mapillary. + Вы можете взять ваши собственные фотографии или серии фотографий и прикрепить их к этому месту на карте. +\n +\nДля этого Вам необходимо установить с Goggle Play маркета приложение Mapillary. Высота маршрута Имя GPX файла: Показать на карте после сохранения Просмотрите карту и добавьте точки Измерить расстояние Необходимо добавить хотя бы одну точку. - Отправить изображение в Mapillary + Отправить фотографию в Mapillary Улучшить фотопокрытие через Mapillary Скрыть от шкалы приближения "\\022 Новый контекстно-зависимый Графический Интерфейс для выделения локаций на карте и других экранов @@ -2475,7 +2519,7 @@ Сортировать по Параметры маркера Не использовать анимацию - Отключение анимации в приложении + Отключение анимации в приложении. Выйти без сохранения? Сохранить как точки маршрута Сохранить как линию @@ -2490,7 +2534,7 @@ %1$d из %2$d Список Группы - Пройдено: %1$s + Последнее использование: %1$s Сделать активным Сегодня Вчера @@ -2500,16 +2544,16 @@ Ввод координат Сохранить как трек Переместить в историю - Группа будет удалена после перезагрузки + Группа будет удалена после следующего перезапуска приложения. Показывать стрелки на карте по убыванию по возрастанию Формат координат Использовать системную клавиатуру - Выбор формата координат для ввода. Вы всегда можете изменить его, нажав опции. + Выбор формата координат для ввода. Вы всегда можете изменить его, нажав \"Параметры\". Быстрый ввод координат Избегать ледовых дорог, бродов - Избегать ледовых дорог и бродов + Избегать ледовых дорог и бродов. Моя позиция Финиш Сортировать @@ -2521,19 +2565,19 @@ Сделать маршрут круговым Навигация Использовать позицию - Дате добавления - Сортировать по: + Дата добавления + Критерий сортировки: Выберите способ указания расстояния и направления до маркеров на экране карты: Смена ориентации карты - Выберите скорость с которой ориентация карты переключится с \"По направлению движения\" на \"По направлению компаса\" + Выберите ниже, на которой скорости ориентация карты переключается с \"По направлению движения\" на \"По направлению компаса\". Все маркеры перемещены в историю - Маркер перемещен в историю - Маркер перемещен в действующие + Маркер карты перемещен в историю + Маркер карты перемещен в действующие Указатель расстояния • Полностью переработанные маркеры карты, с направляющими линиями и планированием маршрута -\n -\n• Инструмент измерения расстояния, с привязкой к дороге и сохранением точек в качестве трека -\n +\n +\n• Инструмент измерения расстояния, с привязкой к дороге и сохранением точек в качестве трека +\n \n• OsmAnd Live: исправления ошибок, обновление данных на сервере каждые 30 минут, обновления учитываются в навигации \n \n @@ -2541,7 +2585,7 @@ Вы должны добавить по крайней мере один маркер, чтобы использовать эту функцию. Произошло исключение: заметка не изменена Дорога - Показывать направляющую линию + Показывать направляющие линии Темно-желтый Osmand это активно развивающийся проект с открытым исходным кодом. Благодаря открытости каждый может внести свой вклад в приложение сообщая об ошибках, улучшая перевод или кодируя новые функции. Проект находится в оживленном состоянии непрерывного совершенствования всеми этими формами взаимодействия разработчиков и пользователей. Прогресс проекта также зависит от денежных взносов для финансирования написания и тестирования новых функций. Примерная карта покрытия и качество: • Западная Европа: **** • Восточная Европа: *** • Россия: *** • Северная Америка: *** • Южная Америка: ** • Азия ** • Япония & Корея: *** • Ближний Восток: ** • Африка: ** • Антарктида: * Большинство стран по всему миру доступны для скачивания! Получите надежный навигатор в вашей стране - будь то Франция, Германия, Мексика, Великобритания, Испания, Нидерланды, США, Россия, Бразилия или любая другая. Примерная карта покрытия и качество: • Западная Европа: **** • Восточная Европа: *** • Россия: *** • Северная Америка: *** • Южная Америка: ** • Азия ** • Япония & Корея: *** • Ближний Восток: ** • Африка: ** • Антарктида: * Большинство стран по всему миру доступны в виде загрузок! От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … @@ -2562,22 +2606,22 @@ Введите новое имя Назад Внешний вид на карте - Выберите группы избранных, которые вы хотите добавить к маркерам. - Группа избранных + Выберите категорию избранных для добавления к маркерам. + Категория избранных Добавить группу - Вы можете добавить группу из избранных или путевых точек. - Маркеры на карте! - Отмечайте места на карте нажатием. + Вы можете импортировать группу из избранных или путевых точек. + Создайте маркеры карт! + Нажмите на нужное место и затем нажмите кнопку флажка маркера. Импорт групп Вы можете импортировать группы избранных или путевых точек как маркеры. На этом экране появятся маркеры, отмеченные как пройденные. Два Один - Отображать направление от вашей позиции до активного маркера. + Отображать направляющие линии от вашего позиции до активных мест маркеров. Отображать одну или две стрелки, указывающие направление на активные маркеры. Выберите способ отображения расстояния до активных маркеров. Выберите сколько отображать индикаторов направления. - Количество цифр + Количество десятичных цифр Вставить Автопереход на следующее поле после ввода %1$d цифр после десятичной точки. %1$d цифр @@ -2586,7 +2630,7 @@ Полноэкранный режим Отметить пройденным Файл %1$s не содержит путевых точек, импортировать его как трек? - Выбрать трек путевых точек, которые OsmAnd добавит в маркеры + Выберите трек для добавления путевых точек. (Показаны только треки с путевыми точками.) Трек путевых точек \@string/shared_string_history Направо @@ -2595,4 +2639,129 @@ Нажатие на карте переключает кнопки управления и виджеты. Показать на верхней панели могут быть импортированы как избранные точки или как трек файл. + Больше + Импортировать как файл GPX + Импортировать как избранные + Импорт файла + Неправильный ввод + Просмотр + Путевые точки добавлены в маркеры карты + Маршрут рассчитан + Путешествие + Добавить вашу позицию как первую точку при планировании маршрута. + сохранено + Показывать пройденные + Скрыть пройденные + Удалить из маркеров карты + Продолжать показывать на карте + Линия + Поиск треков с путевыми точками + Активация этого вида меняет стиль карты OsmAnd на «Туристическую карту\", это особый высоко детализированный вид для путешественников и профессиональных водителей. +\n +\nЭтот стиль на любом масштабе карты показывает максимальное количество подробностей для поездки, имеющихся в картографических данных (в частности, дороги, дорожки, тропинки, и ориентиры). +\n +\n Он также ясно показывает все виды дорог через цветовое кодирование, что полезно, для, например, управления большими транспортными средствами. +\n +\n И он добавляет специальные туристические настройки, такие как велосипедные маршруты или альпийские горные маршруты. +\n +\nДополнительное скачивание не требуется, вид создается из наших стандартных карт. +\n +\nЭтот вид может быть отменен путем деактивации его здесь или путем изменения «Стиля карты» в разделе «Настройки карты» по желанию. + Открытый код местоположения (OLC) + OsmAnd (OSM Automated Navigation Directions) - картографическая и навигационная программа с доступом к свободным, мировым и высококачественным данным OpenStreetMap (OSM). Получайте наслаждение от голосовой и визуальной навигации, просматривайте точки интереса (англ. POI, points of interest), создавайте и управляйте GPX треками, используйте визуализацию контурных линий и данных высот (через плагин), переключайтесь между режимами автомобиль, велосипед и пешеход, редактируйте OSM данные и многое другое. + GPS-навигация +\n• Вы можете выбрать между автономным режимом (без платы за роуминг) и через Интернет (быстрее) +\n• Пошаговые голосовые подсказки (записанные или синтезированные голоса) доставят вас к месту назначения +\n• Повторный расчет маршрута после значительного отклонения от существующего +\n• Полосы движения, названия улиц и приблизительное время прибытия помогут в дороге +\n• Для того, чтобы сделать ваше путешествие более безопасным, режим дня/ночи переключается автоматически +\n• Вы можете настроить отображение ограничений скорости и получать предупреждения при ее превышении +\n• Карта масштабируется соответственно вашей скорости +\n• Вы можете искать места по адресу, типу (паркинг, ресторан, отель, заправка, музей и т.д.) или географическим координатам +\n• Поддержка промежуточных точек маршрута +\n• Вы можете записать собственный GPX трек или загрузить готовый и придерживаться его + Карта +\n• Отображает POI (точки интереса) около вас +\n• Адаптирует карту в направлении вашего движения (или компаса) +\n• Показывает, где вы находитесь и куда вы смотрите +\n• Делитесь своим расположением, чтобы друзья смогли найти вас +\n• Сохраняет ваши самые важные места в избранных +\n• Позволяет вам выбрать как отображать названия на карте: на английском, местным или с фонетическим написанием +\n• Отображает специальные онлайн тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью + Катание на лыжах +\n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъемников и других объектов. + Езда на велосипеде +\n• Вы можете найти велосипедные дорожки на карте +\n• GPS навигация в велосипедном режиме строит маршрут используя велосипедные дорожки +\n• Вы можете видеть вашу скорость и высоту над уровнем моря • Опция GPX записи позволяет вам записывать ваше путешествие и делиться им +\n• Через приложение вы можете включить отображение контурных линий и затемнение рельефа + Прогулки, походы, экскурсии +\n• Карта показывает пешеходные и треккинговые тропы +\n• Википедия на предпочитаемом вами языке может многое рассказать вам во время экскурсии по городу +\n• Остановки общественного транспорта (автобус, трамвай, поезд), включая названия маршрутов, помогут ориентироваться в новом городе +\n• GPS навигация в пешеходном режиме высчитывает маршрут, используя пешеходные тропы +\n• Вы можете загрузить и следовать GPX маршруту или записать и делиться своим собственным + Внесение вклада в OSM +\n• Сообщения об ошибках +\n• Загрузка GPX треков в OSM напрямую из программы +\n• Добавление точек интереса (POI) и загрузка их в OSM (или позже, если оффлайн) + "OsmAnd+ (OSM Automated Navigation Directions) - картографическая и навигационная программа с доступом к свободным, мировым и высококачественным данным OpenStreetMap (OSM). Получайте наслаждение от голосовой и визуальной навигации, просматривайте точки интереса (англ. POI, points of interest), создавайте и управляйте GPX треками, используйте визуализацию контурных линий и данных высот, переключайтесь между режимами автомобиль, велосипед и пешеход, редактируйте OSM данные и многое другое. OsmAnd + - платная версия программы. При приобретении, вы поддержите проект, финансируете разработку новых возможностей и получите последние обновления. Некоторые из главных возможностей:" + Навигация +\n• Работает через Интернет (быстрее) или автономно (без платы за роуминг за границей) +\n• Пошаговые голосовые подсказки (записанные или синтезированные голоса) +\n• Полосы движения, отображение названия улицы и приблизительное время прибытия +\n• Поддержка промежуточных точек на вашем маршруте +\n• Автоматическое перестройка маршрута при отклонении от существующего +\n• Поиск мест по адресу, типу (например, ресторан, гостиница, заправка, музей) или географическим координатам + Просмотр карты +\n• Отображение вашей позиции и ориентации +\n• Возможность ориентирования карты по компасу или по направлению вашего движения +\n• Сохранение ваших самых важных мест в качестве избранных +\n• Отображение POI (точек интереса) вокруг вас +\n• Отображение специализированных онлайн тайлов, спутниковые снимки (от Bing ), различные наложения, такие как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью. +\n• Возможность отображения географических названий на английском, местном или фонетическом написании + Экран %d + Показать диалог избранных + Название предустановки + " было сохранено в " + Повторить + Добавить точки маршрута + Добавить путевую точку + Добавить линию + Сохранить GPX путевую точку + Сохранить точку маршрута + Путевая точка 1 + Точка маршрута 1 + Добавить и записать треки + Запись или импорт треков для просмотра. + Добавить избранные + Добавить избранные на карту или импортировать из файла. + Импортировать трек + Переместить точку + Добавить в GPX трек +Используйте данные OSM и Википедии +\n• Высококачественная информация из лучших совместных проектов мира +\n• Данные OSM доступны по каждой стране или региону +\n• Интересные места (POI) из Википедии прекрасно подходят для осмотра достопримечательностей +\n• Неограниченное количество бесплатных скачиваний непосредственно из приложения +\n• Компактные автономные векторные карты, обновляемые как минимум раз в месяц +\n• Выбор между полными данными региона и только дорожной сетью (пример: вся Япония занимает 700 Мб, а дорожная сеть - 200 Мб) + Функции безопасности +\n• Возможность автоматического переключения режима день/ночь +\n• Возможность отображения ограничения скорости с напоминанием при превышении +\n• Возможность изменения масштаба в зависимости от скорости +\n• Возможность делиться своим местоположением, чтобы друзья смогли найти вас + Возможности для пешеходов и велосипедистов +\n• Просмотр пешеходных, туристических и велосипедных дорожек, прекрасно подходит для активного отдыха +\n• Специальный режимы маршрутизации и отображения для велосипедистов и пешеходов +\n• Опционально остановки общественного транспорта (автобус, трамвай, поезд), включая названия маршрутов +\n• Возможность записи путешествие в локальный GPX файл или интернет-сервис +\n• Возможность отображения скорости и высоты +\n• Отображение контурных линий и затенения высот (через дополнительный плагин) + Непосредственный вклад в OSM +\n• Сообщения об ошибках в данных +\n• Загрузка GPX треков в OSM непосредственно из приложения +\n• Добавление точек интереса (POI) и непосредственная загрузка их в OSM (или позже, если в автономном режиме) +\n• Возможность записи путешествие в фоновом режиме (в то время, как устройство находится в спящем режиме) +\nOsmAnd - открытое программное обеспечение в активной разработке. Каждый может внести вклад сообщая об ошибках, улучшая перевод или разрабатывая новые возможности. Проект находится в состоянии постоянного совершенствования форм взаимодействия разработчиков и пользователей. Ход проекта зависит также от финансовых взносов для обеспечения продолжения кодирования и тестирования новой функциональности. diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index 0605cae571..b57e318c70 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -2785,7 +2785,7 @@ Pro praghere iscrie su còdighe intreu Issèbera comente indicare sa distàntzia e sa diretzione a sos marcadores in sa mapa: Ùrtimu impreu: %1$s Ativa - Ammustra sa lìnia de ghia + Ammustra sas lìnias de ghia Ammustra sas fritzas in sa mapa Ammustra sos colados Istichi sos colados @@ -2807,7 +2807,7 @@ Pro praghere iscrie su còdighe intreu Esporta sos marcadores tuos in unu documentu chi podes dislindare inoghe: Sarva comente rasta Pone in sa cronologia - Su grupu at a èssere iscantzelladu a pustis de s\'allughìngiu imbeniente + Su grupu at a èssere iscantzelladu a pustis de s\'allughìngiu imbeniente de s\'aplicatzione. B\'est istadu un\'errore: sa nota no est istada modificada Modìfica sa nota Modìfica sa nota OSM @@ -2819,10 +2819,10 @@ Pro praghere iscrie su còdighe intreu Àndala torrada a calculare Àndala tzirculare Depes annànghere a su mancu unu marcadore pro impreare custa funtzionalidade. - \\022 Marcadores de mapa noos cun lìnias de ghia e càlculu de s\'àndala -\n -\n • Aina pro sa medidura de sas distàntzias chi permitit de ischertare puntos particulares de sa mapa e de sarvare puntos comente una rasta -\n + \\022 Marcadores de mapa noos cun lìnias de ghia e càlculu de s\'àndala +\n +\n • Aina pro sa medidura de sas distàntzias chi permitit de ischertare puntos particulares de sa mapa e de sarvare puntos comente una rasta +\n \n • OsmAnd Live: curretzione de errores, agiornamentu de sos datos in su server cada 30 minutos, agiornamentos impostados in su mentres de su nàvigu \n \n @@ -2841,24 +2841,24 @@ Pro praghere iscrie su còdighe intreu Modalidade a ischermu intreu Ammustra in sa barra superiore Sinna comente coladu - Nùmeru de tzifras + Nùmeru de tzifras detzimales Destra Manca Ammustra tecladu numèricu Incolla - Cola automaticamente a su campu imbeniente a pustis de àere iscritu %1$d tzifras a pustis de sa vìrgula. + Cola automaticamente a su campu imbeniente a pustis de àere iscritu %1$d tzifras detzimales. %1$d tzifras Cola a su campu imbeniente Torra a numenare su marcadore Visualizatzione in sa mapa - Issèbera sos puntos de coladòrgiu chi OsmAnd at a annànghere a sos marcadores - Issèbera sos grupos de preferidos chi cheres annànghere a sos marcadores. + Issèbera una rasta pro annànghere sos puntos de coladòrgiu suos a sos marcadores (petzi sas rastas cun puntos de coladòrgiu sunt allistadas) + Issèbera una categoria de preferidos pro l\'annànghere a sos marcadores. Puntos de coladòrgiu - Grupu de preferidos - Annanghe grupu - Podes annànghere unu grupu de preferidos o puntos de coladòrgiu de una rasta. - Marcadores in sa mapa! - Marca logos in sa mapa cun un\'incarcu. + Categoria de preferidos + Annanghe unu grupu + Podes importare unu grupu de preferidos o puntos de coladòrgiu de una rasta. + Crea marcadores in sa mapa! + Marca logos in sa mapa cun un\'incarcu curtzu o longu e, a pustis, incarchende su butone cun sa bandera de sos marcadores. Importa grupos Podes importare grupos de preferidos o puntos de coladòrgiu de una rasta comente marcadores. \@string/shared_string_history @@ -2869,4 +2869,6 @@ Pro praghere iscrie su còdighe intreu Ammustra una o duas fritzas chi indicant sa diretzione cara a sos marcadores ativos. Issèbera comente ammustrare sa distàntzia cun sos marcadores ativos. Issèbera cantos indicadores de diretzione cheres ammustrare. + Àteru + Chirchende rastas cun puntos de coladòrgiu diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index e07c555d7c..abeabe8122 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -203,7 +203,7 @@ Natívna knižnica nie je podporovaná na tomto zariadení. Inicializácia natívnej knižnice… Automatické centrovanie - Čas pokiaľ sa mapové zobrazenie zosynchronizuje s pozíciou + Čas pokiaľ sa mapové zobrazenie zosynchronizuje s pozíciou. Automatické centrovanie iba pri navigácii Povoliť automatické centrovanie pozície iba v režime navigácie. @@ -247,7 +247,7 @@ %1$d z %2$d položky(iek) úspešne nahraných. Poskytnúť pre OSM Zobraziť podrobnejšiu mapu - Zobrazí viac detailov offline vektorovej mapy (cesty, atď.) už pri nižších priblíženiach + Zobraziť viac detailov offline vektorovej mapy (cesty, atď.) už pri nižších priblíženiach. Obľúbené miesta boli úspešne odstránené. Idete zmazať %1$d obľúbených bodov a %2$d skupín obľúbených. Ste si istý? Doma @@ -264,7 +264,7 @@ %1$d položiek z %2$d úspešne obnovených. Žiadne položky pre akciu: %1$s Chcete %1$s %2$s položiek. Ste si istý? - Správca mapových súborov + Spravovať mapové súbory. Obnoviť Zálohovať (vypnúť) Znovu načítať z karty SD @@ -280,10 +280,10 @@ POI údaje TTS hlas Nové hľadanie - Výber veľkosti písma pre názvy na mape + Vybrať veľkosť písma pre názvy na mape. Veľkosť písma Ladiace info vykresľovania - Zobrazí údaje výkonu vykresľovania pre ladiace účely + Zobraziť údaje výkonu vykresľovania pre účely ladenia. Rozbaľujú sa nové údaje… Je vybratá online navigačná služba, ale nie je dostupné pripojenie na Internet. Nepodporovaný jazyk @@ -295,34 +295,34 @@ Prejsť pozdĺž celej trasy Pre túto oblasť je dostupná offline vektorová mapa.\n\t\n\tNa jej použitie aktivujte Menu → Zobrazenie → Zdroj mapy… → Vektorové OSM mapy. Výstup hlasových pokynov - Výber reproduktora pre prehrávanie hlasových pokynov + Vybrať reproduktor pre prehrávanie hlasových pokynov. Zvuk telefónneho hovoru (tiež preruší Bluetooth stereo v aute) Oznámenia Hudba/médiá Aplikácia nemôže stiahnuť mapovú vrstvu %1$s, prosím skúste ju preinštalovať. - Úprava priehľadnosti prekrývacej mapy + Zmeniť priehľadnosť prekrývacej mapy. Priehľadnosť prekrývacej mapy - Úprava priehľadnosti základnej mapy + Upraviť priehľadnosť základnej mapy. Priehľadnosť mapy Upravte priehľadnosť (0 - priehľadný, 255 - nepriehľadný) Podkladová mapa… Podkladová mapa - Výber podkladovej mapy + Vybrať podkladovú mapu. Prekrývacia mapa… Prekrývacia mapa - Výber mapy na prekrytie - Mapa je už nainštalovaná, nastavenia budú zaktualizované - Vyberte mapy na inštaláciu alebo aktualizáciu - Pre túto operáciu je potrebné internetové pripojenie, avšak nie je dostupné + Vybrať mapu na prekrytie základnej. + Mapa je už nainštalovaná, nastavenia budú zaktualizované. + Vyberte (dlaždicové) mapy na inštaláciu alebo aktualizáciu. + Pre túto operáciu je potrebné internetové pripojenie, avšak nie je dostupné. Inštalovať viac… - Min. úroveň priblíženia pre použitie vektorových máp + Minimálna úroveň priblíženia pre použitie vektorových máp. Min. úroveň vektorového zoomu - " "Online OSM mapová klasifikácia s obrázkami" - Prihodila sa chyba pri offline hľadaní - Nedá sa parsovať geo obsah: "%s" + Online OSM mapová klasifikácia s obrázkami. + Vyskytla sa chyba pri offline hľadaní. + Nedá sa parsovať geo obsah: \'%s\'. Nájsť adresu použitím stiahnutých máp Systémový - Zmeniť zobrazovaný jazyk (po zmene je potrebné reštartovať OsmAnd) + Zmeniť jazyk zobrazenia (po zmene je potrebné reštartovať OsmAnd). Jazyk zobrazenia Zmeniť jednotky dĺžky. Jednotky dĺžky @@ -396,38 +396,38 @@ Nočný režim Východ/Západ slnka Svetelný senzor - Výber medzi denným/nočným režimom + Vybrať pravidlo prepínania denného/nočného režimu. Denný/nočný režim Stiahnuť {0} súbor/y/ov ({1} MB)? Bolo vybraných {0} položiek Zobraziť stiahnuté - Konfigurácia zobrazenia a iných globálnych nastavení + Konfigurovať zobrazenie a iné globálne nastavenia. Všeobecné nastavenia Stiahnutie, zobrazenie podrobností a správa máp na zariadení. Spravovať mapové súbory Režim na pozadí - OsmAnd bude bežať v systéme aj počas vypnutej obrazovky + OsmAnd bude bežať v systéme aj počas vypnutej obrazovky. Najrýchlejšia trasa - Zapnite na výpočet najrýchlejšej trasy alebo vypnite pre ekonomickú trasu + Zapnite pre výpočet najrýchlejšej trasy alebo vypnite pre ekonomickú trasu. Pri priblížení {0} sa stiahne {1} dlaždíc ({2} Mb ) Stiahnuť mapu Vybrať max. priblíženie viditeľnej oblasti na načítanie Táto mapa sa nedá stiahnuť Postupné vykresľovanie - Výber medzi postupným alebo celoobrazovým vykresľovaním + Použiť postupné vykresľovanie namiesto celoobrazového. Nastala chyba pri vykresľovaní vybranej oblasti Použiť umiestnenie… Vykresľovač bol úspešne načítaný Nastala výnimka: vykresľovač nebol načítaný Vektorový vykresľovač - Výber vzhľadu (stiahnutej) vektorovej mapy + Vybrať vzhľad vykreslenia vektorovej mapy. Zobraziť web stránku POI Zobraziť telefónny kontakt POI Web stránka Telefónny kontakt sem zadajte čo chcete nájsť Mapa s vysokým rozlíšením - Použitie mapy s vysokým rozlíšením pre zariadenia s vysokou hustotou bodov + Nerozťahovať (a nerozmazať) mapové dlaždice na obrazovkách s vysokou hustotou bodov. Umiestnenie zatiaľ nenájdené Hľadať hromadnú dopravu Hľadá sa preprava (bez cieľa): @@ -465,13 +465,13 @@ Cesta OSM Poznámky (online) - Body záujmu (POI)… + Vrstva bodov záujmu (POI)… Zdroj mapy… Zobrazenie Hľadať bod záujmu (POI) - Použitie trackballu na pohyb po mape + Použiť trackball na pohyb mapy. Použiť trackball - Nastaví max. čakaciu dobu pre každú ustálenú pozíciu na pozadí + Nastaviť max. čakaciu dobu pre každé ustálenie pozície na pozadí. Max. doba čakania na fix Kde som? Navigačná služba OsmAnd @@ -479,14 +479,14 @@ GPS sekúnd min. - Nastaví interval rozpoznávania pozície službou v pozadí + Nastaviť interval rozpoznávania pozície službou v pozadí. Interval zisťovania pozície z GPS - Výber poskytovateľa umiestnenia pre službu v pozadí + Vybrať poskytovateľa umiestnenia pre službu v pozadí. Poskytovateľ umiestnenia - Spustí OsmAnd v pozadí systému, aby mohol sledovať polohu keď je obrazovka vypnutá + Spustí OsmAnd v pozadí systému, aby mohol sledovať polohu, keď je obrazovka vypnutá. Spustiť OsmAnd v pozadí Služba pre navigovanie v pozadí vyžaduje zapnutý zdroj umiestnenia. - Určiť možnosti navigácie + Určiť možnosti navigácie. Navigácia Skryť filter Zobraziť filter @@ -520,7 +520,7 @@ Na výšku Na šírku Orientácia zobrazenia mapy - Výber orientácie obrazovky + Na výšku, na šírku alebo podľa zariadenia. Formát otváracích hodín nie je podporovaný na úpravu Pridať nové pravidlo Linky @@ -535,7 +535,7 @@ zastávky na prejdenie Vzdialenosť trasy Hromadná doprava - Zobrazenie zastávok hromadnej dopravy na mape + Zobraziť zastávky hromadnej dopravy na mape. Zobraziť zastávky hrom.dopravy Navigačná aplikácia OsmAnd Údaje POI boli úspešne aktualizované ({0} bolo načítaných) @@ -560,9 +560,9 @@ Offline hľadanie Online hľadanie Max. online úroveň priblíženia - Výber maximálnej úrovne priblíženia na stiahnutie online dlaždíc + Zadajte maximálnu úroveň priblíženia, kedy budú sťahované online dlaždice. Celková vzdialenosť %1$s, čas cestovania %2$d hod. %3$d min. - Výber online alebo offline navigačnej služby + Vybrať online alebo offline navigačnú službu. Navigačná služba Priečinok pre uloženie na SD karte nie je prístupný! Stiahnuť {0} - {1} ? @@ -605,12 +605,12 @@ Predošlé spustenie aplikácie malo kritickú chybu. Záznamový súbor je v {0}. Prosím, nahláste problém a priložte záznamový súbor. Ukladajú sa GPX stopy na SD kartu… Dokončené - Použiť Internet na výpočet trasy + Použiť Internet na výpočet trasy. Použiť online navigáciu OSM heslo - Určenie nastavení Openstreetmap.org (OSM) pre OSM nahrávanie - Výber jazyka, stiahnutie/znovu načítanie údajov + Určiť nastavenia Openstreetmap.org (OSM) potrebné pre prispievanie do OSM. + Vybrať jazyk, stiahnutie/znovu načítanie údajov. Údaje OSM upravovanie Automatické priblíženie mapy podľa Vašej rýchlosti (keď je mapa synchronizovaná s aktuálnou polohou). @@ -626,10 +626,10 @@ Automaticky zaznamenávať stopu počas navigácie Aktualizovať mapu Znovu načítať dlaždicu - Meno potrebné pre prispievanie do openstreetmap.org - OSM používateľské meno + Potrebné pre prispievanie do openstreetmap.org. + Vaše používateľské meno v OSM Cieľ - Výber medzi domácimi a anglickými názvami + Vybrať medzi domácimi a anglickými názvami. Použiť anglické názvy v mapách Nastavenia aplikácie Hľadať adresu @@ -638,11 +638,11 @@ Vybrať mesto alebo PSČ Vybrať krajinu Zobraziť uhol pohľadu - Zapnutie 3D zobrazenia mapy + Zapnúť 3D zobrazenie mapy. 3D zobrazenie mapy - Zobrazenie POI na mape (použije sa posledný vybraný filter) - Zobraziť POI - Vybraný zdroj dlaždíc + Zobraziť naposledy vybrané body záujmu ako vrstvu na mape. + Zobraziť vrstvu POI + Vybrať zdroj online mapových dlaždíc. Zdroj dlaždíc mapy Zdroj mapy Použiť internet @@ -1048,7 +1048,7 @@ Niektoré z hlavných funkcií: Zmazať prechodné body Heslo k OSM (voliteľné) Typ ostrenia fotoaparátu - Výber typu ostrenia vstavaného fotoaparátu + Vybrať režim zaostrovania vstavaného fotoaparátu. Automatické ostrenie Hyperfokálne ostrenie Rozšírená hĺbka poľa (EDOF) @@ -1056,7 +1056,7 @@ Niektoré z hlavných funkcií: Makro (z blízka) režim ostrenia Fotoaparát sa bude pokúšať ostriť priebežne Prehrať zvuk pri zachytení snímky - Zvoľte, či sa má prehrať zvuk pri odfotografovaní snímky + Zvoľte, či sa má prehrať zvuk pri odfotografovaní snímky. Eliptický mercator Základná mapa sveta Zväčšenie mapy @@ -1257,7 +1257,7 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda, OpenStreetMap sledovanie OsMo Len ručne (použiť šípku) - Opakovať navigačné pokyny v pravidelných intervaloch + Opakovať navigačné pokyny v pravidelných intervaloch. Opakovať navigačné pokyny Oznámenie príjazdu Ako skoro má byť oznámený príjazd do cieľa? @@ -1447,7 +1447,7 @@ Chcete pokračovať v novej registrácii? Neskoro V posledných metroch Veľkosť fotografie - Zvoľte veľkosť obrázka interného fotoaparátu + Vybrať veľkosť obrázka interného fotoaparátu. Štandardná Automobil Bicykel @@ -1543,7 +1543,7 @@ Chcete pokračovať v novej registrácii? Stiahli ste %1$s máp Stiahnuť novú mapu Spravovať - Štýl cesty + Štýl ciest Predvolené Oranžová Nemecký atlas ciest @@ -1755,7 +1755,7 @@ Dĺžka %2$s Výškový limit Zadajte výšku vozidla, ktorá musí byť povolená na cestách. Inteligentné prepočítanie trasy - Pri dlhých výletoch prepočítať iba začiatočný úsek trasy + Pri dlhých výletoch prepočítať iba začiatočný úsek trasy. Odosielať polohu Odhlásiť Vypnuté @@ -1903,7 +1903,7 @@ Dĺžka %2$s Beh v pozadí Vrstevnice vypnuté Zobraziť nápis verzie zdarma - Aj keď používate platenú verziu, môžete vidieť nápis z verzie zadarmo + Zobraziť nápis z verzie zadarmo, aj keď používate platenú verziu. Sťahovanie - súbor %1$d Oblasti Mapy celých oblastí @@ -1923,7 +1923,7 @@ Dĺžka %2$s %.1f MB Aktualizovať všetko (%1$s MB) Počet použitých voľných stiahnutí - Zobrazuje počet využitých stiahnutí + Zobrazuje počet využitých stiahnutí zdarma. Nastaví príznak indikujúci prvý štart aplikácie, ostatné nastavenia ponechá nezmenené. Simulovať prvé spustenie aplikácie geo: @@ -1946,8 +1946,8 @@ Dĺžka %2$s Iné Zásuvné moduly Prvé použitie - Ako sťahovať mapy, urobiť základné nastavenia - Nastavenie navigácie + Ako sťahovať mapy, urobiť základné nastavenia. + Nastaviť navigáciu. Otázky Často kladené otázky Prezeranie mapy @@ -2015,7 +2015,7 @@ Dĺžka %2$s Farba GPX Šírka GPX - Štýl cesty + Štýl ciest Znovuotvoriť @@ -2442,11 +2442,11 @@ Zodpovedá oblasti: %1$s x %2$s Vytvoriť položky Nastaviť mapu Navigácia - Ak ponecháte prázdne, automaticky sa použije adresa alebo názov miesta + Ak ponecháte prázdne, automaticky sa použije adresa alebo názov miesta. Táto správa bude automaticky dokončená v poli komentára. Správa - Vyberte kategóriu pre uloženie obľúbeného bodu - Vyberte voliteľnú kategóriu + Vyberte kategóriu pre uloženie obľúbeného bodu. + Vyberte voliteľnú kategóriu. Zoznam POI Môžete pridať jednu alebo viac kategórií POI, ktoré sa zobrazia na mape. Aktivovaním tlačidla akcie sa posunie zoznam na ďalšiu stranu. @@ -2466,7 +2466,7 @@ Zodpovedá oblasti: %1$s x %2$s Pridať zdroj mapy Zdroj mapy sa zmenil na \"%s\". Zmeniť polohu tlačidla - Podržte a potiahnite tlačidlo pre zmenu jeho pozície na obrazovke + Podržte a potiahnite tlačidlo pre zmenu jeho pozície na obrazovke. Názov akcie Automaticky prerušiť nahrávku po medzere Začať nový úsek po prestávke 6 minút, novú stopu po prestávke 2 hodín alebo nový súbor po dlhšej prestávke ak sa zmenil dátum. @@ -2815,7 +2815,7 @@ Zodpovedá oblasti: %1$s x %2$s Min/Max Časový zásobník pre online sledovanie Zadajte čas pokiaľ budú udržované pozície na odoslanie kým nie je pripojenie - Na zobrazovanie fotografií z Mapillary potrebujete pripojenie na Internet + Na zobrazovanie fotografií z Mapillary potrebujete pripojenie na Internet. Skúsiť znova Prezerať mapu a pridať body Merať vzdialenosť @@ -2846,9 +2846,9 @@ Zodpovedá oblasti: %1$s x %2$s Pridať body trasy Pridať čiaru Pridať a nahrať stopy - Nahrať alebo importovať stopy na zobrazenie + Nahrať alebo importovať stopy na zobrazenie. Pridať obľúbené - Pridať obľúbené na mape alebo ich naimportovať zo súboru + Pridať obľúbené na mape alebo ich naimportovať zo súboru. Importovať stopu Súbor %1$s neobsahuje body trasy, naimportovať ako stopu? Presunúť bod @@ -2895,8 +2895,8 @@ Zodpovedá oblasti: %1$s x %2$s Exportovať vaše značky do súboru, ktorý môžete určiť tu: Uložiť ako stopu Presunúť do histórie - Skupina bude odstránená po reštarte - Zobraziť vodiacu čiaru + Skupina bude odstránená po nasledujúcom reštarte aplikácie. + Zobraziť vodiace čiary Zobraziť šípky na mape Zobraziť prešlé Skryť prešlé @@ -2916,10 +2916,10 @@ Zodpovedá oblasti: %1$s x %2$s Pridať kópiu počiatočného bodu ako cieľ. Vytvoriť okružnú trasu Navigovať - \\022 Prepracované mapové značky s usmerneniami a plánovaním trasy -\n -\n • Nástroj na meranie vzdialeností má funkciu prichytenia k ceste a uloženie bodov ako stopu -\n + \\022 Prepracované mapové značky s vodiacimi čiarami a plánovaním trasy +\n +\n • Nástroj na meranie vzdialeností má funkciu prichytenia k ceste a uloženie bodov ako stopu +\n \n • OsmAnd Live: opravy chýb, nové dáta na serveri každých 30 minút, aktualizácie začlenené do navigácie \n \n @@ -2939,31 +2939,33 @@ Zodpovedá oblasti: %1$s x %2$s Režim na celú obrazovku Zobraziť na hornej lište Značka prejdená - Počet číslic + Počet desatinných miest Vpravo Vľavo Zobraziť numerickú klávesnicu Prilepiť - Automaticky prepnúť na ďalšie pole po zadaní %1$d číslic za desatinnou čiarkou. + Automaticky prepnúť na ďalšie pole po zadaní %1$d desatinných miest. %1$d číslic Prejsť na ďalšie pole Premenovať značku Vzhľad na mape - Zvoľte body stopy, z ktorých má OsmAnd vytvoriť značky - Zvoľte skupinu obľúbených bodov, z ktorých majú byť vytvorené značky. + Zvoľte stopy, ktorých waypointy má OsmAnd pridať ako značky. (Zobrazujú sa len stopy s waypointami.) + Zvoľte skupinu obľúbených bodov, ktoré majú byť pridané k značkám. Body stopy - Skupina obľúbených bodov + Kategória obľúbených bodov Pridať skupinu - Môžete pridať skupinu obľúbených bodov alebo bodov trasy. - Značky na mape! - Stlačením označte miesta na mape. + Môžete importovať skupinu obľúbených bodov alebo waypointy stopy. + Vytvoriť mapové značky! + Stlačením označte miesta na mape, potom stlačte tlačidlo s vlajkou značky. Importovať skupiny Môžete importovať skupiny obľúbených bodov alebo body stopy ako značky. Značky označené ako prejdené sa zobrazia na tejto obrazovke. Dve Jedna - Zobraziť smerovníky z vašej polohy k aktívnym značkám. + Zobraziť vodiace čiary z vašej polohy k aktívnym značkám. Zobraziť jednu alebo dve šípky smerujúce k aktívnym značkám. Zvoľte ako chcete zobraziť vzdialenosť k aktívnym značkám. Zvoľte koľko ukazovateľov smeru chcete zobraziť. + Viac + Hľadajú sa stopy s waypointami diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index 8aefa8ed9e..b5832b33f2 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -26,7 +26,7 @@ Увімкніть для країн з лівостороннім рухом. Початкове місцезнаходження не визначено - Позиція ще не визначена + Розташування ще не визначено Змінити прозорість (0 - прозорий, 255 - непрозорий) Перервати завантаження файлу? Дякуємо вам за використання OsmAnd. Для роботи більшості основних можливостей програми потрібні детальні мапи регіонів, які можна завантажити з Інтернету за допомогою пункту меню \'Налаштування\' → \'Управління мапами\'. Після завантаження цих мап Ви зможете здійснювати пошук за адресою, POI і зупинками громадського транспорту. @@ -176,8 +176,8 @@ Користувацькі Файл зі закладками вже існує. Чи Ви хочете його замінити? Налаштування профілю - Профіль - Виберіть профіль роботи програми (кожен профіль зберігає налаштування окремо). + Типовий профіль + Вид мапи й налаштування навігації зберігаються для кожного окремого профілю. Встановіть Ваш типовий профіль. Навігація @@ -215,7 +215,7 @@ Автоцентрування мапи тільки під час навігації Повертати мапу в поточну позицію тільки при навігації за маршрутом. - Центрування мапи увімкнене. + Використовується режим автоматичного центрування мапи. Налаштування векторного рендерінгу Додаткові шари Налаштування онлайн мап @@ -3099,4 +3099,6 @@ Виберіть, скільки індикаторів напрямків ви хотіли б бачити. Направо Наліво + Пошук треків з шляховими точками + Більше diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index a246ab87fe..c5bc9eecad 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -2418,8 +2418,8 @@ 防波堤 "歷史時期:村民 (新時代 I, II, 西元前 1580 年 – 西元 133 年)" 歷史時期:城市(新時代 III,西元 133 年 - 西元 374 年) - 類型 - 類型 + 燃料類型 + 燃料類型 (avia) 支付型式 燃料卡 附加 @@ -3530,4 +3530,151 @@ 操作狀態 供水類型 水淨化 - + 水體通行 + +峽谷 + 走廊 + 山區 + + 粘土 + 格子花呢 + 人工草坪 + DecoTurf + 金屬網格 + + 位置:地下 + 位置:水下 + 位置:地上 + 位置:高架 + 位置:屋頂 + 位置:屋頂上 + 位置:戶外 + 位置:室內 + 位置:平台 + 位置:涼亭 + 位置:橋樑 + 位置:牆 + 位置:入口 + + 能見度:房子 + 能見度:街道 + 能見度:區域 + + 開放 + 關閉 + 受限制 + 毀損 + 需要維修 + + 水體耐用度:耐用 + 水體耐用度:緊急 + + + + 反滲透 + Aquatabs + + 水井 + 水管 + 自來水 + + 炮眼 + 運水車 + 水塔 + 瓶裝水 + + 社區 + 家庭 + 多個家庭 + + 插座:CEE 藍色 + 插座:CEE 藍色:電流 + 插座:CEE 藍色:輸出 + 插座:CEE 紅色 16A + 插座:CEE 紅色:電流 + 插座:CEE 紅色 16A:輸出 + 插座:CEE 紅色 32A + 插座:CEE 紅色 32A:電流 + 插座:CEE 紅色 32A:輸出 + 插座:CEE 紅色 64A + 插座:CEE 紅色 64A:電流 + 插座:CEE 紅色 64A:輸出 + 插座:CEE 紅色 125A + 插座:CEE 紅色 125A:電流 + 插座:CEE 紅色 125A:輸出 + 插座:種類 1 + 插座:種類 1:電流 + 插座:種類 1:輸出 + 插座:種類 1 二合一 + 插座:種類 1 二合一:電流 + 插座:種類 1 二合一:輸出 + 插座:種類 2 + 插座:種類 2:電流 + 插座:種類 2:輸出 + 插座:種類 2 二合一 + 插座:種類 2 二合一:電流 + 插座:種類 2 二合一:輸出 + 插座:種類 3 + 插座:種類 3:電流 + 插座:種類 3:輸出 + 插座:CHAdeMO + 插座:CHAdeMO:電流 + 插座:CHAdeMO:輸出 + 插座:特斯拉標準 + 插座:特斯拉標準:電流 + 插座:特斯拉標準:輸出 + 插座:特斯拉超級充電器 + 插座:特斯拉超級充電器:電流 + 插座:特斯拉超級充電器:輸出 + 插座:特斯拉 Roadster + 插座:特斯拉 Roadster:電流 + 插座:特斯拉 Roadster:輸出 + 插座:NEMA 5-15R + 插座:NEMA 5-15R:電流 + 插座:NEMA 5-15R:輸出 + 插座:NEMA 5-20 + 插座:NEMA 5-20:電流 + 插座:NEMA 5-20:輸出 + 插座:NEMA 14-30 + 插座:NEMA 14-30:電流 + 插座:NEMA 14-30:輸出 + 插座:NEMA 14-50 + NEMA 14-50:電流 + NEMA 14-50:輸出 + 插座:Schuko + 插座:Schuko:電流 + 插座:Schuko:輸出 + 插座:BS 1363 + 插座:BS 1363:電流 + 插座:BS 1363:輸出 + 插座:AS/NZS 3112 + 插座:AS/NZS 3112:電流 + 插座:AS/NZS 3112:輸出 + + 汽車:是 + 汽車:否 + 單車:是 + 單車:否 + 摩托車:是 + 摩托車:否 + 貨車:是 + 貨車:否 + + 停車費用:是 + 停車費用:否 + 停車費用 + + 安培 + 充電站輸出 + + 地圖類型:拓撲 + 地圖類型:街道 + 地圖類型:大略 + 地圖類型:高處圖 + 地圖大小:地點 + 地圖大小:城市 + 地圖大小:區域 + + 充電站 + + diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index 070913c4dd..327f7cd520 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -1163,7 +1163,7 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 美國 加拿大 歐洲、亞洲、拉丁美洲和同類的 - 英國、印度和其他 + 英國、印度和同類的 駕駛區域 FPS 除錯資訊 @@ -2884,7 +2884,7 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 匯出您的標記到檔案,您可以在這裡指定: 另存為軌跡 移至歷程 - 重新啟動後群組將被移除 + 在下一次應用程式重新啟動後,群組才會被移除。 標記 座標格式 使用系統鍵盤 @@ -2926,7 +2926,7 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 在頂列上顯示 已經過標記 重新命名標記 - 數位量 + 小數位數 右方 左方 顯示數字鍵盤 @@ -2935,14 +2935,14 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 %1$d 個數字 到下一段 顯現在地圖上 - 選擇 OsmAnd 將哪個軌跡航點增加到標記 - 選擇您想增加標記的我的收藏群組。 + 選擇一個軌跡將航點增加到標記 (只有軌跡的航點才會列出) + 選擇您想增加標記的收藏類別。 軌跡航點 - 我的收藏群組 + 我的收藏類別 新增群組 - 您可以增加一個我的收藏群組或軌跡航點。 - 在地圖上標記! - 在地圖上點一下標記地點。 + 您可以從我的收藏匯入群組或軌跡航點。 + 建立地圖標記! + 長按或點一下地點,然後點擊標記標誌按鈕。 匯入群組 您可以匯入我的收藏群組或軌跡航點作為標記。 \@string/shared_string_history @@ -2954,4 +2954,5 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式 從您的位置顯示指引路線到現行的標記位置。 顯示一個或兩個箭頭指示方向到現行的標記。 更多 + 尋找軌跡跟航點 diff --git a/OsmAnd/res/values/colors.xml b/OsmAnd/res/values/colors.xml index c95e62c66f..3ce6338481 100644 --- a/OsmAnd/res/values/colors.xml +++ b/OsmAnd/res/values/colors.xml @@ -305,4 +305,8 @@ #9fadfc #ed5421 + #78cc5c + #fac403 + #ee5622 + \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index c2f368aabf..74bd2dc17a 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -9,33 +9,46 @@ 3. All your modified/created strings are in the top of the file (to make easier find what\'s translated). PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy --> + Create or modify OSM objects + Create or modify OSM POI, opening or commenting OSM Notes, and contributing recorded GPX files. + Deleted + Edited + Added + Marker %s activated. + Tap on marker on the map, move it to the first place in active markers, without opening context menu. + One tap active + Take notes! + Add audio, video or photo note to every point on the map, using widget or context menu. + Notes by date + By date + By type Looking for tracks with waypoints More Appearance on the map - Select track waypoints of which OsmAnd will add to markers - Select favorite group you want to add to markers. We show only tracks with waypoints + Select a track to add its waypoints to the markers. (Only tracks with waypoints are listed.) + Select a favorite category to add to the markers. Track waypoints - Favorites group - Add group - You can add a group of favorites or track waypoints. - Markers on map! - Mark places on the map by a tap. + Favorites category + Add a group + You can import groups from favorites or track waypoints. + Create map markers! + Long or short tap places, then tap the marker flag button. Import groups You can import favorite groups or track waypoints as markers. @string/shared_string_history Markers marked as passed will appear on this screen. Two One - Display guidelines from your position to the active marker locations. + Display guide lines from your position to the active marker locations. Display one or two arrows indicating the direction to the active markers. Choose how to display the distance to active markers. Choose how many direction indicators are displayed. - Digits quantity + Number of decimal digits Right Left Show number pad Paste - Automatically switch to the next field after entering %1$d digits after the decimal point. + Automatically switch to the next field after entering %1$d decimal digits. %1$d digits Go to next field Rename marker @@ -82,8 +95,8 @@ Export your markers to a file you can specify here: Save as track Move to history - Group will be removed after restart - Show guide line + Group will be removed after the next app restart. + Show guide lines Show arrows on the map Show passed Hide passed @@ -297,7 +310,7 @@ \u2022 Other improvements and bug fixes\n\n - \u2022 Completely reworked map markers with guidelines and route planning\n\n + \u2022 Completely reworked map markers with guide lines and route planning\n\n \u2022 Measure distance tool offering snap to road feature and saving points as track\n\n \u2022 OsmAnd Live: bug fixes, fresh data on the server every 30 minutes, updates implemented into the navigation\n\n @@ -2733,7 +2746,7 @@ Show favorites dialog Name preset Tapping the action button will add a map marker at the screen center location. - Tapping the action button will add a GPX waypiont at the screen center location. + Tapping the action button will add a GPX waypoint at the screen center location. Tapping the action button will add an audio note at the screen center location. Tapping the action button will add a video note at the screen center location. Tapping the action button will add a photo note at the screen center location. diff --git a/OsmAnd/src/net/osmand/plus/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/OsmandSettings.java index b79ae13a91..d72737873f 100644 --- a/OsmAnd/src/net/osmand/plus/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/OsmandSettings.java @@ -716,6 +716,8 @@ public class OsmandSettings { public final CommonPreference SHOW_LINES_TO_FIRST_MARKERS = new BooleanPreference("show_lines_to_first_markers", false).makeProfile(); public final CommonPreference SHOW_ARROWS_TO_FIRST_MARKERS = new BooleanPreference("show_arrows_to_first_markers", false).makeProfile(); + public final CommonPreference SELECT_MARKER_ON_SINGLE_TAP = new BooleanPreference("select_marker_on_single_tap", false).makeProfile(); + public final CommonPreference USE_MAPILLARY_FILTER = new BooleanPreference("use_mapillary_filters", false).makeGlobal(); public final CommonPreference MAPILLARY_FILTER_USER_KEY = new StringPreference("mapillary_filter_user_key", "").makeGlobal(); public final CommonPreference MAPILLARY_FILTER_USERNAME = new StringPreference("mapillary_filter_username", "").makeGlobal(); @@ -1333,6 +1335,8 @@ public class OsmandSettings { MAP_MARKERS_MODE.setModeDefaultValue(ApplicationMode.PEDESTRIAN, MapMarkersMode.TOOLBAR); } + public final CommonPreference NOTES_SORT_BY_MODE = new EnumIntPreference<>("notes_sort_by_mode", NotesSortByMode.BY_DATE, NotesSortByMode.values()); + public final OsmandPreference ANIMATE_MY_LOCATION = new BooleanPreference("animate_my_location", true).makeGlobal().cache(); public final OsmandPreference ROUTE_MAP_MARKERS_START_MY_LOC = new BooleanPreference("route_map_markers_start_my_loc", false).makeGlobal().cache(); @@ -3157,6 +3161,19 @@ public class OsmandSettings { } } + public enum NotesSortByMode { + BY_TYPE, + BY_DATE; + + public boolean isByType() { + return this == BY_TYPE; + } + + public boolean isByDate() { + return this == BY_DATE; + } + } + public enum MapMarkersOrderByMode { CUSTOM, DISTANCE_DESC, diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java index abebe76293..08c96f6330 100644 --- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java +++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java @@ -720,16 +720,6 @@ public class MapActivityActions implements DialogProvider { }).createItem()); */ - optionsMenuHelper.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.measurement_tool, mapActivity) - .setIcon(R.drawable.ic_action_ruler) - .setListener(new ContextMenuAdapter.ItemClickListener() { - @Override - public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int position, boolean isChecked) { - MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager()); - return true; - } - }).createItem()); - optionsMenuHelper.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.configure_map, mapActivity) .setIcon(R.drawable.ic_action_layers_dark) .setListener(new ContextMenuAdapter.ItemClickListener() { @@ -778,16 +768,12 @@ public class MapActivityActions implements DialogProvider { }).createItem()); } - optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.prefs_plugins, mapActivity) - .setIcon(R.drawable.ic_extension_dark) - .setListener(new ItemClickListener() { + optionsMenuHelper.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.measurement_tool, mapActivity) + .setIcon(R.drawable.ic_action_ruler) + .setListener(new ContextMenuAdapter.ItemClickListener() { @Override - public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { - app.logEvent(mapActivity, "drawer_plugins_open"); - Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization() - .getPluginsActivity()); - newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); - mapActivity.startActivity(newIntent); + public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int position, boolean isChecked) { + MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager()); return true; } }).createItem()); @@ -804,6 +790,20 @@ public class MapActivityActions implements DialogProvider { } }).createItem()); + optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.prefs_plugins, mapActivity) + .setIcon(R.drawable.ic_extension_dark) + .setListener(new ItemClickListener() { + @Override + public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { + app.logEvent(mapActivity, "drawer_plugins_open"); + Intent newIntent = new Intent(mapActivity, mapActivity.getMyApplication().getAppCustomization() + .getPluginsActivity()); + newIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + mapActivity.startActivity(newIntent); + return true; + } + }).createItem()); + optionsMenuHelper.addItem(new ItemBuilder().setTitleId(R.string.shared_string_settings, mapActivity) .setIcon(R.drawable.ic_action_settings) .setListener(new ContextMenuAdapter.ItemClickListener() { @@ -850,7 +850,7 @@ public class MapActivityActions implements DialogProvider { // Place divider between functionality and configuration related menu items int dividerItemIndex = -1; for (int i = 0; i < optionsMenuHelper.length(); i++) { - if (optionsMenuHelper.getItem(i).getTitleId() == R.string.configure_map) { + if (optionsMenuHelper.getItem(i).getTitleId() == R.string.layer_map_appearance) { dividerItemIndex = i; break; } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java index e8f0d287bb..046fc39059 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioNotesLayer.java @@ -182,6 +182,11 @@ public class AudioNotesLayer extends OsmandMapLayer implements return o instanceof Recording; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List objects) { if (tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java index 2ddb27908a..ae599d4142 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java @@ -59,6 +59,7 @@ import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.SavingTrackHelper; import net.osmand.plus.activities.TabActivity.TabItem; import net.osmand.plus.dashboard.tools.DashFragmentData; +import net.osmand.plus.download.DownloadActivity; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.mapcontextmenu.MapContextMenu; import net.osmand.plus.monitoring.OsmandMonitoringPlugin; @@ -457,6 +458,29 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { } + public String getNewSmallDescription(Context ctx) { + DateFormat dateFormat = android.text.format.DateFormat.getMediumDateFormat(ctx); + String date = dateFormat.format(file.lastModified()); + int size = (int) ((file.length() + 512) >> 10); + String sz = ""; + if (size > 0) { + if (size > 1 << 20) { + sz = DownloadActivity.formatGb.format(new Object[]{(float) size / (1 << 20)}); + } else { + if (file.length() > (100 * (1 << 10))) { + sz = DownloadActivity.formatMb.format(new Object[]{(float) file.length() / (1 << 20)}); + } else { + sz = DownloadActivity.formatKb.format(new Object[]{(float) file.length() / (1 << 10)}); + } + } + } + if (isPhoto()) { + return date + " • " + sz; + } + updateInternalDescription(); + return date + " • " + sz + " • " + getDuration(ctx); + } + public String getPlainDuration(boolean accessibilityEnabled) { updateInternalDescription(); if (duration > 0) { @@ -1616,11 +1640,9 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { @Override public void addMyPlacesTab(FavoritesActivity favoritesActivity, List mTabs, Intent intent) { - if (getAllRecordings().size() > 0) { - mTabs.add(favoritesActivity.getTabIndicator(NOTES_TAB, NotesFragment.class)); - if (intent != null && "AUDIO".equals(intent.getStringExtra("TAB"))) { - app.getSettings().FAVORITES_TAB.set(NOTES_TAB); - } + mTabs.add(favoritesActivity.getTabIndicator(NOTES_TAB, NotesFragment.class)); + if (intent != null && "AUDIO".equals(intent.getStringExtra("TAB"))) { + app.getSettings().FAVORITES_TAB.set(NOTES_TAB); } } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java new file mode 100644 index 0000000000..e0184bf6e0 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/audionotes/ItemMenuBottomSheetDialogFragment.java @@ -0,0 +1,137 @@ +package net.osmand.plus.audionotes; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import net.osmand.plus.R; +import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; +import net.osmand.plus.base.MenuBottomSheetDialogFragment; + +import java.text.DecimalFormat; +import java.text.NumberFormat; + + +public class ItemMenuBottomSheetDialogFragment extends MenuBottomSheetDialogFragment { + + public static final String TAG = "ItemMenuBottomSheetDialogFragment"; + + private ItemMenuFragmentListener listener; + private Recording recording; + + public void setListener(ItemMenuFragmentListener listener) { + this.listener = listener; + } + + public void setRecording(Recording recording) { + this.recording = recording; + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; + + final View mainView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), + R.layout.fragment_notes_item_menu_bottom_sheet_dialog, null); + + if (recording != null) { + NumberFormat f = new DecimalFormat("#0.00000"); + ((TextView) mainView.findViewById(R.id.title_text_view)) + .setText(recording.getName(getActivity(), true)); + ((TextView) mainView.findViewById(R.id.play_text_view)) + .setText(recording.isPhoto() ? R.string.watch : R.string.recording_context_menu_play); + ((TextView) mainView.findViewById(R.id.show_on_map_descr_text_view)) + .setText(f.format(recording.getLatitude()) + ", " + f.format(recording.getLongitude())); + ((ImageView) mainView.findViewById(R.id.play_icon)) + .setImageDrawable(getContentIcon(recording.isPhoto() ? R.drawable.ic_action_view : R.drawable.ic_play_dark)); + } + + ((ImageView) mainView.findViewById(R.id.share_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_gshare_dark)); + ((ImageView) mainView.findViewById(R.id.show_on_map_icon)).setImageDrawable(getContentIcon(R.drawable.ic_show_on_map)); + ((ImageView) mainView.findViewById(R.id.rename_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark)); + ((ImageView) mainView.findViewById(R.id.delete_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_delete_dark)); + + mainView.findViewById(R.id.play_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null && recording != null) { + listener.playOnClick(recording); + } + dismiss(); + } + }); + mainView.findViewById(R.id.share_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null && recording != null) { + listener.shareOnClick(recording); + } + dismiss(); + } + }); + mainView.findViewById(R.id.show_on_map_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null && recording != null) { + listener.showOnMapOnClick(recording); + } + dismiss(); + } + }); + mainView.findViewById(R.id.rename_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null && recording != null) { + listener.renameOnClick(recording); + } + dismiss(); + } + }); + mainView.findViewById(R.id.delete_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null && recording != null) { + listener.deleteOnClick(recording); + } + dismiss(); + } + }); + mainView.findViewById(R.id.close_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dismiss(); + } + }); + + setupHeightAndBackground(mainView, R.id.scroll_view); + + return mainView; + } + + @Override + public void onDestroyView() { + if (getDialog() != null) { + getDialog().setDismissMessage(null); + } + super.onDestroyView(); + } + + interface ItemMenuFragmentListener { + + void playOnClick(Recording recording); + + void shareOnClick(Recording recording); + + void showOnMapOnClick(Recording recording); + + void renameOnClick(Recording recording); + + void deleteOnClick(Recording recording); + } +} diff --git a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java index 1c49bd9c97..435478137d 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/NotesFragment.java @@ -3,28 +3,27 @@ package net.osmand.plus.audionotes; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.graphics.drawable.Drawable; +import android.media.MediaScannerConnection; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; -import android.support.v4.content.FileProvider; -import android.support.v4.view.MenuItemCompat; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; import android.support.v7.app.AlertDialog; import android.support.v7.view.ActionMode; -import android.support.v7.widget.PopupMenu; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.ViewStub; import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; -import android.widget.CheckBox; import android.widget.EditText; -import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.ListView; -import android.widget.TextView; import android.widget.Toast; import net.osmand.PlatformUtil; @@ -32,119 +31,292 @@ import net.osmand.data.PointDescription; import net.osmand.plus.GPXUtilities; import net.osmand.plus.GPXUtilities.GPXFile; import net.osmand.plus.GPXUtilities.WptPt; -import net.osmand.plus.IconsCache; -import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; +import net.osmand.plus.OsmandSettings.NotesSortByMode; import net.osmand.plus.R; import net.osmand.plus.activities.ActionBarProgressActivity; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.OsmandActionBarActivity; import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; +import net.osmand.plus.audionotes.ItemMenuBottomSheetDialogFragment.ItemMenuFragmentListener; +import net.osmand.plus.audionotes.SortByMenuBottomSheetDialogFragment.SortFragmentListener; +import net.osmand.plus.audionotes.adapters.NotesAdapter; +import net.osmand.plus.audionotes.adapters.NotesAdapter.NotesAdapterListener; import net.osmand.plus.base.OsmAndListFragment; -import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.myplaces.FavoritesActivity; -import net.osmand.util.Algorithms; import org.apache.commons.logging.Log; import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; +import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedList; import java.util.List; +import java.util.Set; public class NotesFragment extends OsmAndListFragment { + + public static final Recording SHARE_LOCATION_FILE = new Recording(new File(".")); + private static final Log LOG = PlatformUtil.getLog(NotesFragment.class); + private static final int MODE_DELETE = 100; + private static final int MODE_SHARE = 101; + + private AudioVideoNotesPlugin plugin; + private NotesAdapter listAdapter; + private Set selected = new HashSet<>(); - AudioVideoNotesPlugin plugin; - List items; - NotesAdapter listAdapter; private View footerView; + private View emptyView; - private boolean selectionMode = false; + private boolean selectionMode; - private final static int MODE_DELETE = 100; - private final static int MODE_SHARE = 101; - private ActionMode actionMode; - private ArrayList selected = new ArrayList<>(); - Recording shareLocationFile = new Recording(new File(".")); - @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - setHasOptionsMenu(true); - plugin = OsmandPlugin.getEnabledPlugin(AudioVideoNotesPlugin.class); - View view = getActivity().getLayoutInflater().inflate(R.layout.update_index, container, false); - view.findViewById(R.id.select_all).setVisibility(View.GONE); - ((TextView) view.findViewById(R.id.header)).setText(R.string.notes); - final CheckBox selectAll = (CheckBox) view.findViewById(R.id.select_all); - selectAll.setVisibility(View.GONE); - selectAll.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (selectAll.isChecked()) { - selectAll(); - } else { - deselectAll(); - } - updateSelectionTitle(actionMode); - } - }); - return view; - } - - @Override - public ArrayAdapter getAdapter() { - return listAdapter; - } - - private void selectAll() { - for (int i = 0; i < listAdapter.getCount(); i++) { - Recording point = listAdapter.getItem(i); - if (!selected.contains(point)) { - selected.add(point); - } + // Handle screen rotation: + FragmentManager fm = getChildFragmentManager(); + Fragment sortByMenu = fm.findFragmentByTag(SortByMenuBottomSheetDialogFragment.TAG); + if (sortByMenu != null) { + ((SortByMenuBottomSheetDialogFragment) sortByMenu).setListener(createSortFragmentListener()); + } + Fragment itemMenu = fm.findFragmentByTag(ItemMenuBottomSheetDialogFragment.TAG); + if (itemMenu != null) { + ((ItemMenuBottomSheetDialogFragment) itemMenu).setListener(createItemMenuFragmentListener()); } - listAdapter.notifyDataSetInvalidated(); - } - private void deselectAll(){ - selected.clear(); - listAdapter.notifyDataSetInvalidated(); + plugin = OsmandPlugin.getEnabledPlugin(AudioVideoNotesPlugin.class); + setHasOptionsMenu(true); + + View view = getActivity().getLayoutInflater().inflate(R.layout.update_index, container, false); + view.findViewById(R.id.header_layout).setVisibility(View.GONE); + ViewStub emptyStub = (ViewStub) view.findViewById(R.id.empty_view_stub); + emptyStub.setLayoutResource(R.layout.empty_state_av_notes); + emptyView = emptyStub.inflate(); + int icRes = getMyApplication().getSettings().isLightContent() + ? R.drawable.ic_empty_state_av_notes_day : R.drawable.ic_empty_state_av_notes_night; + ((ImageView) emptyView.findViewById(R.id.empty_state_image_view)).setImageResource(icRes); + emptyView.setBackgroundColor(getResources().getColor(getMyApplication().getSettings() + .isLightContent() ? R.color.ctx_menu_info_view_bg_light : R.color.ctx_menu_info_view_bg_dark)); + + return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - getListView().setBackgroundColor( - getResources().getColor( - getMyApplication().getSettings().isLightContent() ? R.color.ctx_menu_info_view_bg_light - : R.color.ctx_menu_info_view_bg_dark)); + getListView().setBackgroundColor(getResources().getColor(getMyApplication().getSettings() + .isLightContent() ? R.color.ctx_menu_info_view_bg_light : R.color.ctx_menu_info_view_bg_dark)); } @Override public void onResume() { super.onResume(); - items = new ArrayList<>(plugin.getAllRecordings()); - sortItemsDescending(); + List items = createItemsList(); ListView listView = getListView(); + listView.setDivider(null); + listView.setEmptyView(emptyView); if (items.size() > 0 && footerView == null) { - //listView.addHeaderView(getActivity().getLayoutInflater().inflate(R.layout.list_shadow_header, null, false)); footerView = getActivity().getLayoutInflater().inflate(R.layout.list_shadow_footer, null, false); listView.addFooterView(footerView); listView.setHeaderDividersEnabled(false); listView.setFooterDividersEnabled(false); } - listAdapter = new NotesAdapter(items); + listAdapter = new NotesAdapter(getMyApplication(), items); + listAdapter.setSelectionMode(selectionMode); + listAdapter.setSelected(selected); + listAdapter.setListener(createAdapterListener()); listView.setAdapter(listAdapter); } - private void sortItemsDescending() { - Collections.sort(items, new Comparator() { + @Override + public ArrayAdapter getAdapter() { + return listAdapter; + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + menu.clear(); + if (AndroidUiHelper.isOrientationPortrait(getActivity())) { + menu = ((ActionBarProgressActivity) getActivity()).getClearToolbar(true).getMenu(); + } else { + ((ActionBarProgressActivity) getActivity()).getClearToolbar(false); + } + ((ActionBarProgressActivity) getActivity()).updateListViewFooter(footerView); + + MenuItem item = menu.add(R.string.shared_string_sort).setIcon(R.drawable.ic_action_list_sort); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + showSortMenuFragment(); + return true; + } + }); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_gshare_dark); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + enterSelectionMode(MODE_SHARE); + return true; + } + }); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + + item = menu.add(R.string.shared_string_delete_all).setIcon(R.drawable.ic_action_delete_dark); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + enterSelectionMode(MODE_DELETE); + return true; + } + }); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + } + + public OsmandActionBarActivity getActionBarActivity() { + if (getActivity() instanceof OsmandActionBarActivity) { + return (OsmandActionBarActivity) getActivity(); + } + return null; + } + + private List createItemsList() { + List recs = new LinkedList<>(plugin.getAllRecordings()); + List res = new LinkedList<>(); + if (!recs.isEmpty()) { + NotesSortByMode sortByMode = getMyApplication().getSettings().NOTES_SORT_BY_MODE.get(); + if (sortByMode.isByDate()) { + res.add(NotesAdapter.TYPE_DATE_HEADER); + res.addAll(sortItemsByDateDescending(recs)); + } else if (sortByMode.isByType()) { + List audios = new LinkedList<>(); + List photos = new LinkedList<>(); + List videos = new LinkedList<>(); + for (Recording rec : recs) { + if (rec.isAudio()) { + audios.add(rec); + } else if (rec.isPhoto()) { + photos.add(rec); + } else { + videos.add(rec); + } + } + addToResIfNotEmpty(res, audios, NotesAdapter.TYPE_AUDIO_HEADER); + addToResIfNotEmpty(res, photos, NotesAdapter.TYPE_PHOTO_HEADER); + addToResIfNotEmpty(res, videos, NotesAdapter.TYPE_VIDEO_HEADER); + } + } + return res; + } + + private void addToResIfNotEmpty(List res, List recs, int header) { + if (!recs.isEmpty()) { + res.add(header); + res.addAll(recs); + } + } + + private NotesAdapterListener createAdapterListener() { + return new NotesAdapterListener() { + + @Override + public void onHeaderClick(int type, boolean checked) { + if (checked) { + selectAll(type); + } else { + deselectAll(type); + } + updateSelectionTitle(actionMode); + } + + @Override + public void onCheckBoxClick(Recording rec, boolean checked) { + if (selectionMode) { + if (checked) { + selected.add(rec); + } else { + selected.remove(rec); + } + updateSelectionMode(actionMode); + } + } + + @Override + public void onItemClick(Recording rec) { + showOnMap(rec); + } + + @Override + public void onOptionsClick(Recording rec) { + ItemMenuBottomSheetDialogFragment fragment = new ItemMenuBottomSheetDialogFragment(); + fragment.setUsedOnMap(false); + fragment.setListener(createItemMenuFragmentListener()); + fragment.setRecording(rec); + fragment.setRetainInstance(true); + fragment.show(getChildFragmentManager(), ItemMenuBottomSheetDialogFragment.TAG); + } + }; + } + + private void showSortMenuFragment() { + SortByMenuBottomSheetDialogFragment fragment = new SortByMenuBottomSheetDialogFragment(); + fragment.setUsedOnMap(false); + fragment.setListener(createSortFragmentListener()); + fragment.show(getChildFragmentManager(), SortByMenuBottomSheetDialogFragment.TAG); + } + + private List getRecordingsByType(int type) { + List allRecs = new LinkedList<>(plugin.getAllRecordings()); + List res = new LinkedList<>(); + for (Recording rec : allRecs) { + if (isAppropriate(rec, type)) { + res.add(rec); + } + } + return res; + } + + private boolean isAppropriate(Recording rec, int type) { + if (type == NotesAdapter.TYPE_AUDIO_HEADER) { + return rec.isAudio(); + } else if (type == NotesAdapter.TYPE_PHOTO_HEADER) { + return rec.isPhoto(); + } + return rec.isVideo(); + } + + private void selectAll(int type) { + if (type == NotesAdapter.TYPE_DATE_HEADER) { + for (int i = 0; i < listAdapter.getCount(); i++) { + Object item = listAdapter.getItem(i); + if (item instanceof Recording) { + selected.add((Recording) item); + } + } + } else { + selected.addAll(getRecordingsByType(type)); + } + listAdapter.notifyDataSetChanged(); + } + + private void deselectAll(int type) { + if (type == NotesAdapter.TYPE_DATE_HEADER) { + selected.clear(); + } else { + selected.removeAll(getRecordingsByType(type)); + } + listAdapter.notifyDataSetChanged(); + } + + private List sortItemsByDateDescending(List recs) { + Collections.sort(recs, new Comparator() { @Override public int compare(Recording first, Recording second) { long firstTime = first.getLastModified(); @@ -158,197 +330,51 @@ public class NotesFragment extends OsmAndListFragment { } } }); + return recs; } - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - menu.clear(); - if (AndroidUiHelper.isOrientationPortrait(getActivity())) { - menu = ((ActionBarProgressActivity) getActivity()).getClearToolbar(true).getMenu(); - } else { - ((ActionBarProgressActivity) getActivity()).getClearToolbar(false); - } - ((ActionBarProgressActivity) getActivity()).updateListViewFooter(footerView); - - MenuItem item = menu.add(R.string.shared_string_share). - setIcon(R.drawable.ic_action_export); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + private SortFragmentListener createSortFragmentListener() { + return new SortFragmentListener() { @Override - public boolean onMenuItemClick(MenuItem item) { - enterSelectionMode(MODE_SHARE); - return true; + public void onSortModeChanged() { + recreateAdapterData(); } - }); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - - item = menu.add(R.string.shared_string_delete_all). - setIcon(R.drawable.ic_action_delete_dark); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - enterSelectionMode(MODE_DELETE); - return true; - } - }); - - } - - private void enterSelectionMode(int type){ - enterDeleteMode(type); - } - - public OsmandActionBarActivity getActionBarActivity() { - if (getActivity() instanceof OsmandActionBarActivity) { - return (OsmandActionBarActivity) getActivity(); - } - return null; - } - - private void enableSelectionMode(boolean selectionMode) { - this.selectionMode = selectionMode; - View view = getView(); - if (view != null) { - view.findViewById(R.id.select_all).setVisibility(selectionMode ? View.VISIBLE : View.GONE); - ((FavoritesActivity) getActivity()).setToolbarVisibility(!selectionMode && - AndroidUiHelper.isOrientationPortrait(getActivity())); - ((FavoritesActivity) getActivity()).updateListViewFooter(footerView); - } - } - - private void updateSelectionTitle(ActionMode m){ - if(selected.size() > 0) { - m.setTitle(selected.size() + " " + getMyApplication().getString(R.string.shared_string_selected_lowercase)); - } else{ - m.setTitle(""); - } - } - - private void updateSelectionMode(ActionMode m) { - updateSelectionTitle(m); - refreshSelectAll(); - } - - private void refreshSelectAll() { - View view = getView(); - if (view == null) { - return; - } - CheckBox selectAll = (CheckBox) view.findViewById(R.id.select_all); - for (int i = 0; i < listAdapter.getCount(); i++) { - Recording point = listAdapter.getItem(i); - if (!selected.contains(point)) { - selectAll.setChecked(false); - return; - } - } - selectAll.setChecked(true); - } - - private void deleteItems(final ArrayList selected) { - AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); - b.setMessage(getString(R.string.local_recordings_delete_all_confirm, selected.size())); - b.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Iterator it = selected.iterator(); - while (it.hasNext()) { - Recording pnt = it.next(); - plugin.deleteRecording(pnt, true); - it.remove(); - listAdapter.delete(pnt); - } - listAdapter.notifyDataSetChanged(); - - } - }); - b.setNegativeButton(R.string.shared_string_cancel, null); - b.show(); - } - - private void shareItems(ArrayList selected) { - Intent intent = new Intent(); - intent.setAction(Intent.ACTION_SEND_MULTIPLE); - intent.setType("image/*"); /* This example is sharing jpeg images. */ - ArrayList files = new ArrayList(); - for(Recording path : selected) { - if(path == shareLocationFile) { - File fl = generateGPXForRecordings(selected); - if(fl != null) { - files.add(FileProvider.getUriForFile(getActivity(), getActivity().getPackageName() + ".fileprovider", fl)); - } - } else { - File src = path.getFile(); - File dst = new File(getActivity().getCacheDir(), "share/"+src.getName()); - try { - Algorithms.fileCopy(src, dst); - files.add(FileProvider.getUriForFile(getActivity(), getActivity().getPackageName() + ".fileprovider", dst)); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files); - intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - startActivity(Intent.createChooser(intent, getString(R.string.share_note))); - } - - private File generateGPXForRecordings(ArrayList selected) { -// File tmpFile = getMyApplication().getAppPath("cache/noteLocations.gpx"); - File tmpFile = new File(getActivity().getCacheDir(), "share/noteLocations.gpx"); - tmpFile.getParentFile().mkdirs(); - GPXFile file = new GPXFile(); - for(Recording r : selected) { - if(r != shareLocationFile) { - String desc = r.getDescriptionName(r.getFileName()); - if(desc == null) { - desc = r.getFileName(); - } - WptPt wpt = new WptPt(); - wpt.lat = r.getLatitude(); - wpt.lon = r.getLongitude(); - wpt.name = desc; - wpt.link = r.getFileName(); - wpt.time = r.getFile().lastModified(); - wpt.category = r.getSearchHistoryType(); - getMyApplication().getSelectedGpxHelper().addPoint(wpt, file); - } - } - GPXUtilities.writeGpxFile(tmpFile, file, getMyApplication()); - return tmpFile; + }; } - private void enterDeleteMode(final int type) { + private void recreateAdapterData() { + listAdapter.clear(); + listAdapter.addAll(createItemsList()); + listAdapter.notifyDataSetChanged(); + } + + private void enterSelectionMode(final int type) { actionMode = getActionBarActivity().startSupportActionMode(new ActionMode.Callback() { @Override public boolean onCreateActionMode(final ActionMode mode, Menu menu) { LOG.debug("onCreateActionMode"); - if(type == MODE_SHARE) { - listAdapter.insert(shareLocationFile, 0); - } - enableSelectionMode(true); - MenuItem item; - if(type == MODE_DELETE) { - item = menu.add(R.string.shared_string_delete_all).setIcon(R.drawable.ic_action_delete_dark); - } else { - item = menu.add(R.string.shared_string_share).setIcon(R.drawable.ic_action_export); + if (type == MODE_SHARE) { + listAdapter.insert(SHARE_LOCATION_FILE, 0); } + switchSelectionMode(true); + int titleRes = type == MODE_DELETE ? R.string.shared_string_delete_all : R.string.shared_string_share; + int iconRes = type == MODE_DELETE ? R.drawable.ic_action_delete_dark : R.drawable.ic_action_gshare_dark; + MenuItem item = menu.add(titleRes).setIcon(iconRes); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - if(type == MODE_DELETE) { + if (type == MODE_DELETE) { deleteItems(selected); - } else if(type == MODE_SHARE) { + } else if (type == MODE_SHARE) { shareItems(selected); } mode.finish(); return true; } }); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); selected.clear(); - listAdapter.notifyDataSetInvalidated(); updateSelectionMode(mode); return true; } @@ -368,196 +394,154 @@ public class NotesFragment extends OsmAndListFragment { @Override public void onDestroyActionMode(ActionMode mode) { LOG.debug("onDestroyActionMode"); - if(type == MODE_SHARE) { - listAdapter.remove(shareLocationFile); + if (type == MODE_SHARE) { + listAdapter.remove(SHARE_LOCATION_FILE); } - enableSelectionMode(false); + switchSelectionMode(false); listAdapter.notifyDataSetInvalidated(); } - }); } - public OsmandApplication getMyApplication() { - return (OsmandApplication) getActivity().getApplication(); + private void switchSelectionMode(boolean enable) { + selectionMode = enable; + listAdapter.setSelectionMode(enable); + ((FavoritesActivity) getActivity()).setToolbarVisibility(!enable && AndroidUiHelper.isOrientationPortrait(getActivity())); + ((FavoritesActivity) getActivity()).updateListViewFooter(footerView); } - class NotesAdapter extends ArrayAdapter { - - NotesAdapter(List recordingList) { - super(getActivity(), R.layout.note, recordingList); + private void updateSelectionTitle(ActionMode m) { + if (selected.size() > 0) { + m.setTitle(selected.size() + " " + getString(R.string.shared_string_selected_lowercase)); + } else { + m.setTitle(""); } + } - public void delete(Recording pnt) { - remove(pnt); - - } + private void updateSelectionMode(ActionMode m) { + updateSelectionTitle(m); + listAdapter.notifyDataSetChanged(); + } - @Override - public View getView(final int position, View convertView, ViewGroup parent) { - LayoutInflater inflater = getActivity().getLayoutInflater(); - View row = convertView; - if (row == null) { - row = inflater.inflate(R.layout.note, parent, false); - } - - final AudioVideoNotesPlugin.Recording recording = getItem(position); - if (recording == shareLocationFile) { - ((TextView) row.findViewById(R.id.name)).setText(R.string.av_locations); - ((TextView) row.findViewById(R.id.description)).setText(R.string.av_locations_descr); - } else { - DashAudioVideoNotesFragment.getNoteView(recording, row, getMyApplication()); - } -// ((ImageView) row.findViewById(R.id.play)).setImageDrawable(getMyApplication().getIconsCache() -// .getIcon(R.drawable.ic_play_dark)); - row.findViewById(R.id.play).setVisibility(View.GONE); - - - final CheckBox ch = (CheckBox) row.findViewById(R.id.check_local_index); - ImageButton options = (ImageButton) row.findViewById(R.id.options); - options.setImageDrawable(getMyApplication().getIconsCache().getThemedIcon(R.drawable.ic_overflow_menu_white)); - if(selectionMode) { - options.setVisibility(View.GONE); - ch.setVisibility(View.VISIBLE); - ch.setChecked(selected.contains(recording)); - row.findViewById(R.id.icon).setVisibility(View.GONE); - ch.setOnClickListener(new View.OnClickListener() { + private void deleteItems(final Set selected) { + new AlertDialog.Builder(getActivity()) + .setMessage(getString(R.string.local_recordings_delete_all_confirm, selected.size())) + .setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() { @Override - public void onClick(View v) { - onItemSelect(ch, recording); + public void onClick(DialogInterface dialog, int which) { + Iterator it = selected.iterator(); + while (it.hasNext()) { + Recording rec = it.next(); + plugin.deleteRecording(rec, true); + it.remove(); + } + recreateAdapterData(); + } + }) + .setNegativeButton(R.string.shared_string_cancel, null) + .show(); + } + + private void shareItems(Set selected) { + ArrayList files = new ArrayList<>(); + for (Recording rec : selected) { + File file = rec == SHARE_LOCATION_FILE ? generateGPXForRecordings(selected) : rec.getFile(); + if (file != null) { + files.add(Uri.parse(file.getAbsolutePath())); + } + } + Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); + intent.setType("*/*"); + intent.putExtra(Intent.EXTRA_STREAM, files); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + if (Build.VERSION.SDK_INT > 18) { + intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); + } + startActivity(Intent.createChooser(intent, getString(R.string.share_note))); + } + + private File generateGPXForRecordings(Set selected) { + File tmpFile = new File(getActivity().getCacheDir(), "share/noteLocations.gpx"); + tmpFile.getParentFile().mkdirs(); + GPXFile file = new GPXFile(); + for (Recording r : selected) { + if (r != SHARE_LOCATION_FILE) { + String desc = r.getDescriptionName(r.getFileName()); + if (desc == null) { + desc = r.getFileName(); + } + WptPt wpt = new WptPt(); + wpt.lat = r.getLatitude(); + wpt.lon = r.getLongitude(); + wpt.name = desc; + wpt.link = r.getFileName(); + wpt.time = r.getFile().lastModified(); + wpt.category = r.getSearchHistoryType(); + getMyApplication().getSelectedGpxHelper().addPoint(wpt, file); + } + } + GPXUtilities.writeGpxFile(tmpFile, file, getMyApplication()); + return tmpFile; + } + + private ItemMenuFragmentListener createItemMenuFragmentListener() { + return new ItemMenuFragmentListener() { + @Override + public void playOnClick(Recording recording) { + plugin.playRecording(getActivity(), recording); + } + + @Override + public void shareOnClick(Recording recording) { + shareNote(recording); + } + + @Override + public void showOnMapOnClick(Recording recording) { + showOnMap(recording); + } + + @Override + public void renameOnClick(Recording recording) { + editNote(recording); + } + + @Override + public void deleteOnClick(final Recording recording) { + deleteNote(recording); + } + }; + } + + private void shareNote(final Recording recording) { + if (!recording.getFile().exists()) { + return; + } + MediaScannerConnection.scanFile(getActivity(), new String[]{recording.getFile().getAbsolutePath()}, + null, new MediaScannerConnection.OnScanCompletedListener() { + public void onScanCompleted(String path, Uri uri) { + Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); + if (recording.isPhoto()) { + shareIntent.setType("image/*"); + } else if (recording.isAudio()) { + shareIntent.setType("audio/*"); + } else if (recording.isVideo()) { + shareIntent.setType("video/*"); + } + shareIntent.putExtra(Intent.EXTRA_STREAM, uri); + shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); + startActivity(Intent.createChooser(shareIntent, getString(R.string.share_note))); } }); - } else { - row.findViewById(R.id.icon).setVisibility(View.VISIBLE); - options.setVisibility(View.VISIBLE); - ch.setVisibility(View.GONE); - } - - options.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - openPopUpMenu(v, recording); - } - }); - row.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (selectionMode) { - ch.setChecked(!ch.isChecked()); - onItemSelect(ch, recording); - } else { - showOnMap(recording); - } - } - }); - return row; - } - - public void onItemSelect(CheckBox ch, Recording child) { - if (ch.isChecked()) { - selected.add(child); - } else { - selected.remove(child); - } - updateSelectionMode(actionMode); - } } private void showOnMap(Recording recording) { getMyApplication().getSettings().setMapLocationToShow(recording.getLatitude(), recording.getLongitude(), 15, - new PointDescription(recording.getSearchHistoryType(), recording.getName(getActivity(), true)), true, - recording); //$NON-NLS-1$ + new PointDescription(recording.getSearchHistoryType(), recording.getName(getActivity(), true)), + true, recording); MapActivity.launchMapActivityMoveToTop(getActivity()); } - private void openPopUpMenu(View v, final AudioVideoNotesPlugin.Recording recording) { - IconsCache iconsCache = getMyApplication().getIconsCache(); - final PopupMenu optionsMenu = new PopupMenu(getActivity(), v); - DirectionsDialogs.setupPopUpMenuIcon(optionsMenu); - MenuItem item; - boolean isPhoto = recording.isPhoto(); - Drawable playIcon; - if (isPhoto) { - playIcon = getMyApplication().getIconsCache().getThemedIcon(R.drawable.ic_action_view); - } else { - playIcon = getMyApplication().getIconsCache().getThemedIcon(R.drawable.ic_play_dark); - } - item = optionsMenu.getMenu().add(isPhoto ? R.string.watch : R.string.recording_context_menu_play) - .setIcon(playIcon); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - plugin.playRecording(getActivity(), recording); - return true; - } - }); - - item = optionsMenu.getMenu().add(R.string.shared_string_show_on_map).setIcon( - iconsCache.getThemedIcon(R.drawable.ic_show_on_map)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - showOnMap(recording); - return true; - } - }); - - item = optionsMenu.getMenu().add(R.string.shared_string_share) - .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_gshare_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - Intent sharingIntent = new Intent(Intent.ACTION_SEND); - if (recording.isPhoto()) { - Uri screenshotUri = Uri.parse(recording.getFile().getAbsolutePath()); - sharingIntent.setType("image/*"); - sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); - } else if (recording.isAudio()) { - Uri audioUri = Uri.parse(recording.getFile().getAbsolutePath()); - sharingIntent.setType("audio/*"); - sharingIntent.putExtra(Intent.EXTRA_STREAM, audioUri); - } else if (recording.isVideo()) { - Uri videoUri = Uri.parse(recording.getFile().getAbsolutePath()); - sharingIntent.setType("video/*"); - sharingIntent.putExtra(Intent.EXTRA_STREAM, videoUri); - } - startActivity(Intent.createChooser(sharingIntent, getString(R.string.share_note))); - return true; - } - }); - - item = optionsMenu.getMenu().add(R.string.shared_string_rename) - .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_edit_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - editNote(recording); - return true; - } - }); - - item = optionsMenu.getMenu().add(R.string.recording_context_menu_delete) - .setIcon(iconsCache.getThemedIcon(R.drawable.ic_action_delete_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setMessage(R.string.recording_delete_confirm); - builder.setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - plugin.deleteRecording(recording, true); - listAdapter.remove(recording); - } - }); - builder.setNegativeButton(R.string.shared_string_cancel, null); - builder.show(); - return true; - } - }); - optionsMenu.show(); - } - private void editNote(final Recording recording) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.shared_string_rename); @@ -581,4 +565,17 @@ public class NotesFragment extends OsmAndListFragment { editText.requestFocus(); } + private void deleteNote(final Recording recording) { + new AlertDialog.Builder(getActivity()) + .setMessage(R.string.recording_delete_confirm) + .setPositiveButton(R.string.shared_string_yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + plugin.deleteRecording(recording, true); + listAdapter.remove(recording); + } + }) + .setNegativeButton(R.string.shared_string_cancel, null) + .show(); + } } diff --git a/OsmAnd/src/net/osmand/plus/audionotes/SortByMenuBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/audionotes/SortByMenuBottomSheetDialogFragment.java new file mode 100644 index 0000000000..96e7d6b185 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/audionotes/SortByMenuBottomSheetDialogFragment.java @@ -0,0 +1,76 @@ +package net.osmand.plus.audionotes; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageView; + +import net.osmand.plus.OsmandSettings; +import net.osmand.plus.OsmandSettings.NotesSortByMode; +import net.osmand.plus.R; +import net.osmand.plus.base.MenuBottomSheetDialogFragment; + +public class SortByMenuBottomSheetDialogFragment extends MenuBottomSheetDialogFragment { + + public static final String TAG = "SortByMenuBottomSheetDialogFragment"; + + private SortFragmentListener listener; + + public void setListener(SortFragmentListener listener) { + this.listener = listener; + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; + + final View mainView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), + R.layout.fragment_notes_sort_bottom_sheet_dialog, null); + + ((ImageView) mainView.findViewById(R.id.by_type_icon)).setImageDrawable(getContentIcon(R.drawable.ic_groped_by_type)); + ((ImageView) mainView.findViewById(R.id.by_date_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_sort_by_date)); + + mainView.findViewById(R.id.by_type_row).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + selectSortByMode(NotesSortByMode.BY_TYPE); + } + }); + mainView.findViewById(R.id.by_date_row).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + selectSortByMode(NotesSortByMode.BY_DATE); + } + }); + mainView.findViewById(R.id.close_row).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View view) { + dismiss(); + } + }); + + setupHeightAndBackground(mainView, R.id.scroll_view); + + return mainView; + } + + private void selectSortByMode(NotesSortByMode mode) { + final OsmandSettings.CommonPreference sortByMode = getMyApplication().getSettings().NOTES_SORT_BY_MODE; + if (sortByMode.get() != mode) { + sortByMode.set(mode); + if (listener != null) { + listener.onSortModeChanged(); + } + } + dismiss(); + } + + interface SortFragmentListener { + void onSortModeChanged(); + } +} diff --git a/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java b/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java new file mode 100644 index 0000000000..4ab488d049 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/audionotes/adapters/NotesAdapter.java @@ -0,0 +1,260 @@ +package net.osmand.plus.audionotes.adapters; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; + +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.audionotes.AudioVideoNotesPlugin.Recording; +import net.osmand.plus.audionotes.NotesFragment; + +import java.util.List; +import java.util.Set; + +public class NotesAdapter extends ArrayAdapter { + + public static final int TYPE_DATE_HEADER = 0; + public static final int TYPE_AUDIO_HEADER = 1; + public static final int TYPE_PHOTO_HEADER = 2; + public static final int TYPE_VIDEO_HEADER = 3; + private static final int TYPE_ITEM = 4; + private static final int TYPE_COUNT = 5; + + private OsmandApplication app; + private NotesAdapterListener listener; + + private boolean selectionMode; + private Set selected; + + public void setListener(NotesAdapterListener listener) { + this.listener = listener; + } + + public void setSelectionMode(boolean selectionMode) { + this.selectionMode = selectionMode; + } + + public void setSelected(Set selected) { + this.selected = selected; + } + + public NotesAdapter(OsmandApplication app, List items) { + super(app, R.layout.note, items); + this.app = app; + } + + @NonNull + @Override + public View getView(final int position, View row, @NonNull ViewGroup parent) { + final int type = getItemViewType(position); + boolean header = type == TYPE_DATE_HEADER + || type == TYPE_AUDIO_HEADER + || type == TYPE_PHOTO_HEADER + || type == TYPE_VIDEO_HEADER; + + if (row == null) { + LayoutInflater inflater = (LayoutInflater) app.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + if (header) { + row = inflater.inflate(R.layout.list_item_header, parent, false); + HeaderViewHolder hHolder = new HeaderViewHolder(row); + row.setTag(hHolder); + } else { + row = inflater.inflate(R.layout.note_list_item, parent, false); + ItemViewHolder iHolder = new ItemViewHolder(row); + row.setTag(iHolder); + } + } + + if (header) { + final HeaderViewHolder holder = (HeaderViewHolder) row.getTag(); + holder.checkBox.setVisibility(selectionMode ? View.VISIBLE : View.GONE); + holder.headerRow.setEnabled(selectionMode); + if (selectionMode) { + holder.checkBox.setChecked(isSelectAllChecked(type)); + holder.checkBox.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onHeaderClick(type, holder.checkBox.isChecked()); + } + } + }); + holder.headerRow.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + holder.checkBox.performClick(); + } + }); + } else { + holder.view.setOnClickListener(null); + } + int titleId; + if (type == TYPE_DATE_HEADER) { + titleId = R.string.notes_by_date; + } else if (type == TYPE_AUDIO_HEADER) { + titleId = R.string.shared_string_audio; + } else if (type == TYPE_PHOTO_HEADER) { + titleId = R.string.shared_string_photo; + } else { + titleId = R.string.shared_string_video; + } + holder.title.setText(titleId); + } else { + final Object item = getItem(position); + if (item instanceof Recording) { + final Recording recording = (Recording) item; + final ItemViewHolder holder = (ItemViewHolder) row.getTag(); + + if (recording == NotesFragment.SHARE_LOCATION_FILE) { + holder.title.setText(R.string.av_locations); + holder.description.setText(R.string.av_locations_descr); + } else { + holder.title.setText(recording.getName(app, true)); + holder.description.setText(recording.getNewSmallDescription(app)); + int iconRes = recording.isAudio() ? R.drawable.ic_type_audio + : (recording.isVideo() ? R.drawable.ic_type_video : R.drawable.ic_type_img); + int colorRes = app.getSettings().isLightContent() ? R.color.icon_color : R.color.ctx_menu_info_text_dark; + holder.icon.setImageDrawable(app.getIconsCache().getIcon(iconRes, colorRes)); + } + + holder.bottomDivider.setVisibility(hideBottomDivider(position) ? View.GONE : View.VISIBLE); + holder.icon.setVisibility(selectionMode ? View.GONE : View.VISIBLE); + holder.checkBox.setVisibility(selectionMode ? View.VISIBLE : View.GONE); + holder.options.setVisibility(selectionMode ? View.GONE : View.VISIBLE); + if (selectionMode) { + holder.checkBox.setChecked(selected.contains(recording)); + holder.checkBox.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onCheckBoxClick(recording, holder.checkBox.isChecked()); + } + } + }); + } else { + holder.options.setImageDrawable(app.getIconsCache().getThemedIcon(R.drawable.ic_overflow_menu_white)); + holder.options.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onOptionsClick(recording); + } + } + }); + } + + holder.view.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (selectionMode) { + holder.checkBox.performClick(); + } else { + if (listener != null) { + listener.onItemClick(recording); + } + } + } + }); + } + } + + return row; + } + + @Override + public int getItemViewType(int position) { + Object item = getItem(position); + if (item instanceof Recording) { + return TYPE_ITEM; + } + return (int) item; + } + + @Override + public int getViewTypeCount() { + return TYPE_COUNT; + } + + private boolean hideBottomDivider(int pos) { + return pos == getCount() - 1 || !(getItem(pos + 1) instanceof Recording); + } + + private boolean isSelectAllChecked(int type) { + for (int i = 0; i < getCount(); i++) { + Object item = getItem(i); + if (item instanceof Recording) { + if (type != TYPE_DATE_HEADER && !isAppropriate((Recording) item, type)) { + continue; + } + if (!selected.contains(item)) { + return false; + } + } + } + return true; + } + + private boolean isAppropriate(Recording rec, int type) { + if (type == NotesAdapter.TYPE_AUDIO_HEADER) { + return rec.isAudio(); + } else if (type == NotesAdapter.TYPE_PHOTO_HEADER) { + return rec.isPhoto(); + } + return rec.isVideo(); + } + + private class HeaderViewHolder { + + final View view; + final View headerRow; + final CheckBox checkBox; + final TextView title; + + HeaderViewHolder(View view) { + this.view = view; + headerRow = view.findViewById(R.id.header_row); + checkBox = (CheckBox) view.findViewById(R.id.check_box); + title = (TextView) view.findViewById(R.id.title_text_view); + } + } + + private class ItemViewHolder { + + final View view; + final ImageView icon; + final CheckBox checkBox; + final TextView title; + final TextView description; + final ImageButton options; + final View bottomDivider; + + ItemViewHolder(View view) { + this.view = view; + icon = (ImageView) view.findViewById(R.id.icon); + checkBox = (CheckBox) view.findViewById(R.id.check_box); + title = (TextView) view.findViewById(R.id.title); + description = (TextView) view.findViewById(R.id.description); + options = (ImageButton) view.findViewById(R.id.options); + bottomDivider = view.findViewById(R.id.bottom_divider); + } + } + + public interface NotesAdapterListener { + + void onHeaderClick(int type, boolean checked); + + void onCheckBoxClick(Recording rec, boolean checked); + + void onItemClick(Recording rec); + + void onOptionsClick(Recording rec); + } +} diff --git a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java index 9784a70658..13c5472ca6 100644 --- a/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java +++ b/OsmAnd/src/net/osmand/plus/dashboard/DashboardOnMap.java @@ -803,8 +803,6 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis } removeMapillaryFiltersFragment(); - mapActivity.updateStatusBarColor(); - if (visible) { mapActivity.dismissCardDialog(); mapActivity.getContextMenu().hideMenues(); @@ -899,6 +897,7 @@ public class DashboardOnMap implements ObservableScrollViewCallbacks, DynamicLis settings.MAPILLARY_FIRST_DIALOG_SHOWN.set(true); } } + mapActivity.updateStatusBarColor(); } public void updateDashboard() { diff --git a/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java b/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java index 487e2a22ac..f346b95d0c 100644 --- a/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java +++ b/OsmAnd/src/net/osmand/plus/distancecalculator/DistanceCalculatorPlugin.java @@ -589,6 +589,11 @@ public class DistanceCalculatorPlugin extends OsmandPlugin { return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { getMPointsFromPoint(tileBox, point, o); diff --git a/OsmAnd/src/net/osmand/plus/mapillary/MapillaryVectorLayer.java b/OsmAnd/src/net/osmand/plus/mapillary/MapillaryVectorLayer.java index 4f802340b3..69ff11e771 100644 --- a/OsmAnd/src/net/osmand/plus/mapillary/MapillaryVectorLayer.java +++ b/OsmAnd/src/net/osmand/plus/mapillary/MapillaryVectorLayer.java @@ -333,6 +333,11 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont return o instanceof MapillaryImage; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + private void getImagesFromPoint(RotatedTileBox tb, PointF point, List images) { Map points = this.visiblePoints; if (points != null) { diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/DirectionIndicationDialogFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/DirectionIndicationDialogFragment.java index c46d56625b..1b24b4a1dd 100644 --- a/OsmAnd/src/net/osmand/plus/mapmarkers/DirectionIndicationDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/mapmarkers/DirectionIndicationDialogFragment.java @@ -182,6 +182,15 @@ public class DirectionIndicationDialogFragment extends BaseOsmAndDialogFragment } }); + final CompoundButton oneTapActiveToggle = (CompoundButton) mainView.findViewById(R.id.one_tap_active_switch); + oneTapActiveToggle.setChecked(settings.SELECT_MARKER_ON_SINGLE_TAP.get()); + mainView.findViewById(R.id.one_tap_active_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + updateChecked(settings.SELECT_MARKER_ON_SINGLE_TAP, oneTapActiveToggle); + } + }); + return mainView; } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolLayer.java b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolLayer.java index b56959ea9d..1cea9008ba 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolLayer.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/MeasurementToolLayer.java @@ -409,6 +409,11 @@ public class MeasurementToolLayer extends OsmandMapLayer implements ContextMenuL return !isInMeasurementMode(); } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + interface OnSingleTapListener { void onAddPoint(); diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 7452609509..5ed95ab18b 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -512,6 +512,11 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider return o instanceof OpenStreetNote; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res) { if (tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditOptionsBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditOptionsBottomSheetDialogFragment.java new file mode 100644 index 0000000000..ef45713fb6 --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditOptionsBottomSheetDialogFragment.java @@ -0,0 +1,129 @@ +package net.osmand.plus.osmedit; + +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.ContextThemeWrapper; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import net.osmand.plus.R; +import net.osmand.plus.base.MenuBottomSheetDialogFragment; +import net.osmand.plus.widgets.TextViewEx; + +public class OsmEditOptionsBottomSheetDialogFragment extends MenuBottomSheetDialogFragment { + + public final static String TAG = "OsmEditOptionsBottomSheetDialogFragment"; + + public static final String OSM_POINT = "osm_point"; + + private OsmEditOptionsFragmentListener listener; + + public void setListener(OsmEditOptionsFragmentListener listener) { + this.listener = listener; + } + + @Nullable + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + final int themeRes = nightMode ? R.style.OsmandDarkTheme : R.style.OsmandLightTheme; + final View mainView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), R.layout.fragment_osm_edit_options_bottom_sheet_dialog, container); + + Bundle args = getArguments(); + if (args != null) { + final OsmPoint osmPoint = (OsmPoint) args.getSerializable(OSM_POINT); + + ((TextViewEx) mainView.findViewById(R.id.osm_edit_name)).setText(OsmEditingPlugin.getName(osmPoint) + ":"); + + ((ImageView) mainView.findViewById(R.id.upload_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_export)); + mainView.findViewById(R.id.upload_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (listener != null) { + listener.onUploadClick(osmPoint); + } + dismiss(); + } + }); + + ((ImageView) mainView.findViewById(R.id.show_on_map_icon)).setImageDrawable(getContentIcon(R.drawable.ic_show_on_map)); + mainView.findViewById(R.id.show_on_map_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (listener != null) { + listener.onShowOnMapClick(osmPoint); + } + dismiss(); + } + }); + + if (osmPoint instanceof OpenstreetmapPoint && osmPoint.getAction() != OsmPoint.Action.DELETE) { + mainView.findViewById(R.id.modify_osm_change_row).setVisibility(View.VISIBLE); + ((ImageView) mainView.findViewById(R.id.modify_osm_change_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark)); + mainView.findViewById(R.id.modify_osm_change_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (listener != null) { + listener.onModifyOsmChangeClick(osmPoint); + } + dismiss(); + } + }); + } + + if (osmPoint instanceof OsmNotesPoint) { + mainView.findViewById(R.id.modify_osm_note_row).setVisibility(View.VISIBLE); + ((ImageView) mainView.findViewById(R.id.modify_osm_note_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark)); + mainView.findViewById(R.id.modify_osm_note_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (listener != null) { + listener.onModifyOsmNoteClick(osmPoint); + } + dismiss(); + } + }); + } + + ((ImageView) mainView.findViewById(R.id.delete_icon)).setImageDrawable(getContentIcon(R.drawable.ic_action_delete_dark)); + mainView.findViewById(R.id.delete_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (listener != null) { + listener.onDeleteClick(osmPoint); + } + dismiss(); + } + }); + } + + if (nightMode) { + ((TextViewEx) mainView.findViewById(R.id.osm_edit_name)).setTextColor(getResources().getColor(R.color.ctx_menu_info_text_dark)); + } + + mainView.findViewById(R.id.cancel_row).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dismiss(); + } + }); + + setupHeightAndBackground(mainView, R.id.osm_edit_options_scroll_view); + + return mainView; + } + + public interface OsmEditOptionsFragmentListener { + + void onUploadClick(OsmPoint osmPoint); + + void onShowOnMapClick(OsmPoint osmPoint); + + void onModifyOsmChangeClick(OsmPoint osmPoint); + + void onModifyOsmNoteClick(OsmPoint osmPoint); + + void onDeleteClick(OsmPoint osmPoint); + } +} diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java index bcaa26d95f..f2ac87d344 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java @@ -258,11 +258,9 @@ public class OsmEditingPlugin extends OsmandPlugin { @Override public void addMyPlacesTab(FavoritesActivity favoritesActivity, List mTabs, Intent intent) { - if (getDBPOI().getOpenstreetmapPoints().size() > 0 || getDBBug().getOsmbugsPoints().size() > 0) { - mTabs.add(favoritesActivity.getTabIndicator(R.string.osm_edits, OsmEditsFragment.class)); - if (intent != null && "OSM".equals(intent.getStringExtra("TAB"))) { - app.getSettings().FAVORITES_TAB.set(R.string.osm_edits); - } + mTabs.add(favoritesActivity.getTabIndicator(R.string.osm_edits, OsmEditsFragment.class)); + if (intent != null && "OSM".equals(intent.getStringExtra("TAB"))) { + app.getSettings().FAVORITES_TAB.set(R.string.osm_edits); } } @@ -423,21 +421,32 @@ public class OsmEditingPlugin extends OsmandPlugin { public static String getEditName(OsmPoint point) { String prefix = getPrefix(point); + String name = getName(point); if (point.getGroup() == OsmPoint.Group.POI) { String subtype = ""; if (!Algorithms.isEmpty(((OpenstreetmapPoint) point).getSubtype())) { subtype = " (" + ((OpenstreetmapPoint) point).getSubtype() + ") "; } - return prefix + subtype + ((OpenstreetmapPoint) point).getName(); + return prefix + subtype + name; } else if (point.getGroup() == OsmPoint.Group.BUG) { - return prefix + ((OsmNotesPoint) point).getText(); + return prefix + name; } else { return prefix; } } - private static String getPrefix(OsmPoint osmPoint) { - return (osmPoint.getGroup() == OsmPoint.Group.POI ? "POI " : "Bug ") + " id: " + osmPoint.getId() + " "; + public static String getName(OsmPoint point) { + if (point.getGroup() == OsmPoint.Group.POI) { + return ((OpenstreetmapPoint) point).getName(); + } else if (point.getGroup() == OsmPoint.Group.BUG) { + return ((OsmNotesPoint) point).getText(); + } else { + return ""; + } + } + + public static String getPrefix(OsmPoint osmPoint) { + return (osmPoint.getGroup() == OsmPoint.Group.POI ? "POI" : "Bug") + " id: " + osmPoint.getId() + " "; } @Override diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java new file mode 100644 index 0000000000..ece0f7147f --- /dev/null +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsAdapter.java @@ -0,0 +1,228 @@ +package net.osmand.plus.osmedit; + +import android.graphics.drawable.Drawable; +import android.support.annotation.NonNull; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.CheckBox; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; + +import net.osmand.osm.PoiType; +import net.osmand.plus.OsmandApplication; +import net.osmand.plus.R; +import net.osmand.plus.render.RenderingIcons; +import net.osmand.util.Algorithms; + +import java.util.List; +import java.util.Map; + +public class OsmEditsAdapter extends ArrayAdapter { + + private OsmandApplication app; + + private boolean selectionMode; + private List selectedOsmEdits; + + private OsmEditsAdapterListener listener; + + public OsmEditsAdapter(OsmandApplication app, @NonNull List points) { + super(app, 0, points); + this.app = app; + } + + public boolean isSelectionMode() { + return selectionMode; + } + + public void setSelectionMode(boolean selectionMode) { + this.selectionMode = selectionMode; + } + + public void setSelectedOsmEdits(List selectedOsmEdits) { + this.selectedOsmEdits = selectedOsmEdits; + } + + public void setAdapterListener(OsmEditsAdapterListener listener) { + this.listener = listener; + } + + @NonNull + @Override + public View getView(int position, View convertView, @NonNull ViewGroup parent) { + View view = convertView; + if (view == null) { + view = LayoutInflater.from(getContext()).inflate(R.layout.note_list_item, parent, false); + OsmEditViewHolder holder = new OsmEditViewHolder(view); + view.setTag(holder); + } + final OsmPoint osmEdit = getItem(position); + + if (osmEdit != null) { + final OsmEditViewHolder holder = (OsmEditViewHolder) view.getTag(); + + holder.titleTextView.setText(OsmEditingPlugin.getName(osmEdit)); + holder.descriptionTextView.setText(getDescription(osmEdit)); + Drawable icon = getIcon(osmEdit); + if (icon != null) { + holder.icon.setImageDrawable(icon); + } + if (selectionMode) { + holder.optionsImageButton.setVisibility(View.GONE); + holder.selectCheckBox.setVisibility(View.VISIBLE); + holder.selectCheckBox.setChecked(selectedOsmEdits.contains(osmEdit)); + holder.icon.setVisibility(View.GONE); + holder.selectCheckBox.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onItemSelect(osmEdit, holder.selectCheckBox.isChecked()); + } + } + }); + } else { + holder.icon.setVisibility(View.VISIBLE); + holder.optionsImageButton.setVisibility(View.VISIBLE); + holder.selectCheckBox.setVisibility(View.GONE); + } + + holder.optionsImageButton.setImageDrawable(app.getIconsCache().getThemedIcon(R.drawable.ic_overflow_menu_white)); + holder.optionsImageButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (listener != null) { + listener.onOptionsClick(osmEdit); + } + } + }); + holder.mainView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (selectionMode) { + holder.selectCheckBox.performClick(); + } else { + if (listener != null) { + listener.onItemShowMap(osmEdit); + } + } + + } + }); + boolean showDivider = getCount() > 1 && position != getCount() - 1; + holder.bottomDivider.setVisibility(showDivider ? View.VISIBLE : View.GONE); + } + + return view; + } + + private Drawable getIcon(OsmPoint point) { + if (point.getGroup() == OsmPoint.Group.POI) { + OpenstreetmapPoint osmPoint = (OpenstreetmapPoint) point; + int iconResId = 0; + String poiTranslation = osmPoint.getEntity().getTag(EditPoiData.POI_TYPE_TAG); + if (poiTranslation != null) { + Map poiTypeMap = app.getPoiTypes().getAllTranslatedNames(false); + PoiType poiType = poiTypeMap.get(poiTranslation.toLowerCase()); + if (poiType != null) { + String id = null; + if (RenderingIcons.containsBigIcon(poiType.getIconKeyName())) { + id = poiType.getIconKeyName(); + } else if (RenderingIcons.containsBigIcon(poiType.getOsmTag() + "_" + poiType.getOsmValue())) { + id = poiType.getOsmTag() + "_" + poiType.getOsmValue(); + } + if (id != null) { + iconResId = RenderingIcons.getBigIconResourceId(id); + } + } + } + if (iconResId == 0) { + iconResId = R.drawable.ic_type_info; + } + int colorResId = R.color.color_distance; + if (point.getAction() == OsmPoint.Action.CREATE) { + colorResId = R.color.color_osm_edit_create; + } else if (point.getAction() == OsmPoint.Action.MODIFY) { + colorResId = R.color.color_osm_edit_modify; + } else if (point.getAction() == OsmPoint.Action.DELETE) { + colorResId = R.color.color_osm_edit_delete; + } else if (point.getAction() == OsmPoint.Action.REOPEN) { + colorResId = R.color.color_osm_edit_modify; + } + return app.getIconsCache().getIcon(iconResId, colorResId); + } else if (point.getGroup() == OsmPoint.Group.BUG) { + return app.getIconsCache().getIcon(R.drawable.ic_type_bug, R.color.color_distance); + } + return null; + } + + private String getDescription(OsmPoint point) { + String action = ""; + if (point.getAction() == OsmPoint.Action.CREATE) { + action = getContext().getString(R.string.shared_string_added); + } else if (point.getAction() == OsmPoint.Action.MODIFY) { + action = getContext().getString(R.string.shared_string_edited); + } else if (point.getAction() == OsmPoint.Action.DELETE) { + action = getContext().getString(R.string.shared_string_deleted); + } else if (point.getAction() == OsmPoint.Action.REOPEN) { + action = getContext().getString(R.string.shared_string_edited); + } + + String category = ""; + if (point.getGroup() == OsmPoint.Group.POI) { + category = ((OpenstreetmapPoint) point).getEntity().getTag(EditPoiData.POI_TYPE_TAG); + } + + String comment = ""; + if (point.getGroup() == OsmPoint.Group.BUG) { + comment = getContext().getString(R.string.osn_bug_name); + } + + String prefix = OsmEditingPlugin.getPrefix(point); + + String description = ""; + if (!Algorithms.isEmpty(action)) { + description += action + " • "; + } + if (!Algorithms.isEmpty(comment)) { + description += comment + " • "; + } + if (!Algorithms.isEmpty(category)) { + description += category + " • "; + } + description += prefix; + + return description; + } + + private class OsmEditViewHolder { + View mainView; + ImageView icon; + CheckBox selectCheckBox; + ImageButton optionsImageButton; + TextView titleTextView; + TextView descriptionTextView; + View bottomDivider; + + OsmEditViewHolder(View view) { + mainView = view; + icon = (ImageView) view.findViewById(R.id.icon); + selectCheckBox = (CheckBox) view.findViewById(R.id.check_box); + optionsImageButton = (ImageButton) view.findViewById(R.id.options); + titleTextView = (TextView) view.findViewById(R.id.title); + descriptionTextView = (TextView) view.findViewById(R.id.description); + bottomDivider = view.findViewById(R.id.bottom_divider); + } + } + + public interface OsmEditsAdapterListener { + + void onItemSelect(OsmPoint point, boolean checked); + + void onItemShowMap(OsmPoint point); + + void onOptionsClick(OsmPoint note); + } +} diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java index 2f4bff96e6..b0ee0f0ae3 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsFragment.java @@ -9,10 +9,9 @@ import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; -import android.support.v4.view.MenuItemCompat; +import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; import android.support.v7.view.ActionMode; -import android.support.v7.widget.PopupMenu; import android.util.Xml; import android.view.LayoutInflater; import android.view.Menu; @@ -20,8 +19,7 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; +import android.view.ViewStub; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.EditText; @@ -30,7 +28,6 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; -import net.osmand.AndroidUtils; import net.osmand.data.PointDescription; import net.osmand.osm.edit.Node; import net.osmand.plus.OsmandApplication; @@ -41,13 +38,12 @@ import net.osmand.plus.activities.ActionBarProgressActivity; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.activities.OsmandActionBarActivity; import net.osmand.plus.base.OsmAndListFragment; -import net.osmand.plus.dialogs.DirectionsDialogs; import net.osmand.plus.dialogs.ProgressDialogFragment; import net.osmand.plus.helpers.AndroidUiHelper; import net.osmand.plus.myplaces.FavoritesActivity; -import net.osmand.plus.osmedit.OsmPoint.Action; import net.osmand.plus.osmedit.dialogs.SendPoiDialogFragment; import net.osmand.plus.osmedit.dialogs.SendPoiDialogFragment.PoiUploaderType; +import net.osmand.plus.osmedit.OsmEditOptionsBottomSheetDialogFragment.OsmEditOptionsFragmentListener; import net.osmand.util.Algorithms; import org.xmlpull.v1.XmlSerializer; @@ -60,44 +56,68 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -public class OsmEditsFragment extends OsmAndListFragment - implements SendPoiDialogFragment.ProgressDialogPoiUploader, OpenstreetmapLocalUtil.OnNodeCommittedListener { - OsmEditingPlugin plugin; - - private OsmEditsAdapter listAdapter; - private View footerView; - - private boolean selectionMode = false; - +public class OsmEditsFragment extends OsmAndListFragment implements SendPoiDialogFragment.ProgressDialogPoiUploader, OpenstreetmapLocalUtil.OnNodeCommittedListener { private final static int MODE_DELETE = 100; private final static int MODE_UPLOAD = 101; - private ActionMode actionMode; - private long refreshId; + private OsmEditingPlugin plugin; + + private View footerView; + private View headerView; + private View emptyView; + + private List osmEdits = new ArrayList<>(); + private OsmEditsAdapter listAdapter; private ArrayList osmEditsSelected = new ArrayList<>(); + private ActionMode actionMode; + private long refreshId; + + public static void getOsmEditView(View v, OsmPoint child, OsmandApplication app) { + TextView viewName = ((TextView) v.findViewById(R.id.name)); + ImageView icon = (ImageView) v.findViewById(R.id.icon); + String name = OsmEditingPlugin.getEditName(child); + viewName.setText(name); + if (child.getGroup() == OsmPoint.Group.POI) { + icon.setImageDrawable(app.getIconsCache().getIcon(R.drawable.ic_type_info, R.color.color_distance)); + } else if (child.getGroup() == OsmPoint.Group.BUG) { + icon.setImageDrawable(app.getIconsCache().getIcon(R.drawable.ic_type_bug, R.color.color_distance)); + } + + TextView descr = (TextView) v.findViewById(R.id.description); + if (child.getAction() == OsmPoint.Action.CREATE) { + descr.setText(R.string.action_create); + } else if (child.getAction() == OsmPoint.Action.MODIFY) { + descr.setText(R.string.action_modify); + } else if (child.getAction() == OsmPoint.Action.DELETE) { + descr.setText(R.string.action_delete); + } else if (child.getAction() == OsmPoint.Action.REOPEN) { + descr.setText(R.string.action_modify); + } + } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { setHasOptionsMenu(true); plugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); - View view = getActivity().getLayoutInflater().inflate(R.layout.update_index, container, false); - ((TextView) view.findViewById(R.id.header)).setText(R.string.your_edits); - final CheckBox selectAll = (CheckBox) view.findViewById(R.id.select_all); - selectAll.setVisibility(View.GONE); - selectAll.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (selectAll.isChecked()) { - selectAll(); - } else { - deselectAll(); - } - updateSelectionTitle(actionMode); - } - }); + View view = inflater.inflate(R.layout.update_index, container, false); + view.findViewById(R.id.header_layout).setVisibility(View.GONE); + ViewStub emptyStub = (ViewStub) view.findViewById(R.id.empty_view_stub); + emptyStub.setLayoutResource(R.layout.empty_state_osm_edits); + emptyView = emptyStub.inflate(); + int icRes = getMyApplication().getSettings().isLightContent() + ? R.drawable.ic_empty_state_osm_edits_day : R.drawable.ic_empty_state_osm_edits_night; + ((ImageView) emptyView.findViewById(R.id.empty_state_image_view)).setImageResource(icRes); + emptyView.setBackgroundColor(getResources().getColor(getMyApplication().getSettings() + .isLightContent() ? R.color.ctx_menu_info_view_bg_light : R.color.ctx_menu_info_view_bg_dark)); + + Fragment optionsFragment = getChildFragmentManager().findFragmentByTag(OsmEditOptionsBottomSheetDialogFragment.TAG); + if (optionsFragment != null) { + ((OsmEditOptionsBottomSheetDialogFragment) optionsFragment).setListener(createOsmEditOptionsFragmentListener()); + } + plugin.getPoiModificationLocalUtil().addNodeCommittedListener(this); return view; } @@ -108,23 +128,24 @@ public class OsmEditsFragment extends OsmAndListFragment super.onDestroyView(); } - public android.widget.ArrayAdapter getAdapter() { + @Override + public ArrayAdapter getAdapter() { return listAdapter; } - + private void selectAll() { - for (int i = 0; i < listAdapter.getCount(); i++) { - OsmPoint point = listAdapter.getItem(i); + for (int i = 0; i < osmEdits.size(); i++) { + OsmPoint point = osmEdits.get(i); if (!osmEditsSelected.contains(point)) { osmEditsSelected.add(point); } } - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); } private void deselectAll() { osmEditsSelected.clear(); - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); } @Override @@ -138,8 +159,7 @@ public class OsmEditsFragment extends OsmAndListFragment } ((ActionBarProgressActivity) getActivity()).updateListViewFooter(footerView); - MenuItem item = menu.add(R.string.local_openstreetmap_uploadall). - setIcon(R.drawable.ic_action_export); + MenuItem item = menu.add(R.string.local_openstreetmap_uploadall).setIcon(R.drawable.ic_action_export); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -147,22 +167,20 @@ public class OsmEditsFragment extends OsmAndListFragment return true; } }); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - item = menu.add(R.string.local_osm_changes_backup). - setIcon(R.drawable.ic_action_gshare_dark); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + item = menu.add(R.string.local_osm_changes_backup).setIcon(R.drawable.ic_action_gshare_dark); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { new BackupOpenstreetmapPointAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, - listAdapter.dataPoints.toArray(new OsmPoint[listAdapter.dataPoints.size()])); + osmEdits.toArray(new OsmPoint[osmEdits.size()])); return true; } }); - item = menu.add(R.string.shared_string_delete_all). - setIcon(R.drawable.ic_action_delete_dark); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS); + item = menu.add(R.string.shared_string_delete_all).setIcon(R.drawable.ic_action_delete_dark); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -178,8 +196,7 @@ public class OsmEditsFragment extends OsmAndListFragment @Override public boolean onCreateActionMode(final ActionMode mode, Menu menu) { enableSelectionMode(true); - MenuItem item = menu.add(R.string.local_openstreetmap_uploadall). - setIcon(R.drawable.ic_action_export); + MenuItem item = menu.add(R.string.local_openstreetmap_uploadall).setIcon(R.drawable.ic_action_export); item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { @@ -188,9 +205,9 @@ public class OsmEditsFragment extends OsmAndListFragment return true; } }); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); osmEditsSelected.clear(); - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); updateSelectionMode(mode); return true; } @@ -208,7 +225,7 @@ public class OsmEditsFragment extends OsmAndListFragment @Override public void onDestroyActionMode(ActionMode mode) { enableSelectionMode(false); - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); } }); @@ -240,9 +257,9 @@ public class OsmEditsFragment extends OsmAndListFragment return true; } }); - MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); + item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); osmEditsSelected.clear(); - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); updateSelectionMode(mode); return true; } @@ -260,7 +277,7 @@ public class OsmEditsFragment extends OsmAndListFragment @Override public void onDestroyActionMode(ActionMode mode) { enableSelectionMode(false); - listAdapter.notifyDataSetInvalidated(); + listAdapter.notifyDataSetChanged(); } }); @@ -273,8 +290,7 @@ public class OsmEditsFragment extends OsmAndListFragment private void updateSelectionTitle(ActionMode m) { if (osmEditsSelected.size() > 0) { - m.setTitle(osmEditsSelected.size() + " " - + getMyApplication().getString(R.string.shared_string_selected_lowercase)); + m.setTitle(osmEditsSelected.size() + " " + getString(R.string.shared_string_selected_lowercase)); } else { m.setTitle(""); } @@ -285,9 +301,9 @@ public class OsmEditsFragment extends OsmAndListFragment if (view == null) { return; } - CheckBox selectAll = (CheckBox) view.findViewById(R.id.select_all); - for (int i = 0; i < listAdapter.getCount(); i++) { - OsmPoint point = listAdapter.getItem(i); + CheckBox selectAll = (CheckBox) view.findViewById(R.id.check_box); + for (int i = 0; i < osmEdits.size(); i++) { + OsmPoint point = osmEdits.get(i); if (!osmEditsSelected.contains(point)) { selectAll.setChecked(false); return; @@ -297,11 +313,10 @@ public class OsmEditsFragment extends OsmAndListFragment } private void enableSelectionMode(boolean selectionMode) { - this.selectionMode = selectionMode; + listAdapter.setSelectionMode(selectionMode); //noinspection ConstantConditions - getView().findViewById(R.id.select_all).setVisibility(selectionMode ? View.VISIBLE : View.GONE); - ((FavoritesActivity) getActivity()).setToolbarVisibility(!selectionMode && - AndroidUiHelper.isOrientationPortrait(getActivity())); + getView().findViewById(R.id.check_box).setVisibility(selectionMode ? View.VISIBLE : View.GONE); + ((FavoritesActivity) getActivity()).setToolbarVisibility(!selectionMode && AndroidUiHelper.isOrientationPortrait(getActivity())); ((FavoritesActivity) getActivity()).updateListViewFooter(footerView); } @@ -313,17 +328,15 @@ public class OsmEditsFragment extends OsmAndListFragment } private void deleteItems(final ArrayList points) { - DeleteOsmEditsConfirmDialogFragment.createInstance(points). - show(getChildFragmentManager(), DeleteOsmEditsConfirmDialogFragment.TAG); + DeleteOsmEditsConfirmDialogFragment.createInstance(points).show(getChildFragmentManager(), DeleteOsmEditsConfirmDialogFragment.TAG); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - getListView().setBackgroundColor( - getResources().getColor( - getMyApplication().getSettings().isLightContent() ? R.color.ctx_menu_info_view_bg_light - : R.color.ctx_menu_info_view_bg_dark)); + getListView().setBackgroundColor(getResources().getColor(getMyApplication().getSettings().isLightContent() + ? R.color.ctx_menu_info_view_bg_light + : R.color.ctx_menu_info_view_bg_dark)); } @Override @@ -333,34 +346,62 @@ public class OsmEditsFragment extends OsmAndListFragment } private void fetchData() { - ArrayList dataPoints = new ArrayList<>(); + osmEdits = new ArrayList<>(); List l1 = plugin.getDBPOI().getOpenstreetmapPoints(); List l2 = plugin.getDBBug().getOsmbugsPoints(); - dataPoints.addAll(l1); - dataPoints.addAll(l2); - if (listAdapter == null) { - listAdapter = new OsmEditsAdapter(dataPoints); - ListView listView = getListView(); - if (dataPoints.size() > 0 && footerView == null) { - //listView.addHeaderView(getActivity().getLayoutInflater().inflate(R.layout.list_shadow_header, null, false)); - footerView = getActivity().getLayoutInflater().inflate(R.layout.list_shadow_footer, null, false); + osmEdits.addAll(l1); + osmEdits.addAll(l2); + ListView listView = getListView(); + listView.setDivider(null); + listView.setEmptyView(emptyView); + + if (osmEdits.size() > 0) { + if (footerView == null) { + footerView = getActivity().getLayoutInflater().inflate(R.layout.list_shadow_footer, listView, false); listView.addFooterView(footerView); - listView.setHeaderDividersEnabled(false); - listView.setFooterDividersEnabled(false); } - listView.setAdapter(listAdapter); - listView.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - OsmPoint it = listAdapter.getItem(position); - openPopUpMenu(view, it); - - } - }); - } else { - listAdapter.setNewList(dataPoints); + if (headerView == null) { + headerView = getActivity().getLayoutInflater().inflate(R.layout.list_item_header, listView, false); + listView.addHeaderView(headerView); + ((TextView) headerView.findViewById(R.id.title_text_view)).setText(R.string.your_edits); + final CheckBox selectAll = (CheckBox) headerView.findViewById(R.id.check_box); + selectAll.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (selectAll.isChecked()) { + selectAll(); + } else { + deselectAll(); + } + updateSelectionTitle(actionMode); + } + }); + } } + listAdapter = new OsmEditsAdapter(getMyApplication(), osmEdits); + listAdapter.setSelectedOsmEdits(osmEditsSelected); + listAdapter.setAdapterListener(new OsmEditsAdapter.OsmEditsAdapterListener() { + @Override + public void onItemSelect(OsmPoint point, boolean checked) { + if (checked) { + osmEditsSelected.add(point); + } else { + osmEditsSelected.remove(point); + } + updateSelectionMode(actionMode); + } + + @Override + public void onItemShowMap(OsmPoint point) { + showOnMap(point); + } + + @Override + public void onOptionsClick(OsmPoint note) { + openPopUpMenu(note); + } + }); + listView.setAdapter(listAdapter); } private void showBugDialog(final OsmNotesPoint point) { @@ -390,31 +431,6 @@ public class OsmEditsFragment extends OsmAndListFragment builder.create().show(); } - public static void getOsmEditView(View v, OsmPoint child, OsmandApplication app) { - TextView viewName = ((TextView) v.findViewById(R.id.name)); - ImageView icon = (ImageView) v.findViewById(R.id.icon); - String name = OsmEditingPlugin.getEditName(child); - viewName.setText(name); - if (child.getGroup() == OsmPoint.Group.POI) { - icon.setImageDrawable(app.getIconsCache(). - getIcon(R.drawable.ic_type_info, R.color.color_distance)); - } else if (child.getGroup() == OsmPoint.Group.BUG) { - icon.setImageDrawable(app.getIconsCache(). - getIcon(R.drawable.ic_type_bug, R.color.color_distance)); - } - - TextView descr = (TextView) v.findViewById(R.id.description); - if (child.getAction() == OsmPoint.Action.CREATE) { - descr.setText(R.string.action_create); - } else if (child.getAction() == OsmPoint.Action.MODIFY) { - descr.setText(R.string.action_modify); - } else if (child.getAction() == OsmPoint.Action.DELETE) { - descr.setText(R.string.action_delete); - } else if (child.getAction() == OsmPoint.Action.REOPEN) { - descr.setText(R.string.action_modify); - } - } - @Override public void onNoteCommitted() { getMyApplication().runInUIThread(new Runnable() { @@ -425,173 +441,56 @@ public class OsmEditsFragment extends OsmAndListFragment }); } - protected class OsmEditsAdapter extends ArrayAdapter { - private List dataPoints; - - - public OsmEditsAdapter(List points) { - super(getActivity(), net.osmand.plus.R.layout.note, points); - dataPoints = points; - } - - public void setNewList(List dp) { - dataPoints = dp; - setNotifyOnChange(false); - clear(); - for (OsmPoint pnt : dp) { - add(pnt); - } - setNotifyOnChange(true); - notifyDataSetChanged(); - } - - public List getDataPoints() { - return dataPoints; - } - - public void delete(OsmPoint i) { - dataPoints.remove(i); - remove(i); - listAdapter.notifyDataSetChanged(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - View v = convertView; - final OsmPoint child = getItem(position); - if (v == null) { - LayoutInflater inflater = getActivity().getLayoutInflater(); - v = inflater.inflate(net.osmand.plus.R.layout.note, parent, false); - } - getOsmEditView(v, child, getMyApplication()); - - v.findViewById(R.id.play).setVisibility(View.GONE); - - final CheckBox ch = (CheckBox) v.findViewById(R.id.check_local_index); - View options = v.findViewById(R.id.options); - if (selectionMode) { - options.setVisibility(View.GONE); - ch.setVisibility(View.VISIBLE); - ch.setChecked(osmEditsSelected.contains(child)); - v.findViewById(R.id.icon).setVisibility(View.GONE); - ch.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onItemSelect(ch, child); - } - }); - } else { - v.findViewById(R.id.icon).setVisibility(View.VISIBLE); - options.setVisibility(View.VISIBLE); - ch.setVisibility(View.GONE); - } - - ((ImageView) options).setImageDrawable(getMyApplication().getIconsCache() - .getThemedIcon(R.drawable.ic_overflow_menu_white)); - options.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - openPopUpMenu(v, child); - } - }); - v.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (selectionMode) { - ch.setChecked(!ch.isChecked()); - onItemSelect(ch, child); - } else { - showOnMap(child); - } - - } - }); - return v; - } - - public void onItemSelect(CheckBox ch, OsmPoint child) { - if (ch.isChecked()) { - osmEditsSelected.add(child); - } else { - osmEditsSelected.remove(child); - } - updateSelectionMode(actionMode); - } - + private void openPopUpMenu(final OsmPoint info) { + OsmEditOptionsBottomSheetDialogFragment optionsFragment = new OsmEditOptionsBottomSheetDialogFragment(); + Bundle args = new Bundle(); + args.putSerializable(OsmEditOptionsBottomSheetDialogFragment.OSM_POINT, info); + optionsFragment.setUsedOnMap(false); + optionsFragment.setArguments(args); + optionsFragment.setListener(createOsmEditOptionsFragmentListener()); + optionsFragment.show(getChildFragmentManager(), OsmEditOptionsBottomSheetDialogFragment.TAG); } - private void openPopUpMenu(View v, final OsmPoint info) { - OsmandApplication app = getMyApplication(); - final PopupMenu optionsMenu = new PopupMenu(getActivity(), v); - DirectionsDialogs.setupPopUpMenuIcon(optionsMenu); - MenuItem item = optionsMenu.getMenu().add(R.string.shared_string_show_on_map). - setIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_show_on_map)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + private OsmEditOptionsFragmentListener createOsmEditOptionsFragmentListener() { + return new OsmEditOptionsFragmentListener() { @Override - public boolean onMenuItemClick(MenuItem item) { + public void onUploadClick(OsmPoint osmPoint) { + uploadItems(new OsmPoint[]{getPointAfterModify(osmPoint)}); + } + + @Override + public void onShowOnMapClick(OsmPoint osmPoint) { OsmandSettings settings = getMyApplication().getSettings(); - settings.setMapLocationToShow(info.getLatitude(), info.getLongitude(), settings.getLastKnownMapZoom()); + settings.setMapLocationToShow(osmPoint.getLatitude(), osmPoint.getLongitude(), settings.getLastKnownMapZoom()); MapActivity.launchMapActivityMoveToTop(getActivity()); - return true; } - }); - if (info instanceof OpenstreetmapPoint && info.getAction() != Action.DELETE) { - item = optionsMenu.getMenu().add(R.string.poi_context_menu_modify_osm_change) - .setIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_action_edit_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - - @Override - public boolean onMenuItemClick(MenuItem item) { - OpenstreetmapPoint i = (OpenstreetmapPoint) getPointAfterModify(info); - final Node entity = i.getEntity(); - refreshId = entity.getId(); - EditPoiDialogFragment.createInstance(entity, false) - .show(getActivity().getSupportFragmentManager(), "edit_poi"); - return true; - } - }); - } - if (info instanceof OsmNotesPoint) { - item = optionsMenu.getMenu().add(R.string.context_menu_item_modify_note) - .setIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_action_edit_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - - @Override - public boolean onMenuItemClick(MenuItem item) { - showBugDialog((OsmNotesPoint) info); - return true; - } - }); - } - item = optionsMenu.getMenu().add(R.string.shared_string_delete). - setIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_action_delete_dark)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override - public boolean onMenuItemClick(MenuItem item) { + public void onModifyOsmChangeClick(OsmPoint osmPoint) { + OpenstreetmapPoint i = (OpenstreetmapPoint) getPointAfterModify(osmPoint); + final Node entity = i.getEntity(); + refreshId = entity.getId(); + EditPoiDialogFragment.createInstance(entity, false).show(getActivity().getSupportFragmentManager(), "edit_poi"); + } + + @Override + public void onModifyOsmNoteClick(OsmPoint osmPoint) { + showBugDialog((OsmNotesPoint) osmPoint); + } + + @Override + public void onDeleteClick(OsmPoint osmPoint) { ArrayList points = new ArrayList<>(); - points.add(info); + points.add(osmPoint); deleteItems(new ArrayList<>(points)); - return true; - } - }); - item = optionsMenu.getMenu().add(R.string.local_openstreetmap_upload). - setIcon(app.getIconsCache().getThemedIcon(R.drawable.ic_action_export)); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - uploadItems(new OsmPoint[]{getPointAfterModify(info)}); - return true; - } - }); - optionsMenu.show(); + }; } protected OsmPoint getPointAfterModify(OsmPoint info) { - if(info instanceof OpenstreetmapPoint && info.getId() == refreshId) { - for(OpenstreetmapPoint p : plugin.getDBPOI().getOpenstreetmapPoints()) { - if(p.getId() == info.getId()) { + if (info instanceof OpenstreetmapPoint && info.getId() == refreshId) { + for (OpenstreetmapPoint p : plugin.getDBPOI().getOpenstreetmapPoints()) { + if (p.getId() == info.getId()) { return p; } } @@ -623,22 +522,85 @@ public class OsmEditsFragment extends OsmAndListFragment super.uploadEnded(loadErrorsMap); for (OsmPoint osmPoint : loadErrorsMap.keySet()) { if (loadErrorsMap.get(osmPoint) == null) { - listAdapter.remove(osmPoint); + osmEdits.remove(osmPoint); } } listAdapter.notifyDataSetChanged(); } }; dialog.show(getActivity().getSupportFragmentManager(), ProgressDialogFragment.TAG); - UploadOpenstreetmapPointAsyncTask uploadTask = new UploadOpenstreetmapPointAsyncTask( - dialog, listener, plugin, points.length, closeChangeSet, anonymously); + UploadOpenstreetmapPointAsyncTask uploadTask = new UploadOpenstreetmapPointAsyncTask(dialog, listener, plugin, points.length, closeChangeSet, anonymously); uploadTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, points); } + private void showOnMap(OsmPoint osmPoint) { + boolean isOsmPoint = osmPoint instanceof OpenstreetmapPoint; + String type = osmPoint.getGroup() == OsmPoint.Group.POI ? PointDescription.POINT_TYPE_POI : PointDescription.POINT_TYPE_OSM_BUG; + String name = (isOsmPoint ? ((OpenstreetmapPoint) osmPoint).getName() : ((OsmNotesPoint) osmPoint).getText()); + getMyApplication().getSettings().setMapLocationToShow(osmPoint.getLatitude(), osmPoint.getLongitude(), 15, + new PointDescription(type, name), true, osmPoint); //$NON-NLS-1$ + MapActivity.launchMapActivityMoveToTop(getActivity()); + } + + private void deletePoint(OsmPoint osmPoint) { + osmEdits.remove(osmPoint); + listAdapter.notifyDataSetChanged(); + } + + private void notifyDataSetChanged() { + listAdapter.notifyDataSetChanged(); + } + + public static class DeleteOsmEditsConfirmDialogFragment extends DialogFragment { + public static final String TAG = "DeleteOsmEditsConfirmDialogFragment"; + private static final String POINTS_LIST = "points_list"; + + public static DeleteOsmEditsConfirmDialogFragment createInstance( + ArrayList points) { + DeleteOsmEditsConfirmDialogFragment fragment = new DeleteOsmEditsConfirmDialogFragment(); + Bundle args = new Bundle(); + args.putSerializable(POINTS_LIST, points); + fragment.setArguments(args); + return fragment; + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final OsmEditsFragment parentFragment = (OsmEditsFragment) getParentFragment(); + final OsmEditingPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); + @SuppressWarnings("unchecked") + final ArrayList points = (ArrayList) getArguments().getSerializable(POINTS_LIST); + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + assert points != null; + builder.setMessage(getString(R.string.local_osm_changes_delete_all_confirm, points.size())); + builder.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Iterator it = points.iterator(); + while (it.hasNext()) { + OsmPoint osmPoint = it.next(); + assert plugin != null; + if (osmPoint.getGroup() == OsmPoint.Group.POI) { + plugin.getDBPOI().deletePOI((OpenstreetmapPoint) osmPoint); + } else if (osmPoint.getGroup() == OsmPoint.Group.BUG) { + plugin.getDBBug().deleteAllBugModifications((OsmNotesPoint) osmPoint); + } + it.remove(); + parentFragment.deletePoint(osmPoint); + } + parentFragment.notifyDataSetChanged(); + + } + }); + builder.setNegativeButton(R.string.shared_string_cancel, null); + return builder.create(); + } + } public class BackupOpenstreetmapPointAsyncTask extends AsyncTask { - private File osmchange; public BackupOpenstreetmapPointAsyncTask() { @@ -745,71 +707,4 @@ public class OsmEditsFragment extends OsmAndListFragment } } - private void showOnMap(OsmPoint osmPoint) { - boolean isOsmPoint = osmPoint instanceof OpenstreetmapPoint; - String type = osmPoint.getGroup() == OsmPoint.Group.POI ? PointDescription.POINT_TYPE_POI : PointDescription.POINT_TYPE_OSM_BUG; - String name = (isOsmPoint ? ((OpenstreetmapPoint) osmPoint).getName() : ((OsmNotesPoint) osmPoint).getText()); - getMyApplication().getSettings().setMapLocationToShow(osmPoint.getLatitude(), osmPoint.getLongitude(), 15, - new PointDescription(type, name), true, osmPoint); //$NON-NLS-1$ - MapActivity.launchMapActivityMoveToTop(getActivity()); - } - - private void deletePoint(OsmPoint osmPoint) { - listAdapter.delete(osmPoint); - } - - private void notifyDataSetChanged() { - listAdapter.notifyDataSetChanged(); - } - - public static class DeleteOsmEditsConfirmDialogFragment extends DialogFragment { - public static final String TAG = "DeleteOsmEditsConfirmDialogFragment"; - private static final String POINTS_LIST = "points_list"; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - final OsmEditsFragment parentFragment = (OsmEditsFragment) getParentFragment(); - final OsmEditingPlugin plugin = OsmandPlugin.getEnabledPlugin(OsmEditingPlugin.class); - @SuppressWarnings("unchecked") - final ArrayList points = - (ArrayList) getArguments().getSerializable(POINTS_LIST); - - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - assert points != null; - builder.setMessage(getString(R.string.local_osm_changes_delete_all_confirm, - points.size())); - builder.setPositiveButton(R.string.shared_string_delete, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Iterator it = points.iterator(); - while (it.hasNext()) { - OsmPoint osmPoint = it.next(); - assert plugin != null; - if (osmPoint.getGroup() == OsmPoint.Group.POI) { - plugin.getDBPOI().deletePOI((OpenstreetmapPoint) osmPoint); - } else if (osmPoint.getGroup() == OsmPoint.Group.BUG) { - plugin.getDBBug().deleteAllBugModifications((OsmNotesPoint) osmPoint); - } - it.remove(); - parentFragment.deletePoint(osmPoint); - } - parentFragment.notifyDataSetChanged(); - - } - }); - builder.setNegativeButton(R.string.shared_string_cancel, null); - return builder.create(); - } - - public static DeleteOsmEditsConfirmDialogFragment createInstance( - ArrayList points) { - DeleteOsmEditsConfirmDialogFragment fragment = new DeleteOsmEditsConfirmDialogFragment(); - Bundle args = new Bundle(); - args.putSerializable(POINTS_LIST, points); - fragment.setArguments(args); - return fragment; - } - } - } \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java index 1f86adec92..0699f9367a 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditsLayer.java @@ -160,6 +160,11 @@ public class OsmEditsLayer extends OsmandMapLayer implements ContextMenuLayer.IC return o instanceof OsmPoint; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { if (tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/osmo/OsMoPositionLayer.java b/OsmAnd/src/net/osmand/plus/osmo/OsMoPositionLayer.java index 6e6209ce11..35e1368055 100644 --- a/OsmAnd/src/net/osmand/plus/osmo/OsMoPositionLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmo/OsMoPositionLayer.java @@ -13,11 +13,11 @@ import android.graphics.PointF; import android.os.Handler; import android.util.DisplayMetrics; import android.view.WindowManager; + import net.osmand.Location; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; import net.osmand.data.RotatedTileBox; -import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; import net.osmand.plus.TargetPointsHelper.TargetPoint; @@ -212,6 +212,11 @@ public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLaye return o instanceof OsMoDevice; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { getOsmoFromPoint(tileBox, point, o); diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java index 56823979bc..d768f4181d 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java @@ -135,6 +135,11 @@ public class ParkingPositionLayer extends OsmandMapLayer implements return o == getParkingPoint(); } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { getParkingFromPoint(tileBox, point, o); diff --git a/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java b/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java index f171815e89..c8ac99da18 100644 --- a/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java +++ b/OsmAnd/src/net/osmand/plus/routepointsnavigation/RoutePointsLayer.java @@ -42,6 +42,11 @@ public class RoutePointsLayer extends OsmandMapLayer implements ContextMenuLaye return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { diff --git a/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java b/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java index e6a7a562e0..b11e902931 100644 --- a/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/AidlMapLayer.java @@ -128,6 +128,11 @@ public class AidlMapLayer extends OsmandMapLayer implements IContextMenuProvider return o instanceof AMapPoint; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { getFromPoint(tileBox, point, o); diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java index 84ddef5780..ac4aae0893 100644 --- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java @@ -642,6 +642,12 @@ public class ContextMenuLayer extends OsmandMapLayer { } } } + for (Map.Entry entry : selectedObjects.entrySet()) { + IContextMenuProvider provider = entry.getValue(); + if (provider != null && provider.runExclusiveAction(entry.getKey(), showUnknownLocation)) { + return true; + } + } if (selectedObjects.size() == 1) { Object selectedObj = selectedObjects.keySet().iterator().next(); LatLon latLon = objectLatLon; @@ -924,6 +930,7 @@ public class ContextMenuLayer extends OsmandMapLayer { boolean isObjectClickable(Object o); + boolean runExclusiveAction(@Nullable Object o, boolean unknownLocation); } public interface IMoveObjectProvider { diff --git a/OsmAnd/src/net/osmand/plus/views/DownloadedRegionsLayer.java b/OsmAnd/src/net/osmand/plus/views/DownloadedRegionsLayer.java index 402ddd540e..abbafcdb8e 100644 --- a/OsmAnd/src/net/osmand/plus/views/DownloadedRegionsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/DownloadedRegionsLayer.java @@ -11,9 +11,9 @@ import android.graphics.PointF; import android.text.TextPaint; import android.util.DisplayMetrics; import android.view.WindowManager; + import net.osmand.IndexConstants; import net.osmand.binary.BinaryMapDataObject; -import net.osmand.binary.BinaryMapIndexReader; import net.osmand.binary.BinaryMapIndexReader.TagValuePair; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; @@ -458,6 +458,11 @@ public class DownloadedRegionsLayer extends OsmandMapLayer implements IContextMe return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + private void getWorldRegionFromPoint(RotatedTileBox tb, PointF point, List dataObjects) { int zoom = tb.getZoom(); if (zoom >= ZOOM_TO_SHOW_SELECTION_ST && zoom < ZOOM_TO_SHOW_SELECTION diff --git a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java index c3c03383b6..ed5dac297a 100644 --- a/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/FavouritesLayer.java @@ -222,6 +222,11 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer. return o instanceof FavouritePoint && o != contextMenuLayer.getMoveableObject(); } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res) { if (this.settings.SHOW_FAVORITES.get() && tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java index 7274b79b4a..bbb117b321 100644 --- a/OsmAnd/src/net/osmand/plus/views/GPXLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/GPXLayer.java @@ -577,6 +577,11 @@ public class GPXLayer extends OsmandMapLayer implements ContextMenuLayer.IContex return o instanceof WptPt; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res) { if (tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java b/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java index 27136462c4..9fd7c62e70 100644 --- a/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ImpassableRoadsLayer.java @@ -161,6 +161,11 @@ public class ImpassableRoadsLayer extends OsmandMapLayer implements return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { if (tileBox.getZoom() >= startZoom) { diff --git a/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java b/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java index e7ac032995..38efc761ff 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java @@ -14,9 +14,11 @@ import android.os.Handler; import android.os.Message; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.design.widget.Snackbar; import android.support.v4.content.ContextCompat; import android.view.GestureDetector; import android.view.MotionEvent; +import android.view.View; import net.osmand.Location; import net.osmand.data.LatLon; @@ -487,6 +489,27 @@ public class MapMarkersLayer extends OsmandMapLayer implements IContextMenuProvi return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + if (unknownLocation || o == null || !(o instanceof MapMarker) + || !map.getMyApplication().getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) { + return false; + } + final MapMarkersHelper helper = map.getMyApplication().getMapMarkersHelper(); + final MapMarker old = helper.getMapMarkers().get(0); + helper.moveMarkerToTop((MapMarker) o); + String title = map.getString(R.string.marker_activated, helper.getMapMarkers().get(0).getName(map)); + Snackbar.make(map.findViewById(R.id.bottomFragmentContainer), title, Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_cancel, new View.OnClickListener() { + @Override + public void onClick(View v) { + helper.moveMarkerToTop(old); + } + }) + .show(); + return true; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { if (tileBox.getZoom() < 3 || !map.getMyApplication().getSettings().USE_MAP_MARKERS.get()) { diff --git a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java index 04b7287646..8d619e05f8 100644 --- a/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/POIMapLayer.java @@ -1,7 +1,6 @@ package net.osmand.plus.views; import android.app.Dialog; -import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -15,7 +14,6 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.provider.Settings; import android.support.v4.content.ContextCompat; import android.support.v4.view.MenuItemCompat; import android.support.v7.widget.PopupMenu; @@ -35,6 +33,7 @@ import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.ScrollView; import android.widget.TextView; + import net.osmand.AndroidUtils; import net.osmand.PlatformUtil; import net.osmand.ResultMatcher; @@ -564,6 +563,11 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon return o instanceof Amenity; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public LatLon getTextLocation(Amenity o) { return o.getLocation(); diff --git a/OsmAnd/src/net/osmand/plus/views/PointLocationLayer.java b/OsmAnd/src/net/osmand/plus/views/PointLocationLayer.java index 67f527ca10..64a0098002 100644 --- a/OsmAnd/src/net/osmand/plus/views/PointLocationLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/PointLocationLayer.java @@ -215,6 +215,11 @@ public class PointLocationLayer extends OsmandMapLayer implements ContextMenuLay return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + private LatLon getMyLocation() { Location location = locationProvider.getLastKnownLocation(); if (location != null) { diff --git a/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java b/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java index 65910cccc5..9d70ae0c7f 100644 --- a/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/PointNavigationLayer.java @@ -14,7 +14,6 @@ import android.support.v4.content.ContextCompat; import net.osmand.data.LatLon; import net.osmand.data.PointDescription; -import net.osmand.data.QuadPoint; import net.osmand.data.RotatedTileBox; import net.osmand.plus.R; import net.osmand.plus.TargetPointsHelper; @@ -22,7 +21,6 @@ import net.osmand.plus.TargetPointsHelper.TargetPoint; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.views.ContextMenuLayer.IContextMenuProvider; -import java.util.Iterator; import java.util.List; public class PointNavigationLayer extends OsmandMapLayer implements @@ -180,6 +178,11 @@ public class PointNavigationLayer extends OsmandMapLayer implements return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o) { if (tileBox.getZoom() >= 3) { diff --git a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java index 9715308027..b43cfae364 100644 --- a/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/TransportStopsLayer.java @@ -279,6 +279,11 @@ public class TransportStopsLayer extends OsmandMapLayer implements ContextMenuLa return false; } + @Override + public boolean runExclusiveAction(Object o, boolean unknownLocation) { + return false; + } + @Override public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List res) { if(tileBox.getZoom() >= startZoomRoute && route != null) {