This commit is contained in:
unknown 2014-05-30 10:05:36 +03:00
commit 64da5236bb
57 changed files with 2197 additions and 513 deletions

View file

@ -28,6 +28,7 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true"
android:xlargeScreens="true" android:anyDensity="true" />
@ -129,7 +130,14 @@
<activity android:name="net.osmand.plus.osmo.SettingsOsMoActivity" android:configChanges="keyboardHidden|orientation"></activity>
<activity android:name="net.osmand.plus.osmo.OsMoGroupsActivity"></activity>
<activity android:name="net.osmand.plus.osmo.OsMoGroupsActivity">
<intent-filter>
<data android:scheme="http" android:host="z.osmo.mobi" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"></category>
</intent-filter>
</activity>
<activity android:name="net.osmand.plus.activities.search.SearchPOIActivity" android:label="@string/searchpoi_activity"></activity>

View file

@ -2,8 +2,8 @@
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:stretchColumns="1" >
<TableRow>
@ -59,5 +59,20 @@
android:inputType="textCapWords"
android:paddingLeft="3dp" />
</TableRow>
<TableRow android:id="@+id/MyGroupName" android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/osmo_connect_to_my_nickname" />
<EditText
android:id="@+id/NickName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textCapWords"
android:paddingLeft="3dp" />
</TableRow>
</TableLayout>

View file

@ -2,8 +2,8 @@
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:stretchColumns="1" >
<TableRow>

View file

@ -1,52 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:orientation="vertical" >
android:layout_height="wrap_content"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:stretchColumns="1" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1" >
<TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/osmo_connect_to_device_name" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/osmo_connect_to_device_name" />
<EditText
android:id="@+id/Name"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="" >
<EditText
android:id="@+id/Name"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:text="" >
<requestFocus />
</EditText>
</TableRow>
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableRow
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/osmo_edit_color" >
</TextView>
<Spinner
android:id="@+id/ColorSpinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" >
</Spinner>
</TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/osmo_edit_color" >
</TextView>
<Spinner
android:id="@+id/ColorSpinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" >
</Spinner>
</TableRow>
</TableLayout>
</LinearLayout>
</TableLayout>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="route_updated_loc_found">Roete sal herbereken word wanneer die ligging bepaal is</string>
<string name="osmand_parking_hours">Ure</string>
<string name="osmand_parking_minutes">Minute</string>
@ -1386,4 +1386,19 @@ OsmAnd (OSM Automated Navigation Directions) is \\\'n kaart en navigasie toepass
<string name="lang_af">Afrikaans</string>
<string name="lang_hy">Armeens</string>
<string name="lang_eu">Baskies</string>
</resources>
<string name="color_red">rooi</string>
<string name="color_pink">pienk</string>
<string name="color_orange">oranje</string>
<string name="color_brown">bruin</string>
<string name="color_yellow">geel</string>
<string name="color_lightblue">ligblou</string>
<string name="color_blue">blou</string>
<string name="color_magenta">purperrooi</string>
<string name="osmo_edit_device">Verander gebruiker eienskappe</string>
<string name="osmo_edit_color">Vertoon kleur</string>
<string name="osmo_group_info">Inligting</string>
<string name="osmo_group">OsMo groep</string>
<string name="osmo_group_share">Om by groep %2$s in te skakel, spesifiseer groep id (%1$s)</string>
<string name="osmo_share_connect_device">Volg hierdie toestel permanent</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="auto_zoom_none">Без аўтаматычнага масштабіраваньня</string>
<string name="auto_zoom_close">Зачыніць</string>
<string name="auto_zoom_far">Для сярэдняга масштаба</string>
@ -1630,8 +1630,12 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
<string name="interrupt_music">Перапыненьне музыкі</string>
<string name="osmo_settings_uuid">Унікальны ідэнтыфікатар прылады</string>
<string name="osmo_settings_descr">Глянуць унікальны рэгістрацыйны ключ прыстасаваньня і наладзіць асабісты канал адсочваньня</string>
<string name="osmo_plugin_description">OpenStreetMap-Маніторынг - Пашыранае адсочваньне у рэальным часе з шырокім наборам функцый для дыстанцыйнага кіравання http://osmo.mobi</string>
<string name="osmo_plugin_name">OSMo (Пашыранае адсочваньне ў рэальным часе)</string>
<string name="osmo_plugin_description">OpenStreetMap-Маніторынг - Пашыранае адсочваньне ў рэальным часе. Яно забяспечвае магчымасьці для адсочваньня гэтага і іншых прыстасаваньняў.
Дазваляе ствараць ананімныя групы, дзяліцца адзін з адным месцазнаходжаньнем і камунікаваць. Яно мае розныя параметры для сеансавага або пастаяннага сачэньня.
Ананімныя групы абмежаваныя па колькасьці дзён і па магчымасьцях, г.зн. няма дыстанцыйнага кіраваньня і адміністратара групы.
Паўнавартасныя групы ствараюцца праз вэб-сайт і толькі зарэгістраваныя карыстальнікі маюць доступ да іх.
Падрабязьней на http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Пашыранае адсочваньне ў рэальным часе)</string>
<string name="osmo_settings">OSMo</string>
<string name="always_center_position_on_map">Паказваць становішча заўсёды ў цэнтры</string>
<string name="route_descr_destination"> </string>
@ -1742,4 +1746,43 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
<string name="osmo_new_device">Падключыцца да прыстасавання</string>
<string name="osmo_connected_devices">Падключаныя прыстасаванні</string>
<string name="osmo_groups">OsMo Групы/Прыстасаванні</string>
<string name="osmo_group_info">Інфармацыя</string>
<string name="osmo_group">Група OsMo</string>
<string name="osmo_group_share">Каб падключыцца да групы %2$s, задайце ID групы (%1$s)</string>
<string name="osmo_share_connect_device">Дазволіць пастаянна адсочваць дадзенае прыстасаванне</string>
<string name="osmo_share_current_session">Падзяліцца бягучай сесіяй у браўзэры</string>
<string name="osmo_share_session">Падзяліцца сэсіяй</string>
<string name="osmo_session_id_share">URL сесіі для адсочвання прыстасавання (%1$s)</string>
<string name="osmo_track_interval_descr">Выберыце часавы інтэрвал для адпраўкі месцазнаходжання</string>
<string name="int_days">дзён</string>
<string name="osmo_connect_menu">Падлучыцца</string>
<string name="osmo_group_description">Апісанне</string>
<string name="osmo_group_policy">Палітыка</string>
<string name="osmo_connect_to_group_id">ID групы</string>
<string name="osmo_group_name">Назва групы</string>
<string name="osmo_connect_to_group">Падлучыцца да групы</string>
<string name="osmo_connect">Падлучыцца да</string>
<string name="osmo_create_group">Стварыць групу</string>
<string name="osmo_server_operation_failed">Памылка аперацыі на сэрвэры OsMo</string>
<string name="osmo_activity">Osm Маніторынг</string>
<string name="osmo_enable_tracker">Адправіць маё месцазнаходжанне</string>
<string name="local_index_mi_export">Экспарт</string>
<string name="import_file_favourites">Захаваць як файл GPX або імпартаваць у абранае?</string>
<string name="import_save">Захаваць</string>
<string name="osmo_track_interval">Інтэрвал адсылкі дадзеных</string>
<string name="osmo_expire_group">Тэрмін дзеяння сканчаецца праз</string>
<string name="osmo_control">Хуткі доступ OsMo</string>
<string name="osmo_session_not_available">Сесія не даступная, калі ласка, пераканайцеся, што пункт \'Адсылаць месцазнаходжанне\' уключаны.</string>
<string name="osmo_tracker_id_share">Каб падключыцца да патрэбнага прыстасавання %2$s задайце ідэнтыфікатар трэкеру (%1$s)</string>
<string name="color_red">чырвоны</string>
<string name="color_pink">ружовы</string>
<string name="color_orange">аранжавы</string>
<string name="color_brown">карычневы</string>
<string name="color_yellow">жоўты</string>
<string name="color_lightblue">блакітны</string>
<string name="color_blue">сіні</string>
<string name="color_magenta">пурпурны</string>
<string name="osmo_edit_color">Выбар колеру</string>
<string name="osmo_edit_device">Зьмяніць налады карыстальніка</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="tip_recent_changes_1_5_t">Промени в 1.5:
\n\t* Гласови предупреждения за пътни ограничения и камери
\n\t* Гласово обявяване имената на улиците

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="show_warnings_title">Mostra els missatges d\'avís…</string>
<string name="map_widget_fluorescent">Rutes amb fluorescència</string>
<string name="map_widget_show_ruler">Mostra el regle</string>
@ -1749,4 +1749,32 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
<string name="osmo_new_device">Connectar al dispositiu</string>
<string name="osmo_connected_devices">Dispositius connectats</string>
<string name="osmo_groups">OsMo Grups/Dispositius</string>
</resources>
<string name="osmo_group_info">Informació</string>
<string name="osmo_group">Grup OsMo</string>
<string name="osmo_group_share">Per connectar al grup %2$s, especifiqui l\'identificador de grup (%1$s)</string>
<string name="osmo_share_connect_device">Permetre el seguiment d\'aquest dispositiu permanentment</string>
<string name="osmo_share_current_session">Compartir la posició actual al navegador</string>
<string name="osmo_session_not_available">Sessió no disponible, si us plau verifiqui que \'Enviar posicions\' està activat.</string>
<string name="osmo_share_session">Compartir la sessió</string>
<string name="osmo_session_id_share">URL de la sessió per seguir el dispositiu (%1$s)</string>
<string name="osmo_tracker_id_share">Per connectar al dispositiu destí %2$s, especifiqui l\'identificador de seguiment (%1$s)</string>
<string name="osmo_track_interval">Freqüència de registre</string>
<string name="osmo_track_interval_descr">Seleccioneu la freqüència d\'enviament de la posició</string>
<string name="int_days">dies</string>
<string name="osmo_connect_menu">Connecti</string>
<string name="osmo_expire_group">Expira en</string>
<string name="osmo_group_description">Descripció</string>
<string name="osmo_group_policy">Política</string>
<string name="osmo_connect_to_group_id">Identificador de grup</string>
<string name="osmo_group_name">Nom del grup</string>
<string name="osmo_connect_to_group">Enllaç al grup</string>
<string name="osmo_connect">Connexió a</string>
<string name="osmo_create_group">Crear un grup</string>
<string name="osmo_server_operation_failed">Fallida del servidor OsMo</string>
<string name="osmo_activity">Monitorització OSM</string>
<string name="osmo_enable_tracker">Enviar les meves ubicacions</string>
<string name="osmo_control">Accés ràpid OsMo</string>
<string name="local_index_mi_export">Exportar</string>
<string name="import_file_favourites">Guardar com arxiu GPX o posar-lo als favorits?</string>
<string name="import_save">Guardar</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="switch_to_raster_map_to_see">Vektorové mapy toto místo neobsahují. Mapová data můžete stáhnout v Nastaveních (Offline data), nebo se přepněte na online mapy.</string>
<string name="tip_recent_changes_0_7_2_t">"Změny ve verzi 0.7.2 :
\n\t- Native rendering pro všechna zařízení
@ -1478,4 +1478,96 @@ s často kladenými otázkami.</string>
<string name="index_name_italy">Evropa - Itálie</string>
<string name="index_name_gb">Evropa - Velká Británie</string>
<string name="index_item_nation_addresses">Adresy - celonárodní</string>
</resources>
<string name="localization_pref_title">Lokalizace</string>
<string name="misc_pref_title">Různé</string>
<string name="voice_pref_title">Hlas</string>
<string name="always_center_position_on_map">Zobrazit pozici vždy uprostřed</string>
<string name="osmo_plugin_name">OsMo (Pokročilé monitorování)</string>
<string name="osmo_settings">OsMo OpenStreetMap monitorování (beta)</string>
<string name="osmo_settings_descr">Konfigurovat sledování a nastavit osobní monitorovací kanál</string>
<string name="osmo_settings_debug">Informace ladění</string>
<string name="osmo_mode_restart">Restartovat OsMo relaci</string>
<string name="osmo_mode_on">Zastavit OsMo relaci</string>
<string name="osmo_mode_off">Spustit OsMo relaci</string>
<string name="use_points_as_intermediates">Vypočítat trasu mezi body</string>
<string name="tip_recent_changes_1_8_alpha">Změny v 1.8:
* Počítání trasy mezi body GPX trasy
* Změněny názvy krajin v downloadech (podpora národního hledání)
* Podpora importu GPX/KML (konverze z KML do GPX)
</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitorování - Pokročilé monitorování. Poskytuje možnost sledování jiných zařízení nebo být sledován.
Vytvořte anonymní skupiny, sdílejte vzájemně polohu a komunikujte. Různé možnosti nastavení krátkodobého nebo trvalého sledování.
Anonymní skupiny jsou omezeny na počet dní a některými vlastnostmi, například nemají dálkové ovládání a skupinového správce.
Plně funkční skupiny se vytvářejí na webstránce a jsou přístupné pouze pro registrované uživatele.
Prosím čtěte více na http://osmo.mobi.</string>
<string name="color_red">červená</string>
<string name="color_pink">růžová</string>
<string name="color_orange">oranžová</string>
<string name="color_brown">hnědá</string>
<string name="color_yellow">žlutá</string>
<string name="color_lightblue">světle modrá</string>
<string name="color_blue">modrá</string>
<string name="color_magenta">purpurová</string>
<string name="osmo_edit_device">Změnit uživatelské vlastnosti</string>
<string name="osmo_edit_color">Zobrazit barvu</string>
<string name="osmo_group_info">Informace</string>
<string name="osmo_group">Skupina OsMo</string>
<string name="osmo_group_share">Aby bylo možné se připojit ke skupině %2$s, určete id skupiny (%1$s)</string>
<string name="osmo_share_connect_device">Trvale sledovat toto zařízení</string>
<string name="osmo_share_current_session">Sdílet aktuální relaci v prohlížeči</string>
<string name="osmo_session_not_available">Relace není k dispozici, prosím zkontrolujte že je zapnuta volba \'Odesílat pozici\'.</string>
<string name="osmo_share_session">Sdílet relaci</string>
<string name="osmo_session_id_share">Relace URL k sledování zařízení (%1$s)</string>
<string name="osmo_tracker_id_share">Aby bylo možné připojit cílové zařízení %2$s, určete ID sledovacího zařízení (%1$s)</string>
<string name="osmo_track_interval">Interval logování</string>
<string name="osmo_track_interval_descr">Vyberte časový interval odesílání polohy</string>
<string name="int_days">dnů</string>
<string name="osmo_connect_menu">Připojit</string>
<string name="osmo_expire_group">Vyprší za</string>
<string name="osmo_group_description">Popis</string>
<string name="osmo_group_policy">Politika</string>
<string name="osmo_connect_to_device_tracker_id">ID sledovacího zařízení</string>
<string name="osmo_connect_to_device_name">Jméno uživatele</string>
<string name="osmo_connect_to_group_id">ID skupiny</string>
<string name="osmo_group_name">Název skupiny</string>
<string name="osmo_connect_to_device">Připojit k zařízení</string>
<string name="osmo_connect_to_group">Připojit ke skupině</string>
<string name="osmo_connect">Připojit k</string>
<string name="osmo_create_group">Vytvořit skupinu</string>
<string name="osmo_server_operation_failed">Chyba operace na serveru OsMo</string>
<string name="osmo_activity">OsMo monitorování</string>
<string name="osmo_enable_tracker">Odeslat mou pozici</string>
<string name="osmo_control">OsMo rychlý přístup</string>
<string name="hours_ago">hodin dozadu</string>
<string name="minutes_ago">munut dozadu</string>
<string name="seconds_ago">sekund dozadu</string>
<string name="osmo_connected_devices">Připojená zařízení</string>
<string name="osmo_groups">OsMo skupiny/zařízení</string>
<string name="osmo_auto_send_locations_descr">Automaticky spustit relaci sledování a odesílat polohu po spuštení aplikace</string>
<string name="osmo_auto_send_locations">Automaticky spustit relaci sledování</string>
<string name="osmo_tracker_id">Osobní ID sledovacího zařízení</string>
<string name="osmo_tracker_id_descr">Klikněte pro zobrazení nebo sdílení ID sledovacího zařízení.↵
Pomocí ID budou připojená zařízení schopná sledovat všechny pohyby tohoto zařízení! Pro odpojení použijte možnost "Přegenerovat".</string>
<string name="osmo_session_token">Token relace : %1$s</string>
<string name="osmo_auth_pending">Čekání na autorizaci...</string>
<string name="osmo_locations_sent">Odeslané polohy %1$d (v zásobníku %2$d) </string>
<string name="osmo_conn_successfull">Vytvořená spojení : %1$s </string>
<string name="osmo_io_error">Problém s připojením OsMo: </string>
<string name="osmo_settings_uuid">Jedinečné ID zařízení</string>
<string name="interrupt_music_descr">Přerušit hudbu při oznámení</string>
<string name="interrupt_music">Přerušit hudbu</string>
<string name="share_route_as_gpx">Sdílet trasu jako GPX soubor</string>
<string name="share_route_subject">Sdílená trasa přes OsmAnd</string>
<string name="arrival_distance">Oznámení příjezdu</string>
<string name="arrival_distance_descr">Jak brzo oznamovat příjezd do cíle?</string>
<string name="keep_informing_never">Nikdy</string>
<string name="keep_informing_descr">Znovu opakovat navigační pokyny v pravidelných intervalech</string>
<string name="keep_informing">Opakovat navigační pokyny</string>
<string name="local_index_mi_export">Exportovat</string>
<string name="import_file_favourites">Uložit jako GPX soubor nebo importovat do oblíbených?</string>
<string name="import_save">Uložit</string>
<string name="share_fav">Sdílet</string>
<string name="share_fav_subject">Oblíbené sdílené přes OsmAnd</string>
<string name="navigation_intent_invalid">Neplatný formát : %s</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="srtm_paid_version_msg">Overvej at købe Højdekurve udvidelsen (\'Contour lines\') på Google Play for at støtte den videre udvikling.</string>
<string name="av_def_action_video">Optag video</string>
<string name="av_def_action_audio">Optag audio</string>
@ -986,7 +986,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="send_location_way_choose_title">Del placering ved hjælp af</string>
<string name="send_location_sms_pattern">Placering: %1$s
\n%2$s</string>
<string name="send_location_email_pattern">For at se placering følg webadresse %1$s eller android hensigts link %2$s</string>
<string name="send_location_email_pattern">For at se placering brug webadressen %1$s eller Android hensigts link %2$s</string>
<string name="send_location">Send placering</string>
<string name="context_menu_item_share_location">Del placering</string>
<string name="add_waypoint_dialog_added">GPX-rutepunkt \'{0}\' blev korrekt tilføjet</string>
@ -1216,7 +1216,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="map_orientation_portrait">Stående</string>
<string name="map_orientation_landscape">Liggende</string>
<string name="map_screen_orientation">Skærmretning</string>
<string name="map_screen_orientation_descr">Stående, liggende eller enhed</string>
<string name="map_screen_orientation_descr">Stående, liggende eller som enhed</string>
<string name="add_new_rule">Tilføj ny regel</string>
<string name="transport_Routes">Ruter</string>
<string name="transport_search_after">Efterfølgende rute</string>
@ -1545,9 +1545,9 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="av_camera_focus_continuous">Kameraet forsøger løbende at fokusere</string>
<string name="av_photo_play_sound_descr">Spil lyd når foto tages</string>
<string name="av_photo_play_sound">Kameralyd</string>
<string name="speak_traffic_warnings">Meddel om trafikadvarsler</string>
<string name="speak_cameras">Meddel om fotofælder</string>
<string name="speak_speed_limit">Meddel om hastighedsgrænse</string>
<string name="speak_traffic_warnings">Meddel trafikadvarsler</string>
<string name="speak_cameras">Meddel fotofælder</string>
<string name="speak_speed_limit">Meddel hastighedsgrænse</string>
<string name="route_descr_map_location">Kort: </string>
@ -1569,9 +1569,9 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="context_menu_item_directions_to">Kørselsvejledning til</string>
<string name="context_menu_item_directions_from">Kørselsvejledning fra</string>
<string name="speak_title">Meddel…</string>
<string name="speak_descr">Konfigurer til meddele gadenavne , trafikadvarsler ( tvungne stop, vejbump ) , fotofældeadvarsler , hastighedsbegrænsninger</string>
<string name="speak_descr">Konfigurer til at meddele gadenavne, trafikadvarsler (tvungne stop, vejbump), fotofældeadvarsler, hastighedsbegrænsninger</string>
<string name="speak_street_names">Meddel gadenavne (TTS)</string>
<string name="announce_gpx_waypoints">Meddel om GPX-rutepunkter</string>
<string name="announce_gpx_waypoints">Meddel GPX-rutepunkter</string>
<string name="osmodroid_mode_off">Start OsMoDroid</string>
<string name="osmodroid_mode_on">Stop OsMoDroid</string>
<string name="driving_region_japan">Japan</string>
@ -1771,11 +1771,15 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="navigation_intent_invalid">Ugyldigt format: %s</string>
<string name="osmo_settings_uuid">Unik enheds-id</string>
<string name="osmo_settings_descr">Konfigurer indstillinger for overvågning og opsætning af personlig overvågningskanal</string>
<string name="osmo_plugin_description">OpenStreetMap - Overvågning - Avanceret live overvågning med mange funktioner til fjernkontrol http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap - Overvågning - Advanced Live- Monitoring, giver muligheder for at spore andre enheder og selv at blive sporet.
Opret anonyme grupper, del hinandens placering og kommuniker. Der er forskellige indstillinger for session sporing eller permanent sporing.
Anonyme grupper er begrænset til et antal dage og nogle funktioner, dvs der er ingen fjernkontrol og gruppeadministrator.
Fuldt funktionelle grupper bør oprettes på hjemmesiden og kun registrerede brugere har adgang til dem.
Læs mere på http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (avanceret live overvågning)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo OpenStreetMap overvågning (beta)</string>
<string name="keep_informing_never">Aldrig</string>
<string name="keep_informing_descr">Annoncer navigationsinstruktioner med jævne mellemrum</string>
<string name="keep_informing_descr">Gentag navigationsinstruktioner med jævne mellemrum</string>
<string name="keep_informing">Gentag navigationsinstruktioner</string>
<string name="arrival_distance">Meddel ankomst</string>
<string name="arrival_distance_descr">Hvornår skal ankomst meddeles?</string>
@ -1789,11 +1793,12 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="tip_recent_changes_1_8_alpha">Ændringer i 1.8:
         * Beregn rute mellem rutepunkter i GPX-spor
         * Ændret udseende for hentning af lande (understøtter søgning på lokale navne)
* Understøtter GPX/KML import (konverter fra KML til GPX)
</string>
<string name="hours_ago">timer siden</string>
<string name="minutes_ago">minutter siden</string>
<string name="seconds_ago">sekunder siden</string>
<string name="osmo_connect_to_device_name">Enhedsnavn</string>
<string name="osmo_connect_to_device_name">Brugernavn</string>
<string name="osmo_connect_to_device_tracker_id">Sporings-id</string>
<string name="osmo_connect_to_device">Sammenkæd med enheden</string>
<string name="osmo_join_group">Tilmeld gruppen</string>
@ -1811,4 +1816,43 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="osmo_conn_successfull">Forbindelse oprettet: %1$s </string>
<string name="osmo_mode_restart">Genstart OsMo session</string>
<string name="osmo_settings_debug">Fejlsøgningsinformation</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo gruppe</string>
<string name="osmo_group_share">For at oprette forbindelse til gruppen %2$s, angiv gruppe-ID (%1$s)</string>
<string name="osmo_share_connect_device">Følg enheden permanent</string>
<string name="osmo_share_current_session">Del den aktuelle session i browser</string>
<string name="osmo_session_not_available">Sessionen er ikke tilgængelig, kontroller at \'Send placering\' er til.</string>
<string name="osmo_share_session">Del sessionen</string>
<string name="osmo_session_id_share">Session url til at spore enhed (%1$s)</string>
<string name="osmo_tracker_id_share">For at oprette forbindelse til målenheden %2$s, angiv sporings-ID (%1$s)</string>
<string name="osmo_track_interval">Logningsinterval</string>
<string name="osmo_track_interval_descr">Vælg tidsinterval til at sende placering</string>
<string name="int_days">dage</string>
<string name="osmo_connect_menu">Forbind</string>
<string name="osmo_expire_group">Udløber om</string>
<string name="osmo_group_description">Beskrivelse</string>
<string name="osmo_group_policy">Politik</string>
<string name="osmo_connect_to_group_id">Gruppe-id</string>
<string name="osmo_group_name">Gruppenavn</string>
<string name="osmo_connect_to_group">Sammenkæd med gruppe</string>
<string name="osmo_connect">Opret forbindelse til</string>
<string name="osmo_create_group">Opret gruppe</string>
<string name="osmo_server_operation_failed">Osmo Server operation mislykkedes</string>
<string name="osmo_activity">OsMo overvågning</string>
<string name="osmo_enable_tracker">Send placeringer</string>
<string name="osmo_control">OsMo hurtig adgang</string>
<string name="local_index_mi_export">Eksport</string>
<string name="import_file_favourites">Gem som GPX-fil eller importer til favoritter?</string>
<string name="import_save">Gem</string>
<string name="color_red">rød</string>
<string name="color_pink">lyserød</string>
<string name="color_orange">orange</string>
<string name="color_brown">brun</string>
<string name="color_yellow">gul</string>
<string name="color_lightblue">lyseblå</string>
<string name="color_blue">blå</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Ændre brugeregenskaber</string>
<string name="osmo_edit_color">Visningsfarve</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="route_is_too_long">Die Route ist wahrscheinlich zu lang um vom OsmAnd-Offline-Router berechnet zu werden. Offline-Routing ist bis ungefähr 200 km Abstand zwischen einzelnen Punkten möglich. Bitte einen oder mehrere Zwischenpunkte setzen um die Route berechnen zu können.</string>
<string name="auto_zoom_none">Kein Auto-Zoom</string>
<string name="auto_zoom_close">Auf Nahbereich</string>
@ -1738,7 +1738,10 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
<string name="navigation_intent_invalid">Ungültiges Format: %s</string>
<string name="osmo_settings_uuid">Geräte-ID</string>
<string name="osmo_settings_descr">Konfigurieren der Überwachungs-Einstellungen und des persönlichen Überwachungs-Kanals</string>
<string name="osmo_plugin_description">OpenStreetMap-Überwachung - Erweiterte Live-Überwachung mit vielen Funktionen zur Steuerung aus der Ferne http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Überwachung - Erweiterte Live-Überwachung. Dies ermöglicht die Verfolgung von anderen Geräten und diesem Gerät.
Erstellen anonymer Gruppen, teilen des Standortes sowie Kommunizieren untereinander. Es gibt verschiedene Einstellungen zum Aufzeichnen einer Sitzung oder einer permanenten Aufzeichnung.
Voll funktionsfähige Gruppen müssen auf der Internetseite erstellt werden, auf diese haben nur registrierte Nutzer Zugriff.
Weitere Informationen unter: http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Erweiterte Live-Überwachung)</string>
<string name="osmo_settings">OsMo</string>
<string name="keep_informing_never">Niemals</string>
@ -1773,4 +1776,42 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
<string name="osmo_connect_to_device">Mit Gerät koppeln</string>
<string name="osmo_join_group">Gruppe beitreten</string>
<string name="osmo_groups">OsMo Gruppen/Geräte</string>
</resources>
<string name="color_red">rot</string>
<string name="color_pink">pink</string>
<string name="color_orange">orange</string>
<string name="color_brown">braun</string>
<string name="color_yellow">gelb</string>
<string name="color_lightblue">hellblau</string>
<string name="color_blue">blau</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Ändern der Nutzereinstellungen</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo-Gruppe</string>
<string name="osmo_group_share">Um eine Verbindung zur Gruppe %2$s herzustellen, bitte die Gruppen-ID (%1$s) angeben</string>
<string name="osmo_share_connect_device">Diesem Gerät permanent folgen</string>
<string name="osmo_share_current_session">Aktuelle Sitzung im Browser teilen</string>
<string name="osmo_session_not_available">Sitzung nicht verfügbar, bitte überprüfen, ob \'Standort senden\'\ aktiviert ist.</string>
<string name="osmo_share_session">Sitzung teilen</string>
<string name="osmo_session_id_share">Sitzungs-URL zur Geräte-Verfolgung (%1$s)</string>
<string name="osmo_track_interval">Aufzeichnungs-Intervall</string>
<string name="osmo_track_interval_descr">Zeit-Intervall zum Senden des Standortes auswählen</string>
<string name="int_days">Tage</string>
<string name="osmo_connect_menu">Verbinden</string>
<string name="osmo_expire_group">Läuft ab in</string>
<string name="osmo_group_description">Beschreibung</string>
<string name="osmo_group_policy">Policy</string>
<string name="osmo_connect_to_group_id">Gruppen-ID</string>
<string name="osmo_group_name">Gruppen-Name</string>
<string name="osmo_connect_to_group">mit Gruppe verbinden</string>
<string name="osmo_connect">Verbinden mit</string>
<string name="osmo_create_group">Gruppe erstellen</string>
<string name="osmo_server_operation_failed">OsMo-Server-Vorgang fehlgeschlagen</string>
<string name="osmo_activity">OsMo-Überwachung</string>
<string name="osmo_enable_tracker">meine Standorte senden</string>
<string name="osmo_control">OsMo-Schnellzugriff</string>
<string name="osmo_connected_devices">Verbundene Geräte</string>
<string name="local_index_mi_export">Export</string>
<string name="import_file_favourites">GPX-Datei speichern oder zu den Favoriten importieren?</string>
<string name="import_save">Speichern</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="live_monitoring_mode_off">Iniciar\n seguimiento en directo</string>
<string name="live_monitoring_mode_on">Parar\n seguimiento en directo</string>
<string name="layer_map_appearance">Configura pantalla</string>
@ -1644,14 +1644,18 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="interrupt_music">Interrumpir música</string>
<string name="osmo_settings_uuid">Id único del dispositivo</string>
<string name="osmo_settings_descr">Configurar opciones de monitorización y configurar canal de monitoreo</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Monitoreo avanzada en directo con muchas características para control remoto http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Monitoreo avanzado en directo. Proporcionar la posibilidad de seguir otros dispositivos y ser seguido.
Cree grupos anónimos, compartan sus localizaciones y comuníquense. Tiene varias opciones para seguimiento por sesión o permanente.
Los grupos anónimos están limitados a varios días y a algunas funcionalidades, p.e. no hay control remoto ni administrador de grupo.
Los grupos completamente funcionales deben ser creados en la web y solo los usuarios registrados tienen acceso a ellos.
Por favor, lea más en http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Monitoreo avanzado en directo)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo OpenStreetMap Monitoring (beta)</string>
<string name="share_route_as_gpx">Compartir ruta como fichero GPX</string>
<string name="share_route_subject">Ruta compartida vía OsmAnd</string>
<string name="navigation_intent_invalid">Formato inválido: %s</string>
<string name="keep_informing_never">Nunca</string>
<string name="keep_informing_descr">Anunciar instrucciones de navegación a intervalos regulares</string>
<string name="keep_informing_descr">Re-anunciar instrucciones de navegación a intervalos regulares</string>
<string name="keep_informing">Repetir instrucciones de navegación</string>
<string name="arrival_distance">Anuncio de llegada</string>
<string name="arrival_distance_descr">¿Para cuándo quiere el anuncio de llegada?</string>
@ -1665,12 +1669,65 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="tip_recent_changes_1_8_alpha">Cambios en 1.8:
* Calcular ruta entre puntos de ruta de una pista GPX
* Cambiada disposición de países para descargas (soporta búsquedas de nombres locales)
* Suporta importación de GPX/KML (conversión de KML a GPX)
</string>
<string name="osmo_connect_to_device_name">Nombre del dispositivo</string>
<string name="osmo_connect_to_device_name">Nombre de usuario</string>
<string name="osmo_new_device">Conectarse al dispositivo</string>
<string name="osmo_connected_devices">Dispositivos conectados</string>
<string name="osmo_auth_pending">Esperando autorización...</string>
<string name="osmo_locations_sent">Localizaciones enviadas %1$d (en buffer %2$d) </string>
<string name="osmo_conn_successfull">Conexión establecida : %1$s </string>
<string name="osmo_groups">Grupos/Dispositivos OsMo</string>
</resources>
<string name="osmo_group_info">Info</string>
<string name="color_red">rojo</string>
<string name="color_pink">rosa</string>
<string name="color_orange">naranja</string>
<string name="color_brown">marrón</string>
<string name="color_yellow">amarillo</string>
<string name="color_lightblue">azul claro</string>
<string name="color_blue">azul</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Cambiar propiedades de usuario</string>
<string name="osmo_edit_color">Mostrar color</string>
<string name="osmo_group">Grupo OsMo</string>
<string name="osmo_group_share">Para conectarse al grupo %2$s, especifique el id del grupo (%1$s)</string>
<string name="osmo_share_connect_device">Seguir permanentemente este dispositivo</string>
<string name="osmo_share_current_session">Compartir sesión actual en navegador</string>
<string name="osmo_session_not_available">Sesión no disponible, compruebe que \'Enviar localizaciones\' está activado por favor.</string>
<string name="osmo_share_session">Compartir sesión</string>
<string name="osmo_session_id_share">Url de la sesión para seguir dispositivo (%1$s)</string>
<string name="osmo_tracker_id_share">Para conectarse al dispositivo %2$s, especificar id (%1$s)</string>
<string name="osmo_track_interval">Intervalo de registro</string>
<string name="osmo_track_interval_descr">Elija intervalo de tiempo para enviar localización</string>
<string name="int_days">días</string>
<string name="osmo_connect_menu">Conectar</string>
<string name="osmo_expire_group">Expira en</string>
<string name="osmo_group_description">Descripción</string>
<string name="osmo_group_policy">Política</string>
<string name="osmo_connect_to_device_tracker_id">Id de rastreo</string>
<string name="osmo_connect_to_group_id">Id de grupo</string>
<string name="osmo_group_name">Nombre de grupo</string>
<string name="osmo_connect_to_device">Emparejar con dispositivo</string>
<string name="osmo_connect_to_group">Emparejar con grupo</string>
<string name="osmo_connect">Conectase a</string>
<string name="osmo_create_group">Crear grupo</string>
<string name="osmo_server_operation_failed">Fallo de operación de Servidor OsMo</string>
<string name="osmo_activity">Monitorización OsMo</string>
<string name="osmo_enable_tracker">Enviar mis localizaciones</string>
<string name="osmo_control">Acceso rápido OsMo</string>
<string name="hours_ago">horas antes</string>
<string name="minutes_ago">minutos antes</string>
<string name="seconds_ago">segundos antes</string>
<string name="osmo_auto_send_locations_descr">Automáticamente iniciar sesión de seguimiento y enviar localizaciones después de iniciar la aplicación</string>
<string name="osmo_auto_send_locations">Automáticamente iniciar sesión de rastreo</string>
<string name="osmo_tracker_id">Id de rastreo personal</string>
<string name="osmo_tracker_id_descr">Click para ver o compartir id de rastreo.
¡Usando el id de rastreo los dispositivos conectados podrán monitorear todos los movimientos de este dispositivo! Para desconectar seleccione la opción Regenerar.</string>
<string name="osmo_session_token">Token de sesión: %1$s</string>
<string name="osmo_mode_restart">Reiniciar sesión OsMo</string>
<string name="osmo_settings_debug">Información de debug</string>
<string name="local_index_mi_export">Exportar</string>
<string name="import_file_favourites">¿Guardar como archivo GPX o importar a favoritos?</string>
<string name="import_save">Guardar</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="tip_recent_changes_1_6_t">1.6 bertsioan aldaketak:⏎\n⇥⏎\n⇥* Sareko tesela iturburuak definitu/editatu (iraungitze data zehaztu)⏎</string>
<string name="local_index_tile_data_zooms">Deskargatutako zoomak: %1$s</string>
<string name="local_index_tile_data_expire">Iraungitze epea (minutuak): %1$s</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="local_osm_changes_backup_failed">پشتیبان‌گیری از تغییرات OsmAnd ناموفق بود</string>
<string name="plugin_distance_point_time">زمان</string>
<string name="plugin_distance_point_hdop">دقت</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="offline_edition">Modifications hors-ligne</string>
<string name="offline_edition_descr">Toujours utiliser l\'édition hors-ligne</string>
<string name="tip_recent_changes_0_7_1_t">"Changements en 0.7.1 :
@ -11,7 +11,7 @@
\n\t- État des fichiers de cartes désactivés affichés dans l\'écran de téléchargement en vert foncé et bleu foncé
\n\t- Modifications diverses "</string>
<string name="update_poi_does_not_change_indexes">Les modifications de PI dans l\'application sont sans effet sur les cartes téléchargées, les modifications sont enregistrées dans un fichier.</string>
<string name="local_openstreetmap_uploading">Envoi</string>
<string name="local_openstreetmap_uploading">Transfert</string>
<string name="local_openstreetmap_were_uploaded">{0} PI/bogues ont été envoyés</string>
<string name="local_openstreetmap_uploadall">Tout envoyer</string>
@ -100,7 +100,7 @@
<string name="use_transparent_map_theme">Thème de transparence</string>
<string name="native_library_not_supported">Rendu acceléré non supporté sur cet appareil.</string>
<string name="init_native_library">Initialisation du rendu acceléré…</string>
<string name="init_native_library">Initialisation du rendu accéléré…</string>
<string name="choose_auto_follow_route">Suivi automatique de la carte</string>
<string name="choose_auto_follow_route_descr">Temps avant que la carte se recentre sur la position actuelle</string>
<string name="auto_follow_route_never">Jamais</string>
@ -142,13 +142,13 @@
<string name="local_index_mi_rename">Renommer</string>
<string name="show_gpx_route">Afficher sur la carte</string>
<string name="poi_filter_nominatim">Nominatim en ligne</string>
<string name="search_position_current_location_search">Recherche de l\'emplacement</string>
<string name="search_position_current_location_search">Recherche de la position</string>
<string name="search_position_current_location_found">Emplacement[Trouvé]</string>
<string name="search_position_address">Adresse…</string>
<string name="search_position_favorites">Favori…</string>
<string name="search_position_undefined">Non défini</string>
<string name="search_position_fixed">Fixé</string>
<string name="search_position_current_location">Emplacement actuel</string>
<string name="search_position_current_location">Position actuelle</string>
<string name="search_position_map_view">Dernière vue</string>
<string name="select_search_position">Recherche autour de :</string>
<string name="context_menu_item_search">Rechercher autour du point</string>
@ -238,7 +238,7 @@
<string name="gpx_option_reverse_route">Inverser l\'itinéraire GPX</string>
<string name="gpx_option_destination_point">Utiliser la destination en cours</string>
<string name="gpx_option_from_start_point">Suivre l\'ensemble de la trace</string>
<string name="switch_to_vector_map_to_see">Vous pouvez basculer sur les cartes vectorielles locales en utilisant le menu (Couches -&gt; Source de la carte… -&gt; Cartes vectorielles OSM) pour voir la carte.</string>
<string name="switch_to_vector_map_to_see">Cartes vectorielles disponibles pour cette position. \n\t\n\tPour activer: \'Menu\'→\'Couches\'→\'Source de la carte…\'→\'Cartes vectorielles hors ligne\'.</string>
<string name="choose_audio_stream">Canal de sortie</string>
<string name="choose_audio_stream_descr">Sélectionner le canal à utiliser pour le guidage vocal (dépend de la configuration système)</string>
<string name="voice_stream_voice_call">Canal d\'appels vocaux</string>
@ -253,7 +253,7 @@
<string name="layer_underlay">Fond de carte…</string>
<string name="map_underlay">Fond de carte</string>
<string name="map_underlay_descr">Choisir un fond de carte</string>
<string name="layer_overlay">Sur-couche de la carte…</string>
<string name="layer_overlay">Sur-couche de carte…</string>
<string name="default_none">Aucun</string>
<string name="map_overlay">Sur-couche de la carte</string>
<string name="map_overlay_descr">Choisir la carte en sur-couche</string>
@ -272,12 +272,12 @@
</string>
<string name="level_to_switch_vector_raster_descr">Niveau de zoom maximum pour l\'utilisation des cartes vectorielles au lieu des tuiles de carte</string>
<string name="level_to_switch_vector_raster">Niveau de zoom vectoriel</string>
<string name="tip_location_sharing">Partage d\'emplacement</string>
<string name="tip_location_sharing_t">\tPendant votre voyage, vous notez un point d\'intérêt que vous voulez partager avec des amis ou de la famille ?
<string name="tip_location_sharing">Partager la position</string>
<string name="tip_location_sharing_t">Pendant votre voyage, vous notez un point d\'intérêt que vous voulez partager avec des amis ou de la famille ?
\n\tOsmAnd vous permet de facilement partager un lieu.
\n\tAllez dans \'Menu contextuel de la carte\' → \'Partager le lieu\'.
\nSélectionnez alors le mode de partage parmi : courriel, SMS, ou copie vers le presse-papier.
</string>
</string>
<string name="tip_favorites">Lieux favoris</string>
<string name="tip_favorites_t">"\tLes points utilisés fréquemment peuvent être enregistrés en tant que favoris.
\n\tPour créer un favori, allez dans le menu contextuel de la carte, sélectionnez l\'option \'Ajouter aux favoris\' et saisissez un nom adapté. Après enregistrement, ce lieu est facilement accessible dans \'Menu\' → \'Favoris\'.
@ -290,7 +290,7 @@
<string name="system_locale">Système</string>
<string name="preferred_locale_descr">Sélectionner la langue employée à l\'écran</string>
<string name="preferred_locale">Langue de l\'interface</string>
<string name="tip_map_switch">Source de cartes</string>
<string name="tip_map_switch">Sélectionner une source de carte</string>
<string name="tip_app_mode">Mode de fonctionnement</string>
@ -308,15 +308,15 @@
\n\t* dans l\'historique des recherches
\n\tDans chacun des cas, il vous sera proposé un choix entre \'Navigation\' (vers le point) ou \'Voir sur la carte\', etc.
</string>
<string name="tip_map_context_menu">Menu contextuel de la carte</string>
<string name="tip_map_context_menu">Menu \'Utiliser position\'</string>
<string name="tip_map_context_menu_t">\tLe menu contextuel de la carte regroupe les actions possibles au niveau d\'un point (un lieu).
\n\tIl est disponible par un appui long au niveau du point sur la carte, suivi d\'un appui court sur la bulle apparue avec les coordonnées du point (un appui long sur la bulle la fait disparaître).
\n\tIl est également disponible via \'Menu\' → \'Options du point…\', ou par un appui sur le bouton trackball (dans ces deux derniers cas, le point défini est le centre de la carte).
</string>
<string name="tip_initial">Conseils et astuces</string>
<string name="tip_initial_t">\tOsmAnd est une application de navigation avec beaucoup de fonctionnalités.
\n\tPour mieux les utiliser, consultez les conseils et astuces disponibles en lien en haut du menu principal.
</string>
<string name="tip_initial_t">OsmAnd est une application de navigation avec beaucoup de fonctionnalités.
\n\nPour une introduction générale, il y a quelques trucs et astuces disponibles via \'Menu\'→\'Conseils\' depuis l\'écran principal.
</string>
<string name="next_button">Suivant</string>
<string name="previous_button">Précédent</string>
<string name="unit_of_length_descr">Sélectionner les unités de distance et vitesse à utiliser</string>
@ -333,7 +333,7 @@
<string name="send_location_email_pattern">Pour voir ce lieu, suivre le lien web %1$s ou android %2$s</string>
<string name="send_location">Envoyer le lieu</string>
<string name="context_menu_item_share_location">Partager le lieu</string>
<string name="add_waypoint_dialog_added">Étape \'\'{0}\'\' ajoutée avec succès</string>
<string name="add_waypoint_dialog_added">Point GPX \'\'{0}\'\' ajouté avec succès</string>
<string name="add_waypoint_dialog_title">Ajouter une étape à une trace GPX enregistrée</string>
<string name="context_menu_item_add_waypoint">Ajouter une étape GPX</string>
<string name="amenity_type_administrative">Territoire</string>
@ -360,7 +360,7 @@
<string name="indexing_address">Indexation de l\'adresse…</string>
<string name="indexing_map">Indexation de la carte…</string>
<string name="indexing_poi">Indexation du PI…</string>
<string name="indexing_transport">Indexation du transport</string>
<string name="indexing_transport">Indexation des transports</string>
<string name="input_output_error">Erreur d\'entrée/sortie</string>
<string name="km">km</string>
<string name="km_h">km/h</string>
@ -373,7 +373,7 @@
<string name="poi_filter_for_tourists">Pour voyageurs</string>
<string name="poi_filter_fuel">Carburant</string>
<string name="poi_filter_namefinder">Recherche de PI en ligne</string>
<string name="reading_cached_tiles">Lecture carreaux en cache…</string>
<string name="reading_cached_tiles">Lecture des tuiles en cache…</string>
<string name="version_index_is_big_for_memory">L\'index \'\'{0}\'\' est trop gros pour la mémoire</string>
<string name="version_index_is_not_supported">La version de l\'\'index \'\'{0}\'\' n\'\'est pas supporté</string>
<string name="use_osmand_routing_service">Navigation hors-ligne OsmAnd &gt;20km</string>
@ -1044,13 +1044,14 @@
\n\tVous pouvez changer de profil via le bouton dédié dans l\'angle inférieur gauche de la carte (icône voiture, vélo, ou piéton), ou lors de la création d\'un itinéraire.
</string>
<string name="avoid_motorway">Éviter les autoroutes</string>
<string name="tip_recent_changes_0_8_4_t">Changements en 0.8.4 :\n\t* Quelques corrections de bugs\n\t* La carte ne perd plus la position après des interruptions\n\t* Activer le service d\'arrière-plan pendant la navigation</string>
<string name="tip_recent_changes_0_8_4_t">Changements en 0.8.4 :\n\t* Quelques corrections de bugs\n\t* La carte ne perd plus la position après des interruptions\n\t* Activer le service d\'arrière-plan pendant la navigation
</string>
<string name="context_menu_item_last_intermediate_point">Ajouter comme dernière étape</string>
<string name="context_menu_item_first_intermediate_point">Ajouter comme première étape</string>
<string name="add_as_last_destination_point">Ajouter comme dernière étape</string>
<string name="add_as_first_destination_point">Ajouter comme première étape</string>
<string name="replace_destination_point">Remplacer le point de destination</string>
<string name="new_destination_point_dialog">Vous avez déjà défini un point de destination.</string>
<string name="new_destination_point_dialog">Vous avez déjà défini la destination.</string>
<string name="target_point">Étape %1$s</string>
<string name="target_points">Étapes</string>
<string name="intermediate_point_too_far">Étape %1$s trop éloignée de la route la plus proche.</string>
@ -1080,7 +1081,8 @@
<string name="zxing_barcode_scanner_not_found">L\'appplication ZXing Barcode Scanner n\'est pas installée. La chercher dans Market ?</string>
<string name="close_changeset">Clôturer les modifications</string>
<string name="background_service_is_enabled_question">Le service OsmAnd tourne toujours en tâche de fond. Voulez-vous l\'arrêter ?</string>
<string name="tip_recent_changes_1_0_0_t">"Changements en 1.0 :\n\t* Amélioration de la navigation, plus rapide et plus précise (jusqu\'à 250 km)\n\t* Cartographie des routes\n\t* La carte ne perd plus la position courante après les interruptions\n\t* Active le service d\'arrière-plan pendant la navigation "</string>
<string name="tip_recent_changes_1_0_0_t">"Changements en 1.0 :\n\t* Amélioration de la navigation, plus rapide et plus précise (jusqu\'à 250 km)\n\t* Cartographie des routes\n\t* La carte ne perd plus la position courante après les interruptions\n\t* Active le service d\'arrière-plan pendant la navigation"
</string>
<string name="safe_mode_description">Exécuter l\'application dans le mode sûr (ne pas utiliser de code natif).</string>
<string name="safe_mode">Mode sûr</string>
<string name="native_library_not_running">L\'application s\'exécute en mode sûr (peut être désactivé dans Paramètres).</string>
@ -1097,7 +1099,7 @@
<string name="map_widget_max_speed">Limite de vitesse</string>
<string name="tip_altitude_offset">Affichage de l\'altitude - Écart de correction</string>
<string name="tip_altitude_offset">Correction de l\'altitude</string>
<string name="monitoring_control_start">GPX</string>
<string name="rendering_attr_noAdminboundaries_name">Cacher les limites administratives</string>
<string name="rendering_attr_noAdminboundaries_description">Ne pas afficher les limites administratives régionales (niveaux 5 à 9)</string>
@ -1116,7 +1118,7 @@
<string name="audionotes_location_not_defined">L\'emplacement à associer à la note n\'est pas encore défini. Utilisez le menu \'Options du point…\' pour spécifier l\'emplacement à associer à la note.</string>
<string name="monitoring_control_stop">arrêter</string>
<string name="monitoring_control_stop">Arrêter</string>
<string name="map_widget_audionotes">Notes audio</string>
<string name="audionotes_plugin_description">Ce greffon permet de prendre des notes audio/vidéo/photo durant le voyage.</string>
<string name="audionotes_plugin_name">Notes audio/vidéo</string>
@ -1158,8 +1160,9 @@
\n\t* Greffon de prise de notes audio/vidéo
\n\t* Greffon pour les courbes de niveau
\n\t* Corrections d\'erreurs
\n\t* Option \'Touring view\' avec plus de détails\n\t* Nouveaux styles de routes, plus de contraste\n\t* Option pour la randonnée (classification SAC)
\n\t* Correction pour le référentiel EGM96 lors de la lecture de l\'altitude avec le GPS "</string>
\n\t* Option \'Touring view\' avec plus de détails, nouveaux styles de routes, plus de contraste\n\t* Option pour la randonnée (classification SAC)
\n\t* Correction pour le référentiel EGM96 lors de la lecture de l\'altitude avec le GPS"
</string>
<string name="av_control_start">Enreg.</string>
<string name="srtm_paid_version_msg">Veuillez acheter le greffon \"Courbes de niveau\" sur Market pour soutenir le développement futur.</string>
<string name="srtm_paid_version_title">Greffon \"Courbes de niveau\"</string>
@ -1174,7 +1177,7 @@
<string name="stop_routing_confirm">Êtes-vous sûr de vouloir arrêter la navigation ?</string>
<string name="clear_dest_confirm">Êtes-vous sûr de vouloir effacer votre point de destination ?</string>
<string name="precise_routing_mode">Routage précis (alpha)</string>
<string name="precise_routing_mode_descr">Activer le routage précis pour calculer des itinéraires précis sans failles. Il est très limité par la distance et n\'utilise pas la bibliothèque native.</string>
<string name="precise_routing_mode_descr">Activer le routage précis pour calculer des itinéraires précis sans failles. Il est très limité par la distance et lent.</string>
<string name="local_indexes_cat_av">Données audio/vidéo</string>
<string name="dist_control_start">Début</string>
<string name="support_new_features_descr">Effectuer un don pour voir de nouvelles fonctionnalités implémentées dans l\'application</string>
@ -1182,7 +1185,8 @@
<string name="download_hillshade_maps">Cartes d\'ombrage du relief</string>
<string name="tip_recent_changes_1_1_2_t">Changements dans 1.1.2:
\n\t* Amélioration du greffon audio/vidéo (photos avec les informations EXIF)
\n\t* Correction de l\'utilisabilité et restructuration du greffon des courbes de niveau\n\t* Ombrage des reliefs pour le greffon des courbes de niveau\n\t* Corrections d\'erreurs (routage sous-optimal)</string>
\n\t* Correction de l\'utilisabilité et restructuration du greffon des courbes de niveau\n\t* Ombrage des reliefs pour le greffon des courbes de niveau\n\t* Corrections d\'erreurs (routage sous-optimal)
</string>
<string name="av_use_external_camera_descr">Utiliser l\'application système pour les photos</string>
<string name="av_use_external_camera">Option appareil photo</string>
<string name="index_name_openmaps">OpenMaps.eu</string>
@ -1227,54 +1231,79 @@
<string name="favourites_list_activity">Sélectionner un favori</string>
<string name="local_openstreetmap_act_title">Modifications OSM</string>
<string name="default_buttons_other_actions">Autres actions</string>
<string name="osmand_extended_description_4000_chars">" OsmAnd (OSM Automated Navigation Directions) est une application de cartographie et de navigation avec accès aux données libres d\'OpenStreetMap (OSM), à la couverture mondiale de haute qualité. Toutes les données cartographiques peuvent être stockées sur la carte mémoire de votre appareil pour une utilisation hors-ligne. OsmAnd propose une navigation par GPS, avec guidage visuel et vocal, pour la voiture, le vélo ou le piéton. Les fonctions principales peuvent être assurées aussi bien en ligne qu\'hors-ligne (sans connexion Internet).
\n\nPrincipales caractéristiques :
\n\nNavigation
\n\t- Fonctionne en ligne (rapide) ou hors-ligne (sans frais d\'itinérance lorsque vous êtes à l\'étranger)
\n\t- Guidage vocal (voix enregistrées ou synthétiques)
\n\t- Affichage optionnel des voies de circulation, du nom de rue et de l\'estimation de l\'heure d\'arrivée
\n\t- Prise en compte d\'étapes intermédiaires dans l\'itinéraire
\n\t- Recalcul automatique de l\'itinéraire en cours de route
\n\t- Recherche de destinations par adresse, par type (ex : restaurant, hôtel, station service, musée, golf), ou par coordonnées géographiques
\n\nVisualisation de cartes
\n\t- Affichage sur la carte de votre position et de votre orientation
\n\t- Alignement de la carte selon la boussole ou le sens de votre mouvement
\n\t- Sauvegarde de vos lieux importants dans les favoris
\n\t- Affichage des points d\'intérêt (PI) autour de vous
\n\t- Visualisation possible de cartes spécialisées (tuiles de carte en ligne)
\n\t- Visualisation possible d\'images satellitales (fournies par Bing)
\n\t- Affichage possible de différentes couches superposées pour visualiser des itinéraires GPX, ou des cartes supplémentaires avec une transparence personnalisable
\n\t- Les noms de lieux peuvent être affichés dans la langue locale, en anglais, ou en phonétique
\n
\n\nUtilise les données OpenStreetMap et Wikipedia :
\n\t- Information de haute qualité issue des meilleurs projets collaboratifs mondiaux
\n\t- Cartes globales d\'OpenStreetMap, disponibles par pays ou par région
\n\t- Points d\'intérêt Wikipedia, idéal pour le tourisme (non disponible dans la version gratuite)
\n\t- Téléchargements gratuits et illimités, directement depuis l\'application (téléchargement limité à 16 fichiers carte dans la version gratuite)
\n\t- Cartes constamment à jour (mise à jour au moins une fois par mois)
\n\t- Cartes vectorielles compactes
\n\t- Choix entre cartes complètes ou uniquement du réseau routier (exemple : la carte complète du Japon fait 700 MB, contre 200 MB pour le réseau routier uniquement)
\n\t- Supporte également les cartes en ligne et la mise en cache des tuiles
\n\nDispositifs de sécurité optionnels
\n\t- Bascule automatique entre les modes de rendu jour/nuit
\n\t- Affichage des limitations de vitesse, et annonces en cas d\'excès de vitesse\n\t- Niveau de zoom variable selon la vitesse de déplacement
\n\n\t- Partage de votre position avec vos amis\n
\nPiétons et cyclistes:
\n\t- Les cartes comportent les chemins pour piétons, randonneurs et cyclistes
\n\t- Modes de navigation et d\'affichage spécialisés pour les piétons et les cyclistes
\n\t- Affichage possible des arrêts de transport public (bus, tram, train), avec les noms de ligne
\n\t- Enregistrement optionnel du parcours vers un fichier GPX local ou un service en ligne
\n\t- Affichage possible de la vitesse et de l\'altitude
\n\t- Affichage possible des courbes de niveau et des ombrages de relief (via des greffons additionnels)
\n\nContributeurs OpenStreetMap (OSM)
\n\t- Rapport des bogues de la carte OSM
\n\t- Transfert des traces GPX vers OSM directement depuis l\'application
\n\n\t- Ajout des points d\'intérêt et transfert direct vers OSM (ou en différé si mode hors-ligne)
\n\t- Enregistrement possible du parcours en arrière-plan (quand l\'écran de l\'appareil est éteint)
\n\nOsmAnd un logiciel libre dont le développement est très actif.
\n\nChacun peut contribuer à l\'application en rapportant les bogues, en améliorant les traductions ou en programmant de nouvelles fonctionnalités.\n\nLe projet est en état permanent d\'amélioration grâce à toutes ces formes de développement et d\'interaction avec l\'utilisateur. Les progrès du projet reposent également sur les contributions financières pour assurer le développement, la programmation et le test de nouvelles fonctionnalités.\n\nEn achetant OsmAnd+ vous contribuez à ce que l\'une application soit encore plus géniale ! Il est aussi possible de supporter financièrement des nouvelles fonctionnalités spécifiques ou de simplement faire un don sur osmand.net.\n\nCouverture géographique et qualité :
\n\t- Europe de l\'Ouest : ****\n\t- Europe de l\'Est : ***\n\t- Russie : ***\n\t- Amérique du Nord : ***\n\t- Amérique du Sud : **\n\t- Asie : **\n\t- Japon et Corée : ***\n\t- Proche-Orient : **\n\t- Afrique : **\n\t- Antarctique : *\n\nListe des pays pris en charge (pratiquement le monde entier !) :
\n\nAfghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et-Barbuda, Argentine, Arménie, Aruba, Australie, Autriche, Azerbaïdjan, Bahamas, Bahreïn, Bangladesh, Barbade, Bélarus, Belgique, Belize, Bénin, Bermudes, Bhoutan, Bolivie, Bonaire, Bosnie-Herzégovine, Botswana, Brésil, Îles Vierges britanniques, Brunei, Bulgarie, Burkina Faso, Burundi, Cambodge, Cameroun, Canada, Cap-Vert, République centrafricaine, Tchad, Chili, Chine, Colombie, Comores, Congo, Costa Rica , Côte d\'Ivoire, Croatie, Cuba, Curaçao, Chypre, République tchèque, Danemark, Djibouti, Dominique, République dominicaine, Équateur, Égypte, Érythrée, Espagne, Estonie, Éthiopie, Fidji, Finlande, France, Gabon, Gambie, Géorgie, Ghana, Gibraltar, Grèce, Groenland, Grenade, Guadeloupe, Guam, Guatemala, Guernsey, Guinée, Guinée-Bissau, Guinée équatoriale, Guyana, Guyane française, Haïti, Vatican, Honduras, Hong Kong, Hongrie, Islande, Inde , Indonésie, Iran, Irak, Irlande, Île de Man, Israël, Italie, Jamaïque, Japon, Jersey, Jordanie, Kazakhstan, Kenya, Kiribati, Corée du Nord et Corée du Sud, Koweït, Kirghizistan, Laos, Lettonie, Liban, Lesotho, Libéria , Libye, Liechtenstein, Lituanie, Luxembourg, Macao, Macédoine, Madagascar, Malaisie, Malawi, Maldives, Mali, Malte, Martinique, Maurice, Mauritanie, Mayotte, Mexique, Micronésie, Moldavie, Monaco, Mongolie, Monténégro, Montserrat, Maroc, Mozambique , Myanmar, Namibie, Nauru, Népal, Pays-Bas, les Antilles néerlandaises, Nicaragua, Niger, Nigéria, Norvège, Nouvelle-Calédonie, Nouvelle-Zélande, Oman, Pakistan, Palau, Territoire palestinien, Panama, Papouasie-Nouvelle-Guinée, Paraguay, Pérou, Philippines, Pologne , Portugal, Polynésie française, Puerto Rico, Qatar, Roumanie, Russie, Rwanda, Sahara occidental, Saint-Barthélemy, Sainte-Hélène, Saint-Kitts-et-Nevis, Sainte-Lucie, Saint-Marin, Saint-Martin, Saint-Pierre-et-Miquelon, Saint-Vincent-et-les Grenadines, Samoa, Salvador, Arabie saoudite, Sénégal, Serbie, Seychelles, Sierra Leone, Singapour, Slovaquie, Slovénie, Somalie, Afrique du Sud, Géorgie du Sud, Soudan du Sud, Sri Lanka, Soudan, Suriname, Swaziland, Suède, Suisse, Syrie, Taiwan, Tadjikistan, Tanzanie, Thaïlande , le Timor-Leste, Togo, Tokelau, Tonga, Trinité-et-Tobago, Tunisie, Turkménistan, Turquie, Tuvalu, Ouganda, Ukraine, Émirats arabes unis, Royaume-Uni (UK), États-Unis d\'Amérique (USA), Uruguay, Ouzbékistan, Vanuatu , Venezuela, Vietnam, Wallis et Futuna, Yémen, Zambie, Zimbabwe."</string>
<string name="osmand_extended_description_4000_chars">
OsmAnd (OSM Automated Navigation Directions) est une application de cartographie et de navigation avec accès aux données libres d\'OpenStreetMap (OSM), à la couverture mondiale de haute qualité. Toutes les données cartographiques peuvent être stockées sur la carte mémoire de votre appareil pour une utilisation hors-ligne. OsmAnd propose une navigation par GPS, avec guidage visuel et vocal, pour la voiture, le vélo ou le piéton. Les fonctions principales peuvent être assurées aussi bien en ligne qu\'hors-ligne (sans connexion Internet).
OsmAnd+ est la version payante de l\'application. En l\'achetant, vous apportez votre support au projet, vous financez le développement de nouvelles fonctionnalités et vous recevez les dernières mises à jour. Vous pouvez tester l\'application avant de l\'acheter, en installant la version gratuite de l\'application, OsmAnd.
Principales caractéristiques :
Navigation
- Fonctionne en ligne (rapide) ou hors-ligne (sans frais d\'itinérance lorsque vous êtes à l\'étranger)
- Guidage vocal (voix enregistrées ou synthétiques)
- Affichage optionnel des voies de circulation, du nom de rue et de l\'estimation de l\'heure d\'arrivée
- Prise en compte d\'étapes intermédiaires dans l\'itinéraire
- Recalcul automatique de l\'itinéraire en cours de route
- Recherche de destinations par adresse, par type (ex : restaurant, hôtel, station service, musée, golf), ou par coordonnées géographiques
Visualisation de cartes
- Affichage sur la carte de votre position et de votre orientation
- Alignement de la carte selon la boussole ou le sens de votre mouvement
- Sauvegarde de vos lieux importants dans les favoris
- Affichage des points d\'intérêt (PI) autour de vous
- Visualisation possible de cartes spécialisées (tuiles de carte en ligne)
- Visualisation possible d\'images satellite (fournies par Bing)
- Affichage possible de différentes couches superposées pour visualiser des itinéraires GPX, ou des cartes supplémentaires avec une transparence personnalisable
- Les noms de lieux peuvent être affichés dans la langue locale, en anglais, ou en orthographe phonétique
Utilise les données OpenStreetMap et Wikipedia :
- Information de haute qualité issue des meilleurs projets collaboratifs mondiaux
- Cartes globales d\'OpenStreetMap, disponibles par pays ou par région
- Points d\'intérêt Wikipedia, idéal pour le tourisme (non disponible dans la version gratuite)
- Téléchargements gratuits et illimités, directement depuis l\'application
- Cartes constamment à jour (mise à jour au moins une fois par mois)
- Cartes vectorielles compactes
- Choix entre cartes complètes ou uniquement du réseau routier (exemple : la carte complète du Japon fait 700 MB, contre 200 MB pour le réseau routier uniquement)
- Supporte également les cartes en ligne et la mise en cache des tuiles
Dispositifs de sécurité optionnels
- Bascule automatique entre les modes de rendu jour/nuit
- Affichage des limitations de vitesse, et annonces en cas d\'excès de vitesse
- Niveau de zoom variable selon la vitesse de déplacement
- Partage de votre position avec vos amis pour qu\'ils puissent vous trouver
Piétons et cyclistes:
- Les cartes comportent les chemins pour piétons, randonneurs et cyclistes; idéales pour les activités de plein air
- Modes de navigation et d\'affichage spécialisés pour les piétons et les cyclistes
- Affichage optionnel des arrêts de transport public (bus, tram, train), avec les noms de ligne
- Enregistrement optionnel du parcours vers un fichier GPX local ou un service en ligne
- Affichage optionnel de la vitesse et de l\'altitude
- Affichage optionnel des courbes de niveau et des ombrages de relief (via des greffons additionnels)
Contribution directe vers OpenStreetMap (OSM)
- Signaler des erreurs de carte OSM
- Transfert des traces GPX vers OSM directement depuis l\'application
- Ajout des points d\'intérêt et transfert direct vers OSM (ou en différé si mode hors-ligne)
- Enregistrement optionnel du parcours en arrière-plan (quand l\'écran de l\'appareil est éteint)
OsmAnd un logiciel libre dont le développement est très actif. Chacun peut contribuer à l\'application en rapportant les bogues, en améliorant les traductions ou en programmant de nouvelles fonctionnalités. Le projet est en état permanent d\'amélioration grâce à toutes ces formes de développement et d\'interaction avec l\'utilisateur. Les progrès du projet reposent également sur les contributions financières pour assurer le développement, la programmation et le test de nouvelles fonctionnalités. En achetant OsmAnd+ vous contribuez à ce que l\'une application soit encore plus géniale ! Il est aussi possible de supporter financièrement des nouvelles fonctionnalités spécifiques ou de simplement faire un don sur osmand.net.
Couverture géographique et qualité :
- Europe de l\'Ouest : ****
- Europe de l\'Est : ***
- Russie : ***
- Amérique du Nord : ***
- Amérique du Sud : **
- Asie : **
- Japon et Corée : ***
- Proche-Orient : **
- Afrique : **
- Antarctique : *
Liste des pays pris en charge (pratiquement le monde entier !) :
Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et-Barbuda, Argentine, Arménie, Aruba, Australie, Autriche, Azerbaïdjan, Bahamas, Bahreïn, Bangladesh, Barbade, Bélarus, Belgique, Belize, Bénin, Bermudes, Bhoutan, Bolivie, Bonaire, Bosnie-Herzégovine, Botswana, Brésil, Îles Vierges britanniques, Brunei, Bulgarie, Burkina Faso, Burundi, Cambodge, Cameroun, Canada, Cap-Vert, République centrafricaine, Tchad, Chili, Chine, Colombie, Comores, Congo, Costa Rica , Côte d\'Ivoire, Croatie, Cuba, Curaçao, Chypre, République tchèque, Danemark, Djibouti, Dominique, République dominicaine, Équateur, Égypte, Érythrée, Espagne, Estonie, Éthiopie, Fidji, Finlande, France, Gabon, Gambie, Géorgie, Ghana, Gibraltar, Grèce, Groenland, Grenade, Guadeloupe, Guam, Guatemala, Guernsey, Guinée, Guinée-Bissau, Guinée équatoriale, Guyana, Guyane française, Haïti, Vatican, Honduras, Hong Kong, Hongrie, Islande, Inde , Indonésie, Iran, Irak, Irlande, Île de Man, Israël, Italie, Jamaïque, Japon, Jersey, Jordanie, Kazakhstan, Kenya, Kiribati, Corée du Nord et Corée du Sud, Koweït, Kirghizistan, Laos, Lettonie, Liban, Lesotho, Libéria , Libye, Liechtenstein, Lituanie, Luxembourg, Macao, Macédoine, Madagascar, Malaisie, Malawi, Maldives, Mali, Malte, Martinique, Maurice, Mauritanie, Mayotte, Mexique, Micronésie, Moldavie, Monaco, Mongolie, Monténégro, Montserrat, Maroc, Mozambique , Myanmar, Namibie, Nauru, Népal, Pays-Bas, les Antilles néerlandaises, Nicaragua, Niger, Nigéria, Norvège, Nouvelle-Calédonie, Nouvelle-Zélande, Oman, Pakistan, Palau, Territoire palestinien, Panama, Papouasie-Nouvelle-Guinée, Paraguay, Pérou, Philippines, Pologne , Portugal, Polynésie française, Puerto Rico, Qatar, Roumanie, Russie, Rwanda, Sahara occidental, Saint-Barthélemy, Sainte-Hélène, Saint-Kitts-et-Nevis, Sainte-Lucie, Saint-Marin, Saint-Martin, Saint-Pierre-et-Miquelon, Saint-Vincent-et-les Grenadines, Samoa, Salvador, Arabie saoudite, Sénégal, Serbie, Seychelles, Sierra Leone, Singapour, Slovaquie, Slovénie, Somalie, Afrique du Sud, Géorgie du Sud, Soudan du Sud, Sri Lanka, Soudan, Suriname, Swaziland, Suède, Suisse, Syrie, Taiwan, Tadjikistan, Tanzanie, Thaïlande , le Timor-Leste, Togo, Tokelau, Tonga, Trinité-et-Tobago, Tunisie, Turkménistan, Turquie, Tuvalu, Ouganda, Ukraine, Émirats arabes unis, Royaume-Uni (UK), États-Unis d\'Amérique (USA), Uruguay, Ouzbékistan, Vanuatu , Venezuela, Vietnam, Wallis et Futuna, Yémen, Zambie, Zimbabwe.
</string>
<string name="download_using_mobile_internet">Le WiFi n\\\'est pas activé en ce moment. Voulez-vous continuer le téléchargement avec la connexion actuelle ?</string>
<string name="cancel_route">Rejeter l\'itinéraire</string>
<string name="cancel_navigation">Arrêter la navigation</string>
@ -1407,8 +1436,7 @@
</string>
<string name="default_and">et</string>
<string name="default_or">ou</string>
<string name="route_is_too_long">L\'itinéraire est probablement trop long pour être calculé localement par OsmAnd.
Le calcul en local est possible, en moyenne, pour des itinéraires jusqu\'à 200 km. Il est conseillé d\'ajouter des étapes intermédiaires pour un meilleur calcul.</string>
<string name="route_is_too_long">Le calcul d\'itinénaire par OsmAnd peut prendre beaucoup de temps (et parfois ne pas aboutir) pour des points séparés de plus de 200 km. Veuillez ajouter des étapes intermédiaires pour une meilleure performance.</string>
<string name="auto_zoom_none">Pas de zoom automatique</string>
<string name="auto_zoom_close">Rapproché</string>
<string name="auto_zoom_far">Modéré</string>
@ -1470,8 +1498,8 @@
<string name="routing_attr_avoid_ferries_description">Éviter les ferries</string>
<string name="routing_attr_avoid_motorway_name">Éviter les autoroutes</string>
<string name="routing_attr_avoid_motorway_description">Éviter les autoroutes</string>
<string name="routing_attr_weight_name">Poids</string>
<string name="routing_attr_weight_description">Spécifier la limite de poids</string>
<string name="routing_attr_weight_name">Poids maximum</string>
<string name="routing_attr_weight_description">Spécifier la limite de poids du véhicule</string>
<string name="select_gpx">Sélectionner GPX…</string>
<string name="route_descr_select_destination">Définir la destination</string>
<string name="route_descr_select_on_map">Définir sur la carte…</string>
@ -1530,7 +1558,7 @@
<string name="lang_ko">Coréen</string>
<string name="lang_lv">Letton</string>
<string name="lang_lt">Lituanien</string>
<string name="lang_mr">Marathi</string>
<string name="lang_mr">Marathe</string>
<string name="lang_no">Norvégien</string>
<string name="lang_pl">Polonais</string>
<string name="lang_pt">Portugais</string>
@ -1554,11 +1582,15 @@
<string name="share_route_subject">Itinéraire partagé via OsmAnd</string>
<string name="osmo_settings_uuid">Identifiant unique de l\'appareil</string>
<string name="osmo_settings_descr">Configurer les paramètres de suivi et définir son canal de suivi personnel</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Suivi en temps réel avec de nombreuses fonctionnalités de contrôle à distance http://osmo.mobi</string>
<string name="osmo_plugin_name">OSMo (suivi en temps réel)</string>
<string name="osmo_settings">OSMo</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Suivi en temps réel. Ce système offre la possibilité de suivre d\'autres appareils ou d\'être suivi.
Créer des groupes anonymes, partager sa position et communiquer avec d\'autres. Il y a différents paramètres pour le suivi de la session courante ou pour un suivi permanent.
Les groupes anonymes sont limités à quelques jours et leurs fonctionnalités restreintes, ainsi, pas de contrôle à distance et pas d\'administrateur de groupe.
Des groupes totalement fonctionnels peuvent être créés via le site web et seuls les utilisateurs enregistrés y ont accès.
Pour en savoir plus: http://osmo.mobi</string>
<string name="osmo_plugin_name">OsMo (Suivi en temps réel)</string>
<string name="osmo_settings">OSMo OpenStreetMap Monitoring (beta)</string>
<string name="osmo_register_device">Enregistrement de l\'appareil…</string>
<string name="osmo_io_error">Problème de connection OSMo : </string>
<string name="osmo_io_error">Problème de connexion OSMo : </string>
<string name="osmo_mode_on">Arrêter\nsession OSMo</string>
<string name="osmo_mode_off">Démarrer\nsession OSMo</string>
<string name="osmo_mode_restart">Redémarrer\nsession OSMo</string>
@ -1573,24 +1605,19 @@
<string name="osmo_auto_send_locations_descr">Démarrer automatiquement une session de suivi et l\'envoi des emplacements dès le démarrage de l\'application</string>
<string name="osmo_auto_send_locations">Démarrage automatique de session de suivi</string>
<string name="keep_informing_never">Jamais</string>
<string name="keep_informing_descr">Annoncer les instructions de navigation à intervalles réguliers</string>
<string name="keep_informing_descr">Répéter les instructions de navigation à intervalles réguliers</string>
<string name="keep_informing">Répéter les instructions de navigation</string>
<string name="navigation_intent_invalid">Format invalide : %s</string>
<string name="arrival_distance">Annonce de l\'arrivée</string>
<string name="arrival_distance_descr">Choisir à quel moment est annoncée l\'arrivée à destination</string>
<string-array name="arrival_distance_factors">
<item>Précoce</item>
<item>Normale</item>
<item>Tardive</item>
<item>Dans les derniers mètres</item>
</string-array>
<string name="share_fav">Partager</string>
<string name="share_fav_subject">Favoris partagés via OsmAnd</string>
<string name="use_points_as_intermediates">Calculer un intinéraire entre des points</string>
<string name="tip_recent_changes_1_8_alpha">Nouveautés de la version 1.8 :
* Calcul d\'itinéraire entre les points d\'une trace GPX
* Modification de la présentation des pays pour les téléchargements (possibilité de rechercher les noms locaux)
</string>
* Calcul d\'itinéraire entre les points d\'une trace GPX
* Modification de la présentation des pays pour les téléchargements (possibilité de rechercher les noms locaux)
* Prise en charge de l\'importation des fichiers GPX/KML et conversion KML en GPX
</string>
<string name="hours_ago">heures avant</string>
<string name="minutes_ago">minutes avant</string>
<string name="seconds_ago">secondes avant</string>
@ -1603,4 +1630,44 @@
<string name="osmo_auto_send_locations_descr">Démarrer automatiquement la session de suivi et envoyer des lieux après le démarrage de l\'application</string>
<string name="osmo_auto_send_locations">Démarre automatiquement la session de suivi</string>
<string name="osmo_tracker_id">Identifiant personnel de suivi</string>
</resources>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">Groupe OsMo</string>
<string name="osmo_group_share">Pour vous connecter au groupe %2$s, veuillez spécifier l\'identifiant du groupe (%1$s)</string>
<string name="osmo_share_connect_device">Autoriser le suivi de cet appareil de façon permanente</string>
<string name="osmo_share_current_session">Partager la session courante dans le navigateur</string>
<string name="osmo_session_not_available">Session non disponible, veuillez vérifier que \'Envoyer mes positions\' est activé.</string>
<string name="osmo_enable_tracker">Envoyer mes positions</string>
<string name="osmo_share_session">Partager la session</string>
<string name="osmo_session_id_share">URL de la session pour suivre l\'appareil (%1$s)</string>
<string name="osmo_tracker_id_share">Pour vous connecter à l\'appareil cible %2$s, veuillez spécifier l\'identifiant de suivi (%1$s)</string>
<string name="osmo_track_interval">Fréquence d\'enregistrement</string>
<string name="osmo_track_interval_descr">Choisir la fréquence d\'envoi de la position</string>
<string name="int_days">jours</string>
<string name="osmo_connect_menu">Connecter</string>
<string name="osmo_expire_group">Expire dans</string>
<string name="osmo_group_description">Description</string>
<string name="osmo_group_policy">Politique</string>
<string name="osmo_connect_to_device_tracker_id">Identifiant de suivi</string>
<string name="osmo_connect_to_group_id">Identifiant du groupe</string>
<string name="osmo_group_name">Nom du groupe</string>
<string name="osmo_connect_to_group">Lier au groupe</string>
<string name="osmo_connect">Connexion à</string>
<string name="osmo_create_group">Créer un groupe</string>
<string name="osmo_server_operation_failed">Échec du serveur OsMo</string>
<string name="osmo_activity">Monitoring OsMo</string>
<string name="osmo_control">Accès rapide OsMo</string>
<string name="local_index_mi_export">Exporter</string>
<string name="import_file_favourites">Sauvegarder comme fichier GPX ou importer dans les favoris ?</string>
<string name="import_save">Sauvegarder</string>
<string name="color_red">Rouge</string>
<string name="color_pink">Rose</string>
<string name="color_orange">Orange</string>
<string name="color_brown">Brun</string>
<string name="color_yellow">Jaune</string>
<string name="color_lightblue">Bleu clair</string>
<string name="color_blue">Bleu</string>
<string name="color_magenta">Magenta</string>
<string name="osmo_edit_device">Modifier les caractéristiques de l\'utilisateur</string>
<string name="osmo_edit_color">Afficher la couleur</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="map_widget_gps_info">GPS informacije</string>
<string name="access_arrival_time">Vrijeme dolaska</string>
<string name="item_checked">provjereno</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="tip_recent_changes_0_7_2_t">"A 0.7.2 kiadás változásai:
\n\t- Natív renderelő minden eszközre
\n\t- Offline POI szerkesztés
@ -1536,7 +1536,26 @@
<string name="arrival_distance">Megérkezés bemondása</string>
<string name="arrival_distance_descr">Milyen korán szeretnéd hallani a megérkezés bejelentését?</string>
<string name="keep_informing_never">Soha</string>
<string name="keep_informing_descr">Navigációs utasítások bemondása rendszeres időközönként</string>
<string name="keep_informing_descr">Navigációs utasítások újra bemondása rendszeres időközönként</string>
<string name="keep_informing">Navigációs utasítások ismétlése</string>
<string name="navigation_intent_invalid">Érvénytelen formátum: %s</string>
</resources>
<string name="color_red">piros</string>
<string name="color_pink">rózsaszín</string>
<string name="color_orange">narancs</string>
<string name="color_brown">barna</string>
<string name="color_yellow">sárga</string>
<string name="color_lightblue">világoskék</string>
<string name="color_blue">kék</string>
<string name="color_magenta">bíborvörös</string>
<string name="osmo_edit_device">Felhasználói tulajdonságok módosítása</string>
<string name="osmo_edit_color">Megjelenítési szín</string>
<string name="osmo_group_info">Infó</string>
<string name="osmo_group">OsMo csoport</string>
<string name="osmo_group_share">%2$s csoporthoz csatlakozáshoz add meg a csoportazonosítót (%1$s)</string>
<string name="osmo_share_connect_device">Eszköz állandó követésének engedélyezése</string>
<string name="osmo_share_current_session">Aktuális munkamenet megosztása böngészőben</string>
<string name="osmo_session_not_available">Munkamenet nem elérhető, kérlek ellenőrizd, hogy a \'Hely küldése\' be van-e kapcsolva.</string>
<string name="osmo_share_session">Munkamenet megosztása</string>
<string name="osmo_session_id_share">Munkamenet URL az eszköz követéséhez (%1$s)</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="use_fluorescent_overlays">Sovrapposizioni fluorescenti</string>
<string name="use_fluorescent_overlays_descr">Usa colori fluorescenti per visualizzare tracce e percorsi</string>
<string name="offline_edition">Modifiche offline</string>
@ -1807,4 +1807,43 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="osmo_new_device">Collegati al dispositivo</string>
<string name="osmo_connected_devices">Dispositivi collegati</string>
<string name="osmo_groups">Grupppi/Dispositivi OsMo</string>
<string name="osmo_group_info">Informazioni</string>
<string name="osmo_group">Gruppo OsMo</string>
<string name="osmo_group_share">Per collegarsi al gruppo %2$s, specifica l\'id del gruppo (%1$s)</string>
<string name="osmo_share_connect_device">Permetti di seguire permanentemente questo dispositivo</string>
<string name="osmo_share_current_session">Condividi questa sessione nel browser</string>
<string name="osmo_session_not_available">Sessione non disponibile, per favore controllare che \'Invia posizioni\' sia attivo.</string>
<string name="osmo_share_session">Condividi sessione</string>
<string name="osmo_session_id_share">Url della sessione per tracciare il dispositivo (%1$s)</string>
<string name="osmo_tracker_id_share">Per collegare al dispositivo voluto %2$s, specificare il tracker id (%1$s)</string>
<string name="osmo_track_interval">Intervallo di registrazione</string>
<string name="osmo_track_interval_descr">Scegli l\'intervallo di tempo per l\'invio la posizione</string>
<string name="int_days">giorni</string>
<string name="osmo_connect_menu">Connetti</string>
<string name="osmo_expire_group">Scade fra</string>
<string name="osmo_group_description">Descrizione</string>
<string name="osmo_group_policy">Regole</string>
<string name="osmo_connect_to_group_id">Id gruppo</string>
<string name="osmo_group_name">Nome gruppo</string>
<string name="osmo_connect_to_group">Collega con il gruppo</string>
<string name="osmo_connect">Collega a</string>
<string name="osmo_create_group">Crea gruppo</string>
<string name="osmo_server_operation_failed">Operazione del server OsMo fallita</string>
<string name="osmo_activity">Monitoraggio Osm</string>
<string name="osmo_enable_tracker">Invia le mie posizioni</string>
<string name="osmo_control">Accesso rapido ad OsMo</string>
<string name="local_index_mi_export">Esporta</string>
<string name="import_file_favourites">Salvare come file GPX o importare nei favoriti?</string>
<string name="import_save">Salva</string>
<string name="color_red">rosso</string>
<string name="color_pink">rosa</string>
<string name="color_orange">arancione</string>
<string name="color_brown">marrone</string>
<string name="color_yellow">giallo</string>
<string name="color_lightblue">blu chiaro</string>
<string name="color_blue">blu</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Cambia le proprietà dell\'utilizzatore</string>
<string name="osmo_edit_color">Colore visualizzato</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="installing_new_resources">新しいデータを展開中…</string>
<string name="internet_connection_required_for_online_route">オンライン経路案内を使用しようとしていますが
インターネット接続されていません。</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="vector_maps_may_display_faster_on_some_devices">벡터 맵이 더욱 빠르게 표시됩니다. 하지만, 어떤 기기에서는 잘 작동하지 않을 수 있습니다.</string>
<string name="play_commands_of_currently_selected_voice">현재 선택된 음성 명령을 재생합니다</string>
@ -1941,7 +1941,11 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
</string>
<string name="osmo_settings_uuid">고유 장치 id</string>
<string name="osmo_settings_descr">모니터링 설정 및 설정 개인 모니터링 채널을 구성</string>
<string name="osmo_plugin_description">OpenStreetMap의 모니터링 - 원격 제어를 위한 많은 기능과 함께 고급 실시간 모니터링 http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Advanced Live Monitoring. It provides possibilities to track other devices and be tracked.
Create anonymous groups, share each other location and comminucate. It has various settings for session tracking or permanent tracking.
Anonymous groups are limited for a number of days and for some feature, i.e. there is no remote control and group administrator.
Fully functional groups should be created on the website and only registered users have access to them.
Please read more on http://osmo.mobi.</string>
<string name="osmo_plugin_name">OSMo (고급 라이브 모니터링)</string>
<string name="osmo_settings">OSMo(오스모:OpenStreetMap-Monitoring)</string>
<string name="share_route_as_gpx">GPX 파일로 루트 공유</string>
@ -1949,7 +1953,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="arrival_distance">도착 알림</string>
<string name="arrival_distance_descr">도착 알림을 원하세요 ?</string>
<string name="keep_informing_never">결코</string>
<string name="keep_informing_descr">정기적 간격으로 운행 명령을 발표</string>
<string name="keep_informing_descr">정기적으로 탐색 지시를 다시 발표</string>
<string name="keep_informing">운행 명령을 반복</string>
<string name="navigation_intent_invalid">잘못된 포맷 : %s</string>
<string name="osmo_register_device">장치 등록... </string>
@ -1961,7 +1965,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="hours_ago">시간 전</string>
<string name="minutes_ago">분 전</string>
<string name="seconds_ago">초 전</string>
<string name="osmo_connect_to_device_name">장치의 이름</string>
<string name="osmo_connect_to_device_name">사용자 이름</string>
<string name="osmo_connect_to_device_tracker_id">트래커 ID</string>
<string name="osmo_connect_to_device">장치와 연결</string>
<string name="osmo_join_group">그룹에 가입</string>
@ -1979,10 +1983,49 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="osmo_locations_sent">위치 전송 %1$d (in buffer %2$d) </string>
<string name="osmo_conn_successfull">설정 된 연결 : %1$s </string>
<string name="tip_recent_changes_1_8_alpha">Changes in 1.8:
* GPX 트랙의 루트 포인트 사이의 길을 계산
* GPX 트랙의 루트 포인트 사이의 도로 계산
* 다운로드에 대한 국가의 변경된 레이아웃 (support local names search)
</string>
<string name="use_points_as_intermediates">루트포인트 사이의 경로를 계산</string>
<string name="osmo_mode_restart">OsMo 세션 재시작</string>
<string name="osmo_settings_debug">디버그 정보</string>
<string name="osmo_group_info">정보</string>
<string name="osmo_group">OsMo 그룹</string>
<string name="osmo_group_share">%2$s 그룹에 연결하려면, group id (%1$s)를 지정하세요</string>
<string name="osmo_share_connect_device">영구적으로 이 장치를 따릅니다.</string>
<string name="osmo_share_current_session">브라우저에서 현재의 세션을 공유하기</string>
<string name="osmo_session_not_available">세션을 사용할 수 없습니다 , \'Send locations\' 가 켜져 있는지 확인하시기 바랍니다</string>
<string name="osmo_share_session">세션 공유</string>
<string name="osmo_session_id_share">장치를 추적하기 위한 세션 URL(%1$s)</string>
<string name="osmo_tracker_id_share">%2$s 대상장치를 연결하려면, tracker id(%1$s)를 지정하세요</string>
<string name="osmo_track_interval">로깅 간격</string>
<string name="osmo_track_interval_descr">위치를 전송하도록 시간 간격을 선택</string>
<string name="int_days"></string>
<string name="osmo_connect_menu">연결</string>
<string name="osmo_expire_group">만료</string>
<string name="osmo_group_description">설명</string>
<string name="osmo_group_policy">정책</string>
<string name="osmo_connect_to_group_id">그룹 ID</string>
<string name="osmo_group_name">그룹 이름</string>
<string name="osmo_connect_to_group">그룹 링크</string>
<string name="osmo_connect">~에 연결</string>
<string name="osmo_create_group">그룹 만들기</string>
<string name="osmo_server_operation_failed">OsMo 서버 작업 실패</string>
<string name="osmo_activity">OSMO 모니터링</string>
<string name="osmo_enable_tracker">내 위치 보내기</string>
<string name="osmo_control">OsMo 빠른 접근</string>
<string name="local_index_mi_export">내보내기</string>
<string name="import_file_favourites">GPX 파일로 저장? 또는 즐겨찾기로 가져오기?</string>
<string name="import_save">저장</string>
<string name="color_red">빨강</string>
<string name="color_pink">핑크</string>
<string name="color_orange">오렌지</string>
<string name="color_brown">갈색</string>
<string name="color_yellow">노랑</string>
<string name="color_lightblue">밝은 청색</string>
<string name="color_blue">파랑</string>
<string name="color_magenta">자청색</string>
<string name="osmo_edit_device">사용자 등록 정보 변경</string>
<string name="osmo_edit_color">디스플레이 색상</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="starting_point_too_far">Pradžios taškas yra per toli nuo artimiausio kelio.</string>
<string name="shared_location">Bendrinta vieta</string>
<string name="osmand_parking_warning">Dėmesio</string>
@ -1744,9 +1744,13 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="navigation_intent_invalid">Netinkamas formatas: %s</string>
<string name="osmo_settings_uuid">Unikalus įrenginio ID</string>
<string name="osmo_settings_descr">Konfigūruoti stebėjimo nustatymus ir nustatyti asmeninį stebėjimo kanalą</string>
<string name="osmo_plugin_description">OpenStreetMap stebėjimas - Tiesioginis stebėjimas su daugybe nuotolinio valdymo funkcijų http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - pažangus tiesioginis stebėjimas. Suteikia daug galimybių būti stebimam ir stebėti kitus įrenginius.
Susikurkite anonimines grupes, bendrinkite vienas kito vietą ir komunikuokite. Ši paslauga turi įvairių nustatymų vienkartiniam ir pastoviam sekimui.
Anoniminių grupių gyvavimas yra tik kelios dienos su ribotomis funkcijomis, t.y. nėra nuotolinio valdymo ar grupės administratoriaus.
Pilno funkcionalumo grupes galima susikurti interneto svetainėje ir tik registruoti vartotojai galės prie jų prieiti.
Daugiau skaitykite http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Pažangus tiesioginis stebėjimas)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo OpenStreetMap stebėjimas (beta)</string>
<string name="keep_informing_never">Niekada</string>
<string name="keep_informing_descr">Maršruto instrukcijas pranešinėti reguliariais intervalais</string>
<string name="keep_informing">Pakartoti maršruto instrukcijas</string>
@ -1778,7 +1782,36 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="tip_recent_changes_1_8_alpha">Pakeitimai 1.8 versijoje:
* Apskaičiouti maršrutą tarp GPX failo taškų
* Pakeistas šalių sąrašo išdėstymas žemėlapių parsiuntimui (palaikoma vietovardžių paieška)
* Palaiko GPX/KML importavimą (konvertuoja KML į GPX)
</string>
<string name="osmo_mode_restart">OsMo sesiją paleisti iš naujo</string>
<string name="osmo_settings_debug">Derinimo informacija</string>
</resources>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo grupė</string>
<string name="osmo_group_share">Norėdami prisijungti prie %2$s grupės, nurodykite grupės id (%1$s)</string>
<string name="osmo_share_connect_device">Leiskite šį įrenginį sekti pastoviai</string>
<string name="osmo_share_current_session">Dalinkitės dabartine sesija naršyklėje</string>
<string name="osmo_session_not_available">Sesija neprieinama. Įsitikinkite kad įjungtas \'Siųsti vietą\' nustatymas.</string>
<string name="osmo_share_session">Bendrinti sesiją</string>
<string name="osmo_session_id_share">Sesijos url įrenginio (%1$s) sekimui</string>
<string name="osmo_tracker_id_share">Norėdami prisijungti prie %2$s įrenginio turite nurodyti sekiklio id (%1$s)</string>
<string name="osmo_track_interval">Pozicijos išsaugojimo intervalas</string>
<string name="osmo_track_interval_descr">Pasirinkite laiko intervalą vietos siuntimui</string>
<string name="int_days">dienos</string>
<string name="osmo_connect_menu">Prisijungti</string>
<string name="osmo_expire_group">Baigs galioti už</string>
<string name="osmo_group_description">Aprašymas</string>
<string name="osmo_group_policy">Politika</string>
<string name="osmo_connect_to_group_id">Grupės ID</string>
<string name="osmo_group_name">Grupės pavadinimas</string>
<string name="osmo_connect_to_group">Prisijungti prie grupės</string>
<string name="osmo_connect">Prisijungti prie</string>
<string name="osmo_create_group">Sukurti grupę</string>
<string name="osmo_server_operation_failed">OsMo serverio veiksmas nepavyko</string>
<string name="osmo_activity">Osm stebėjimas</string>
<string name="osmo_enable_tracker">Siųsti mano buvimo vietą</string>
<string name="osmo_control">OsMo greita prieiga</string>
<string name="local_index_mi_export">Eksportas</string>
<string name="import_file_favourites">Išsaugoti GPX faile ar importuoti į įsimintas vietas?</string>
<string name="import_save">Išsaugoti</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="plugins_screen">Spraudņu pārvaldnieks</string>
<string name="select_plugin_to_activate">Atzīmējiet spraudni, lai to aktivizētu vai deaktivizētu. (Iespējams OsmAnd vajadzēs restartēt.)</string>
<string name="prefs_plugins_descr">Spraudņi iespējo aplikācijas papildus funkcijas un uzstādījumus kā piemēram sekošana, enerģijas taupīšana, pieejamība un daudzas citas</string>
@ -248,8 +248,8 @@
<string name="vector_data_missing">SD kartē nav atrodami bezsaistes dati. Lai lietotu bezsaistes kartes, lūdzu lejupielādējiet tās, lai varētu lietot bezsaistē.</string>
<string name="local_index_gpx_info_show">"\n\nTuriet nospiestu izvēlnes atvēršanai"</string>
<string name="local_index_gpx_info_speed">"\nVidējais ātrums : %1$s \nMaksimālais ātrums : %2$s"</string>
<string name="local_index_gpx_info_elevation">"\nVidējais augstums : %1$s\nMinimālais augstums : %2$s\nMaksimālais augstums : %3$s\nAugšup : %4$s\nLejup : %5$s"</string>
<string name="local_index_gpx_info">Nobrauktais ceļš: %1$d\nVisas vietas: %2$d\nPieturvietas: %3$d\nKopējais attālums: %4$s\nSākuma laiks: %5$tF, %5$tR\nBeigu laiks: %6$tF, %6$tR</string>
<string name="local_index_gpx_info_elevation">"\nVidējais augstums : %1$s\nMinimālais augstums : %2$s\nMaksimālais augstums : %3$s\nUz augšu : %4$s\nUz leju : %5$s"</string>
<string name="local_index_gpx_info">Nobrauktie ceļi: %1$d\nVisas vietas: %2$d\nPieturvietas: %3$d\nKopējais attālums: %4$s\nSākuma laiks: %5$tF, %5$tR\nNobeiguma laiks: %6$tF, %6$tR</string>
<string name="local_index_installed">Versija</string>
<string name="local_index_items_backuped">Veiksmīgi arhivētas %1$d no %2$d vienībām.</string>
<string name="local_index_items_deleted">Veiksmīgi izdzēstas %1$d no %2$d vienībām.</string>
@ -305,7 +305,7 @@
<string name="overlay_transparency">Pārklāja caurspīdīgums</string>
<string name="map_transparency_descr">Modificēt bāzes kartes caurspīdīgumu</string>
<string name="map_transparency">Bāzes kartes caurspīdīgums</string>
<string name="modify_transparency">Rediģēt caurspīdīgumu (0 - caurspīdīgs, 255 - necaurspīdīgs)</string>
<string name="modify_transparency">Mainīt caurspīdīgumu (0 - caurspīdīgs, 255 - necaurspīdīgs)</string>
<string name="layer_underlay">Paklāja karte…</string>
<string name="map_underlay">Paklāja karte</string>
<string name="map_underlay_descr">Izvēlēties paklāja karti</string>
@ -627,7 +627,7 @@
<string name="downloading">Lejupielādē…</string>
<string name="downloading_list_indexes">Lejupielādē reģionu sarakstu…</string>
<string name="list_index_files_was_not_loaded">Netika saņemts reģionu saraksts no osmand.net.</string>
<string name="select_index_file_to_download">Nekas netika atrasts. Ja jūs nevarat atrast sava reģiona datus, jūs tos varat sagatavot paši (skatīt http://osmand.net).</string>
<string name="select_index_file_to_download">Nekas netika atrasts. Ja jūs nevariet atrast sava apgabala karti, tad jūs variet to izveidot (skatīt http://osmand.net).</string>
<string name="show_poi_on_map">Rādīt kartē</string>
<string name="fav_points_edited">Izlases punkts tika izlabots</string>
<string name="fav_points_not_exist">Izlases punkti neeksistē</string>
@ -815,12 +815,12 @@
<string name="edit_filter_create_message">Filtrs {0} tika izveidots</string>
<string name="default_buttons_selectall">Izvēlēties visu</string>
<string name="offline_navigation_not_available">OsmAnd bezsaistes navigācija pagaidām nav pieejama.</string>
<string name="left_side_navigation">Kreisās rokas kustība</string>
<string name="left_side_navigation_descr">Ieslēdziet, ja jūs atrodieties valstīs ar kreisās puses kustību</string>
<string name="download_link_and_local_description">Lejuplādēt vai atjaunināt bezsaistes datus.\nLai redzētu detaļas uzklikšķiniet uz ieraksta, lai deaktivizētu vai dzēstu bezsaistes datus uzspiediet un turiet piespiestu. Datu apjoms (%1$s brīvs):</string>
<string name="unknown_from_location">Starta vieta vēl nav noteikta</string>
<string name="confirm_interrupt_download">Pārtraukt lejupielādi?</string>
<string name="basemap_was_selected_to_download">Kartes pamatdati, kas nepieciešami aplikācijas normālai darbībai, ir iezīmēti lejuplādei.</string>
<string name="left_side_navigation">Kreisās joslas kustība</string>
<string name="left_side_navigation_descr">Ieslēdziet, ja jūs atrodieties valstīs ar kreisās joslas kustību</string>
<string name="download_link_and_local_description">Lejupielādēt vai atjaunināt no interneta.\nLai atvērtu ierakstu, nospiediet uz krustiņa, lai deaktivizētu, dzēstu vai pārdēvētu vienības, turiet tās nospiestas. Datu apjoms (%1$s brīvs):</string>
<string name="unknown_from_location">Sākuma punkts vēl nav noteikts</string>
<string name="confirm_interrupt_download">Vai pārtraukt faila lejupielādi?</string>
<string name="basemap_was_selected_to_download">Pamatkarte, kas ir nepieciešama aplikācijas normālai darbībai, tika pievienota lejupielādei.</string>
<string name="map_online_plugin_is_not_installed">Aktivizēt tiešsaistes kartes spraudni, dažādu kartes avotu atlasīšanai</string>
<string name="map_online_data">Bezsaistes kartes (bildes)</string>
@ -1289,7 +1289,7 @@
<string name="local_index_tile_data_name">Attēlu dati: %1$s</string>
<string name="edit_tilesource_successfully">Attēlu avots %1$s ir saglabāts</string>
<string name="edit_tilesource_elliptic_tile">Eliptisks merkators</string>
<string name="local_index_gpx_timespan">\nLaika posms: %1$d:%2$02d:%3$02d</string>
<string name="local_index_gpx_timespan">\nKopējais laiks: %1$d:%2$02d:%3$02d</string>
<string name="local_index_gpx_timemoving">\nBrauciena laiks: %1$d:%2$02d:%3$02d</string>
<string name="delete_point">Noņemt punktu</string>
<string name="plugin_distance_point">Punkts</string>
@ -1588,8 +1588,12 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
</string>
<string name="osmo_settings_uuid">Ierīces identifikators</string>
<string name="osmo_settings_descr">Skatīt ierīces personīgo reģistrācijas atslēgu un pārējos ar monitoringu saistītos uzstādījumus </string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - attīstīts tiešsaistes monitorings ar daudzām attālinātās kontroles iespējām htttp://osmo.mobi</string>
<string name="osmo_settings_descr">Konfigurēt monitoringa uzstādījumus un personīgo monitoringa kanālu</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - iespējām bagāts reālā laika monitorings ar attālinātu sekošanu savienotām ierīcēm.
………Izveidojiet anonīmas grupas, kopīgojiet atrašanās vietas un komunicējiet savā starpā, ar dažādiem uzstādījumiem sesijas vai patstāvīgai sekošanai.
……Anonīmās grupas ir ierobežotas līdz dienu skaitam un dažām iespējām, kā piemēram, nav attālinātās kontroles un grupas administratora.
……Pilnībā funkcionējošas grupas var tikt izveidotas tīmekļa lapā un tām var piekļūt tikai reģistrētie lietotāji.
……Vairāk lasiet http://osmo.mobi.</string>
<string name="osmo_plugin_name">OSMo (Tiešsaistes monitorings)</string>
<string name="osmo_settings">OSMo</string>
<string name="tip_recent_changes_1_6_t">Izmaiņas uz 1.6:
@ -1637,4 +1641,76 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
…… * Izmaiņas valsts karšu lejupielādē (vietējo nosaukumu meklēšanas atbalsts)
……
</string>
<string name="osmo_group_info">Informācija</string>
<string name="osmo_group">OsMo grupa</string>
<string name="osmo_group_share">Lai pievienotos grupai %2$s, norādiet grupas id (%1$s)</string>
<string name="osmo_share_connect_device">Atļaut patstāvīgi sekot ierīcei</string>
<string name="osmo_share_current_session">Dalīties tekošajā sesijā pārlūkā</string>
<string name="osmo_session_not_available">Sesija nav pieejama, lūdzu, pārbaudiet vai \'sūtīt pozīciju\' ir iespējots.</string>
<string name="osmo_share_session">Dalīties sesijā</string>
<string name="osmo_session_id_share">Sesijas url ierīces izsekošanai (%1$s)</string>
<string name="osmo_tracker_id_share">Lai pievienotos ierīcei %2$s, norādiet izsekošanas id (%1$s)</string>
<string name="osmo_track_interval">Logošanas intervāls</string>
<string name="osmo_track_interval_descr">Laika intervāls lokācijas nosūtīšanai</string>
<string name="int_days">Dienas</string>
<string name="osmo_connect_menu">Pieslēgties</string>
<string name="osmo_expire_group">Derīgs līdz</string>
<string name="osmo_group_description">Apraksts</string>
<string name="osmo_group_policy">Politika</string>
<string name="osmo_connect_to_device_tracker_id">Izsekošanas id</string>
<string name="osmo_connect_to_device_name">Ierīces nosaukums</string>
<string name="osmo_connect_to_group_id">Grupas id</string>
<string name="osmo_group_name">Grupas nosaukums</string>
<string name="osmo_connect_to_device">Savienot ar ierīci</string>
<string name="osmo_connect_to_group">Savienot ar grupu</string>
<string name="osmo_connect">Pievienoties</string>
<string name="osmo_create_group">Izveidot grupu</string>
<string name="osmo_server_operation_failed">OsMO servera darbības kļūda</string>
<string name="osmo_activity">Osm Monitorings</string>
<string name="osmo_enable_tracker">Sūtīt manas atrašanās vietas</string>
<string name="osmo_control">OsMo ātrā pieejamība</string>
<string name="hours_ago">stundas atpakaļ</string>
<string name="minutes_ago">minūtes atpakaļ</string>
<string name="osmo_connected_devices">Savienotās ierīces</string>
<string name="osmo_groups">OsMo grupas/ierīces</string>
<string name="osmo_auto_send_locations_descr">Automātiski sākt sekošanas sesiju un sūtīt atrašanās vietas pēc aplikācijas palaišanas</string>
<string name="osmo_auto_send_locations">Automātiski sākt sekošanas sesiju</string>
<string name="osmo_tracker_id">Personīgais sekošanas ID</string>
<string name="osmo_tracker_id_descr">Nospiediet, lai redzētu vai kopīgotu sekošanas id.
………Izmantojot sekošanas id, pievienotās ierīces varēs monitorēt ierīces pārvietošanos! Lai atvienotos, paņemiet Reģenerēt opciju.</string>
<string name="osmo_session_token">Sesijas laiks: %1$s</string>
<string name="osmo_auth_pending">Gaida autorizāciju...</string>
<string name="osmo_locations_sent">Atrašanās vieta nosūtīta %1$d (buferī %2$d) </string>
<string name="osmo_conn_successfull">Izveidots savienojums: %1$s </string>
<string name="osmo_mode_restart">Restartēt OsMo sesiju</string>
<string name="osmo_settings_debug">Atkļūdošanas informācija</string>
<string name="tip_recent_changes_1_2_t">Izmaiņas uz 1.2.3:
…… …… \n\t*Fix Geo Intent (Foursquare, c:geo)
…… …… \n\t*salabota ekrāna raustīšanās navigācijas laikā
…… …… \n\t*Citi sīki labojumi
…… …… \n\t*Izmaiņas uz 1.2:
…… …… \n\nKļūdu labojumi (uzlabota maršrutēšana, meklēšana, AV ierakstīšana, balss priekšā teikšana, daži ekrāna labojumi)
…… …… \n\t*Vieglāka kalnu pārklāja konfigurācija (nepieciešanas Kontūrlīniju spraudnis)
…… …… \n\t*Tiek akceptētas maps.google.com atrašanās vietas linki
…… …… \n\t*Jauns gadžets (GPS info)
…… …… \n\t*Pievienots daudz-logu atbalsts patreizējām Samsung ierīcēm
…… …… \n\t*Kalman filtrs kompasam
…… …… \n\t*Pebble viedpulksteņa atbalsts
…… ……
</string>
<string name="local_index_mi_export">Eksports</string>
<string name="import_file_favourites">Vai saglabāt kā GPX failu vai importēt izlasē?</string>
<string name="import_save">Saglabāt</string>
<string name="seconds_ago">sekundes atpakaļ</string>
<string name="color_red">Sarkans</string>
<string name="color_pink">Rozā</string>
<string name="color_orange">Oranžs</string>
<string name="color_brown">Brūns</string>
<string name="color_yellow">Dzeltens</string>
<string name="color_lightblue">Gaiši zils</string>
<string name="color_blue">Zils</string>
<string name="color_magenta">Purpursarkans</string>
<string name="osmo_edit_device">Mainīt lietotāja uzstādījumus</string>
<string name="osmo_edit_color">Ekrāna krāsa</string>
</resources>

View file

@ -1,3 +1,3 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="osmo_settings_uuid">Таны хэрэглэгчийн ID</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="left_side_navigation">डाव्या बाजूने ड्रायव्हिंग</string>
<string name="unknown_location">अजून स्थान माहित नाही</string>
<string name="modify_transparency">पारदर्शकता बदला ( - पारदर्शक, २५५ - अपारदर्शक)</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="rendering_attr_roadColors_description">Velg fargeskjema for veier:</string>
<string name="rendering_attr_roadColors_name">Veifargeskjema</string>
<string name="map_widget_show_destination_arrow">Vis retning til målet</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="live_monitoring_mode_off">Start\n online tracking</string>
<string name="live_monitoring_mode_on">Stop\n online tracking</string>
<string name="layer_map_appearance">Configureer scherm</string>
@ -1765,4 +1765,43 @@ De maximale afstand tussen start en bestemming is ongeveer 200 km. Maak één of
<string name="use_points_as_intermediates">Bereken route tussen punten</string>
<string name="osmo_mode_restart">Herstart OsMo-sessie</string>
<string name="osmo_settings_debug">Debug-informatie</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo groep</string>
<string name="osmo_group_share">Om je te verbinden met de groep %2$s, specificeer groep id (%1$s)</string>
<string name="osmo_share_connect_device">Sta toe, dat dit toestel permanent gevolgd wordt</string>
<string name="osmo_share_current_session">Deel de huidige sessie in de browser</string>
<string name="osmo_session_not_available">Sessie niet beschikbaar, controleer of \'Send locations\' aan staat.</string>
<string name="osmo_share_session">Deel sessie</string>
<string name="osmo_session_id_share">Sessie url om toestel (%1$s) te volgen</string>
<string name="osmo_tracker_id_share">Om je te verbinden met toestel %2$s, specifeer tracker id (%1$s)</string>
<string name="osmo_track_interval">Log interval</string>
<string name="osmo_track_interval_descr">Kies de interval om je positie te zenden</string>
<string name="int_days">dagen</string>
<string name="osmo_connect_menu">Verbinden</string>
<string name="osmo_expire_group">Vervalt over</string>
<string name="osmo_group_description">Beschrijving</string>
<string name="osmo_group_policy">Groepsbeleid</string>
<string name="osmo_connect_to_group_id">Groep-ID</string>
<string name="osmo_group_name">Groepnaam</string>
<string name="osmo_connect_to_group">Verbind met groep</string>
<string name="osmo_connect">Verbind met</string>
<string name="osmo_create_group">Maak een nieuwe groep</string>
<string name="osmo_server_operation_failed">OsMo server probleem</string>
<string name="osmo_activity">OsMo-monitor</string>
<string name="osmo_enable_tracker">Zend mijn posities</string>
<string name="osmo_control">OsMo snelle toegang</string>
<string name="local_index_mi_export">Exporteer</string>
<string name="import_file_favourites">Bewaren als GPX bestand of importeren in favorieten?</string>
<string name="import_save">Bewaren</string>
<string name="color_red">rood</string>
<string name="color_pink">roze</string>
<string name="color_orange">oranje</string>
<string name="color_brown">bruin</string>
<string name="color_yellow">geel</string>
<string name="color_lightblue">lichtblauw</string>
<string name="color_blue">blauw</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Wijzig gebruiker-instellingen</string>
<string name="osmo_edit_color">Weergavekleur</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="tip_recent_changes_0_6_9_t">"Zmiany w 0.6.9: \n\t- poprawiono renderowanie map offline \n\t- szybkie renderowanie natywne (wersja eksperymentalna - może nie działać na niektórych urządzeniach) \n\t- poprawki w interfejsie \n\t- dodano wyświetlanie informacji o wysokości (altitude) \n\t- nowe tłumaczenia (polskie, wietnamskie) \n\t- inne, mniejsze poprawki "</string>
<string name="use_transparent_map_theme">Przezroczysty styl</string>
@ -1708,9 +1708,13 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
<string name="navigation_intent_invalid">Nieprawidłowy format : %s</string>
<string name="osmo_settings_uuid">Unikatowy identyfikator urządzenia</string>
<string name="osmo_settings_descr">Skonfiguruj monitorowanie i ustaw osobisty kanał monitorowania</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Zaawansowany Monitoring na Żywo z wieloma funkcjami do zdalnego zarządzania na http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Zaawansowany Monitoring na Żywo. Daje możliwość śledzenia innych urządzeń i vice versa.
Twórz anonimowe grupy, dziel się lokalizacją i prowadź komunikację. System ma wiele ustawień dla śledzenia w sesji lub stałego śledzenia.
Grupy anonimowe mają ograniczenia czasowe i funkcjonalne, np. nie ma zdalnej kontroli i administratora grupy.
W pełni funkcjonalne grupy powinny być tworzone przez witrynę, a dostęp zarezerwowany tylko dla zarejestrowanych użytkowników.
Więcej na http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Zaawansowany Monitoring na Żywo)</string>
<string name="osmo_settings">OSMo</string>
<string name="osmo_settings">OsMo Monitoring OpenStreetMap (beta)</string>
<string name="keep_informing_never">Nigdy</string>
<string name="keep_informing_descr">Podawaj instrukcje nawigacji w regularnych odstępach czasu</string>
<string name="keep_informing">Powtarzaj instrukcje nawigacji</string>
@ -1726,6 +1730,7 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
<string name="tip_recent_changes_1_8_alpha">Zmiany w wersji 1.8:
* Obliczanie trasy pomiędzy punktami w zapisanym śladzie GPX
* Zmieniono wygląd krajów do pobrania (wsparcie wyszukiwania nazw lokalnych)
* Importowanie GPX/KML (zamiana z KML na GPX)
</string>
<string name="osmo_auto_send_locations_descr">Po uruchomieniu aplikacji automatycznie rozpocznij sesję trackera i przesyłaj pozycję</string>
<string name="osmo_auto_send_locations">Automatycznie uruchom sesję trackera</string>
@ -1738,14 +1743,53 @@ Afganistan, Afryka Południowa, Albania, Algieria, Andora, Angola, Anguilla, Ant
<string name="hours_ago">godzin temu</string>
<string name="minutes_ago">minut temu</string>
<string name="seconds_ago">sekund temu</string>
<string name="osmo_connect_to_device_name">Nazwa urządzenia</string>
<string name="osmo_connect_to_device_name">Nazwa użytkownika</string>
<string name="osmo_connect_to_device_tracker_id">Identyfikator trackera</string>
<string name="osmo_connect_to_device">Sparuj z urządzeniem</string>
<string name="osmo_join_group">Dołącz do grupy</string>
<string name="osmo_new_device">Połącz z urządzeniem</string>
<string name="osmo_connected_devices">Podłączone urządzenia</string>
<string name="osmo_groups">Grupy/Urządzenia OSMo</string>
<string name="osmo_groups">Grupy/Urządzenia OsMo</string>
<string name="osmo_tracker_id_descr">Kliknij, aby zobaczyć lub udostępnić identyfikator trackera.
Używając identyfikatora trackera podłączone urządzenia będą mogły śledzić każdy ruch tego urządzenia! Aby się rozłączyć, wybierz opcję: Generuj ponownie.</string>
<string name="osmo_locations_sent">Położenie wysłane %1$d (w buforze %2$d) </string>
</resources>
<string name="color_red">czerwony</string>
<string name="color_pink">różowy</string>
<string name="color_orange">pomarańczowy</string>
<string name="color_brown">brązowy</string>
<string name="color_yellow">żółty</string>
<string name="color_lightblue">jasnoniebieski</string>
<string name="color_blue">niebieski</string>
<string name="color_magenta">purpurowy</string>
<string name="osmo_edit_device">Zmień właściwości użytkownika</string>
<string name="osmo_edit_color">Kolor wyświetlacza</string>
<string name="osmo_group_info">Informacje</string>
<string name="osmo_group">Grupa OsMo</string>
<string name="osmo_group_share">W celu dołączenia do grupy %2$s, określ identyfikator grupy (%1$s)</string>
<string name="osmo_share_connect_device">Pozwól na stałe śledzenie tego urządzenia</string>
<string name="osmo_share_current_session">Udostępnij bieżącą sesję w przeglądarce</string>
<string name="osmo_session_not_available">Sesja niedostępna, sprawdź, czy \'Send locations\' jest włączone.</string>
<string name="osmo_share_session">Udostępnij sesję</string>
<string name="osmo_session_id_share">Adres sesji, aby śledzić urządzenie (%1$s)</string>
<string name="osmo_tracker_id_share">W celu połączenia się z docelowym urządzeniem %2$s, określ identyfikator trackera (%1$s)</string>
<string name="osmo_track_interval">Interwał zapisu śledzenia</string>
<string name="osmo_track_interval_descr">Wybierz interwał wysyłania lokalizacji</string>
<string name="int_days">dni</string>
<string name="osmo_connect_menu">Połącz</string>
<string name="osmo_expire_group">Wygasa za</string>
<string name="osmo_group_description">Opis</string>
<string name="osmo_group_policy">Polityka grup</string>
<string name="osmo_connect_to_group_id">Identyfikator grupy</string>
<string name="osmo_group_name">Nazwa grupy</string>
<string name="osmo_connect_to_group">Sparuj z grupą</string>
<string name="osmo_connect">Połącz z</string>
<string name="osmo_create_group">Utwórz grupę</string>
<string name="osmo_server_operation_failed">Błąd działania Serwera OsMo</string>
<string name="osmo_activity">Monitorowanie OsMo</string>
<string name="osmo_enable_tracker">Wysyłaj moją lokalizację</string>
<string name="osmo_control">Szybki dostęp do OsMo</string>
<string name="local_index_mi_export">Eksportuj</string>
<string name="import_file_favourites">Zapisać jako plik GPX czy zaimportować do ulubionych?</string>
<string name="import_save">Zapisz</string>
</resources>

View file

@ -764,7 +764,7 @@ Você pode ativar (on-line ou em cache) fontes azulejo mapa, configurações de
\n\nDepois a lista região global está recuperado da internet, clique em qualquer entrada para baixar ou atualizar um arquivo . Por favor, note que o seletor de tipo de arquivo na parte superior da tela para selecionar o tipo de download que você quer ( mapas regulares , sobreposições hillshade , etc.)
\n\nVocê pode filtrar a lista região digitando algumas letras , ou você pode selecionar a opção "Configurações \' → \' Filtro baixado \'para ver as atualizações somente para os dados já no seu dispositivo.
\n\n\t* Entradas no \' verde \' indicam arquivos de dados idênticos em dispositivo eo servidor
\n\t* Entradas no \ 'blue \' indicam atualizações disponíveis no servidor
\n\t* Entradas no \ \'blue \' indicam atualizações disponíveis no servidor
\n\t* entradas em itálico indicam dados de- ativado no dispositivo
</string>
<string name="level_to_switch_vector_raster_descr">Nível de zoom mínimo para usar mapas vectoriais</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="background_service_is_enabled_question">Serviciul încă rulează în background. Doriți să-l opriți?</string>
<string name="tip_recent_changes_1_0_0_t">Modificări în versiunea 1.0.0 :
\n\t* Rutare îmbunătățită, mai rapidă și mai exactă (până la 250 km)

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="srtm_plugin_description">Этот плагин позволяет загружать линии высот (Загрузка данных -&gt; Меню -&gt; "Другие карты") для использования оффлайн.</string>
<string name="srtm_paid_version_msg">Рассмотрите пожалуйста покупку плагина \"Линии высот\" на Market, чтобы поддержать последующую разработку.</string>
<string name="srtm_paid_version_title">Линии высот</string>
@ -1127,7 +1127,7 @@
\n\t* \'По направлению компаса\' - Карта будет вращаться так, чтобы совместить север карты и северное направление (используются показания компаса в устройстве).
</string>
<string name="tip_map_switch_t_v2">"\tОтображаемые карты и слои можно изменить выбрав \'Настройка вида\' (значок глобуса) на экране карты.\n\n\tВ \'Источник карты…\' можно выбрать предварительно загруженные векторные карты, онлайн-карты от различных источников (для использования включите плагин \'Онлайн карты\'), или самостоятельно созданные карты (при помощи OsmAndMapCreator для ПК, например).\n\n\tOsmAnd также поддерживает пользовательские источники. "
<string name="tip_map_switch_t_v2">"\tОтображаемые карты и слои можно изменить выбрав \'Настройка вида\' (значок глобуса) на экране карты.\n\n\tВ \'Источник карты…\' можно выбрать предварительно загруженные векторные карты, онлайн-карты от различных источников (для использования включите плагин \'Онлайн карты\' в \'Настройки\' → \'Диспетчер плагинов\'), или самостоятельно созданные карты (при помощи OsmAndMapCreator для ПК, например).\n\n\tOsmAnd также поддерживает пользовательские источники. "
</string>
<string name="tip_app_mode_t_v2">OsmAnd поддерживает настраиваемые профили для различных режимов.
\n\nВы можете изменить текущий профиль нажав кнопку выбора профилей в нижнем левом углу экрана карты (значок автомобиля, велосипеда или пешехода) или при построении маршрута.
@ -1297,7 +1297,7 @@
</string>
<string name="available_downloads_left">Доступно %1$d файлов для скачивания</string>
<string name="files_limit">осталось %1$d файлов</string>
<string name="wait_current_task_finished">Пожалуйста, подождите, пока завершится текущий трек</string>
<string name="wait_current_task_finished">Пожалуйста, подождите, пока завершится текущая операция</string>
<string name="distance_measurement_load_gpx">Открыть существующий GPX</string>
<string name="distance_measurement_finish_subtrack">Начать новый подтрек</string>
<string name="gpx_file_name">Имя файла GPX</string>
@ -1550,7 +1550,7 @@
<string name="osmo_settings_descr">Настройка параметров мониторинга и установка персонального канала мониторинга</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - продвинутый живой мониторинг с множеством средств удалённого контроля http://osmo.mobi</string>
<string name="osmo_plugin_name">OsMo (Продвинутый живой мониторинг)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo мониторинг OpenStreetMap (бета)</string>
<string name="navigation_intent_invalid">Неправильный формат: %s</string>
<string name="share_route_subject">Маршрут предоставленный через OsmAnd</string>
<string name="osmand_extended_description_4000_chars">
@ -1592,20 +1592,20 @@ OsmAnd - открытый источник и активно развается.
Афганистан, Албания, Алжир, Андорра, Ангола, Ангилья, Антигуа и Барбуда, Аргентина, Армения, Аруба, Австралия, Австрия, Азербайджан, Багамы, Бахрейн, Бангладеш, Барбадос, Белоруссия, Бельгия, Белиз, Бенин, Бермуды, Бутан, Боливия, Бонэйр, Босния и Герцеговина, Ботсвана, Бразилия, Британские Виргинские острова, Бруней, Болгария, Буркина-Фасо, Бурунди, Камбоджа, Камерун, Канада, Кабо-Верде, Центральноафриканская Республика, Чад, Чили, Китай, Колумбия, Коморские острова, Конго, Коста-Рика, Кот-д\'Ивуар, Хорватия, Куба, Кюрасао, Кипр, Чешская Республика, Дания, Джибути, Доминика, Доминиканская Республика, Эквадор, Египет, Сальвадор, Экваториальная Гвинея, Эритрея, Эстония, Эфиопия, Фиджи, Финляндия, Франция, Французская Гвиана, Французская Полинезия, Габон, Гамбия, Грузия, Германия, Гана, Гибралтар, Греция, Гренландия, Гренада, Гваделупа, Гуам, Гватемала, Гернси, Гвинея, Гвинея-Бисау, Гайана, Гаити, Ватикан, Гондурас, Гонконг, Венгрия, Исландия, Индия, Индонезия, Иран, Ирак, Ирландия, Остров Мэн, Израиль, Италия, Ямайка, Япония, Джерси, Иордания, Казахстан, Кения, Кирибати, Северная Корея и Южная Корея, Кувейт, Кыргызстан, Лаос, Латвия, Ливан, Лесото, Либерия, Ливия, Лихтенштейн, Литва, Люксембург, Макао, Македония, Мадагаскар, Малави, Малайзия, Мальдивы, Мали, Мальта, Мартиника, Мавритания, Маврикий, Майотта, Мексика, Микронезия, Молдова, Монако, Монголия, Черногория, Монтсеррат, Марокко, Мозамбик, Мьянма, Намибия, Науру, Непал, Нидерланды, Нидерландские Антильские острова, Новая Каледония, Новая Зеландия, Никарагуа, Нигер, Нигерия, Норвегия, Оман, Пакистан, Палау, палестинская Территория, Панама, Папуа-Новая Гвинея, Парагвай, Перу, Филиппины, Польша, Португалия, Пуэрто-Рико, Катар, Румыния, Россия, Руанда, Сен-Бартелеми, Остров Святой Елены, Сент-Китс и Невис, Сент-Люсия, Сен-Мартен, Сен-Пьер и Микелон, Сент-Винсент и Гренадины, Самоа, Сан-Марино, Саудовская Аравия, Сенегал, Сербия, Сейшельские острова, Сьерра-Леоне, Сингапур, Словакия, Словения, Сомали, Южная Африка, Южная Георгия, Южный Судан, Испания, Шри-Ланка, Судан, Суринам, Свазиленд, Швеция, Швейцария, Сирия, Тайвань, Таджикистан, Танзания, Таиланд, Тимор-Leste, Того, Токелау, Тонга, Тринидад и Тобаго, Тунис, Турция, Туркмения, Тувалу, Уганда, Украина, Объединенные Арабские Эмираты, Соединенное Королевство (UK), Соединенные Штаты Америки (США), Уругвай, Узбекистан, Вануату, Венесуэла, Вьетнам, Уоллис и Футуна, Западная Сахара, Йемен, Замбия, Зимбабве.
</string>
<string name="keep_informing_never">Никогда</string>
<string name="keep_informing_descr">Объявлять о навигационных инструкциях с регулярными интервалами</string>
<string name="keep_informing_descr">Повторять навигационные инструкции с регулярными интервалами</string>
<string name="keep_informing">Повторять навигационные инструкции</string>
<string name="arrival_distance">Объявление прибытия</string>
<string name="arrival_distance_descr">Как скоро вы хотите объявить прибытие?</string>
<string name="osmo_register_device">Регистрация устройства... </string>
<string name="osmo_register_device">Регистрация устройства...</string>
<string name="osmo_io_error">Проблема подключения OsMo: </string>
<string name="share_fav">Поделиться</string>
<string name="share_fav_subject">Избранные точки расшаренные через OsmAnd</string>
<string name="use_points_as_intermediates">Рассчитать маршрут между точками</string>
<string name="osmo_connect_to_device_name">Имя устройства</string>
<string name="osmo_join_group">Присоединиться к группе</string>
<string name="osmo_new_device">Подключиться к устройству</string>
<string name="osmo_connected_devices">Подключённые устройства</string>
<string name="osmo_groups">Группы OsMo/Устройства</string>
<string name="osmo_join_group">Войти в группу</string>
<string name="osmo_new_device">Следить за устройством</string>
<string name="osmo_connected_devices">Устройства</string>
<string name="osmo_groups">Управление OsMo</string>
<string name="osmo_connect_to_device">Подключиться к устройству</string>
<string name="osmo_auth_pending">Ожидание авторизации...</string>
<string name="osmo_conn_successfull">Соединение установлено: %1$s </string>
@ -1613,20 +1613,53 @@ OsmAnd - открытый источник и активно развается.
<string name="minutes_ago">минут назад</string>
<string name="seconds_ago">секунд назад</string>
<string name="osmo_locations_sent">Местоположение отправлено %1$d (в буфере %2$d) </string>
<string name="osmo_mode_restart">Рестарт сессии OsMo</string>
<string name="osmo_mode_on">Остановить сессию OsMo</string>
<string name="osmo_mode_off">Старт сессии OsMo</string>
<string name="osmo_mode_restart">Рестарт сессии</string>
<string name="osmo_mode_on">Остановить сессию</string>
<string name="osmo_mode_off">Старт сессии</string>
<string name="osmo_settings_debug">Отладочная информация</string>
<string name="osmo_connect_to_device_tracker_id">ID трекера</string>
<string name="osmo_auto_send_locations_descr">Автоматически стартовать сессию трекера и отправлять местоположение после запуска приложения</string>
<string name="osmo_auto_send_locations">Автоматически стартовать сессию трекера</string>
<string name="osmo_auto_send_locations">Автоматически запускать мониторинг</string>
<string name="osmo_tracker_id">Персональный ID трекера</string>
<string name="osmo_session_token">Маркер сессии: %1$s</string>
<string name="osmo_session_token">Токен: %1$s</string>
<string name="tip_recent_changes_1_8_alpha">Изменения в 1.8:
* Расчёт маршрута между маршрутными точками трека GPX
* Изменённое расположение стран для загрузок (поддерживается местный поиск имён)
* Изменённый порядок стран для загрузок (поддерживается местный поиск имён)
* Поддержка импорта GPX/KML (конвертация KML в GPX)
</string>
<string name="osmo_tracker_id_descr">Выберите что бы посмотреть или поделиться ID трекера.
<string name="osmo_tracker_id_descr">Выберите чтобы посмотреть или поделиться ID трекера.
Используя ID трекера присоединённые устройства будут доступны для мониторинга всех передвижений этого устройства! Для отключения выберите опцию восстановления.</string>
<string name="index_item_world_bitcoin_payments">Мировые пункты обмена bitcoin</string>
</resources>
<string name="osmo_connect_to_group_id">ID группы</string>
<string name="osmo_group_name">Название группы</string>
<string name="osmo_connect_to_group">Подключиться к группе</string>
<string name="osmo_create_group">Создать группу</string>
<string name="osmo_enable_tracker">Мониторинг</string>
<string name="osmo_group_description">Описание</string>
<string name="int_days">дней</string>
<string name="osmo_track_interval">Интервал отправки</string>
<string name="osmo_group">Группа OsMo</string>
<string name="osmo_track_interval_descr">Выберите временной интервал для отправки местоположения</string>
<string name="osmo_activity">OpenStreetMap-Мониторинг</string>
<string name="osmo_share_current_session">Поделиться текущей сессией в браузере</string>
<string name="osmo_share_session">Поделиться сессией</string>
<string name="osmo_session_id_share">URL сессии для отслеживания устройства (%1$s)</string>
<string name="local_index_mi_export">Экспорт</string>
<string name="osmo_group_info">Информация</string>
<string name="osmo_group_share">Чтобы подключиться к группе %2$s, укажите ID группы (%1$s)</string>
<string name="osmo_share_connect_device">Поделиться ID трекера</string>
<string name="osmo_connect_menu">Соединение</string>
<string name="osmo_connect">Подключиться к</string>
<string name="osmo_server_operation_failed">OsMo: не удалось правильно обработать команду</string>
<string name="import_file_favourites">Сохранить как файл GPX или импортировать в избранное?</string>
<string name="import_save">Сохранить</string>
<string name="color_red">красный</string>
<string name="color_pink">розовый</string>
<string name="color_orange">оранжевый</string>
<string name="color_brown">коричневый</string>
<string name="color_yellow">жёлтый</string>
<string name="color_lightblue">голубой</string>
<string name="color_blue">синий</string>
<string name="color_magenta">маджента</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="always_center_position_on_map">Ammustra sa positzione semper a su tzentru</string>
<string name="voice_pref_title">Boghe</string>
<string name="misc_pref_title">Mistura</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="recording_context_menu_show">Zobraziť</string>
<string name="recording_photo_description">Fotografia %1$s zachytená dňa %2$s</string>
<string name="av_def_action_picture">Zachytiť fotografiu</string>
@ -1748,11 +1748,15 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
<string name="lang_cy">Welšsky (Cymraeg)</string>
<string name="osmo_settings_uuid">Jedinečné ID zariadenia</string>
<string name="osmo_settings_descr">Zmeniť nastavenia monitorovania a nastaviť osobný monitorovací kanál</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitorovanie - Pokročilé sledovanie naživo s mnohými funkciami pre diaľkové ovládanie http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitorovanie - Pokročilé sledovanie naživo. Ponúka možnosti sledovania iných zariadení a byť sledovaný.
Vytvorte anonymné skupiny, zdieľajte vzájomne polohu a komunikujte. Rôzne možnosti nastavenia krátkodobého a dlhodobého sledovania.
Anonymné skupiny sú obmedzené na počet dní a pre niektoré funkcie nie je diaľkové ovládanie ani administrátor skupiny.
Plne funkčné skupiny sa vytvárajú na webstránke a sú prístupné len registrovaným používateľom.
Prečítajte si viac na http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (Pokročilé sledovanie naživo)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo sledovanie OpenStreetMap (beta)</string>
<string name="keep_informing_never">Nikdy</string>
<string name="keep_informing_descr">Oznamuj navigačné pokyny v pravidelných intervaloch</string>
<string name="keep_informing_descr">Opakuj navigačné pokyny v pravidelných intervaloch</string>
<string name="keep_informing">Opakuj navigačné pokyny</string>
<string name="arrival_distance">Oznámenie príjazdu</string>
<string name="arrival_distance_descr">Ako skoro má byť oznámený príjazd do cieľa?</string>
@ -1765,12 +1769,13 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
<string name="tip_recent_changes_1_8_alpha">Zmeny v 1.8:
* Počítanie trasy medzi bodmi v GPX stope
* Zmenené rozmiestnenie krajín na stiahnutie (podporuje vyhľadanie podľa lokálnych názvov)
* Podporuje import GPX/KML (zkonvertuje KML na GPX)
</string>
<string name="use_points_as_intermediates">Vypočítať trasu medzi bodmi</string>
<string name="hours_ago">hodín dozadu</string>
<string name="minutes_ago">minút dozadu</string>
<string name="seconds_ago">sekúnd dozadu</string>
<string name="osmo_connect_to_device_name">Názov zariadenia</string>
<string name="osmo_connect_to_device_name">Meno používateľa</string>
<string name="osmo_connect_to_device_tracker_id">ID sledovacieho zariadenia</string>
<string name="osmo_connect_to_device">Spojiť so zariadením</string>
<string name="osmo_join_group">Pripojiť k skupine</string>
@ -1788,4 +1793,20 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
<string name="osmo_conn_successfull">Vytvorené spojenie : %1$s </string>
<string name="osmo_mode_restart">Reštartovať reláciu OsMo</string>
<string name="osmo_settings_debug">Informácie pre ladenie</string>
<string name="import_save">Uložiť</string>
<string name="import_file_favourites">Uložiť ako súbor GPX alebo importovať do obľúbených?</string>
<string name="local_index_mi_export">Exportovať</string>
<string name="color_red">červená</string>
<string name="color_pink">ružová</string>
<string name="color_orange">oranžová</string>
<string name="color_brown">hnedá</string>
<string name="color_yellow">žltá</string>
<string name="color_lightblue">svetlomodrá</string>
<string name="color_blue">modrá</string>
<string name="color_magenta">purpurová</string>
<string name="osmo_edit_device">Zmeniť vlastnosti používateľa</string>
<string name="osmo_edit_color">Zobrazovaná farba</string>
<string name="osmo_group_info">Informácie</string>
<string name="osmo_group">Skupina v OsMo</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="search_button">Iskanje</string>
<string name="search_activity">Iskanje</string>
<string name="settings_Button">Nastavitve</string>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="screen_is_locked">För att låsa upp skärmen tryck på låsikonen</string>
<string name="ChooseCountry">Välj land</string>
<string name="choose_city">Välj stad</string>
@ -1386,7 +1386,7 @@ Aktuella data på enheten (%1$s ledigt):</string>
\n\t* Ny skärm med ruttplanering (intuitivare och kraftfullare)
\n\t* OBS: GPX-rutt finns under knappen Ruttinställningar
\n\t* Autodölj knappar i navigeringsläget
\n\t* Beräkna offline-rutt till första punkten av GPX-rutt, (alternativet \'kör hela spåret\')
\n\t* Beräkna offline-rutt till första punkten av GPX-rutt (alternativet \'kör hela spåret\')
\n\t* Aktiv simulering i tunnlar
\n\t* En mängd smärre förbättringar och fixar
\n\t* Inställning av talhastigheten
@ -1449,10 +1449,14 @@ Aktuella data på enheten (%1$s ledigt):</string>
<string name="localization_pref_title">Översättning</string>
<string name="navigation_intent_invalid">Ogiltigt format: %s</string>
<string name="osmo_settings_uuid">Unikt enhets-id</string>
<string name="osmo_settings_descr">Visa unik registreringsnyckel för enheten och andra specifika inställningar </string>
<string name="osmo_plugin_name">OSMo (Advanced Live Monitoring)</string>
<string name="osmo_settings">OSMo</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Avancerad Live Monitoring med mängder av funktioner för fjärrkontroll http://osmo.mobi</string>
<string name="osmo_settings_descr">Konfigurera inställningar för övervakning och ställ in personlig övervakningskanal</string>
<string name="osmo_plugin_name">OSMo (Avancerad live-övervakning)</string>
<string name="osmo_settings">OSMo OpenStreetMap-övervakning (beta)</string>
<string name="osmo_plugin_description">OpenStreetMap-övervakning - Avancerad live-övervakning. Detta ger möjlighet att spåra andra enheter och att själv spåras.
Skapa anonyma grupper, dela varandras platser och kommunicera. Det finns olika inställningar för sessionsövervakning eller permanent övervakning.
Anonyma grupper är begränsade till ett antal dagar och för vissa funktioner finns ingen fjärrkontroll eller gruppadministratör.
Helt fungerande grupper bör skapas på webbplatsen och endast registrerade användare har tillgång till dem.
Läs mer på http://osmo.mobi.</string>
<string name="interrupt_music_descr">Avbryt musiken vid meddelanden</string>
<string name="interrupt_music">avbryt musiken</string>
<string name="share_route_as_gpx">Dela rutt som GPX-fil</string>
@ -1462,18 +1466,19 @@ Aktuella data på enheten (%1$s ledigt):</string>
<string name="keep_informing">Upprepa navigationsinstruktioner</string>
<string name="osmo_register_device">Registrerar enheten … </string>
<string name="osmo_io_error">Anslutningsproblem med OSsMo: </string>
<string name="osmo_mode_on">Stoppa OSMo</string>
<string name="osmo_mode_off">Starta OSMo</string>
<string name="osmo_mode_on">Stoppa OsMo-session</string>
<string name="osmo_mode_off">Starta OsMo-session</string>
<string name="use_points_as_intermediates">Beräkna rutt mellan punkter</string>
<string name="tip_recent_changes_1_8_alpha">Förändringar i 1.8:
* Beräkna rutt mellan ruttpunkter i GPX-spår
* Ändrat utseende vid nedladdning av länder (stöd för sökning med lokala namn)
* Stöder GPX-/KML-import (konvertera fråm KML till GPX)↵
</string>
<string name="osmo_auto_send_locations_descr">Starta trackersessionen automatiskt och sänd platser sedan appen startats</string>
<string name="osmo_auto_send_locations">Starta trackersessionen automatiskt</string>
<string name="osmo_tracker_id">Personligt tracker-id</string>
<string name="osmo_tracker_id_descr">Klicka för att visa eller dela ut tracker-id.
Med tracker-id kommer anslutna enheter att kunna följa denna enhets alla rörelser! För att koppla ifrån, väl alternativet Generera om</string>
Med tracker-id kommer anslutna enheter att kunna följa denna enhets alla rörelser! För att koppla ifrån, välj alternativet Generera om</string>
<string name="osmo_session_token">Sessionstoken: %1$s</string>
<string name="osmo_auth_pending">Väntar på autentisering…</string>
<string name="osmo_locations_sent">Platser skickade %1$d (i buffer %2$d) </string>
@ -1488,4 +1493,42 @@ Aktuella data på enheten (%1$s ledigt):</string>
<string name="osmo_new_device">Anslut till enhet</string>
<string name="osmo_connected_devices">Anslutna enheter</string>
<string name="osmo_groups">OsMo-grupper/-enheter</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo-grupp</string>
<string name="osmo_group_share">För att ansluta till grupp %2$s, ange grupp-id (%1$s)</string>
<string name="osmo_share_connect_device">Följ denna enhet permanent</string>
<string name="osmo_share_current_session">Dela aktuell session i läsaren</string>
<string name="osmo_session_not_available">Sessionen inte tillgänglig. Kolla att \'Skicka platser\' är på.</string>
<string name="osmo_share_session">Dela session</string>
<string name="osmo_session_id_share">Sessions-URL för att spåra enhet (%1$s)</string>
<string name="osmo_tracker_id_share">För att ansluta till målenheten %2$s, ange tracker-id (%1$s)</string>
<string name="osmo_track_interval">Loggningsintervall</string>
<string name="osmo_track_interval_descr">Välj tidsintervall för skickande av platsen</string>
<string name="int_days">dagar</string>
<string name="osmo_connect_menu">Anslut</string>
<string name="osmo_expire_group">Förfaller om</string>
<string name="osmo_group_description">Beskrivning</string>
<string name="osmo_group_policy">Policy</string>
<string name="osmo_connect_to_group_id">Grupp-id</string>
<string name="osmo_group_name">Gruppnamn</string>
<string name="osmo_connect_to_group">Länka med grupp</string>
<string name="osmo_connect">Anslut till</string>
<string name="osmo_create_group">Skapa grupp</string>
<string name="osmo_server_operation_failed">OsMo-server operation misslyckades</string>
<string name="osmo_activity">Osm-övervakning</string>
<string name="osmo_enable_tracker">Skicka mina platser</string>
<string name="osmo_control">OsMo snabbåtkomst</string>
<string name="osmo_mode_restart">Starta om OsMo-session</string>
<string name="osmo_settings_debug">Avbuggningsinformation</string>
<string name="color_red">röd</string>
<string name="color_pink">skär</string>
<string name="color_orange">brandgul</string>
<string name="color_brown">brun</string>
<string name="color_yellow">gul</string>
<string name="color_lightblue">ljusblå</string>
<string name="color_blue">blå</string>
<string name="color_magenta">magenta</string>
<string name="osmo_edit_device">Ändra användaregenskaper</string>
<string name="osmo_edit_color">Visningsfärg</string>
</resources>

View file

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="tip_recent_changes_0_8_1_t">Зміни в 0.8.1:
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="tip_recent_changes_0_8_1_t">Зміни в 0.8.1:
\n\t* Більш точні маршрути (трохи повільніше)
\n\t* Розумний і швидкий перерахунок маршруту
\n\t* Вказання напрямку руху по смугам
@ -1604,4 +1605,15 @@ OsmAnd має відкриті сирці і активно розвиваєть
<string name="map_magnifier">Лупа</string>
</resources>
<string name="osmo_group_info">Інформація</string>
<string name="int_days">днів</string>
<string name="osmo_group_description">Опис</string>
<string name="osmo_connect_to_device_name">Ім\'я пристрою</string>
<string name="osmo_create_group">Створити групу</string>
<string name="osmo_connect">З\'єднатися до</string>
<string name="osmo_enable_tracker">Надіслати мою позицію</string>
<string name="hours_ago">годин тому</string>
<string name="minutes_ago">хвилин тому</string>
<string name="seconds_ago">секунд тому</string>
<string name="osmo_connected_devices">Під\'єднані пристрої</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="rendering_attr_roadColors_description">選擇道路的色彩調配:</string>
<string name="rendering_attr_roadColors_name">道路的色彩調配</string>
<string name="map_widget_show_destination_arrow">顯示目的地方向</string>
@ -1737,11 +1737,15 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
<string name="navigation_intent_invalid">無效的格式:%s</string>
<string name="osmo_settings_uuid">專有的裝置 ID</string>
<string name="osmo_plugin_name">OsMo (進階即時監視)</string>
<string name="osmo_settings">OsMo</string>
<string name="osmo_settings">OsMo OpenStreetMap 監視(測試版)</string>
<string name="osmo_settings_descr">組態監視設定值和設定個人監視頻道</string>
<string name="osmo_plugin_description">OpenStreetMap-監視 - 進階的即時監視,有很多的功能進行遠端控制 http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap-監視 - 進階的即時監視。它提供了去追蹤其它裝置和被追蹤的可能性。
建立匿名群組,分享彼此的位置和交流。它具有各種設定用於區段追蹤或持續的追蹤。
匿名群組是有限制天數和一些功能,也就是沒有遠端控制和群組管理員。
需在網站上建立完整功能的群組,並且只有已註冊的使用者才能進入他們。
要更進一步的了解請到 http://osmo.mobi。</string>
<string name="keep_informing_never">永不</string>
<string name="keep_informing_descr">按照定期間隔通報導航指示</string>
<string name="keep_informing_descr">按照定期間隔重新通報導航指示</string>
<string name="keep_informing">重複導航指示</string>
<string name="arrival_distance">抵達通告</string>
<string name="arrival_distance_descr">您希望抵達通告要有多快?</string>
@ -1755,26 +1759,66 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
<string name="tip_recent_changes_1_8_alpha">在1.8的變更:
* 預估 GPX 軌跡路線點之間的路線
* 為下載變更了各國的配置(支援本地名稱搜索)
* 支援 GPX/KML 匯入(由 KML 轉換為 GPX )
</string>
<string name="osmo_auto_send_locations_descr">自動開始追蹤工作階段和發送位置之後啟動應用程式</string>
<string name="osmo_auto_send_locations">自動開始追蹤工作階</string>
<string name="osmo_auto_send_locations_descr">自動開始追蹤段和發送位置之後啟動應用程式</string>
<string name="osmo_auto_send_locations">自動開始追蹤</string>
<string name="osmo_tracker_id">個人追蹤 ID</string>
<string name="osmo_tracker_id_descr">點擊查看或分享追蹤 ID。
         使用追蹤 ID 連線的裝置將能夠監視該裝置的所有動作! 要斷開選擇恢復選項。</string>
<string name="osmo_session_token">工作階段記號:%1$s</string>
<string name="osmo_session_token">段記號:%1$s</string>
<string name="osmo_auth_pending">等候授權...</string>
<string name="osmo_locations_sent">發送位置 %1$d在緩衝區 %2$d </string>
<string name="osmo_conn_successfull">建立連線:%1$s </string>
<string name="osmo_mode_restart">重新啟動 OsMo 工作階</string>
<string name="osmo_mode_restart">重新啟動 OsMo </string>
<string name="osmo_settings_debug">除錯資訊</string>
<string name="hours_ago">小時前</string>
<string name="minutes_ago">分鐘前</string>
<string name="seconds_ago">秒前</string>
<string name="osmo_connect_to_device_name">裝置名稱</string>
<string name="osmo_connect_to_device_name">使用者名稱</string>
<string name="osmo_connect_to_device_tracker_id">追蹤 ID</string>
<string name="osmo_connect_to_device">與裝置連結</string>
<string name="osmo_join_group">加入群組</string>
<string name="osmo_new_device">連接到裝置</string>
<string name="osmo_connected_devices">已連接裝置</string>
<string name="osmo_groups">OsMo 群組/裝置</string>
<string name="osmo_group">OsMo 群組</string>
<string name="osmo_group_info">資訊</string>
<string name="osmo_group_share">為了連接到群組 %2$s指定群組ID (%1$s)</string>
<string name="osmo_share_connect_device">允許持續的跟隨這個裝置</string>
<string name="osmo_share_current_session">在瀏覽器分享目前的區段</string>
<string name="osmo_session_not_available">無有效的區段,請檢查\'傳送位置\'是否有開。</string>
<string name="osmo_share_session">分享區段</string>
<string name="osmo_session_id_share">區段網址至追蹤裝置(%1$s)</string>
<string name="osmo_tracker_id_share">為了連接到目標裝置 %2$s指定追蹤 ID (%1$s)</string>
<string name="osmo_track_interval">記錄間隔</string>
<string name="osmo_track_interval_descr">選擇發送位置間隔時間</string>
<string name="int_days"></string>
<string name="osmo_connect_menu">連接</string>
<string name="osmo_expire_group">終止於</string>
<string name="osmo_group_description">敘述</string>
<string name="osmo_group_policy">方針</string>
<string name="osmo_connect_to_group_id">群組 ID</string>
<string name="osmo_group_name">群組名稱</string>
<string name="osmo_connect_to_group">與群組連線</string>
<string name="osmo_connect">連接到</string>
<string name="osmo_create_group">建立群組</string>
<string name="osmo_server_operation_failed">OsMo 伺服器操作失敗</string>
<string name="osmo_activity">OsMo 監視</string>
<string name="osmo_enable_tracker">傳送我的位置</string>
<string name="osmo_control">OsMo 快速進入</string>
<string name="local_index_mi_export">匯出</string>
<string name="import_file_favourites">儲存為 GPX 檔案或匯入到我的最愛嗎?</string>
<string name="import_save">儲存</string>
<string name="color_red">紅色</string>
<string name="color_pink">粉紅色</string>
<string name="color_orange">橙色</string>
<string name="color_brown">棕色</string>
<string name="color_yellow">黃色</string>
<string name="color_lightblue">淺藍色</string>
<string name="color_blue">藍色</string>
<string name="color_magenta">紫紅色</string>
<string name="osmo_edit_device">更改使用者屬性</string>
<string name="osmo_edit_color">顯示色彩</string>
</resources>

View file

@ -9,6 +9,18 @@
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
-->
<string name="osmo_follow">Follow</string>
<string name="osmo_sign_in">Sign in</string>
<string name="osmo_create_groups_confirm">In order to create groups you need to be a registered user of OsMo.</string>
<string name="osmo_credentials_not_valid">Your osmo credentials are not valid.</string>
<string name="osmo_regenerate_login_ids_confirm">Are you sure about regenerating personal ids? All devices, connected to you, won\'t be able to track you any more.</string>
<string name="osmo_regenerate_login_ids">Regenerate user id</string>
<string name="osmo_cancel_moving_target">Cancel moving target</string>
<string name="osmo_center_location">Center on the screen</string>
<string name="osmo_set_moving_target">Set as moving target</string>
<string name="osmo_use_server_name">Registered name</string>
<string name="osmo_connect_to_my_nickname">My nickname</string>
<string name="osmo_user_name">User</string>
<string name="color_red">red</string>
<string name="color_pink">pink</string>
<string name="color_orange">orange</string>
@ -22,13 +34,13 @@
<string name="osmo_edit_color">Display color</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo group</string>
<string name="osmo_group_share">In order to Connect to the group %2$s, specify group id (%1$s)</string>
<string name="osmo_group_share">In order to Connect to the group %2$s, specify group id (%1$s) or click %3$s .</string>
<string name="osmo_share_connect_device">Let permanently follow this device</string>
<string name="osmo_share_current_session">Share current session in browser</string>
<string name="osmo_session_not_available">Session not available, please check that \'Send locations\' is on.</string>
<string name="osmo_share_session">Share session</string>
<string name="osmo_session_id_share">Session url to track device (%1$s)</string>
<string name="osmo_tracker_id_share">In order to Connect to the target device %2$s, specify tracker id (%1$s)</string>
<string name="osmo_tracker_id_share">In order to Connect to the target device %2$s, click on the link %3$s or specify tracker id (%1$s)</string>
<string name="osmo_track_interval">Logging interval</string>
<string name="osmo_track_interval_descr">Choose time interval to send location</string>
<string name="int_days">days</string>
@ -45,8 +57,8 @@
<string name="osmo_connect">Connect to</string>
<string name="osmo_create_group">Create group</string>
<string name="osmo_server_operation_failed">OsMo Server operation failed</string>
<string name="osmo_activity">OsMo Monitoring</string>
<string name="osmo_enable_tracker">Send my locations</string>
<string name="osmo_activity">OpenStreetMap-Monitoring</string>
<string name="osmo_enable_tracker">Send my lcations</string>
<string name="osmo_control">OsMo quick access</string>
<string name="hours_ago">hours ago</string>
<string name="minutes_ago">min ago</string>

View file

@ -3,14 +3,14 @@ package net.osmand.plus;
public interface OsmAndConstants {
public int UI_HANDLER_MAP_VIEW = 300;
public int UI_HANDLER_MAP_VIEW = 3000;
public int UI_HANDLER_MAP_CONTROLS = 400;
public int UI_HANDLER_MAP_CONTROLS = 4000;
public int UI_HANDLER_LOCATION_SERVICE = 500;
public int UI_HANDLER_LOCATION_SERVICE = 5000;
public int UI_HANDLER_PROGRESS = 600;
public int UI_HANDLER_PROGRESS = 6000;
public int UI_HANDLER_SEARCH = 700;
public int UI_HANDLER_SEARCH = 7000;
}

View file

@ -828,9 +828,13 @@ public class OsmandSettings {
public final OsmandPreference<String> OSMO_DEVICE_KEY = new StringPreference("osmo_device_token", "").makeGlobal();
public final OsmandPreference<String> OSMO_USER_NAME = new StringPreference("osmo_user_name", "").makeGlobal();
public final OsmandPreference<String> OSMO_USER_PWD = new StringPreference("osmo_user_pwd", null).makeGlobal();
public final OsmandPreference<Boolean> OSMO_AUTO_SEND_LOCATIONS = new BooleanPreference("osmo_automatically_send_locations", false).makeGlobal();
public final CommonPreference<Integer> OSMO_SAVE_TRACK_INTERVAL = new IntPreference("osmo_save_track_interval", 3000).makeGlobal().cache();
public final CommonPreference<Integer> OSMO_SAVE_TRACK_INTERVAL = new IntPreference("osmo_save_track_interval", 5000).makeGlobal().cache();
public final OsmandPreference<String> OSMO_GROUPS = new StringPreference("osmo_groups", "{}").makeGlobal();

View file

@ -29,6 +29,7 @@ public class ShareDialog {
private List<ShareType> share = new ArrayList<ShareType>();
private static final String ZXING_BARCODE_SCANNER_COMPONENT = "com.google.zxing.client.android"; //$NON-NLS-1$
private static final String ZXING_BARCODE_SCANNER_ACTIVITY = "com.google.zxing.client.android.ENCODE"; //$NON-NLS-1$
static final int ACTION = -1;
static final int VIEW = 0;
static final int EMAIL = 1;
static final int SMS = 2;
@ -45,11 +46,17 @@ public class ShareDialog {
return this;
}
public ShareDialog viewContent(String content){
share.add(new ShareType(content, VIEW));
return this;
}
public ShareDialog setAction(String content, Runnable r){
share.add(new ShareType(content, ACTION, r));
return this;
}
public ShareDialog shareURLOrText(String url, String shortExplanation, String longExplanation){
if(shortExplanation == null) {
shortExplanation = url;
@ -68,14 +75,23 @@ public class ShareDialog {
private static class ShareType {
public String content;
public int type;
private Runnable runnable;
public ShareType(String content, int type) {
this.content = content;
this.type = type;
}
public ShareType(String content, int action, Runnable r) {
this.content = content;
this.type = action;
this.runnable = r;
}
public String getShareName(Context ctx) {
if(type == VIEW) {
if(type == ACTION) {
return content;
} else if(type == VIEW) {
return ctx.getString(R.string.show_details);
} else if(type == EMAIL) {
return "Email";
@ -90,7 +106,9 @@ public class ShareDialog {
}
public void execute(Activity a, String title) {
if(type == VIEW) {
if(type == ACTION) {
runnable.run();
} else if(type == VIEW) {
Builder bld = new AlertDialog.Builder(a);
bld.setTitle(title);
bld.setMessage(content);

View file

@ -169,9 +169,9 @@ public class TestVoiceActivity extends SherlockActivity {
addButton(ll, "Route recalculated (23150m & 350sec)", builder(p).routeRecalculated(23150, 350));
addButton(ll, "Prepare to turn slighlty left after 850m then bear right", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_SL, 850, street(p, "")).then().bearRight(street(p, "")));
addButton(ll, "After 1050m turn sharply left onto 'Hauptstrasse'", builder(p).turn(AbstractPrologCommandPlayer.A_LEFT_SH, 1050, street(p, "Hauptstrasse")));
addButton(ll, "After 1050m turn sharply left onto 'Hauptstra"+"\u00df"+"e'", builder(p).turn(AbstractPrologCommandPlayer.A_LEFT_SH, 1050, street(p, "Hauptstraße")));
addButton(ll, "Turn left onto 'Main Street'", builder(p).turn(AbstractPrologCommandPlayer.A_LEFT, street(p, "Main Street")));
addButton(ll, "Prepare to turn right after 320m onto 'Mini'", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_RIGHT, 320, street(p, "Mini")) );
addButton(ll, "Prepare to turn right after 320m onto 'SR 80'", builder(p).prepareTurn(AbstractPrologCommandPlayer.A_RIGHT, 320, street(p, "SR 80")) );
addButton(ll, "After 370m turn slightly right onto 'F23' 'Main Street'", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SL, 370, street(p, "Main street", "F23")));
addButton(ll, "Turn sharply right onto 'Main Street' then bear left", builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH, street(p, "Main Street")).then().bearLeft(street(p, "")));

View file

@ -0,0 +1,120 @@
package net.osmand.plus.osmo;
import java.util.List;
import net.osmand.data.LatLon;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.Version;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Vibrator;
public class OsMoControlDevice implements OsMoReactor {
private OsMoService service;
private OsmandApplication app;
private OsMoTracker tracker;
public OsMoControlDevice(OsmandApplication app, OsMoService service, OsMoTracker tracker) {
this.app = app;
this.service = service;
this.tracker = tracker;
service.registerReactor(this);
}
public JSONObject getBatteryLevel() throws JSONException {
Intent batteryIntent = app.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
int plugged = batteryIntent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
int temperature = batteryIntent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
int voltage = batteryIntent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
JSONObject postjson = new JSONObject();
postjson.put("batteryprocent", (level == -1 || scale == -1)? 50.0f : ((float)level / (float)scale) * 100.0f);
postjson.put("temperature", temperature);
postjson.put("voltage", voltage);
postjson.put("plugged", plugged);
return postjson;
}
@Override
public boolean acceptCommand(String command, String id, String data, JSONObject obj, OsMoThread tread) {
if(command.equals("REMOTE_CONTROL")) {
if(data.equals("BATTERY_INFO")) {
try {
service.pushCommand("BATTERY_INFO|"+getBatteryLevel().toString());
} catch(JSONException e) {
e.printStackTrace();
}
} else if(data.equals("VIBRATE")) {
Vibrator v = (Vibrator) app.getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(1000);
} else if(data.equals("STOP_TRACKING")) {
tracker.disableTracker();
if (app.getNavigationService() != null) {
app.getNavigationService().stopIfNeeded(app,NavigationService.USED_BY_LIVE);
}
} else if(data.equals("START_TRACKING")) {
tracker.enableTracker();
app.startNavigationService(NavigationService.USED_BY_LIVE);
app.getSettings().SERVICE_OFF_INTERVAL.set(0);
} else if(data.equals("OSMAND_INFO")) {
JSONObject robj = new JSONObject();
try {
robj.put("full_version", Version.getFullVersion(app));
robj.put("version", Version.getAppVersion(app));
TargetPointsHelper tg = app.getTargetPointsHelper();
if(tg.getPointToNavigate() != null) {
addPoint(robj, "target_", tg.getPointToNavigate(), tg.getPointNavigateDescription());
}
List<String> intermediatePointNames = tg.getIntermediatePointNames();
List<LatLon> intermediatePoints = tg.getIntermediatePoints();
if (intermediatePointNames.size() > 0) {
JSONArray ar = new JSONArray();
robj.put("intermediates", ar);
for (int i = 0; i < intermediatePointNames.size(); i++) {
JSONObject js = new JSONObject();
ar.put(js);
addPoint(js, "", intermediatePoints.get(i), intermediatePointNames.get(i));
}
}
service.pushCommand("OSMAND_INFO|"+robj.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
return true;
}
return false;
}
private void addPoint(JSONObject robj, String prefix, LatLon pointToNavigate, String pointNavigateDescription) throws JSONException {
robj.put(prefix+"lat", pointToNavigate.getLatitude());
robj.put(prefix+"lon", pointToNavigate.getLongitude());
if(pointNavigateDescription != null) {
robj.put(prefix+"name", pointNavigateDescription);
}
}
@Override
public String nextSendCommand(OsMoThread tracker) {
return null;
}
@Override
public void reconnect() {
}
}

View file

@ -38,6 +38,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
public interface OsMoGroupsUIListener {
public void groupsListChange(String operation, OsMoGroup group);
public void deviceLocationChanged(OsMoDevice device);
}
public OsMoGroups(OsMoService service, OsMoTracker tracker, OsmandSettings settings) {
@ -47,16 +49,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
tracker.setTrackerListener(this);
storage = new OsMoGroupsStorage(this, settings.OSMO_GROUPS);
storage.load();
for(OsMoDevice d : storage.getMainGroup().getGroupUsers()) {
if(d.isEnabled()) {
connectDeviceImpl(d);
}
}
for(OsMoGroup g : storage.getGroups()) {
if(!g.isMainGroup() && g.isEnabled()) {
connectGroupImpl(g);
}
}
}
public void setUiListener(OsMoGroupsUIListener uiListener) {
@ -69,10 +61,25 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
private void connectDeviceImpl(OsMoDevice d) {
d.enabled = true;
if(!service.getMyGroupTrackerId().equals(d.getTrackerId())) {
tracker.startTrackingId(d.trackerId);
d.active = true;
String mid = service.getMyGroupTrackerId();
if(mid == null || !mid.equals(d.getTrackerId())) {
tracker.startTrackingId(d);
}
}
@Override
public void reconnect() {
for(OsMoDevice d : storage.getMainGroup().getGroupUsers(null)) {
if(d.isEnabled()) {
connectDeviceImpl(d);
}
}
for(OsMoGroup g : storage.getGroups()) {
if(!g.isMainGroup() && g.isEnabled()) {
connectGroupImpl(g);
}
}
}
private String connectGroupImpl(OsMoGroup g) {
@ -98,8 +105,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
model.enabled = false;
String operation = "GROUP_DISCONNECT:"+model.groupId;
service.pushCommand(operation);
for(OsMoDevice d : model.getGroupUsers()) {
tracker.startTrackingId(d.trackerId);
for(OsMoDevice d : model.getGroupUsers(null)) {
tracker.stopTrackingId(d);
}
storage.save();
return operation;
@ -112,7 +119,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
private void disconnectImpl(OsMoDevice model) {
model.enabled = false;
tracker.stopTrackingId(model.trackerId);
model.active = false;
tracker.stopTrackingId(model);
}
@ -126,55 +134,56 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
@Override
public void locationChange(String trackerId, Location location) {
for(OsMoGroup g: getGroups()) {
g.updateLastLocation(trackerId, location);
for (OsMoGroup g : getGroups()) {
OsMoDevice d = g.updateLastLocation(trackerId, location);
if (d != null && uiListener != null) {
uiListener.deviceLocationChanged(d);
}
}
}
@Override
public boolean acceptCommand(String command, String data, JSONObject obj, OsMoThread thread) {
public boolean acceptCommand(String command, String gid, String data, JSONObject obj, OsMoThread thread) {
boolean processed = false;
String operation = command;
String operation = command + ":" + gid;
OsMoGroup group = null;
if(command.startsWith("GROUP_CHANGE:")) {
String gid = command.substring(command.indexOf(':') + 1);
if(command.equalsIgnoreCase("GP")) {
group = storage.getGroup(gid);
if(group != null) {
List<OsMoDevice> delta = mergeGroup(group, obj, false);
for(OsMoDevice d :delta) {
for(OsMoDevice d : delta) {
if(d.getDeletedTimestamp() != 0 && d.isEnabled()) {
disconnectImpl(d);
} else if(d.isEnabled() && !d.isActive()) {
} else if(!d.isActive()) {
connectDeviceImpl(d);
}
}
storage.save();
}
processed = true;
} else if(command.startsWith("GROUP_DISCONNECT:")) {
String gid = command.substring(command.indexOf(':') + 1);
} else if(command.equalsIgnoreCase("GROUP_DISCONNECT")) {
group = storage.getGroup(gid);
if(group != null) {
disconnectAllGroupUsers(group);
}
processed = true;
} else if(command.startsWith("GROUP_CONNECT:")) {
String gid = command.substring(command.indexOf(':') + 1);
} else if(command.equalsIgnoreCase("GROUP_CONNECT")) {
group = storage.getGroup(gid);
if(group != null) {
group.users.clear();
mergeGroup(group, obj, true);
group.active = true;
// connect to all devices in group
for(OsMoDevice d : storage.getMainGroup().getGroupUsers()) {
for(OsMoDevice d : group.getGroupUsers(null)) {
connectDeviceImpl(d);
}
storage.save();
}
processed = true;
} else if(command.startsWith("AGROUP_CREATE") || command.startsWith("GROUP_JOIN:") ) {
String gid ;
if(command.startsWith("AGROUP_CREATE")) {
} else if(command.equalsIgnoreCase("GROUP_CREATE") || command.equalsIgnoreCase("GROUP_JOIN") ) {
if(command.equalsIgnoreCase("GROUP_CREATE")) {
operation = command;
try {
gid = obj.getString(GROUP_ID);
} catch (JSONException e) {
@ -182,8 +191,6 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
service.showErrorMessage(e.getMessage());
return true;
}
} else {
gid = command.substring(command.indexOf(':') + 1);
}
group = storage.getGroup(gid);
if(group == null) {
@ -191,12 +198,10 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
group.groupId = gid;
storage.addGroup(group);
}
parseGroup(obj, group);
connectGroupImpl(group);
storage.save();
processed = true;
} else if(command.startsWith("GROUP_LEAVE:")) {
String gid = command.substring(command.indexOf(':') + 1);
} else if(command.equals("GROUP_LEAVE")) {
group = storage.getGroup(gid);
if(group != null) {
storage.deleteGroup(group);
@ -233,7 +238,7 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
private void disconnectAllGroupUsers(OsMoGroup gr) {
gr.active = false;
for(OsMoDevice d : gr.getGroupUsers()) {
for(OsMoDevice d : gr.getGroupUsers(null)) {
disconnectImpl(d);
}
}
@ -242,36 +247,40 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
private List<OsMoDevice> mergeGroup(OsMoGroup gr, JSONObject obj, boolean deleteUsers) {
List<OsMoDevice> delta = new ArrayList<OsMoDevice>();
try {
parseGroup(obj, gr);
JSONArray arr = obj.getJSONArray(USERS);
if(obj.has("group")) {
parseGroup(obj.getJSONObject("group"), gr);
}
Map<String, OsMoDevice> toDelete = new HashMap<String, OsMoDevice>(gr.users);
for (int i = 0; i < arr.length(); i++) {
JSONObject o = (JSONObject) arr.get(i);
String tid = o.getString(GROUP_TRACKER_ID);
OsMoDevice device = toDelete.remove(tid);
if (device == null) {
device = new OsMoDevice();
device.group = gr;
device.trackerId = tid;
device.enabled = true;
gr.users.put(tid, device);
if (obj.has(USERS)) {
JSONArray arr = obj.getJSONArray(USERS);
for (int i = 0; i < arr.length(); i++) {
JSONObject o = (JSONObject) arr.get(i);
String tid = o.getString(GROUP_TRACKER_ID);
OsMoDevice device = toDelete.remove(tid);
if (device == null) {
device = new OsMoDevice();
device.group = gr;
device.trackerId = tid;
device.enabled = true;
gr.users.put(tid, device);
}
if (o.has(USER_NAME)) {
device.serverName = o.getString(USER_NAME);
}
if (o.has(DELETED)) {
device.deleted = System.currentTimeMillis();
} else {
device.deleted = 0;
}
if (o.has(LAST_ONLINE)) {
device.lastOnline = o.getLong(LAST_ONLINE);
}
if (o.has(USER_COLOR)) {
device.serverColor = o.getInt(USER_COLOR);
}
delta.add(device);
}
if (o.has(USER_NAME)) {
device.serverName = o.getString(USER_NAME);
}
if (o.has(DELETED) && o.getBoolean(DELETED)) {
device.deleted = System.currentTimeMillis();
} else {
device.deleted = 0;
}
if (o.has(LAST_ONLINE)) {
device.lastOnline = o.getLong(LAST_ONLINE);
}
if (o.has(USER_COLOR)) {
device.serverColor = o.getInt(USER_COLOR);
}
delta.add(device);
}
if(deleteUsers) {
for(OsMoDevice s : toDelete.values()) {
@ -294,8 +303,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
obj.put("expireTime", expireTime);
obj.put("description", description);
obj.put("policy", policy);
service.pushCommand("AGROUP_CREATE|" + obj.toString());
return "AGROUP_CREATE";
service.pushCommand("GROUP_CREATE|" + obj.toString());
return "GROUP_CREATE";
} catch (JSONException e) {
throw new RuntimeException(e);
}
@ -321,8 +330,8 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
storage.save();
return us;
}
public String joinGroup(String groupId, String userName) {
final String op = "GROUP_JOIN:"+groupId;
public String joinGroup(String groupId, String userName, String nick) {
final String op = "GROUP_JOIN:"+groupId+"|"+nick;
OsMoGroup g = storage.getGroup(groupId);
if(g == null){
g = new OsMoGroup();
@ -340,6 +349,7 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
storage.save();
service.pushCommand(op);
if(group.isEnabled()) {
group.enabled = false;
disconnectAllGroupUsers(group);
}
return op;
@ -352,4 +362,10 @@ public class OsMoGroups implements OsMoReactor, OsmoTrackerListener {
storage.save();
}
@Override
public String nextSendCommand(OsMoThread tracker) {
return null;
}
}

View file

@ -19,11 +19,11 @@ import net.osmand.AndroidUtils;
import net.osmand.Location;
import net.osmand.access.AccessibleToast;
import net.osmand.data.LatLon;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmAndConstants;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmAndLocationProvider.OsmAndCompassListener;
import net.osmand.plus.OsmAndLocationProvider.OsmAndLocationListener;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
@ -36,11 +36,12 @@ import net.osmand.plus.osmo.OsMoGroups.OsMoGroupsUIListener;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoGroup;
import net.osmand.plus.osmo.OsMoService.SessionInfo;
import net.osmand.plus.osmo.OsMoTracker.OsmoTrackerListener;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Canvas;
import android.graphics.Color;
@ -51,12 +52,15 @@ import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.Spannable;
import android.text.method.LinkMovementMethod;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -71,6 +75,7 @@ import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
@ -85,7 +90,7 @@ import com.actionbarsherlock.view.Window;
*
*/
public class OsMoGroupsActivity extends OsmandExpandableListActivity implements OsmAndCompassListener,
OsmAndLocationListener, OsmoTrackerListener, OsMoGroupsUIListener {
OsmAndLocationListener, OsMoGroupsUIListener {
public static final int CONNECT_TO = 1;
protected static final int DELETE_ACTION_ID = 2;
@ -96,6 +101,8 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
public static final int SHARE_SESSION = 7;
public static final int GROUP_INFO = 8;
protected static final int SETTINGS_ID = 9;
protected static final int SETTINGS_DEV_ID = 10;
protected static final int TRACK_DEV_ID = 11;
private static final int LIST_REFRESH_MSG_ID = OsmAndConstants.UI_HANDLER_SEARCH + 30;
private static final long RECENT_THRESHOLD = 60000;
@ -143,15 +150,23 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
getSherlock().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW);
super.onCreate(icicle);
app = (OsmandApplication) getApplication();
osMoPlugin = OsmandPlugin.getEnabledPlugin(OsMoPlugin.class);
if(getIntent() != null) {
if("http".equals(getIntent().getScheme())) {
new OsMoIntentHandler(app, osMoPlugin).execute(getIntent());
}
}
setContentView(R.layout.osmo_groups_list);
getSupportActionBar().setTitle(R.string.osmo_activity);
setSupportProgressBarIndeterminateVisibility(false);
// getSupportActionBar().setIcon(R.drawable.tab_search_favorites_icon);
osMoPlugin = OsmandPlugin.getEnabledPlugin(OsMoPlugin.class);
adapter = new OsMoGroupsAdapter(osMoPlugin.getGroups(), osMoPlugin.getTracker());
adapter = new OsMoGroupsAdapter(osMoPlugin.getGroups(), osMoPlugin.getTracker(),
osMoPlugin.getService());
getExpandableListView().setAdapter(adapter);
app = (OsmandApplication) getApplication();
uiHandler = new Handler();
directionPath = createDirectionPath();
@ -297,7 +312,6 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
app.getLocationProvider().registerOrUnregisterCompassListener(true);
app.getLocationProvider().addLocationListener(this);
app.getLocationProvider().resumeAllUpdates();
osMoPlugin.getTracker().setUITrackerListener(this);
osMoPlugin.getGroups().setUiListener(this);
adapter.synchronizeGroups();
}
@ -308,7 +322,6 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
app.getLocationProvider().pauseAllUpdates();
app.getLocationProvider().removeCompassListener(this);
app.getLocationProvider().removeLocationListener(this);
osMoPlugin.getTracker().setUITrackerListener(null);
osMoPlugin.getGroups().setUiListener(null);
}
@ -325,43 +338,52 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
selectedObject = o;
device = (OsMoDevice) (o instanceof OsMoDevice ?o : null);
group = (OsMoGroup) (o instanceof OsMoGroup ?o : null);
MenuItem mi = createMenuItem(menu, ON_OFF_ACTION_ID, R.string.default_buttons_ok, 0, 0,
MenuItem.SHOW_AS_ACTION_ALWAYS);
MenuItem mi = null;
if(device == null || device.getGroup().isMainGroup()) {
mi = createMenuItem(menu, ON_OFF_ACTION_ID, R.string.default_buttons_ok, 0, 0,
MenuItem.SHOW_AS_ACTION_ALWAYS);
}
if(device != null && device.getLastLocation() != null) {
createMenuItem(menu, SHOW_ON_MAP_ID, R.string.show_poi_on_map, R.drawable.ic_action_marker_light, R.drawable.ic_action_marker_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
} else if(group != null) {
createMenuItem(menu, SHOW_ON_MAP_ID, R.string.show_poi_on_map, R.drawable.ic_action_marker_light, R.drawable.ic_action_marker_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
createMenuItem(menu, SHARE_ID, R.string.share_fav, R.drawable.ic_action_gshare_light, R.drawable.ic_action_gshare_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
///
if(device != null) {
createMenuItem(menu, SETTINGS_ID, R.string.settings, R.drawable.ic_action_settings_light, R.drawable.ic_action_settings_dark,
createMenuItem(menu, SETTINGS_DEV_ID, R.string.settings, R.drawable.ic_action_settings_light, R.drawable.ic_action_settings_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
if(device != null && device.getLastLocation() != null) {
MenuItem menuItem = createMenuItem(menu, TRACK_DEV_ID, R.string.osmo_set_moving_target, R.drawable.ic_action_flage_light, R.drawable.ic_action_flage_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM );
menuItem.setTitleCondensed(getString(R.string.osmo_follow));
}
if(group != null) {
createMenuItem(menu, GROUP_INFO, R.string.osmo_group_info, R.drawable.ic_action_info_light, R.drawable.ic_action_info_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
createMenuItem(menu, DELETE_ACTION_ID, R.string.default_buttons_delete, R.drawable.ic_action_delete_light, R.drawable.ic_action_delete_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
if (device == null || device.getGroup().isMainGroup()) {
createMenuItem(menu, DELETE_ACTION_ID, R.string.default_buttons_delete,
R.drawable.ic_action_delete_light, R.drawable.ic_action_delete_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
final LayoutInflater inflater = LayoutInflater.from(OsMoGroupsActivity.this);
View view = inflater.inflate(R.layout.check_item_rel, null);
final CompoundButton check = (CompoundButton) view.findViewById(R.id.check_item);
check.setChecked((device != null && device.isEnabled()) || (group != null && group.isEnabled()));
check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
onOffAction(check);
}
});
mi.setActionView(view);
if (mi != null) {
final LayoutInflater inflater = LayoutInflater.from(OsMoGroupsActivity.this);
View view = inflater.inflate(R.layout.check_item_rel, null);
final CompoundButton check = (CompoundButton) view.findViewById(R.id.check_item);
check.setChecked((device != null && device.isActive() && device.isEnabled()) || (group != null && group.isActive() && group.isEnabled()));
check.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
onOffAction(check);
}
});
mi.setActionView(view);
}
return true;
}
@ -377,7 +399,12 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
if(item.getItemId() == SETTINGS_ID) {
if(item.getItemId() == TRACK_DEV_ID) {
if(device != null) {
OsMoPositionLayer.setFollowDestination(device);
MapActivity.launchMapActivityMoveToTop(OsMoGroupsActivity.this);
}
} else if(item.getItemId() == SETTINGS_DEV_ID) {
showSettingsDialog(device);
} else if(item.getItemId() == DELETE_ACTION_ID ) {
Builder bld = new AlertDialog.Builder(OsMoGroupsActivity.this);
@ -406,8 +433,9 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
} else if(item.getItemId() == SHOW_ON_MAP_ID) {
if(device != null) {
Location location = device.getLastLocation();
app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), app.getSettings().getMapZoomToShow(),
null, device.getVisibleName(), device);
app.getSettings().setMapLocationToShow(location.getLatitude(), location.getLongitude(), app.getSettings().getLastKnownMapZoom(),
null, device.getVisibleName(), device);
OsMoPositionLayer.setFollowTrackerId(device);
MapActivity.launchMapActivityMoveToTop(OsMoGroupsActivity.this);
}
} else if(item.getItemId() == ON_OFF_ACTION_ID) {
@ -438,26 +466,39 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
quitSelectionMode();
}
});
}
private StringBuilder setFields(StringBuilder bld, int field, String value) {
bld.append(getString(field)).append(": ").append(value).append("\n");
return bld;
}
protected void showGroupInfo(OsMoGroup group) {
Builder bld = new AlertDialog.Builder(this);
bld.setTitle(R.string.osmo_group);
StringBuilder sb = new StringBuilder();
sb.append(getString(R.string.osmo_group_name)).append(" ").append(group.name);
setFields(sb, R.string.osmo_group_name, group.name);
if(group.description != null) {
sb.append(getString(R.string.osmo_group_description)).append(" ").append(group.description);
setFields(sb, R.string.osmo_group_description, group.description);
}
if(group.expireTime != 0) {
sb.append(getString(R.string.osmo_expire_group)).append(" ").append(new Date(group.expireTime).toString());
setFields(sb, R.string.osmo_expire_group, new Date(group.expireTime).toString());
}
if(group.policy != null) {
sb.append(getString(R.string.osmo_group_policy)).append(" ").append(group.policy);
setFields(sb, R.string.osmo_group_policy, group.policy);
}
sb.append(getString(R.string.osmo_connect_to_group_id)).append(" ").append(group.groupId);
bld.setMessage(sb.toString());
setFields(sb, R.string.osmo_connect_to_group_id, group.groupId);
ScrollView sv = new ScrollView(this);
TextView tv = new TextView(this);
sv.addView(tv);
tv.setPadding(5, 0, 5, 5);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 19);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setText(sb.toString());
bld.setView(sv);
bld.setPositiveButton(R.string.default_buttons_ok, null);
bld.show();
}
@ -501,6 +542,9 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
if (item.getItemId() == CONNECT_TO) {
connectToDevice();
return true;
} else if (item.getItemId() == SETTINGS_ID) {
startActivity(new Intent(this, SettingsOsMoActivity.class));
return true;
} else if (item.getItemId() == SHARE_SESSION) {
shareSession();
return true;
@ -551,22 +595,53 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
AccessibleToast.makeText(this, R.string.osmo_auth_pending, Toast.LENGTH_SHORT).show();
} else {
ShareDialog dlg = new ShareDialog(this);
String url = OsMoService.SHARE_TRACKER_URL + Uri.encode(trackerId);
if(name != null && name.length() > 0){;
url += "&name="+Uri.encode(name);
}
dlg.setTitle(getString(R.string.osmo_tracker_id));
dlg.viewContent(trackerId);
dlg.shareURLOrText(trackerId, getString(R.string.osmo_tracker_id_share, trackerId, name), null);
dlg.shareURLOrText(url, getString(R.string.osmo_tracker_id_share, trackerId, name, url), null);
dlg.showDialog();
}
}
private void shareOsMoGroup(String name, String groupId) {
ShareDialog dlg = new ShareDialog(this);
String url = OsMoService.SHARE_GROUP_URL +Uri.encode(groupId)+"&name="+Uri.encode(name);
dlg.setTitle(getString(R.string.osmo_group));
dlg.viewContent(groupId);
dlg.shareURLOrText(groupId, getString(R.string.osmo_group_share, groupId, name), null);
dlg.shareURLOrText(url, getString(R.string.osmo_group_share, groupId, name, url), null);
dlg.showDialog();
}
private void signin() {
Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.osmo_sign_in);
String message = "";
if(app.getSettings().OSMO_USER_PWD.get() != null) {
message = getString(R.string.osmo_credentials_not_valid) +"\n";
}
message += getString(R.string.osmo_create_groups_confirm);
builder.setMessage(message);
builder.setPositiveButton(R.string.osmo_sign_in, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(OsMoService.SIGN_IN_URL));
startActivity(browserIntent);
}
});
builder.setNegativeButton(R.string.default_buttons_no, null);
builder.show();
}
private void createGroup() {
if(osMoPlugin.getService().getRegisteredUserName() == null) {
signin();
return;
}
Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.osmo_create_group);
final View v = getLayoutInflater().inflate(R.layout.osmo_create_group, getExpandableListView(), false);
@ -613,6 +688,11 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
final TextView labelName = (TextView ) v.findViewById(R.id.LabelName);
final EditText tracker = (EditText) v.findViewById(R.id.TrackerId);
final EditText name = (EditText) v.findViewById(R.id.Name);
final View mgv = v.findViewById(R.id.MyGroupName);
final EditText nickname = (EditText) v.findViewById(R.id.NickName);
nickname.setText(app.getSettings().OSMO_USER_NAME.get());
device.setChecked(true);
device.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@ -621,9 +701,12 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
if(isChecked) {
labelTracker.setText(R.string.osmo_connect_to_device_tracker_id);
labelName.setText(R.string.osmo_connect_to_device_name);
mgv.setVisibility(View.GONE);
} else {
labelTracker.setText(R.string.osmo_connect_to_group_id);
labelName.setText(R.string.osmo_group_name);
name.setHint(R.string.osmo_use_server_name);
mgv.setVisibility(View.VISIBLE);
}
}
});
@ -635,6 +718,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
public void onClick(DialogInterface dialog, int which) {
final String nameUser = name.getText().toString();
final String id = tracker.getText().toString();
final String nick = nickname.getText().toString();
if(device.isChecked()) {
OsMoDevice dev = osMoPlugin.getGroups().addConnectedDevice(id, nameUser, getRandomColor());
adapter.update(dev.group);
@ -643,7 +727,10 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
if(!checkOperationIsNotRunning()) {
return;
}
String op = osMoPlugin.getGroups().joinGroup(id, nameUser);
String op = osMoPlugin.getGroups().joinGroup(id, nameUser, nick);
if(app.getSettings().OSMO_USER_PWD.get() == null) {
app.getSettings().OSMO_USER_NAME.set(nick);
}
startLongRunningOperation(op);
}
}
@ -663,6 +750,9 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
createMenuItem(menu, CREATE_GROUP, R.string.osmo_create_group,
0, 0,/*R.drawable.ic_action_marker_light,*/
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
createMenuItem(menu, SETTINGS_ID, R.string.settings,
R.drawable.ic_action_settings_light, R.drawable.ic_action_settings_dark,
MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return super.onCreateOptionsMenu(menu);
}
@ -673,7 +763,9 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
@Override
public void run() {
Toast.makeText(OsMoGroupsActivity.this, R.string.osmo_server_operation_failed, Toast.LENGTH_LONG).show();
if(OsMoGroupsActivity.this.operation != null) {
Toast.makeText(OsMoGroupsActivity.this, R.string.osmo_server_operation_failed, Toast.LENGTH_LONG).show();
}
hideProgressBar();
}
}, 15000);
@ -694,7 +786,9 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
if(operation == top || (operation != null && operation.equals(top))) {
hideProgressBar();
}
adapter.update(group);
if(group != null) {
adapter.update(group);
}
adapter.notifyDataSetChanged();
updateStatus();
}
@ -715,10 +809,12 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
private Map<OsMoGroup, List<OsMoDevice>> users = new LinkedHashMap<OsMoGroup, List<OsMoDevice>>();
private OsMoGroups grs;
private OsMoTracker tracker;
private OsMoService srv;
public OsMoGroupsAdapter(OsMoGroups grs, OsMoTracker tracker) {
public OsMoGroupsAdapter(OsMoGroups grs, OsMoTracker tracker, OsMoService srv) {
this.grs = grs;
this.tracker = tracker;
this.srv = srv;
synchronizeGroups();
}
@ -727,7 +823,8 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
sortedGroups.remove(group);
users.remove(group);
} else {
List<OsMoDevice> us = !group.isEnabled() && !group.isMainGroup() ? new ArrayList<OsMoDevice>(0) : group.getGroupUsers();
List<OsMoDevice> us = !group.isEnabled() && !group.isMainGroup() ? new ArrayList<OsMoDevice>(0) :
group.getVisibleGroupUsers(srv.getMyGroupTrackerId());
final Collator ci = Collator.getInstance();
Collections.sort(us, new Comparator<OsMoDevice>() {
@ -858,8 +955,8 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
location = tracker.getLastSendLocation();
}
int color = getResources().getColor(R.color.color_unknown);
int activeColor= model.getColor();
if(activeColor== 0) {
int activeColor = model.getColor();
if (activeColor == 0) {
activeColor = getRandomColor();
osMoPlugin.getGroups().setDeviceProperties(model, model.getVisibleName(), activeColor);
}
@ -885,12 +982,12 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
net.osmand.Location.distanceBetween(location.getLatitude(), location.getLongitude(),
mapLocation.getLatitude(), mapLocation.getLongitude(), mes);
draw.setAngle(mes[1] - lastCompass + 180);
final boolean recent = Math.abs(location.getTime() - System.currentTimeMillis()) < RECENT_THRESHOLD;
long now = System.currentTimeMillis();
final boolean recent = Math.abs( now - location.getTime() ) < RECENT_THRESHOLD;
draw.setColor(recent ? activeColor : color);
draw.setColor(color);
icon.setImageDrawable(draw);
int dist = (int) mes[0];
long seconds = Math.max(0, (System.currentTimeMillis() - location.getTime()) / 1000);
long seconds = Math.max(0, (now - location.getTime()) / 1000);
String time = "";
if (seconds < 60) {
seconds = (seconds / 5) * 5;
@ -955,7 +1052,7 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
}
@Override
public void locationChange(String trackerId, Location loc) {
public void deviceLocationChanged(OsMoDevice device) {
refreshList();
}
public static String colorToString(int color) {
@ -1056,9 +1153,8 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
@Override
public void draw(Canvas canvas) {
canvas.drawCircle(width/2, height/2, (width + height) / 7, paintRouteDirection);
canvas.drawCircle(width/2, height/2, (width + height) / 6, white);
canvas.drawCircle(width/2, height/2, (width + height) / 7, paintRouteDirection);
}
@Override
@ -1122,4 +1218,6 @@ public class OsMoGroupsActivity extends OsmandExpandableListActivity implements
}
}

View file

@ -2,6 +2,7 @@ package net.osmand.plus.osmo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -10,7 +11,6 @@ import net.osmand.Location;
import net.osmand.data.LatLon;
import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.R;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoGroup;
import org.json.JSONArray;
import org.json.JSONException;
@ -207,10 +207,13 @@ public class OsMoGroupsStorage {
protected Map<String, OsMoDevice> users = new ConcurrentHashMap<String, OsMoDevice>();
public List<OsMoDevice> getGroupUsers() {
public List<OsMoDevice> getGroupUsers(String mygid) {
// filter deleted
List<OsMoDevice> dvs = new ArrayList<OsMoDevice>(users.size());
for(OsMoDevice d : users.values()) {
if(mygid != null && mygid.equals(d.trackerId)) {
continue;
}
if(d.getDeletedTimestamp() == 0) {
dvs.add(d);
}
@ -218,6 +221,13 @@ public class OsMoGroupsStorage {
return dvs;
}
public List<OsMoDevice> getVisibleGroupUsers(String mygid) {
if(!isActive() && !isMainGroup()) {
return Collections.emptyList();
}
return getGroupUsers(mygid);
}
public boolean isDeleted() {
return deleted;
}
@ -260,15 +270,15 @@ public class OsMoGroupsStorage {
return name;
}
public void updateLastLocation(String trackerId, Location location) {
public OsMoDevice updateLastLocation(String trackerId, Location location) {
OsMoDevice d = users.get(trackerId);
if(d != null) {
d.setLastLocation(location);
d.active = location != null;
if(location != null) {
d.setLastOnline(location.getTime());
}
}
return d;
}
}
@ -366,6 +376,9 @@ public class OsMoGroupsStorage {
if(userName != null && userName.length() > 0) {
return userName;
}
if(serverName == null || serverName.length() == 0) {
return trackerId;
}
return serverName;
}
}

View file

@ -0,0 +1,67 @@
package net.osmand.plus.osmo;
import net.osmand.plus.OsmandApplication;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
public class OsMoIntentHandler extends AsyncTask<Intent, Void, String> {
private OsmandApplication app;
private OsMoPlugin plugin;
public OsMoIntentHandler(OsmandApplication app, OsMoPlugin plugin) {
this.app = app;
this.plugin = plugin;
}
@Override
protected String doInBackground(Intent... params) {
try {
while (app.isApplicationInitializing()) {
Thread.sleep(200);
}
for (Intent intent : params) {
String scheme = intent.getScheme();
Uri data = intent.getData();
if ("http".equals(scheme) && data.getHost().equals("z.osmo.mobi")) {
String path = data.getPath();
String lastPath = path.substring(path.lastIndexOf('/') + 1);
if(lastPath.equals("login")) {
String user = data.getQueryParameter("u");
String pwd = data.getQueryParameter("p");
app.getSettings().OSMO_USER_NAME.set(user);
app.getSettings().OSMO_USER_PWD.set(pwd);
plugin.getService().reconnectToServer();
} else if(lastPath.equals("join")) {
String gid = data.getQueryParameter("id");
String name = data.getQueryParameter("name");
if(name == null) {
name = "";
}
plugin.getGroups().joinGroup(gid, name, app.getSettings().OSMO_USER_NAME.get());
} else if(lastPath.equals("connect")) {
String gid = data.getQueryParameter("id");
String name = data.getQueryParameter("name");
if(name == null) {
name = gid;
}
plugin.getGroups().addConnectedDevice(gid, name, 0);
}
}
return null;
}
} catch (Exception e) {
return e.getMessage();
}
return null;
}
@Override
protected void onPostExecute(String result) {
if(result != null) {
}
}
}

View file

@ -1,15 +1,20 @@
package net.osmand.plus.osmo;
import java.text.SimpleDateFormat;
import net.osmand.Location;
import net.osmand.data.LatLon;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuAdapter.OnContextMenuClick;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
import net.osmand.plus.osmo.OsMoService.SessionInfo;
import net.osmand.plus.views.MapInfoLayer;
import net.osmand.plus.views.MonitoringInfoControl;
import net.osmand.plus.views.MonitoringInfoControl.MonitoringInfoControlServices;
@ -34,10 +39,17 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
private OsMoTracker tracker;
private OsMoGroups groups;
private BaseMapWidget osmoControl;
private OsMoPositionLayer olayer;
// 2014-05-27 23:11:40
public static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public OsMoPlugin(final OsmandApplication app) {
service = new OsMoService(app);
tracker = new OsMoTracker(service, app.getSettings().OSMO_SAVE_TRACK_INTERVAL);
tracker = new OsMoTracker(service, app.getSettings().OSMO_SAVE_TRACK_INTERVAL,
app.getSettings().OSMO_AUTO_SEND_LOCATIONS);
new OsMoControlDevice(app, service, tracker);
groups = new OsMoGroups(service, tracker, app.getSettings());
this.app = app;
ApplicationMode.regWidget("osmo_control", (ApplicationMode[])null);
}
@ -45,10 +57,6 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
@Override
public boolean init(final OsmandApplication app) {
service.connect(true);
if(app.getSettings().OSMO_AUTO_SEND_LOCATIONS.get()) {
tracker.enableTracker();
}
groups = new OsMoGroups(service, tracker, app.getSettings());
return true;
}
@ -85,6 +93,51 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
}
@Override
public void registerMapContextMenuActions(final MapActivity mapActivity, final double latitude, final double longitude,
ContextMenuAdapter adapter, final Object selectedObj) {
if(selectedObj instanceof OsMoDevice) {
adapter.item(R.string.osmo_center_location).icons(R.drawable.ic_action_gloc_dark,
R.drawable.ic_action_gloc_light).listen(new OnContextMenuClick() {
@Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
OsMoDevice o = (OsMoDevice) selectedObj;
double lat = o.getLastLocation() == null ? latitude : o.getLastLocation().getLatitude();
double lon = o.getLastLocation() == null ? longitude : o.getLastLocation().getLongitude();
mapActivity.getMapView().setLatLon(lat, lon);
OsMoPositionLayer.setFollowTrackerId(o);
}
}).position(0).reg();
if(OsMoPositionLayer.getFollowDestinationId() != null) {
adapter.item(R.string.osmo_cancel_moving_target).icons(R.drawable.ic_action_close_dark,
R.drawable.ic_action_close_light).listen(new OnContextMenuClick() {
@Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked,
DialogInterface dialog) {
OsMoPositionLayer.setFollowDestination(null);
}
}).position(0).reg();
}
adapter.item(R.string.osmo_set_moving_target).icons(R.drawable.ic_action_flag_dark,
R.drawable.ic_action_flag_light).listen(new OnContextMenuClick() {
@Override
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
OsMoDevice o = (OsMoDevice) selectedObj;
if(o.getLastLocation() != null) {
TargetPointsHelper targets = mapActivity.getMyApplication().getTargetPointsHelper();
targets.navigateToPoint(new LatLon(o.getLastLocation().getLatitude(), o.getLastLocation().getLongitude()), true, -1);
}
OsMoPositionLayer.setFollowDestination(o);
}
}).position(1).reg();
}
super.registerMapContextMenuActions(mapActivity, latitude, longitude, adapter, selectedObj);
}
@Override
public void registerLayers(MapActivity activity) {
super.registerLayers(activity);
@ -93,6 +146,24 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
layer.getMapInfoControls().registerSideWidget(osmoControl,
R.drawable.mon_osmo_conn_big, R.string.osmo_control, "osmo_control", false, 18);
layer.recreateControls();
if(olayer != null) {
activity.getMapView().removeLayer(olayer);
}
olayer = new OsMoPositionLayer(activity, this);
activity.getMapView().addLayer(olayer, 5.5f);
}
@Override
public void mapActivityPause(MapActivity activity) {
groups.setUiListener(null);
}
@Override
public void mapActivityResume(MapActivity activity) {
if(olayer != null) {
groups.setUiListener(olayer);
}
}
/**
@ -112,6 +183,21 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
boolean visible = true;
String txt = "OsMo";
String subtxt = "";
SessionInfo si = getService().getCurrentSessionInfo();
if (si != null) {
String uname = si.username;
if (uname != null && uname.length() > 0) {
if (uname.length() > 7 && uname.indexOf(' ') != -1) {
uname = uname.substring(0, uname.indexOf(' '));
}
if (uname.length() > 4 && uname.indexOf(' ') != -1) {
txt = "";
subtxt = uname;
} else {
txt = uname;
}
}
}
Drawable small = srcinactive;
Drawable big = srcinactive;
long last = service.getLastCommandTime();
@ -219,4 +305,6 @@ public class OsMoPlugin extends OsmandPlugin implements MonitoringInfoControlSer
return service;
}
}

View file

@ -0,0 +1,291 @@
package net.osmand.plus.osmo;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.osmand.Location;
import net.osmand.access.AccessibleToast;
import net.osmand.data.LatLon;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.osmo.OsMoGroups.OsMoGroupsUIListener;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoGroup;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.views.ContextMenuLayer;
import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.PointF;
import android.os.Handler;
import android.util.DisplayMetrics;
import android.view.WindowManager;
import android.widget.Toast;
/**
* Class represents a layer for osmo positions
*
*/
public class OsMoPositionLayer extends OsmandMapLayer implements ContextMenuLayer.IContextMenuProvider, OsMoGroupsUIListener {
private DisplayMetrics dm;
private final MapActivity map;
private OsmandMapTileView view;
private Paint pointAltUI;
private Paint point;
private OsMoPlugin plugin;
private final static float startZoom = 7;
private Handler uiHandler;
public OsMoPositionLayer(MapActivity map, OsMoPlugin plugin) {
this.map = map;
this.plugin = plugin;
}
@Override
public void initLayer(OsmandMapTileView view) {
this.view = view;
uiHandler = new Handler();
dm = new DisplayMetrics();
WindowManager wmgr = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
wmgr.getDefaultDisplay().getMetrics(dm);
pointAltUI = new Paint();
pointAltUI.setColor(view.getApplication().getResources().getColor(R.color.poi_background));
pointAltUI.setStyle(Style.FILL);
point = new Paint();
point.setColor(Color.DKGRAY);
point.setAntiAlias(true);
point.setStyle(Style.FILL_AND_STROKE);
}
public Collection<OsMoDevice> getTrackingDevices() {
return plugin.getTracker().getTrackingDevices();
}
public int getRadiusPoi(RotatedTileBox tb){
int r = 0;
final float zoom = tb.getZoom() + tb.getZoomScale();
if(zoom < startZoom){
r = 0;
} else if(zoom <= 15){
r = 10;
} else if(zoom <= 16){
r = 14;
} else if(zoom <= 17){
r = 16;
} else {
r = 18;
}
return (int) (r * tb.getDensity());
}
@Override
public void onDraw(Canvas canvas, RotatedTileBox tb, DrawSettings nightMode) {
final int r = getRadiusPoi(tb) * 3 / 4;
for (OsMoDevice t : getTrackingDevices()) {
Location l = t.getLastLocation();
if (l != null) {
int x = (int) tb.getPixXFromLatLon(l.getLatitude(), l.getLongitude());
int y = (int) tb.getPixYFromLatLon(l.getLatitude(), l.getLongitude());
pointAltUI.setColor(t.getColor());
canvas.drawCircle(x, y, r , point);
canvas.drawCircle(x, y, r - 2, pointAltUI);
}
}
}
@Override
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
List<OsMoDevice> pos = new ArrayList<OsMoDevice>();
getOsmoFromPoint(tileBox, point, pos);
if (!pos.isEmpty()) {
StringBuilder res = new StringBuilder();
for (OsMoDevice d : pos) {
res.append(getObjectDescription(d));
}
AccessibleToast.makeText(view.getContext(), res.toString(), Toast.LENGTH_LONG).show();
return true;
}
return false;
}
@Override
public void destroyLayer() {
}
@Override
public boolean drawInScreenPixels() {
return false;
}
@Override
public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List<Object> o) {
getOsmoFromPoint(tileBox, point, o);
}
@Override
public LatLon getObjectLocation(Object o) {
if(o instanceof OsMoDevice) {
Location loc = ((OsMoDevice) o).getLastLocation();
if(loc != null) {
return new LatLon(loc.getLatitude(), loc.getLongitude());
}
}
return null;
}
@Override
public String getObjectDescription(Object o) {
if (o instanceof OsMoDevice) {
String d = map.getString(R.string.osmo_user_name) + " " + ((OsMoDevice) o).getVisibleName();
final Location l = ((OsMoDevice) o).getLastLocation();
if(l != null && l.hasSpeed()) {
d += "\n"+ OsmAndFormatter.getFormattedSpeed(l.getSpeed(), map.getMyApplication());
}
return d;
}
return null;
}
@Override
public String getObjectName(Object o) {
if(o instanceof OsMoDevice) {
return map.getString(R.string.osmo_user_name) + " " + ((OsMoDevice) o).getVisibleName();
}
return null;
}
public void refresh() {
if (view != null) {
view.refreshMap();
}
}
private void getOsmoFromPoint(RotatedTileBox tb, PointF point, List<? super OsMoDevice> points) {
if (view != null) {
int ex = (int) point.x;
int ey = (int) point.y;
final int rp = getRadiusPoi(tb);
int compare = rp;
int radius = rp * 3 / 2;
for (OsMoDevice d : getTrackingDevices()) {
Location position = d.getLastLocation();
if (position != null) {
int x = (int) tb.getPixXFromLatLon(position.getLatitude(), position.getLongitude());
int y = (int) tb.getPixYFromLatLon(position.getLatitude(), position.getLongitude());
// the width of an image is 40 px, the height is 60 px -> radius = 20,
// the position of a parking point relatively to the icon is at the center of the bottom line of the
// image
if (Math.abs(x - ex) <= compare && Math.abs(y - ey) <= compare) {
compare = radius;
points.add(d);
}
}
}
}
}
@Override
public void groupsListChange(String operation, OsMoGroup group) {
}
private volatile boolean schedule = false;
// store between rotations
private static String followTrackerId;
private static LatLon followMapLocation;
private static String followDestinationId;
public static void setFollowTrackerId(OsMoDevice d) {
if(d != null) {
followTrackerId = d.trackerId;
Location l = d.getLastLocation();
if(l != null) {
followMapLocation = new LatLon(l.getLatitude(), l.getLongitude());
}
} else {
followTrackerId = null;
}
}
public static void setFollowDestination(OsMoDevice followDestination) {
followDestinationId = followDestination == null ? null : followDestination.trackerId;
}
public static String getFollowDestinationId() {
return followDestinationId;
}
@Override
public void deviceLocationChanged(final OsMoDevice device) {
boolean sameId = Algorithms.objectEquals(followTrackerId, device.trackerId);
boolean sameDestId = Algorithms.objectEquals(followDestinationId, device.trackerId);
Location l = device.getLastLocation();
if(sameDestId && l != null) {
TargetPointsHelper targets = map.getMyApplication().getTargetPointsHelper();
RoutingHelper rh = map.getMyApplication().getRoutingHelper();
double dist = 1;
if(rh.isRouteBeingCalculated()) {
dist = 100;
} else if(rh.isRouteCalculated()) {
dist = 30;
}
LatLon lt = new LatLon(l.getLatitude(), l.getLongitude());
if(targets.getPointToNavigate() == null || MapUtils.getDistance(targets.getPointToNavigate(), lt) > dist) {
targets.navigateToPoint(lt, true, -1);
}
}
if(sameId && !schedule && l != null) {
schedule = true;
ContextMenuLayer cl = map.getMapLayers().getContextMenuLayer();
final boolean sameObject = Algorithms.objectEquals(device, cl.getFirstSelectedObject()) && cl.isVisible();
LatLon mapLoc = new LatLon(map.getMapView().getLatitude(), map.getMapView().getLongitude());
final boolean centered = Algorithms.objectEquals(followMapLocation, mapLoc);
if(sameObject || centered) {
if(centered ) {
followMapLocation = new LatLon(l.getLatitude(), l.getLongitude());
} else if(!map.getMapView().getAnimatedDraggingThread().isAnimating()) {
// disable tracking
followMapLocation = null;
}
uiHandler.postDelayed(new Runnable() {
@Override
public void run() {
schedule = false;
if (sameObject) {
ContextMenuLayer cl = map.getMapLayers().getContextMenuLayer();
Location l = device.getLastLocation();
cl.setLocation(new LatLon(l.getLatitude(), l.getLongitude()), getObjectDescription(device));
cl.setSelectedObject(device);
}
if (centered) {
map.getMapView().setLatLon(followMapLocation.getLatitude(),
followMapLocation.getLongitude());
}
map.getMapView().refreshMap();
}
}, 150);
} else {
followTrackerId = null;
}
}
}
}

View file

@ -4,6 +4,10 @@ import org.json.JSONObject;
public interface OsMoReactor {
public boolean acceptCommand(String command, String data, JSONObject obj, OsMoThread tread);
public boolean acceptCommand(String command, String id, String data, JSONObject obj, OsMoThread tread);
public String nextSendCommand(OsMoThread tracker);
public void reconnect();
}

View file

@ -1,6 +0,0 @@
package net.osmand.plus.osmo;
public interface OsMoSender {
public String nextSendCommand(OsMoThread tracker);
}

View file

@ -5,6 +5,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
@ -29,20 +30,23 @@ import org.json.JSONObject;
import android.os.Build;
import android.provider.Settings.Secure;
public class OsMoService implements OsMoSender, OsMoReactor {
public class OsMoService implements OsMoReactor {
public static final String REGENERATE_CMD = "TRACKER_REGENERATE_ID";
public static final String SIGN_IN_URL = "http://osmo.mobi/signin";
private OsMoThread thread;
private List<OsMoSender> listSenders = new java.util.concurrent.CopyOnWriteArrayList<OsMoSender>();
private List<OsMoReactor> listReactors = new java.util.concurrent.CopyOnWriteArrayList<OsMoReactor>();
private ConcurrentLinkedQueue<String> commands = new ConcurrentLinkedQueue<String>();
private OsmandApplication app;
private static final Log log = PlatformUtil.getLog(OsMoService.class);
public static final String SHARE_TRACKER_URL = "http://z.osmo.mobi/connect?id=";
public static final String SHARE_GROUP_URL = "http://z.osmo.mobi/join?id=";
public static final String TRACK_URL = "http://test1342.osmo.mobi/u/";
private String lastRegistrationError = null;
public OsMoService(OsmandApplication app) {
this.app = app;
listSenders.add(this);
listReactors.add(this);
}
@ -50,6 +54,7 @@ public class OsMoService implements OsMoSender, OsMoReactor {
return thread != null && thread.isConnected();
}
public boolean isActive() {
return thread != null && thread.isActive();
}
@ -61,6 +66,14 @@ public class OsMoService implements OsMoSender, OsMoReactor {
return 0;
}
public List<String> getHistoryOfCommands() {
if(thread == null) {
return Collections.emptyList();
}
return new ArrayList<String>(thread.getLast100Commands());
}
public long getConnectionTime() {
return thread == null || !thread.isConnected() ? System.currentTimeMillis() : thread.getConnectionTime();
}
@ -77,7 +90,7 @@ public class OsMoService implements OsMoSender, OsMoReactor {
}
thread.stopConnection();
}
thread = new OsMoThread(this, listSenders, listReactors);
thread = new OsMoThread(this, listReactors);
return true;
}
@ -87,11 +100,6 @@ public class OsMoService implements OsMoSender, OsMoReactor {
}
}
public void registerSender(OsMoSender sender) {
if(!listSenders.contains(sender)) {
listSenders.add(sender);
}
}
public void registerReactor(OsMoReactor reactor) {
if(!listReactors.contains(reactor)) {
@ -99,10 +107,6 @@ public class OsMoService implements OsMoSender, OsMoReactor {
}
}
public void removeSender(OsMoSender s) {
listSenders.remove(s);
}
public void removeReactor(OsMoReactor s) {
listReactors.remove(s);
}
@ -165,6 +169,14 @@ public class OsMoService implements OsMoSender, OsMoReactor {
return thread.getSessionInfo();
}
public String getRegisteredUserName() {
SessionInfo si = getCurrentSessionInfo();
if(si != null && si.username != null && si.username.length() > 0) {
return si.username;
}
return null;
}
public String getMyGroupTrackerId() {
String myGroupTrackerId = "";
SessionInfo currentSessionInfo = getCurrentSessionInfo();
@ -243,7 +255,7 @@ public class OsMoService implements OsMoSender, OsMoReactor {
}
@Override
public boolean acceptCommand(String command, String data, JSONObject obj, OsMoThread tread) {
public boolean acceptCommand(String command, String id, String data, JSONObject obj, OsMoThread tread) {
if(command.equals("MOTD")) {
SessionInfo si = getCurrentSessionInfo();
if(si != null) {
@ -260,5 +272,16 @@ public class OsMoService implements OsMoSender, OsMoReactor {
}
return false;
}
@Override
public void reconnect() {
}
public void reconnectToServer() {
if(thread != null) {
thread.reconnect();
}
}
}

View file

@ -7,18 +7,20 @@ import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.SocketChannel;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentLinkedQueue;
import net.osmand.PlatformUtil;
import net.osmand.plus.osmo.OsMoService.SessionInfo;
import org.apache.commons.logging.Log;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@ -30,12 +32,13 @@ public class OsMoThread {
// private static String TRACKER_SERVER = "srv.osmo.mobi";
// private static int TRACKER_PORT = 3245;
private static final String PING_CMD = "P";
protected final static Log log = PlatformUtil.getLog(OsMoThread.class);
private static final long HEARTBEAT_DELAY = 100;
private static final long HEARTBEAT_FAILED_DELAY = 10000;
private static final long TIMEOUT_TO_RECONNECT = 60 * 1000;
private static final long TIMEOUT_TO_PING = 2 * 60 * 1000;
private static final long TIMEOUT_TO_PING = 5 * 60 * 1000;
private static final long LIMIT_OF_FAILURES_RECONNECT = 10;
private static final long SELECT_TIMEOUT = 500;
private static int HEARTBEAT_MSG = 3;
@ -47,7 +50,6 @@ public class OsMoThread {
private boolean reconnect;
private Selector selector;
private List<OsMoSender> listSenders;
private List<OsMoReactor> listReactors;
private int authorized = 0; // 1 - send, 2 - authorized
@ -62,12 +64,14 @@ public class OsMoThread {
private ByteBuffer pendingReadCommand = ByteBuffer.allocate(2048);
private LinkedList<String> queueOfMessages = new LinkedList<String>();
private SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
private ConcurrentLinkedQueue<String> last100Commands = new ConcurrentLinkedQueue<String>();
public OsMoThread(OsMoService service, List<OsMoSender> listSenders, List<OsMoReactor> listReactors) {
public OsMoThread(OsMoService service, List<OsMoReactor> listReactors) {
this.service = service;
this.listSenders = listSenders;
this.listReactors = listReactors;
// start thread to receive events from OSMO
HandlerThread h = new HandlerThread("OSMo Service");
@ -101,6 +105,9 @@ public class OsMoThread {
}
this.activeChannel = activeChannel;
key.attach(new Integer(++activeConnectionId));
for(OsMoReactor sender : listReactors) {
sender.reconnect();
}
}
@ -243,14 +250,20 @@ public class OsMoThread {
private void processReadMessages() {
while(!queueOfMessages.isEmpty()){
String cmd = queueOfMessages.poll();
log.info("OSMO get:"+cmd);
cmd(cmd, false);
int k = cmd.indexOf('|');
String header = cmd;
String id = "";
String data = "";
if(k >= 0) {
header = cmd.substring(0, k);
data = cmd.substring(k + 1);
}
int ks = header.indexOf(':');
if (ks >= 0) {
id = header.substring(ks + 1);
header = header.substring(0, ks);
}
JSONObject obj = null;
if(data.startsWith("{")) {
try {
@ -278,6 +291,9 @@ public class OsMoThread {
}
}
continue;
} else if(header.equalsIgnoreCase(OsMoService.REGENERATE_CMD)) {
reconnect = true;
continue;
} else if(header.equalsIgnoreCase(PING_CMD)) {
pingSent = 0;
continue;
@ -285,7 +301,7 @@ public class OsMoThread {
}
boolean processed = false;
for (OsMoReactor o : listReactors) {
if (o.acceptCommand(header, data, obj, this)) {
if (o.acceptCommand(header, id, data, obj, this)) {
processed = true;
break;
}
@ -329,6 +345,12 @@ public class OsMoThread {
}
private void writeCommands() throws UnsupportedEncodingException, IOException {
if(authorized == 0) {
String auth = "TOKEN|"+ sessionInfo.token;
cmd(auth, true);
authorized = 1;
pendingSendCommand = ByteBuffer.wrap(prepareCommand(auth).toString().getBytes("UTF-8"));
}
if (pendingSendCommand == null) {
pendingSendCommand = getNewPendingSendCommand();
}
@ -346,63 +368,57 @@ public class OsMoThread {
private ByteBuffer getNewPendingSendCommand() throws UnsupportedEncodingException {
if(authorized == 0) {
String auth = "TOKEN|"+ sessionInfo.token;
log.info("OSMO send:" + auth);
authorized = 1;
return ByteBuffer.wrap(prepareCommand(auth).toString().getBytes("UTF-8"));
}
if(authorized == 1) {
return null;
}
for (OsMoSender s : listSenders) {
for (OsMoReactor s : listReactors) {
String l = s.nextSendCommand(this);
if (l != null) {
StringBuilder res = prepareCommand(l);
log.info("OSMO send " + res);
return ByteBuffer.wrap(res.toString().getBytes("UTF-8"));
cmd(l, true);
return ByteBuffer.wrap(prepareCommand(l).toString().getBytes("UTF-8"));
}
}
if(System.currentTimeMillis() - lastSendCommand > TIMEOUT_TO_PING) {
if(pingSent == 0) {
pingSent = System.currentTimeMillis();
cmd(PING_CMD, true);
return ByteBuffer.wrap(prepareCommand(PING_CMD).toString().getBytes("UTF-8"));
}
}
return null;
}
public ConcurrentLinkedQueue<String> getLast100Commands() {
return last100Commands;
}
private void cmd(String cmd, boolean send) {
log.info("OsMO" + (send ? "> " : ">> ") + cmd);
last100Commands.add((send ? "> " : ">> ") + df.format(new Date()) + " " + cmd);
}
public SessionInfo getSessionInfo() {
return sessionInfo;
}
private StringBuilder prepareCommand(String l) {
boolean addNL = true;
StringBuilder res = new StringBuilder();
int i = 0;
while (true) {
int ni = l.indexOf('\n');
if (ni == l.length() - 1) {
res.append(l.substring(i));
addNL = false;
break;
} else if (ni == -1) {
res.append(l.substring(i));
break;
} else {
res.append(l.substring(i, ni));
res.append("\\").append("n");
private String prepareCommand(String l) {
StringBuilder res = new StringBuilder(l.length());
for(int i = 0; i < l.length(); i++) {
char c = l.charAt(i);
if(c == '\n' || c == '=' || c == '\\') {
res.append('\\');
}
i = ni + 1;
res.append(c);
}
if (addNL) {
l += "\n";
}
return res;
return res.toString().trim() + "=\n";
}
public long getLastCommandTime() {
return lastSendCommand;
}
public void reconnect() {
reconnect = true;
}
}

View file

@ -1,37 +1,40 @@
package net.osmand.plus.osmo;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import net.osmand.Location;
import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.osmo.OsMoGroupsStorage.OsMoDevice;
import org.json.JSONException;
import org.json.JSONObject;
public class OsMoTracker implements OsMoSender, OsMoReactor {
public class OsMoTracker implements OsMoReactor {
private ConcurrentLinkedQueue<Location> bufferOfLocations = new ConcurrentLinkedQueue<Location>();
private Map<String, Location> otherLocations = new ConcurrentHashMap<String, Location>();
private boolean startSendingLocations;
private OsMoService service;
private int locationsSent = 0;
private OsmoTrackerListener uiTrackerListener = null;
private OsmoTrackerListener trackerListener = null;
private Location lastSendLocation;
private Location lastBufferLocation;
private CommonPreference<Integer> pref;
private OsmandPreference<Integer> pref;
private String sessionURL;
private Map<String, OsMoDevice> trackingDevices = new java.util.concurrent.ConcurrentHashMap<String, OsMoGroupsStorage.OsMoDevice>();
private OsmandPreference<Boolean> autoStart;
public interface OsmoTrackerListener {
public void locationChange(String trackerId, Location location);
}
public OsMoTracker(OsMoService service, CommonPreference<Integer> pref) {
public OsMoTracker(OsMoService service, OsmandPreference<Integer> interval,
OsmandPreference<Boolean> autoStart) {
this.service = service;
this.pref = pref;
service.registerSender(this);
this.pref = interval;
this.autoStart = autoStart;
service.registerReactor(this);
}
@ -39,7 +42,7 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
if (!isEnabledTracker()) {
return null;
}
return "http://test1342.osmo.mobi/u/" + sessionURL;
return OsMoService.TRACK_URL + sessionURL;
}
public boolean isEnabledTracker() {
@ -60,17 +63,14 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
}
}
public Location getLastLocation(String trackerId) {
return otherLocations.get(trackerId);
public void startTrackingId(OsMoDevice d) {
service.pushCommand("LISTEN:"+d.getTrackerId());
trackingDevices.put(d.getTrackerId(), d);
}
public void startTrackingId(String id) {
service.pushCommand("LISTEN|"+id);
}
public void stopTrackingId(String id) {
service.pushCommand("UNLISTEN|"+id);
otherLocations.remove(id);
public void stopTrackingId(OsMoDevice d) {
service.pushCommand("UNLISTEN:"+d.getTrackerId());
trackingDevices.remove(d.getTrackerId());
}
@Override
@ -112,8 +112,10 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
if (location.getTime() - ltime > pref.get()) {
if(lastBufferLocation != null && (!lastBufferLocation.hasSpeed() || lastBufferLocation.getSpeed() < 1) &&
lastBufferLocation.distanceTo(location) < 20){
// ignores
return;
if(lastBufferLocation != null && location.getTime() - ltime < 60000) {
// ignores
return;
}
}
lastBufferLocation = location;
bufferOfLocations.add(location);
@ -139,7 +141,7 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
@Override
public boolean acceptCommand(String command, String data, JSONObject obj, OsMoThread thread) {
public boolean acceptCommand(String command, String tid, String data, JSONObject obj, OsMoThread thread) {
if(command.equals("LISTEN")) {
return true;
} else if(command.equals("UNLISTEN")) {
@ -154,8 +156,7 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
e.printStackTrace();
}
return true;
} else if(command.startsWith("LT:")) {
String tid = command.substring(command.indexOf(':') + 1);
} else if(command.equals("LT")) {
float lat = 0;
float lon = 0;
float speed = 0;
@ -185,13 +186,9 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
if(speed > 0) {
loc.setSpeed(speed);
}
otherLocations.put(tid, loc);
if(trackerListener != null) {
trackerListener.locationChange(tid, loc);
}
if(uiTrackerListener != null){
uiTrackerListener.locationChange(tid, loc);
}
}
return true;
}
@ -206,12 +203,16 @@ public class OsMoTracker implements OsMoSender, OsMoReactor {
return trackerListener;
}
public OsmoTrackerListener getUITrackerListener() {
return uiTrackerListener;
public Collection<OsMoDevice> getTrackingDevices() {
return trackingDevices.values();
}
public void setUITrackerListener(OsmoTrackerListener trackerListener) {
this.uiTrackerListener = trackerListener;
@Override
public void reconnect() {
if(autoStart.get()) {
enableTracker();
}
}

View file

@ -1,16 +1,27 @@
package net.osmand.plus.osmo;
import java.util.List;
import net.osmand.access.AccessibleToast;
import net.osmand.plus.R;
import net.osmand.plus.activities.SettingsBaseActivity;
import net.osmand.plus.activities.actions.ShareDialog;
import net.osmand.plus.osmo.OsMoService.SessionInfo;
import net.osmand.util.Algorithms;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.net.Uri;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.text.method.LinkMovementMethod;
import android.util.TypedValue;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
public class SettingsOsMoActivity extends SettingsBaseActivity {
@ -19,7 +30,7 @@ public class SettingsOsMoActivity extends SettingsBaseActivity {
private Preference trackerId;
private CheckBoxPreference sendLocationsref;
public static final int[] SECONDS = new int[] {1, 2, 3, 5, 10, 15, 30, 60, 90};
public static final int[] SECONDS = new int[] {0, 1, 2, 3, 5, 10, 15, 30, 60, 90};
public static final int[] MINUTES = new int[] {2, 3, 5};
@ -83,11 +94,29 @@ public class SettingsOsMoActivity extends SettingsBaseActivity {
@Override
public boolean onPreferenceClick(Preference preference) {
final OsMoPlugin plugin = OsMoPlugin.getEnabledPlugin(OsMoPlugin.class);
if (preference == debugPref) {
updateDebugPref();
Builder bld = new AlertDialog.Builder(this);
StringBuilder bs = new StringBuilder();
List<String> hs = plugin.getService().getHistoryOfCommands();
if(hs != null) {
for(int i = hs.size() - 1 ; i >= 0; i--) {
bs.append(hs.get(i)).append("\n");
}
}
ScrollView sv = new ScrollView(this);
TextView tv = new TextView(this);
sv.addView(tv);
tv.setText(bs.toString());
tv.setPadding(5, 0, 5, 5);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 19);
tv.setMovementMethod(LinkMovementMethod.getInstance());
bld.setView(sv);
bld.setPositiveButton(R.string.default_buttons_ok, null);
bld.show();
return true;
} else if(preference == trackerId) {
final OsMoPlugin plugin = OsMoPlugin.getEnabledPlugin(OsMoPlugin.class);
OsMoService service = plugin.getService();
SessionInfo ci = service.getCurrentSessionInfo();
if(ci == null || ci.trackerId == null) {
@ -95,14 +124,37 @@ public class SettingsOsMoActivity extends SettingsBaseActivity {
} else {
ShareDialog dlg = new ShareDialog(this);
dlg.setTitle(getString(R.string.osmo_tracker_id));
dlg.setAction(getString(R.string.osmo_regenerate_login_ids), getRegenerateAction());
dlg.viewContent(ci.trackerId);
dlg.shareURLOrText(ci.trackerId, getString(R.string.osmo_tracker_id_share, ci.trackerId, ""), null);
String url = OsMoService.SHARE_TRACKER_URL+Uri.encode(ci.trackerId);
dlg.shareURLOrText(ci.trackerId, getString(R.string.osmo_tracker_id_share, ci.trackerId, "", url), null);
dlg.showDialog();
}
}
return super.onPreferenceClick(preference);
}
private Runnable getRegenerateAction() {
return new Runnable() {
@Override
public void run() {
Builder bld = new AlertDialog.Builder(SettingsOsMoActivity.this);
bld.setMessage(R.string.osmo_regenerate_login_ids_confirm);
bld.setPositiveButton(R.string.default_buttons_yes, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final OsMoPlugin plugin = OsMoPlugin.getEnabledPlugin(OsMoPlugin.class);
plugin.getService().pushCommand(OsMoService.REGENERATE_CMD);
}
});
bld.setNegativeButton(R.string.default_buttons_no, null);
bld.show();
}
};
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean p = super.onPreferenceChange(preference, newValue);

View file

@ -222,7 +222,7 @@ public class VoiceRouter {
if(waitAnnouncedOffRoute == 0) {
waitAnnouncedOffRoute = 30000;
} else {
waitAnnouncedOffRoute += 10000;
waitAnnouncedOffRoute += 30000;
}
lastAnnouncedOffRoute = ms;
}
@ -480,12 +480,15 @@ public class VoiceRouter {
}
public String getSpeakablePointName(String pn) {
// replace characters which may produce unwanted tts sounds:
// Replace characters which may produce unwanted tts sounds:
if(pn != null) {
pn = pn.replace('-', ' ');
pn = pn.replace(':', ' ');
if ((player != null) && (!"de".equals(player.getLanguage()))){
pn = pn.replace("\u00df", "ss"); // helps non-German tts voices to pronounce German Strasse (=street)
if ((player != null) && (!"de".equals(player.getLanguage()))) {
pn = pn.replace("\u00df", "ss"); // Helps non-German tts voices to pronounce German Strasse (=street)
}
if ((player != null) && ("en".startsWith(player.getLanguage()))) {
pn = pn.replace("SR", "S R"); // Avoid SR (as for State Route or Strada Regionale) be pronounced as "Senior" in English tts voice
}
}
return pn;

View file

@ -2,10 +2,10 @@ package net.osmand.plus.views;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import net.osmand.data.LatLon;
import net.osmand.data.RotatedTileBox;
@ -46,7 +46,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
private static final String KEY_SELECTED_OBJECTS = "context_menu_selected_objects";
private LatLon latLon;
private String description;
private Map<Object, IContextMenuProvider> selectedObjects = new LinkedHashMap<Object, IContextMenuProvider>();
private Map<Object, IContextMenuProvider> selectedObjects = new ConcurrentHashMap<Object, IContextMenuProvider>();
private TextView textView;
private ImageView closeButton;
@ -74,6 +74,13 @@ public class ContextMenuLayer extends OsmandMapLayer {
@Override
public void destroyLayer() {
}
public Object getFirstSelectedObject() {
if(!selectedObjects.isEmpty()) {
return selectedObjects.keySet().iterator().next();
}
return null;
}
@Override
public void initLayer(OsmandMapTileView view) {
@ -112,7 +119,12 @@ public class ContextMenuLayer extends OsmandMapLayer {
}
}
public boolean isVisible() {
return latLon != null;
}
@Override
public void onDraw(Canvas canvas, RotatedTileBox box, DrawSettings nightMode) {
if(latLon != null){

View file

@ -41,6 +41,7 @@ public class TextInfoWidget extends BaseMapWidget {
+ (int) (3 * scaleCoefficient));
}
}
public void setText(String text, String subtext) {
this.text = text;